Каждый блок, содержащий информацию о транзакциях в сети блокчейн, идентифицируется с помощью криптографического ключа хэша (hash) который генерируется с использованием криптографических алгоритмов, таких как SHA256 (используется в сети Биткоин)[16], SHA-3 (Ethereum) и другие. Инструмент хэширования информации является неотъемлемой частью технологии блокчейн оно используется для адресации в блокчейн-сетях, для формирования электронной «подписи» транзакций, а также для создания новых блоков т. е. «майнинга». Хэширование это алгоритмический метод преобразования набора данных произвольного размера в стандартизированную строку фиксированной длины. Алгоритм преобразования, используемый в блокчейн-сетях, не допускает повторения одного и того же хэша в различных блоках, который свойственен более простым хэш-таблицам. Использование хэширования позволяет удостовериться в целостности информации, содержащейся в каждом последующем блоке в сети блокчейн, путем так называемой проверки «контрольной суммы», расчет которой основан на алгоритме хеширования. Для реализации этого подхода блокчейн-системы могут использовать, например, распределенные хэш-таблицы[17] или хэш-таблицы с прямым связыванием.
Использование такого механизма позволяет также гарантировать неизменность предыдущих блоков, поскольку хеширование каждого блока делает невозможным изменения содержания каждого предыдущего без изменения содержания каждого последующего блока такое действие потребует такого количества времени и вычислительных мощностей систем, что делает такое действие нерациональным с экономической точки зрения (даже несмотря на привлекательную стоимость Биткоина в настоящий момент). Безусловно, когда речь идет о «неизменности» информации в сети блокчейн, это, в первую очередь, теоретическое предположение. Чем больше участников в блокчейн-системе, тем сложнее изменить содержание тех блоков, информация в которых возникла раньше, или вмешаться в процесс создания новых блоков. Вместе с тем существует возможность захвата контроля над блокчейн-сетью лицами, обладающих большими вычислительными мощностями так называемая атака 51 %[18], при которой захват контроля над 51 % вычислительной мощности сети, необходимой для достижения консенсуса, позволит изменять как содержание предыдущих блоков, так и изменять информацию в создаваемых блоках. Такая ситуация произошла 25 апреля с блокчейн-сетью Bitcoin Gold было похищено 18 миллионов долларов в результате атаки 51 %[19]. Более того, как уже отмечалось, каждый из участников сети хранит как минимум часть всей базы данных следовательно, единовременно в популярных блокчейн-системах может существовать десятки тысяч копий всей информации, что еще больше усложняет попытки как-то изменить информацию о транзакциях.
Следует отметит, что майнинг, т. е. процесс добавления информации в сеть блокчейн, является основой функционирования этой технологии. На практике существуют различные способы организации майнинговой деятельности: соло-майнинг, при котором майнер добывает криптовалюту самостоятельно; майнинг через пулы через серверы, которые могут объединять мощности персональных компьютеров многих майнеров; облачный майнинг, при котором майнер платит деньги какой-либо компании за оборудование, после чего данная компания берет на себя ответственность за установку оборудования и его настройку для работы[20].
Важным механизмом, обеспечивающим безопасность и надежность хранения информации в сети блокчейн, является асимметричное шифрование, которое используется в этой системе. Под шифрованием понимается процесс превращения открытого текста в зашифрованный с помощью шифра пары алгоритмов для шифрования и дешифрования соответствующей информации[21]. Ассиметричное шифрование, или шифрование с открытым ключом, позволяет устанавливать «доверительные» отношения между пользователями блокчейн-сети путем предоставления механизма для подтверждения целостности и достоверности транзакций, притом что сами транзакции фиксируются в публичной книге транзакций. В отличие от симметричного шифрования, в котором для кодирования и декодирования используется один и тот же ключ, в ассиметричном шифровании отправитель использует открытый ключ (public key) для шифрования сообщения, которое можно расшифровать только с помощью закрытого ключа (private key). Применительно к блокчейн-системам частные ключи используются для того, чтобы совершить (sign) транзакцию, которая будет отправлена на адрес, закрепленный за публичным ключом (см. рис. 5).
Рис. 5. Совершение транзакции в сети блокчейн
Ключевой и самой часто упоминаемой особенностью блокчейн-технологии является отсутствие какого-либо центра контроля и управления за транзакциями, осуществляющимися в сети блокчейн, поскольку транзакции подтверждаются с помощью особого криптографического механизма. Основной способ подтверждения транзакций состоит в обеспечении их публичности каждая проведенная операция в системе передается всем устройствам сети, и только после подтверждения с их стороны запись о ней заносится в публичную книгу транзакций (shared public ledger). В этой связи разработчики этой технологии, теоретически, не могут воздействовать на целостность и достоверность транзакций. Механизм, с помощью которого подтверждаются транзакции и происходит их добавление в блоки информации и в систему блокчейн механизм консенсуса. В настоящее время в блокчейн-системах используются несколько механизмов консенсуса: доказательство работы[22], доказательство владения[23], циклический механизм[24] достижения консенсуса и другие. Каждый из этих механизмов по-своему обеспечивает надежность и достоверность информации, содержащейся в системе блокчейн. К примеру, механизм доказательства работы, который используется в системе Биткоин, в основе своей имеет выполнение участниками сети блокчейн вычислительной задачи по нахождению соответствующего требованиям системы хэша.
Особенностью технологии блокчейн ошибочно считают анонимность транзакций[25]. Действительно, для использования, к примеру, криптовалюты, по общему правилу, нет необходимости регистрироваться или идентифицировать себя иным образом, достаточно лишь указать адрес электронной почты и желаемый пароль. Для использования системы, как уже отмечалось, используется пара публичный ключ частный ключ, с помощью которых и осуществляются транзакции в системе без раскрытия личности отправителя и получателя. Однако, по справедливому утверждению как зарубежных, так и некоторых отечественных исследователей, такую систему следует называть псевдоанонимной, нежели анонимной[26]. Это связано с особенностями адресации в любой сети, в том числе в сети Интернет использование стека протоколов TCP/IP, как уже отмечалось, требует однозначной идентификации адресата пакета данных, чтобы он мог быть доставлен даже использование различных программ для сокрытия IP-адреса или местонахождения не всегда могут полностью анонимизировать пользователя. Более того, с учетом публичности транзакций в большинстве блокчейн-систем, возможно ретроспективно проследить связь конкретного блока с конкретным участником или участника-ми[27]. Исследователям уже удавалось идентифицировать отдельные магазины и покупателей, которые пользуются криптовалютой[28][29]. В этой связи появились новые блокчейн-системы, которые целенаправленно маскируют личности участников в качестве примера можно привести Zcash и Monero, использующие особые средства шифрования транзакций и пары публичный частный ключ.
Особенностью технологии блокчейн ошибочно считают анонимность транзакций[25]. Действительно, для использования, к примеру, криптовалюты, по общему правилу, нет необходимости регистрироваться или идентифицировать себя иным образом, достаточно лишь указать адрес электронной почты и желаемый пароль. Для использования системы, как уже отмечалось, используется пара публичный ключ частный ключ, с помощью которых и осуществляются транзакции в системе без раскрытия личности отправителя и получателя. Однако, по справедливому утверждению как зарубежных, так и некоторых отечественных исследователей, такую систему следует называть псевдоанонимной, нежели анонимной[26]. Это связано с особенностями адресации в любой сети, в том числе в сети Интернет использование стека протоколов TCP/IP, как уже отмечалось, требует однозначной идентификации адресата пакета данных, чтобы он мог быть доставлен даже использование различных программ для сокрытия IP-адреса или местонахождения не всегда могут полностью анонимизировать пользователя. Более того, с учетом публичности транзакций в большинстве блокчейн-систем, возможно ретроспективно проследить связь конкретного блока с конкретным участником или участника-ми[27]. Исследователям уже удавалось идентифицировать отдельные магазины и покупателей, которые пользуются криптовалютой[28][29]. В этой связи появились новые блокчейн-системы, которые целенаправленно маскируют личности участников в качестве примера можно привести Zcash и Monero, использующие особые средства шифрования транзакций и пары публичный частный ключ.
В связи с псевдоанонимной природой блокчейн невозможно в полной мере согласиться с утверждением о том, что данная технология позволяет «достоверно фиксировать достоверные данные о принадлежности существующего в цифровой форме актива определенному лицу (выделено мной. А.Ч.)»19. Дело в том, что пара публичный частный ключ определяют не конкретное лицо, а, скорее, конкретный IP-адрес или электронную почту, при этом не обязательно владельца частного ключа, который обеспечивает доступ к виртуальным единицам сети блокчейн. Следовательно, о достоверности принадлежности актива можно говорить только применительно к публичному ключу, но не к какому-то конкретному лицу, поскольку оно, по общему правилу, неизвестно.
Таким образом, общий принцип работы блокчейн-технологии состоит в выполнении участниками сети совокупности последовательных операций:
1) информация о новых транзакциях передается всем участникам сети;
2) участники сети собирают все транзакции в один блок;
3) каждый участник сети выполняет операцию по достижению консенсуса в отношении каждого блока (к примеру, к системе блокчейн, оперирующей Биткоином, механизм консенсуса «доказательство работы»);
4) когда участник сети подтверждает действительность блока, он передает информацию об этом остальным участникам сети;
5) остальные участники сети подтверждают существование этого блока только в том случае, если информация обо всех транзакциях, которая в нем содержится, действительная (к примеру, не была дважды совершена одна и та же транзакция с одним и тем же Биткоином).
6) участники сети выражают свое согласие с содержанием блока путем создания нового блока, заголовок которого будет включать в себя хэш подтвержденного блока.
За выполнение такой работы участники сети получают «вознаграждение» в виде определенного актива (например, Биткоина) первая транзакция в каждом блоке представляет собой новый актив, который достается лицу или лицам, которые подтвердили соответствующий блок.