Код
#статьи

Что такое блокчейн и как он работает

Рассказываем о том, как устроена самая популярная криптотехнология, где её применяют и какие у неё есть недостатки.

Иллюстрация: Катя Павловская для Skillbox Media

Блокчейн сейчас везде — на нём работают криптовалюты, мессенджеры, сложные банковские системы и модные токены с собачками. Выпускникам МФТИ выдают дипломы в виде NFT, а Эрмитаж продаёт виртуальные картины Ван Гога на блокчейн-аукционах. Самое время разобраться, что это за технология, как она устроена, зачем нужна и не пирамида ли это.

Технология блокчейн простыми словами

Блокчейн — это реестр для хранения и передачи цифровых активов. Активы могут быть любые: деньги, акции, игровые персонажи, произведения искусства — всё что угодно. Идея в том, что блокчейн позволяет взять какую-то вещь в Сети и сказать: «Это моё». И никто не сможет её у вас украсть, взломать или переписать.

Все записи в блокчейне хранятся в виде блоков, связанных между собой специальными ключами. Если изменить какую-то запись, ключи у блоков не совпадут, и цепочка разрушится. Поэтому блоки в блокчейне нельзя удалять и редактировать — можно лишь посмотреть, что находится внутри. Кстати, с английского blockchain так и переводится — «цепочка блоков».

Изначально блокчейн был нишевой технологией для подписания цифровых документов. А потом энтузиасты догадались использовать его для перевода денег между людьми — без банков, WebMoney и прочих посредников. Так появилась криптовалюта биткоин — пока что самое известное воплощение технологии.

Как работает блокчейн

Допустим, вы программист в европейской компании. Приближается Международный день пожилых людей, и вы решили поздравить свою бабушку, которая живёт в России, — отправить ей немного денег на новое пальто.

Можно сделать это по-старинке — через обычный банк:

  • Открываете приложение банка.
  • Отправляете деньги бабушке на карту.
  • Банк списывает деньги с вашего счёта.
  • Зачисляет на счёт бабушке.

Звучит вроде просто и привычно, но есть загвоздка. Вся информация о переводе лежит на сервере в виде обычной строки в базе данных. Если кто-то взломает этот сервер и перепишет строку, бабушка денег не получит. Если банк вдруг схлопнется из-за кризиса, денег лишатся вообще все.

А теперь посмотрите, как изящно все эти проблемы решает блокчейн:

  • Вы подключаетесь к блокчейн-сети.
  • Заводите бабушке кошелёк и отправляете туда деньги.
  • Перевод заносится в блокчейн и шифруется.
  • Информацию о переводе получают все участники сети — а в крупных блокчейнах это миллионы человек.

Если кто-то захочет удалить данные о вашем переводе, ему придётся делать это сразу на всех компьютерах сети — а не на одном каком-то сервере. Такая фишка блокчейна называется децентрализацией. Представьте себе банк, где у каждого клиента есть копия всех платежей и переводов — вот это и будет блокчейн.

Инфографика: Skillbox Media

Из чего состоит блокчейн

Итак, мы оформили перевод — в цепочке сразу появился новый блок. Если бабушка захочет отправить вам деньги обратно, это будет уже новый блок — мы помним, что удалять и редактировать записи в блокчейне нельзя.

Чтобы соединять между собой звенья цепочки, разработчики придумали хитрость — в каждый новый блок добавляется хеш предыдущего блока. Хеш — это зашифрованные данные о сделке в виде уникального набора букв и цифр. Если поменять какую-то запись, хеши у блоков не совпадут, и сеть не примет изменения.

Например, в биткоине все операции хешируются алгоритмом SHA-256. Он превращает любую информацию в строку размером 256 бит. Без разницы, будет ли это «Война и мир» Толстого или строчка из песни Михаила Боярского — на выходе получится шифрованная колбаса весом в 256 бит. Выглядит она примерно так:

c9f9053e2fb3fcec35ceeafab7bda50ece7d924f886c117b142dfa2df1d63574

В нашем случае, если перевести эту колбасу на русский, выйдет что-то вроде: «Петя Иванов отправил Зинаиде Степановне Ивановой 5000 рублей 1 октября 2022 года в 14:30».

Тут есть нюанс: если Петю заменить, скажем, на Диму, получится совершенно другой хеш. Следующий блок заметит изменения и отправит сигнал всем участникам сети: «Что-то тут нечисто, нас хотят взломать». И если большинство компьютеров знать не знают никакого Диму, блок останется неизменным.

Вернёмся к нашей Зинаиде Степановне. Предположим, деньги ей не особо нужны, и она решает отправить их вашему брату, который учится на первом курсе в Москве. Вот как система будет работать в таком случае:

Шаг 1. Блокчейн возьмёт хеш предыдущего блока.

Шаг 2. Добавит к нему новые данные:

3e84907df11600de355a07de0e255fcae469522c418f4f12945b586f619bedc6

+

«Данные о сделке Зинаиды Степановны и Васи».

Шаг 3. В таком виде запись снова хешируется, и получится ещё один блок:

0118b7211febd23303ed123e3c441301dba8062fa1dcaaa4bb682ef4b8fcc3fe

Этот процесс можно сравнить со старой детской игрой в снежный ком, когда каждый по очереди называет своё имя плюс имена предыдущих участников. Если кто-то сбился или назвал не все имена, цепочка прерывается и игрок выбывает.

Инфографика: Skillbox Media

Кто создаёт новые блоки

Сама по себе транзакция — это просто набор данных, вроде записи в тетради. Чтобы превратить её в блок, нужны вычислительные мощности — и чем больше сеть, тем больше железа она требует для работы. Поэтому созданием новых блоков в больших блокчейнах занимаются специальные люди с мощными компьютерами — майнеры.

Вот как выглядит день из жизни обычного майнера:

  • Взять транзакцию из общей очереди.
  • Подобрать для неё уникальный хеш.
  • Соединить его с хешем предыдущей транзакции.
  • Всё это дело снова хешировать и сделать новый блок.

В награду за свой труд майнеры получают кусочек от общего цифрового пирога — например, в случае биткоина это, внезапно, биткоины. Но не стоит думать, что майнинг — золотое дно. Чтобы хоть что-то заработать на добыче цифровой валюты, нужны ресурсы — в основном электричество и графические процессоры.

Если раньше майнить биткоины можно было на обычном компьютере, то теперь для этого строят целые заводы по вычислению хеша — майнинговые фермы. Выглядят они жутковато:

Как и в каких крупных компаниях применяют блокчейн

Так как блокчейн трудно взломать или подделать, его часто применяют для защиты цифровых активов: файлов, документов, сделок или транзакций. Например, можно составить и заверить ипотечный договор без обращения к нотариусу. Или оформить права собственности на землю и недвижимость, как это уже делают в Грузии.

Вот для чего используют блокчейн крупные российские и зарубежные компании:

  • Сбербанк — для учёта ипотечных закладных и других ценных бумаг.
  • S7 Airlines — для продажи авиабилетов без посредников.
  • «Норникель» — для выпуска токенов, обеспеченных полезными ископаемыми.
  • Maersk — для отслеживания морских перевозок.
  • Renault — для сертификации автомобильных запчастей.
  • IBM — для разработки системы межбанковских переводов (аналога Swift).

А вот наиболее распространённые сферы, которые без блокчейна уже трудно представить:

Криптовалюты. Если вы были в интернете в последние пять лет, то наверняка слышали про пиринговые валюты: Bitcoin, Litecoin, Ethereum и другие. Интерес к ним сейчас не шквальный, но их по-прежнему ценят фрилансеры, блогеры, программисты, цифровые кочевники и все, кому важен свободный обмен деньгами без посредников.

Самые популярные криптовалюты на сайте Crypto Logos
Скриншот: Skillbox Media

Смарт-контракты. С помощью блокчейна можно заключить безопасный договор с любым контрагентом — например, арендатором квартиры. Штука в том, что такой договор можно настроить на какое-то действие и добавить в прошивку умного устройства. Допустим, кто-то давно не платит проценты по кредиту за машину — блокчейн передаёт эти данные на сервер, и доступ к машине блокируется до уплаты долга.

Государственное управление. После того как взлетел биткоин, блокчейн перестал быть забавой для гиков и технократов — теперь его внедряют банки, госкомпании и даже некоторые государства. Например, правительство Тайваня использует блокчейн на базе Ethereum для защиты от кибератак со стороны Китая.

Медицина. Данные о здоровье — лакомый кусочек для мошенников, хакеров и фармацевтических компаний. Чтобы избежать утечек, многие клиники переносят медицинские карты пациентов в блокчейн — так их невозможно украсть, взломать или подделать. Ещё такие карты удобно заполнять и передавать между учреждениями.

Интернет вещей. Любое умное устройство работает в паре с каким-то сервером: передаёт данные, скачивает обновления, обращается к условной «Алисе». Если этот сервер взломает хакер, он может управлять устройством удалённо — например, установить во всём доме температуру 32 °C. Чтобы этого избежать, многие компании хранят данные пользователей децентрализованно — то есть в блокчейн-сетях.

Что такое блокчейн-платформа

Представьте, что вы решили испечь торт. Можно взять в магазине готовые коржи и поиграться с начинкой — добавить крем, фрукты или варенье. А можно сделать основу самостоятельно и получить такой торт, какой захотите, — например, двухметровый шоколадный торт в виде зайца Багз Банни.

В случае с блокчейном принцип тот же — если вам не хочется писать код с нуля, можно взять готовую платформу и настроить под свои задачи. Вы продумываете общую идею, название и логотип, прописываете некоторые фишки, а платформа берёт на себя все технические вещи: логику, безопасность, проведение транзакций.

Самые известные платформы:

  • Ethereum — позволяет создавать приложения на основе смарт-контрактов в разных сферах: финансы, страхование, инвестфонды, онлайн-игры. Широко используется в России — например, Сбербанком и Минцифры.
  • Bitcoin — финансовая платформа для выпуска одноимённой криптовалюты. На механизмах Bitcoin работают и другие валюты — тот же Dogecoin, который активно поддерживает Илон Маск.
  • Hyperledger — блокчейн-платформа от Linux Foundation. Есть фреймворки для создания цифровых паспортов, облачных сервисов и бухгалтерских книг.
  • Corda — система для хранения и передачи активов между финансовыми организациями: акций, облигаций, кредитов и других обязательств.
  • Solana — блокчейн-фреймворк, нацеленный на скорость: может проводить 65 000 транзакций в секунду (для сравнения, Ethereum — всего 30). Из минусов — не всегда стабильная работа и ограниченная децентрализация.
  • Polkadot — позволяет объединять несколько блокчейнов в одну экосистему. Проект от создателя Ethereum Гэвина Вуда.

Далеко не у всех блокчейнов есть свои собственные платформы — к примеру, криптовалюта Litecoin работает на блокчейн-сети Bitcoin. Это не хорошо и не плохо, просто так сложилось. Если вы захотите сделать свой блокчейн, можете взять за основу готовый фреймворк — исходный код большинства платформ лежит на GitHub.

Если интересно узнать, как разрабатывают блокчейны, почитайте нашу статью про создание блокчейнов на языке C# — рассказываем, как всё устроено и пробуем запустить первый проект.

На каких языках программирования пишут блокчейны

Выбор зависит от конкретной задачи. Допустим, вам надо написать блокчейн-сеть с нуля. Для этого лучше использовать языки низкого уровня вроде Rust, Go и C++. Они дают программисту полный доступ к «железу» и памяти, поэтому хорошо подходят для создания высоконагруженных систем.

Помимо этого, есть две группы языков, на которых обычно пишут блокчейны.

Языки общего назначения: Java, C#, Python или Kotlin. Это универсальный вариант: можно создать новую сеть, а можно написать приложение для какой-то платформы. Например, Java-код легко компилируется под Ethereum, Hyperledger и Quorum. При этом на базе Java работают некоторые известные платформы — скажем, NEM и IOTA.

Языки, заточенные под блокчейн. Если нужно написать приложение в рамках какой-то платформы, часто используют специальные блокчейн-языки. Делают их обычно так: берут за основу популярный язык, урезают некоторые функции и добавляют фишки для создания умных контрактов. В результате можно писать хороший код для блокчейн-сетей, но где-то ещё его запустить очень сложно.

Возьмём, к примеру, язык Solidity для платформы Ethereum. Так как создатели взяли синтаксис от JavaScript, внешне языки очень похожи:

Скриншот: Skillbox Media

Разница в том, что JavaScript исполняется в браузере, а Solidity — в виртуальной машине Ethereum. Если этой машины нет, код на Solidity работать не будет. Поэтому его редко запускают где-то кроме блокчейн-платформы — для этого пришлось бы под каждое «железо» писать свою машину. Проще взять язык вроде Java, чья виртуалка есть на любом утюге.

Solidity — не единственный язык программирования смарт-контрактов. Как минимум есть ещё Simplicity, Vyper и Rholang. Если интересно, как вся эта кухня устроена изнутри, читайте наше интервью с блокчейн-разработчиком.

Недостатки технологии

Как и у любой технологии, у блокчейна есть уязвимости и слабые стороны. Давайте разберём их по порядку.

Атака 51%. Чтобы в блокчейне появился новый блок, его должны одобрить больше половины участников. Но если к сети подключится хакер с достаточно мощным «железом», он сможет проталкивать в неё фальшивые блоки и обналичивать их на криптовалютных биржах. На практике этим редко кто занимается, и вот почему:

  • Дорого — «железо» должно быть мощнее, чем у 50% всех майнеров вместе взятых. Например, в случае биткоина будет выгоднее майнить валюту, чем создавать поддельную.
  • Сложно — в большинстве блокчейнов есть механизмы защиты от хакерских атак: Proof of Work и Proof of Stake.

Необратимость транзакции. Допустим, вашего соседа обманул мошенник и заставил отправить деньги на неизвестный счёт. Если сосед пользовался обычным банком, транзакцию можно попробовать отменить — обратиться в техподдержку или полицию. В случае с блокчейном отменить перевод нельзя технически, да и с точки зрения закона никакой защиты нет.

Приватные ключи. Чтобы зайти в свой аккаунт в блокчейне, нужно знать специальный хеш-ключ. Если его потерять, восстановить деньги будет очень сложно — достаточно вспомнить историю британца, который уже девять лет ищет на свалке жёсткий диск с биткоинами на сумму 176 млн долларов.

Дорогое обслуживание. Создание полноценного блокчейна требует много ресурсов: электричество, оборудование, время. Каждый участник сети должен хранить сотни гигабайт данных на своём компьютере. Поэтому для большинства задач гораздо проще и разумнее написать обычное клиент-серверное приложение, чем вкладываться в блокчейн.

Что дальше

По словам экспертов, к 2027 году в блокчейне будет храниться до 10% мирового ВВП. Например, цифровые дистрибьюторы смогут лицензировать фильмы, музыку и книги через NFT-токены. А государства полностью переведут в блокчейн выборы, закупки, регистрацию недвижимости и другие процедуры.

Что из этого сбудется — сложно сказать. Если интересно, как технология будет развиваться дальше, подпишитесь на нашу рассылку — будем больше рассказывать о мире блокчейнов, токенов и криптовалют. А если хотите попробовать себя в роли блокчейн-разработчика, загляните на наш бесплатный интенсив — расскажем, как написать блокчейн на Python за три дня.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована