Страница 14 из 15
Именно распределенность делает блокчейн неким цифровым нотариусом и судьей одновременно. Не существует единого места, где хранятся все записи реестродержателя или банка. Реестр хранится одновременно у всех участников системы и автоматически обновляется до последней версии при каждом внесенном изменении. Основными свойствами блокчейна, по мнению некоторых экспертов, являются:
• децентрализованность;
• публичность;
• консенсус участников;
• отсутствие посредников{106}.
По мнению А. Бубеля, «механизм действия блокчейна основывается на… консенсусе и открытой истории транзакций. Суть консенсуса заключается в том, что подтверждение сделок в сети пользователей данного блокчейна осуществляется путем периодической синхронизации согласия большинства ее участников с единой версией истории сделок. Согласие большинства необходимо в блокчейнах, основанных на консенсусе типа Proof-of-Work (PoW), как, например, в случае с биткоином. Большинство участников посредством решения математических задач доказывает сети, что их версия истории сделок легитимна. Альтернативой является Proof-of-Stake (PoS) – механизм, в котором решающую роль имеют держатели большей части активов. Открытая история трансакций означает, что каждый пользователь может просмотреть всю историю сделок от начала существования блочной цепи данных. Однако сторонами сделок являются анонимные адреса, не привязанные к конкретным физическим или юридическим лицам».
Как указывает Илья Боев, «эта технология ни к чему не принуждает… Закон блокчейна выражает общественное мнение о покупательной способности пользователя. Он прописан в коде. Код однозначен и достоверно оценен каждым человеком, который хочет оценить его в стоимостном отношении. Нет никакой возможности появления разногласий по вопросам детерминированных решений, выведенных компьютером. Этот уровень ясности и формальности защищает каждого и препятствует судебному произволу через предвзятое толкование законов»{107}.
Техника в основе блокчейна
Биткоин-блокчейн стал примером использования в системе платежей распределенного публичного реестра (Distributed Public Ledger, DPL){108}, включающего:
• формирование журнала из блоков транзакций и организацию связи между ними за счет включения в блок хеша предыдущего блока;
• формирование транзакций в виде сообщений, использующих криптографические элементы защиты и проверки того, корректна ли технология трансляции транзакций, по сети и синхронизации копий журнала в узлах сети;
• защиту цепочки блоков от модификации путем доказательства работы (Proof-of-Work) на основе технологии поиска хеша;
• использование переменной сложности при поиске хеша для поддержания заданной частоты создания блоков{109}.
В своем исходном отчете о биткоине Сатоши Накамото определил электронную монету как «цепочку цифровых подписей». В силу длительности применения биткоином блокчейна проще будет объяснить принцип действия технологии на примере именно этой криптовалюты.
Участниками такой системы являются:
• пользователи – владельцы электронных кошельков, которые могут хранить криптовалюту и переводить ее в системе другим пользователям;
• майнеры – участники, за вознаграждение обрабатывающие совершенные пользователями транзакции в сети и подбирающие хеш для формируемых блоков;
• серверы – участники, осуществляющие распределенное хранение общей книги блокчейна и выполняющие операции по проверке присылаемых блоков на соответствие правилам по сложности и допустимости{110}.
По другой классификации, в системе блокчейна фигурируют два типа участников: обычные пользователи и майнеры{111}. Первые создают записи. Вторые собирают записи, распространенные обычными пользователями, проверяют их и группируют в блоки, после чего формируют заголовок будущего блока и рассчитывают ключ блока. Найдя подходящий ключ, майнер сохраняет блок и отправляет его другим участникам сети. Обычные пользователи получают блоки и сохраняют их у себя, чтобы корректно создавать свои и достоверно проверять чужие записи.
До момента внесения записи в блок она считается недействительной. Пользователь сети блокчейн может совершать с ней действия, не имея, однако, уверенности в достоверности полученной и передаваемой информации. Гарантию достоверности предоставляет майнер, когда включает данную информацию в блок. Как только запись окажется сохранена в блоке и проверена, ее отмена уже будет невозможна{112}.
Чтобы убедиться в достоверности транзакции, майнеры автоматически прогоняют ее содержание через криптоалгоритм, тем самым верифицируя корректность цифровой подписи отправителя каждой транзакции, а также подтверждая соответствие последней транзакции условиям, заложенным в алгоритме консенсуса каждого конкретного блокчейна. Затем все накопившиеся транзакции упаковываются в блок{113}.
Функция самого блокчейна проста: регистрировать каждую транзакцию с биткоинами. Любая передача какого-то количества биткоинов подтверждается в сети (с помощью майнинга) внесением транзакционного блока. Блок добавляется к длинной цепочке, которая позволяет любому желающему отследить в сети смену собственников каждого из биткоинов от момента создания.
Технически это достигается при помощи последовательного шифрования данных о каждой очередной транзакции. Любой заносимой в блок сделке присваивается криптографический идентификатор (хеш), который добавляется в заголовок записи о следующей транзакции, и это повторяется снова и снова, так что хеш транзакции на вершине цепочки содержит зашифрованные данные обо всех предыдущих операциях, записанных в блоке. Вмешаться и изменить уже записанную транзакцию нельзя, так как это скомпрометирует всю цепочку[6].
Сам факт, что блоки корректно встраиваются в цепь, свидетельствует о том, что сделка прошла надлежащим образом. Так что блок представляет собой одновременно и подтверждение транзакции (с электронной подписью и отметкой о времени совершения), и часть общей (в масштабах всей сети) истории транзакций{114}.
Для идентификации в реестре владельцев биткоинов возможно использование шифрования с открытым ключом. При этом в базу данных записываются не имена и не данные СНИЛС, а открытый ключ. Только держатель закрытого ключа вправе дальше проводить операции с этими биткоинами. Так шифрование обеспечивает необходимую конфиденциальность, при том что одобрить транзакцию может лишь владелец закрытой половины пары ключей.
Таким образом, у пользователя есть только один ключ, и при его незнании невозможен доступ к первичной информации. Невозможен и подбор другого пакета данных, позволяющих создать такой же ключ.
Также для блокчейна характерен распределенный способ добавления в реестр новых записей. Нет централизованного хранилища или одного-единственного сервера. Кто угодно может создать следующий блок транзакций и обновить блокчейн с помощью майнинга. Это обеспечивает доверие к блокчейну, ведь в его дальнейшем расширении участвуют все пользователи сети.
Такая система хранения данных наиболее безопасна, поскольку вывести ее из строя можно лишь в случае поломки всех участвующих в системе компьютеров.
Майнеры и майнинг
Как было показано ранее, алгоритм формирования блокчейна включает создание нового блока цепи (новой записи), который содержит защищенную криптографией информацию из предыдущего блока (хеш), то есть каждая запись создается с учетом предыдущей. Новые блоки транзакций должны быть подтверждены путем подбора хеша определенной сложности. Для подтверждения используется алгоритм на основе доказательства выполненной работы (PoW). Что это означает на практике?
106
Мачихин Д. Цит. соч.
107
Боев И. Блокчейн и государство // http://www.ilyaboev.com/2016/05/blockchain-vs-government.html.
108
Лопатин В. Блокчейн как источник инноваций: настоящее и будущее // Тезисы доклада. – 7-й Международный ПЛАС-форум. – М., 7–8 июня 2016.
109
Исследование уровня сложности в основанных на блокчейне консенсусных системах дано в работе: Kraft D. Difficulty control for blockchain-based consensus systems // Peer-to-Peer Netw. Appl. 2016. – № 9. – P. 397–413.
110
Вотинов М. В., Мартьянова И. В., Шокин Г. О. Цит. соч.
111
Носов Н. Перспективы блокчейн в России // https://www.pcweek.ru/idea/article/detail.php?ID=182389 // 2016. – 8 февраля.
112
Воронцова Е. А., Мелешенко Е. Г. Блокчейн: панацея или угроза для хранения и передачи информации // Синергия Наук. – 2016. – № 5.
113
Стародубцев Д. Цит. соч.
6
Приведем пример хеш-функции. Представим слово «кит» в виде числа. Каждой букве дадим порядковый номер (а = 1… я = 33), получится: 12, 10, 20. Перемножив все числа, получаем свертку (хеш) слова «кит»: 2400. После передачи основного сообщения этот хеш необходимо передать получателю информации как подтверждение, что все сходится. Если сообщение в процессе передачи изменилось и стало звучать как «кот», то свертка изменится и примет вид: 12 × 16 × 20 = 3840, но тогда получатель, зная изначальный хеш, догадается о фальсификации данных (Носов Н. Перспективы блокчейн…).
114
Mod. Ch. Цит. соч.