Сетевой уровень, или уровень Интернета, является основным элементом архитектуры TCP/IP. Именно этот уровень обеспечивает перемещение пакетов в пределах составной сети, образованной объединением нескольких подсетей. Основным протоколом сетевого уровня является межсетевой протокол (Internet Protocol, IP). В его задачу входит передвижение пакетов данных между сетями – от одного узла к другому до тех пор, пока данные не попадут в сеть назначения.
Задача уровня сетевых интерфейсов достаточно проста – он отвечает только за организацию взаимодействия с подсетями, входящими в составную сеть TCP/IP – это протоколы Ethernet, FDDI, ATM, 802.11 (отвечающий за работу Wi-Fi) и другие.
В рамках TCP/IP для идентификации сетевых интерфейсов используются три типа адресов – локальные (аппаратные) адреса, сетевые адреса (IP-адреса) и символьные (доменные) имена. В большинстве сетевых технологий LAN (таких как Ethernet, FDDI) для однозначной[12 - Однозначность адресации имеет особое значение для реализации блокчейн-технологии и её правового регулирования.] адресации интерфейсов используются MAC-адреса. Локальный в данном случае означает – действующий не во всей составной сети, а лишь в пределах подсети. Для объединения сетей в глобальную сеть технология TCP/IP использует глобальную систему адресации, которая не зависит от способов адресации элементов отдельных сетей. Для ее реализации формируется пара из номера сети и номера узла, которая в совокупности составляет сетевой адрес – IP-адрес, который идентифицирует не отдельный узел сети (компьютер или маршрутизатор), а одно сетевое соединение (сетевой интерфейс). При этом каждый раз, когда пакет данных отправляется адресату через составную сеть (Интернет), в его заголовке указывается IP-адрес узла назначения. Перед тем как отправить пакет в следующую сеть, маршрутизатор должен определить на основании найденного IP-адреса следующего маршрутизатора его локальный адрес. Поскольку между IP-адресом и локальным адресом узла не существует функциональной взаимосвязи, для их соотношения используется протокол разрешения адресов ARP (см. рис. 3).
Рис. 3. Процедура преобразования адресов
При этом для упрощения адресации в сети используются символьные имена соответствующих узлов. Составляющие полного символьного (или доменного) имени разделяются точкой и перечисляются в следующем порядке: простое имя хоста, имя группы хостов, имя более крупной группы (домена) и так до имени домена самого высокого уровня (например, ru, us).
Основы построения сетей в целом и сети Интернет в частности оказали существенное влияние на возникновение и развитие применения технологии блокчейн. Блокчейн-системы в своей работе используют TCP/IP протоколы и могут рассматриваться в качестве приложения прикладного уровня.
Блокчейн представляет собой базу данных, распределенную между всеми включенными в сеть блокчейн (Blockchain Network) устройствами, с использованием которой пользователи осуществляют передачу информации. Блокчейн-технология не является каким-либо единым явлением, именем собственным, – в настоящее время это собирательное название для всевозможных способов реализации идеи, лежащей в блокчейн-технологии. Для того чтобы полноправно относиться к блокчейн-технологии в том смысле, в котором она изначально была отражена в работе Сатоши Накамото, блокчейн-структура должна удовлетворять следующим критериям.
• Иметь децентрализованную технологическую основу, то есть информация должна быть распределенной между всеми узлами сети и должна поддерживаться в актуальном состоянии через процессы репликации и синхронизации.
• Поддерживать неразрывную связь между блоками данных путем формирования в каждом новом блоке ссылки на предыдущий по отношению к нему блок.
• Эффективно кодировать массивы данных в уникальные информационные блоки стандартного размера, т. е. хешировать данные.
• Применять в своей работе стойкие к взлому криптографические алгоритмы для защиты содержащейся в блоках информации.
• Использовать элементы специального подраздела математики – теории игр – для обеспечения соблюдения правил сети и достижения консенсуса при создании новых блоков[13 - Подробнее об этом см.: Цихилов А. Блокчейн. Принципы и основы. М.: Интеллектуальная Литература, 2019. С. 14–15.].
Как известно, любая информация, в том числе информация о транзакциях, может быть представлена объемом данных, который в ней содержится. Так и информация о транзакциях в системе блокчейн представляет объем данных, объединенных в своего рода звенья, которые в свою очередь объединены в хронологическом порядке в цепочку блоков, в которой каждый предыдущий блок подтверждает действительность последующего путем включения информации о предыдущих транзакциях в виде особого криптографического ключа в заголовок каждого последующего блока транзакций (см. рис. 4)[14 - Отсюда и название технологии – Блокчейн – цепь блоков.]. При этом каждый из участников сети (так называемые ноды[15 - Node.]) хранит как минимум часть всей базы данных, что обеспечивает ее устойчивость к противоправным действиям со стороны как третьих лиц, так и самих участников. Под транзакцией в случае с блокчейн-технологией подразумевается любое взаимодействие между участниками блокчейн-системы – будь то передача какого-либо актива (например, криптовалюты) или передача информации – каждое из этих взаимодействий фиксируется в блоке системы.
Каждый блок, содержащий информацию о транзакциях в сети блокчейн, идентифицируется с помощью криптографического ключа – хэша (hash) – который генерируется с использованием криптографических алгоритмов, таких как SHA256 (используется в сети Биткоин)[16 - Andreas M. Antonopoulos. Mastering Bitcoin. O’Reily Media, 2015. P 170.], SHA-3 (Ethereum) и другие. Инструмент хэширования информации является неотъемлемой частью технологии блокчейн – оно используется для адресации в блокчейн-сетях, для формирования электронной «подписи» транзакций, а также для создания новых блоков – т. е. «майнинга». Хэширование – это алгоритмический метод преобразования набора данных произвольного размера в стандартизированную строку фиксированной длины. Алгоритм преобразования, используемый в блокчейн-сетях, не допускает повторения одного и того же хэша в различных блоках, который свойственен более простым хэш-таблицам. Использование хэширования позволяет удостовериться в целостности информации, содержащейся в каждом последующем блоке в сети блокчейн, путем так называемой проверки «контрольной суммы», расчет которой основан на алгоритме хеширования. Для реализации этого подхода блокчейн-системы могут использовать, например, распределенные хэш-таблицы[17 - Matteo Bernardinetal. Blockchains meet distributed hash tables: Decoupling validation from state storage // Distributed Ledger Technology Workshop. 2019. P. 43–55.] или хэш-таблицы с прямым связыванием.
Использование такого механизма позволяет также гарантировать неизменность предыдущих блоков, поскольку хеширование каждого блока делает невозможным изменения содержания каждого предыдущего без изменения содержания каждого последующего блока – такое действие потребует такого количества времени и вычислительных мощностей систем, что делает такое действие нерациональным с экономической точки зрения (даже несмотря на привлекательную стоимость Биткоина в настоящий момент). Безусловно, когда речь идет о «неизменности» информации в сети блокчейн, это, в первую очередь, теоретическое предположение. Чем больше участников в блокчейн-системе, тем сложнее изменить содержание тех блоков, информация в которых возникла раньше, или вмешаться в процесс создания новых блоков. Вместе с тем существует возможность захвата контроля над блокчейн-сетью лицами, обладающих большими вычислительными мощностями – так называемая атака 51 %[18 - Чаннов С.Е. Использование блокчейн-технологий для ведения реестров в сфере государственного управления // Административное право и процесс. 2019. № 12. С. 29–34.], при которой захват контроля над 51 % вычислительной мощности сети, необходимой для достижения консенсуса, позволит изменять как содержание предыдущих блоков, так и изменять информацию в создаваемых блоках. Такая ситуация произошла 25 апреля с блокчейн-сетью Bitcoin Gold – было похищено 18 миллионов долларов в результате атаки 51 %[19 - Помазанов В.В., Грицаев С.И. Криптовалюта: криминалистическое прогнозирование // Российский следователь. 2018. № 11. С. 19–23.]. Более того, как уже отмечалось, каждый из участников сети хранит как минимум часть всей базы данных – следовательно, единовременно в популярных блокчейн-системах может существовать десятки тысяч копий всей информации, что еще больше усложняет попытки как-то изменить информацию о транзакциях.
Следует отметит, что майнинг, т. е. процесс добавления информации в сеть блокчейн, является основой функционирования этой технологии. На практике существуют различные способы организации майнинговой деятельности: соло-майнинг, при котором майнер добывает криптовалюту самостоятельно; майнинг через пулы – через серверы, которые могут объединять мощности персональных компьютеров многих майнеров; облачный майнинг, при котором майнер платит деньги какой-либо компании за оборудование, после чего данная компания берет на себя ответственность за установку оборудования и его настройку для работы[20 - Ершова И.В., Трофимова Е.В. Майнинг и предпринимательская деятельность: в поисках соотношения // Актуальные проблемы российского права. 2019. № 6. С. 73–82.].
Важным механизмом, обеспечивающим безопасность и надежность хранения информации в сети блокчейн, является асимметричное шифрование, которое используется в этой системе. Под шифрованием понимается процесс превращения открытого текста в зашифрованный с помощью шифра – пары алгоритмов для шифрования и дешифрования соответствующей информации[21 - Стивенс Р. Алгоритмы. Теория и практические применение. М.: Издательство «Э», 2016. С. 366.]. Ассиметричное шифрование, или шифрование с открытым ключом, позволяет устанавливать «доверительные» отношения между пользователями блокчейн-сети путем предоставления механизма для подтверждения целостности и достоверности транзакций, притом что сами транзакции фиксируются в публичной книге транзакций. В отличие от симметричного шифрования, в котором для кодирования и декодирования используется один и тот же ключ, в ассиметричном шифровании отправитель использует открытый ключ (public key) для шифрования сообщения, которое можно расшифровать только с помощью закрытого ключа (private key). Применительно к блокчейн-системам частные ключи используются для того, чтобы совершить (sign) транзакцию, которая будет отправлена на адрес, закрепленный за публичным ключом (см. рис. 5).
Рис. 5. Совершение транзакции в сети блокчейн
Ключевой и самой часто упоминаемой особенностью блокчейн-технологии является отсутствие какого-либо центра контроля и управления за транзакциями, осуществляющимися в сети блокчейн, поскольку транзакции подтверждаются с помощью особого криптографического механизма. Основной способ подтверждения транзакций состоит в обеспечении их публичности – каждая проведенная операция в системе передается всем устройствам сети, и только после подтверждения с их стороны запись о ней заносится в публичную книгу транзакций (shared public ledger). В этой связи разработчики этой технологии, теоретически, не могут воздействовать на целостность и достоверность транзакций. Механизм, с помощью которого подтверждаются транзакции и происходит их добавление в блоки информации и в систему блокчейн – механизм консенсуса. В настоящее время в блокчейн-системах используются несколько механизмов консенсуса: доказательство работы[22 - Proof of work.], доказательство владения[23 - Proof of stake.], циклический механизм[24 - Round-robin.] достижения консенсуса и другие. Каждый из этих механизмов по-своему обеспечивает надежность и достоверность информации, содержащейся в системе блокчейн. К примеру, механизм доказательства работы, который используется в системе Биткоин, в основе своей имеет выполнение участниками сети блокчейн вычислительной задачи по нахождению соответствующего требованиям системы хэша.
Особенностью технологии блокчейн ошибочно считают анонимность транзакций[25 - Олиндер Н.В. Криминалистическая характеристика электронных платежных средств и систем // Lex russica. 2015. № 10. С. 128–138; Сальникова А.В. Технология блокчейн как инструмент защиты авторских прав// Актуальные проблемы российского права. 2020. № 4. С. 83–90; АрнаутовД.Р., Ерохина М.Г. Цифровые активы в системе российского права // Российский юридический журнал. 2019. № 4. С. 148–157.]. Действительно, для использования, к примеру, криптовалюты, по общему правилу, нет необходимости регистрироваться или идентифицировать себя иным образом, достаточно лишь указать адрес электронной почты и желаемый пароль. Для использования системы, как уже отмечалось, используется пара публичный ключ – частный ключ, с помощью которых и осуществляются транзакции в системе без раскрытия личности отправителя и получателя. Однако, по справедливому утверждению как зарубежных, так и некоторых отечественных исследователей, такую систему следует называть псевдоанонимной, нежели анонимной[26 - Marcin Szczepanski. Bitcoin Market, economic and regulation. EPRS Briefing, 2014 // URL: http://www.europarl.europa.eu/RegData/bibliotheque/ (http://www.europarl.europa.eu/RegData/bibliotheque/) briefing/2014/140793/LDM_BRI(2014)140793_REV1_EN.pdf (дата обращения: 25.01.2020); Malte Moser. Anonymity of Bitcoin Transactions: An Analysis of Mixing Services // Munster Bitcoin Conference, 2013; Облачинский И. Биткоин: зарубежный опыт // ЭЖ-Юрист. 2014. № 23. С. 8.]. Это связано с особенностями адресации в любой сети, в том числе в сети Интернет – использование стека протоколов TCP/IP, как уже отмечалось, требует однозначной идентификации адресата пакета данных, чтобы он мог быть доставлен – даже использование различных программ для сокрытия IP-адреса или местонахождения не всегда могут полностью анонимизировать пользователя. Более того, с учетом публичности транзакций в большинстве блокчейн-систем, возможно ретроспективно проследить связь конкретного блока с конкретным участником или участника-ми[27 - Фролов И.В. Криптовалюта как цифровой финансовый актив в российской юрисдикции: к вопросу о вещной или обязательственной природе // Право и экономика. 2019. № 6. С. 5–17.]. Исследователям уже удавалось идентифицировать отдельные магазины и покупателей, которые пользуются криптовалютой[28 - Sarah Meiklejohn, etal. A fistful of Bitcoins: characterizing payments among men with no names // Communications of the ACM. 2016. № 4. С. 86–93.]
. В этой связи появились новые блокчейн-системы, которые целенаправленно маскируют личности участников – в качестве примера можно привести Zcash и Monero, – использующие особые средства шифрования транзакций и пары публичный – частный ключ.
В связи с псевдоанонимной природой блокчейн невозможно в полной мере согласиться с утверждением о том, что данная технология позволяет «достоверно фиксировать достоверные данные о принадлежности существующего в цифровой форме актива определенному лицу (выделено мной. – А.Ч.)»
. Дело в том, что пара публичный – частный ключ определяют не конкретное лицо, а, скорее, конкретный IP-адрес или электронную почту, при этом не обязательно владельца частного ключа, который обеспечивает доступ к виртуальным единицам сети блокчейн. Следовательно, о достоверности принадлежности актива можно говорить только применительно к публичному ключу, но не к какому-то конкретному лицу, поскольку оно, по общему правилу, неизвестно.
Таким образом, общий принцип работы блокчейн-технологии состоит в выполнении участниками сети совокупности последовательных операций:
1) информация о новых транзакциях передается всем участникам сети;
2) участники сети собирают все транзакции в один блок;
3) каждый участник сети выполняет операцию по достижению консенсуса в отношении каждого блока (к примеру, к системе блокчейн, оперирующей Биткоином, механизм консенсуса – «доказательство работы»);
4) когда участник сети подтверждает действительность блока, он передает информацию об этом остальным участникам сети;
5) остальные участники сети подтверждают существование этого блока только в том случае, если информация обо всех транзакциях, которая в нем содержится, действительная (к примеру, не была дважды совершена одна и та же транзакция с одним и тем же Биткоином).
6) участники сети выражают свое согласие с содержанием блока путем создания нового блока, заголовок которого будет включать в себя хэш подтвержденного блока.
За выполнение такой работы участники сети получают «вознаграждение» в виде определенного актива (например, Биткоина) – первая транзакция в каждом блоке представляет собой новый актив, который достается лицу или лицам, которые подтвердили соответствующий блок.
Децентрализованность и общедоступность блокчейн-сетей далеко не всегда является преимуществом, особенно для корпораций, которым необходимо хранить определенные сведения в тайне от широкой публики. Поэтому дальнейшим витком развития блокчейн-технологии стало появление контролируемых блокчейн-систем – в которых отсутствует свободный доступ к информации о транзакциях, создаются дополнительные требования к участникам и даже появляется распределенный, но тем не менее центр управления. В настоящее время по критерию осуществления доступа к сети блокчейн-системы можно классифицировать на две основные группы – публичные
Вы ознакомились с фрагментом книги.
Приобретайте полный текст книги у нашего партнера: