Наверное, блокчейн — это одно из самых часто употребляемых слов в современном мире. На нем завязаны многие технологии: от хранения персональных данных до систем идентификации в компьютерных играх, внутриигровых покупок и, разумеется, криптовалют. Разбираемся, что такое блокчейн, как он работает и почему стал таким популярным.
Скованные одной цепью
«Отцами» блокчейна называют Стюарта Хабера и Скотта Сторнетту, которые в 1991 году в Journal of Cryptology опубликовали статью (pdf) How to Time-Stamp a Digital Document. Они предложили использовать цепочку блоков, в которые были внедрены специальные метки времени, благодаря чему блоки невозможно было подделать. Однако еще за 10 лет до них, в 1982 году, в диссертации Дэвида Чаума Computer Systems Established, Maintained and Trusted by Mutually Suspicious Gorups был впервые описан принцип, легший позднее в основу блокчейна. Хабер и Сторнетта даже запатентовали предложенную ими технологию, однако на тот технических средств реализации не существовало. Срок патента истек в 2004 году, а уже спустя четыре года некто под ником Сатоши Накамото (до сих пор доподлинно неизвестно, кто это, даже неясно, один это человек или группа специалистов) опубликовал статью Bitcoin: A Peer-to-Peer Electronic Cash System (pdf), в которой описал протокол первой в мире криптовалюты — биткойна, использующей технологию блокчейна. 31 октября 2008 года считается датой рождения криптовалют и началом практического применения блокчейна.
В целом, описание технологии выглядит довольно просто и понятно из самого термина. Blockchain — это непрерывная цепочка блоков. В этой цепочке содержатся хешированные (то есть преобразованные в набор цифр и букв) данные о всех сделках, проведенных с ее помощью. Изменить или удалить блоки из цепочки нельзя — можно только добавить новый блок. При этом вся цепочка у всех на виду — каждый может ознакомиться с ее содержимым. Таким образом хотя любой имеющий доступ к данным может увидеть всю хешированную информацию, она надежна защищена от любых манипуляций.
Важное дополнение, которое внес Накамото по сравнению со своими предшественниками, является децентрализация. Верификация корректности нового блока происходит благодаря механизму консенсуса (о нем ниже), то есть все участники блокчейна проверяют новый блок на правильность и выносят решение о том, что он легитимен. Благодаря этому у биткойна нет какого-то администратора — это полностью децентрализованная, распределенная система. Вся цепочка хранится на компьютерах множества пользователей, и даже если несколько из них будут недоступны или дадут сбой, оставшиеся не позволят манипулировать данными.
Прийти к консенсусу
Итак, как же работает блокчейн? Допустим, у пользователя есть какой-то актив. Это может быть что угодно ценное (как реальное, так и цифровое): данные о недвижимости, деньгах на банковском счете, профиле в компьютерной игре и т. п. Когда с активами совершается какая-то сделка, это называется транзакцией — допустим, что пользователь переводит деньги со своего счета на чей-то еще. Если у счета меняется владелец, то это тоже транзакция. При транзакции используется система учета на основе распределенных реестров — она позволяет минимизировать возможность ошибки или манипуляций с данными. Распределенные реестры означает, что копии данных одновременно хранятся и обновляются на большом количестве компьютеров по всему миру, объединенных через интернет. Таким образом даже если на нескольких компьютерах произойдет ошибка или намеренная манипуляция, другие тут же это заметят. Тут мы и подходим к уже упоминавшемуся выше консенсусу.
Тут тоже все довольно просто. Если у какого-то количества компьютеров данные будут отличаться от большинства (например, эти компьютеры были отключены от сети или в них попытались подделать данные), то верными будут признаны те данные, которыми обладает большинство. Ошибка или манипуляция будет исправлена, и система продолжит работать правильно.
Майнинг, майнинг, майнинг — денежки в кармане
Все пользователи, которые хранят на своих компьютерах копии блокчейна, совершают транзакции и верифицируют транзакции других пользователей, называются майнерами. Собственно, само совершение транзакций, то есть добавление новых блоков к блокчейну, и называется майнинг. Разумеется, чем больше в сети майнеров (как правило, их число не ограничено), тем надежнее сеть. Для работы майнеру нужен только мощные компьютер и специальное программное обеспечение. Причем чем больше блоков в блокчейне, тем серьезнее должны быть вычислительные мощности. Так, лет десять назад для того чтобы намайнить пару биткойнов, было достаточно домашнего компьютера, а теперь майнеры собирают целые майнинг-фермы для того, чтобы хватило мощностей на обработку огромного массива данных.
Здесь мы подходим к тому, зачем майнерам, собственно, участвовать в блокчейне? Ведь это требует больших затрат вполне себе реальных денег — как минимум на производительное железо и электричество. Дело в том, что майнеры за свою деятельность внутри блокчейна получают награду. Это может быть комиссия от всех участников транзакций, записанных в блоке, и вознаграждение от самой сети. Именно так работают криптовалюты: за майнинг майнеры получают какое-то количество виртуальных денег. Они буквально возникают из ничего: система генерирует их по специальному алгоритму. Чаще всего у вознаграждения от сети есть ограничение: по достижении определенного числа выпущенных «монет» эмиссия прекращается и дальше майнеры работают только за вознаграждение от участников.
Чтобы определить, кто из майнеров получит награду, блокчейн генерируют какую-то математическую задачу: кто первый ее решит, тот и получает от сети вознаграждение. Разумеется, больше шансов на удачу у того, у кого производительнее железо. Именно поэтому майнеры скупают все, что может делать вычисления, и объединяют это в майнинг-фермы. Вознаграждение попадает в кошелек. По сути, это абсолютно анонимный идентификатор, который хранит запись обо всех транзакциях майнера. В этом есть нюанс: если номер кошелька будет утерян, то доказать его принадлежность невозможно. Все, намайненное непосильным трудом, навсегда окажется недоступным.
Информация о состоянии кошелька зашифрована. Для передачи информации между покупателем и продавцом актива используются уникальные цифровые коды, которые практически невозможно взломать. Одновременно с этим, «практически» не значит невозможно, поэтому кошельки рекомендуется подключать только во время транзакций.
Фото на превью Digital assets photo created by rawpixel.com — www.freepik.com