Блокчейн представляет собой базу данных, распределенную между всеми включенными в сеть блокчейн (Blockchain Network) устройствами, с использованием которой пользователи осуществляют передачу информации. Блокчейн-технология не является каким-либо единым явлением, именем собственным, – в настоящее время это собирательное название для всевозможных способов реализации идеи, лежащей в блокчейн-технологии. Для того чтобы полноправно относиться к блокчейн-технологии в том смысле, в котором она изначально была отражена в работе Сатоши Накамото, блокчейн-структура должна удовлетворять следующим критериям.
• Иметь децентрализованную технологическую основу, то есть информация должна быть распределенной между всеми узлами сети и должна поддерживаться в актуальном состоянии через процессы репликации и синхронизации.
• Поддерживать неразрывную связь между блоками данных путем формирования в каждом новом блоке ссылки на предыдущий по отношению к нему блок.
• Эффективно кодировать массивы данных в уникальные информационные блоки стандартного размера, т. е. хешировать данные.
• Применять в своей работе стойкие к взлому криптографические алгоритмы для защиты содержащейся в блоках информации.
• Использовать элементы специального подраздела математики – теории игр – для обеспечения соблюдения правил сети и достижения консенсуса при создании новых блоков[13].
Как известно, любая информация, в том числе информация о транзакциях, может быть представлена объемом данных, который в ней содержится. Так и информация о транзакциях в системе блокчейн представляет объем данных, объединенных в своего рода звенья, которые в свою очередь объединены в хронологическом порядке в цепочку блоков, в которой каждый предыдущий блок подтверждает действительность последующего путем включения информации о предыдущих транзакциях в виде особого криптографического ключа в заголовок каждого последующего блока транзакций (см. рис. 4)[14]. При этом каждый из участников сети (так называемые ноды[15]) хранит как минимум часть всей базы данных, что обеспечивает ее устойчивость к противоправным действиям со стороны как третьих лиц, так и самих участников. Под транзакцией в случае с блокчейн-технологией подразумевается любое взаимодействие между участниками блокчейн-системы – будь то передача какого-либо актива (например, криптовалюты) или передача информации – каждое из этих взаимодействий фиксируется в блоке системы.
Каждый блок, содержащий информацию о транзакциях в сети блокчейн, идентифицируется с помощью криптографического ключа – хэша (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, – использующие особые средства шифрования транзакций и пары публичный – частный ключ.
В связи с псевдоанонимной природой блокчейн невозможно в полной мере согласиться с утверждением о том, что данная технология позволяет «достоверно фиксировать достоверные данные о принадлежности существующего в цифровой форме актива определенному лицу (выделено мной. – А.Ч.)»19. Дело в том, что пара публичный – частный ключ определяют не конкретное лицо, а, скорее, конкретный IP-адрес или электронную почту, при этом не обязательно владельца частного ключа, который обеспечивает доступ к виртуальным единицам сети блокчейн. Следовательно, о достоверности принадлежности актива можно говорить только применительно к публичному ключу, но не к какому-то конкретному лицу, поскольку оно, по общему правилу, неизвестно.
Таким образом, общий принцип работы блокчейн-технологии состоит в выполнении участниками сети совокупности последовательных операций:
1) информация о новых транзакциях передается всем участникам сети;
2) участники сети собирают все транзакции в один блок;
3) каждый участник сети выполняет операцию по достижению консенсуса в отношении каждого блока (к примеру, к системе блокчейн, оперирующей Биткоином, механизм консенсуса – «доказательство работы»);
4) когда участник сети подтверждает действительность блока, он передает информацию об этом остальным участникам сети;
5) остальные участники сети подтверждают существование этого блока только в том случае, если информация обо всех транзакциях, которая в нем содержится, действительная (к примеру, не была дважды совершена одна и та же транзакция с одним и тем же Биткоином).
6) участники сети выражают свое согласие с содержанием блока путем создания нового блока, заголовок которого будет включать в себя хэш подтвержденного блока.
За выполнение такой работы участники сети получают «вознаграждение» в виде определенного актива (например, Биткоина) – первая транзакция в каждом блоке представляет собой новый актив, который достается лицу или лицам, которые подтвердили соответствующий блок.
Децентрализованность и общедоступность блокчейн-сетей далеко не всегда является преимуществом, особенно для корпораций, которым необходимо хранить определенные сведения в тайне от широкой публики. Поэтому дальнейшим витком развития блокчейн-технологии стало появление контролируемых блокчейн-систем – в которых отсутствует свободный доступ к информации о транзакциях, создаются дополнительные требования к участникам и даже появляется распределенный, но тем не менее центр управления. В настоящее время по критерию осуществления доступа к сети блокчейн-системы можно классифицировать на две основные группы – публичные
О проекте
О подписке