На сегодняшний день информация о механизмах управления, используемых в блокчейн-платформах в широком доступе, носит отрывочный характер. Данная тематика более подробно освещена в англоязычном сегменте сети Интернет, в то время как русскоязычным читателям зачастую приходится довольствоваться техническим переводом и компиляцией информации из различных источников. Поэтому актуальность работы, посвящённой механизмам управления вычислениями для таких платформ, несомненно, велика. Это и критический взгляд на существующий сегодня конгломерат данных, и, в то же время, попытка обобщить и привести к общему знаменателю информацию из разных источников.
Несомненно, дальнейшая работа по изучению блокчейн-платформ и механизмов управления ими потребует в будущем углубленного системного анализа в сочетании с практической реализацией построенных математических моделей функционирования, однако такая работа невозможна без вдумчивой классификации уже существующего опыта, которая и представлена в данной статье.
Ключевые слова: блокчейн, механизмы управления, алгоритмы, структура, цепочка блоков.
Попытки создания вычислительных сетей предпринимались еще в 70-х годах прошлого века. Объединялись не более нескольких десятков компьютеров в рамках локальной сети. Такие локальные вычислительные сети использовались для решения сложных математических задач, вычисление которых было невозможно произвести, используя мощности отдельно взятого персонального компьютера того времени. С появлением дешевого и доступного интернета появилась возможность объединения в вычислительные сети гораздо большего числа компьютеров, при этом находящихся на достаточно большом удалении друг от друга.
В изначально правильной модели существовала одна проблема. Владельцам компьютерных мощностей, как правило, не платили за использование их ресурсов, либо платили за уже фактически выполненные вычисления. В итоге все проекты заканчивались примерно одинаково: отсутствие загрузки на больших участках сети снижало доходность ее участников, которые теряли интерес к проекту и уходили.
В 1991 году криптографы Стюарт Хабер и Скотт Сторнетта в своей статье «Как поставить метку времени на цифровом документе» («How to Time-Stamp a Digital Document») описали структуру, которая легла в основу построения современных блокчейн-систем. Первоначальной целью статьи являлось создание системы, которая сможет решить ряд спорных вопросов в определении прав на обладание интеллектуальной собственностью. В своей работе Стюарт Хабер и Скотт Стонетта описали структуру, состоящую из хронологически выстроенной цепочки хешированных данных. Используя такую организацию данных, авторы предложили осуществлять проверку подлинности меток времени на цифровых документах, зарегистрированных в системе. При этом происходит реализация задачи по защите от изменений как самого цифрового документа, так и метки фиксации документа в системе.
Через три года после выхода статьи ученые осуществили реализацию своей идеи на практике. Была создана компания «Surety» по предоставлению услуги нанесения меток времени на цифровые документы клиентов. Компания, используя свою разработку «Surety Absolute Proof», производила вычисления хэш-функций документов (англ. hash function от hash — путаница, мешанина). С помощью хэш-функции можно контролировать только целостность документа, но невозможно его восстановить. Во время создания хэш-функции документ получал метку времени. Полученные хэш-функция и метка времени использовались для создания уникального идентификатора-печати документа, который отправлялся клиенту и одновременно помещался в базу данных компании «Surety». Для подтверждения подлинности данных, доверие к которым не вызывало бы сомнений, были выбраны сотни тысяч американцев-читателей газеты «Нью Йорк Тайм». С 1995 года компания «Surety» использует раздел «Уведомления: и утерянные и найденные» воскресного номера газеты «Нью Йорк Таймс» для публикации идентификаторов-печати всех документов, добавленных в базу за прошедшую неделю. В результате, популярность газеты является гарантией от подделок данных, хранящихся в базе компании.
Таким образом реализуются два основных требования блокчейн-систем:
– Общедоступность — воскресные номера ежедневного издания выходят тиражом более миллиона экземпляров.
– Неизменность — после выхода газеты изменить информацию в напечатанном экземпляре невозможно.
Существующие на данный момент блокчейн-системы в большинстве своем являются полностью децентрализованными. Они создаются на основе распределенной базы данных, информация в которой хранится в виде транзакций, произведенных в системе. Транзакции объединяются в цепочку криптозащищенных блоков. Объединение транзакций в новые блоки может происходить по различным критериям в зависимости от настройки блокчейн-системы.
– Временной критерий. Новый блок можно создать только по прошествии определенного тайм-аута после создания предыдущего. Если процесс создания блоков является непрерывным существует вероятность создания пустых блоков.
– Количественный критерий. Блок может содержать только определенное количество транзакций. Созданием нового блока является результат накопления заданного количества. В результате, транзакции ожидающие объединения в новый блок не защищены от изменений.
– Размерный критерий. Блок может иметь строго определенный размер. Например, в криптовалюте Bitcoin размер блока строго определен как
– 1 Мбайт.
Защищенность хранящейся в системе информации от подделки обеспечивается за счет соблюдения нескольких условий.
Во-первых, хэш контрольной суммы одного блока хранится в следующем. В результате, в формировании хэша контрольной суммы каждого блока участвуют хэши всех предыдущих блоков. Таким образом происходит верификация блоков и всей системы в целом. В случае изменения одного из блоков вся последующая цепочка становится не верной.
Во-вторых, каждый из пользователей системы хранит на своей стороне всю цепочку блоков, а при добавлении нового блока происходит его рассылка всем пользователям системы и, одновременно с этим, верификация нового блока каждым пользователем системы.
Такая организация блокчейн-системы позволяет предотвратить возможность подмены информации только в случае высокой популяризации системы. В противном случае открывается уязвимость перед так называемыми «атаками 51 %» — когда, в полном соответствии с правилами системы, коалиция пользователей с большими компьютерными мощностями может изменить записи в конкретном блоке и пересчитать контрольные суммы всех последующих блоков, создав таким образом альтернативную цепочку блоков, которая станет более длинной чем истинная. Этот процесс аналогичен тому, как мажоритарный акционер перехватывает контроль в АО.
При попытке создания защиты от «атак 51 %» были разработаны и активно используются различные механизмы, большая часть из которых применима только в секторе криптовалют. Необходимо отметить, что преобладающая доля используемых алгоритмов способны взаимодействовать и дополнять друг друга. Рассмотрим их более подробно.
Одним из самых распространенных является механизм «Proof of Work» («Доказательство выполнения работ»). Этот механизм основан на необходимости выполнения на стороне клиента некоторой достаточно длительной работы по заранее известному алгоритму, здесь идет речь о необратимом преобразовании информации под названием «хэширование». Результат этой работы может быть легко и быстро проверен любым другим пользователем системы, и по своей сути является верификацией результата работы. При проверке нет необходимости повторно выполнять процедуру хэширования, происходит проверка полученного результата («хэша») на определенные критерии истинности. Реализация этого механизма в криптовалюте Bitcoin осуществлена в виде требований к значению хэша контрольной суммы любого блока, значение должно быть 256-битной буквенно-цифровой строкой и должно начинаться с определенного количества нулей. При этом, количество нулей вначале строки зависит от сложности процесса и изменяется после добавления в цепь каждых 2016 блоков. В результате, для соблюдения требований системы на стороне клиента необходимо многократно пересчитать хэш создаваемого блока, всякий раз добавляя в блок случайное число, чтобы изменить значение контрольной суммы. А поскольку невозможно заранее предугадать значение хэша, процесс пересчета приходится каждый раз запускать заново.
Внесение любых изменений в существующий блок приведет к изменению его контрольной суммы, которую может знать только создатель блока. На этом этапе становится очевидным важность и анонимность такой категории пользователей блокчейн-системы как «майнеры» — именно они предоставляют свои вычислительные мощности для изготовления новых блоков. Полученный хэш изготовленного блока будет помещен внутрь следующего блока и станет его частью, и так далее.
Не обладая достоверными сведениями о точном значении хэша, злоумышленник будет вынужден подменить всю цепь начиная от фальшивого блока. Следовательно, невозможно внести изменение в существующую цепь без пересчета хэшей контрольных сумм всех блоков после измененного. Главная особенность механизма заключается в асимметрии затрат времени — они значительны при нахождении решения и весьма малы при проверке. [3] [5]
Вторым по популярности является механизм «Proof of Stake» («Доказательство доли владения»), который используется как способ достижения консенсуса в блокчейн-сети. Впервые он был реализован в 2012 году в криптовалюте PeerCoin. Существенным преимуществом перед механизмом PoW является то, что формирование блоков не зависит от мощности оборудования. Механизм PoS представляет собой группу согласованных алгоритмов для открытых цепочек блоков, зависящих от экономических интересов пользователей. Вероятность создания очередного блока в цепи зависит от процентной доли условных расчётных единиц криптовалюты, принадлежащей пользователю. Вероятность формирования блока больше у пользователя с большим текущим балансом. Недостатком механизма PoS считается присутствует дополнительного мотиватора к накоплению средств в одних руках, что может привести систему к централизации. [3] [6]
Функционирование алгоритма «Limited Confidence Proof of Activity» («Доказательство активности с ограниченным доверием»), по сравнению с PoW, требует намного меньших вычислительных мощностей. Проверка истинности создаваемых блоков выполняется при ограничении минимально возможного времени создания блока. Это позволяет ограничить максимальную скорость добавления блоков в LCPoA-сеть.
Для предотвращения «атаки 51 %» в основной алгоритм добавлен алгоритмом «Limited Confidence» («Ограничение доверия»), который представляет собой систему автоматического создания «контрольных точек». В основе дополнительного LC-алгоритма лежит система запрещающая перезапись цепочки блоков, старше определенного временного порога. Блоки, не зафиксированные контрольной точкой, считаются недостаточно защищенными и требуют дополнительного обеспечения безопасности и контроля. [3] [8]
Один из вариантов применения PoS-технологии является механизм «Proof of Importance» («Доказательство важности»). Вероятность создания очередного блока в PoI-сети определяется уровнем значимости пользователя. При этом, значимость каждого пользователя определяется по трем критериям: количество цифровых денежных средств, имеющихся у него на текущем балансе; количество проведенных транзакций с/на электронный кошелек пользователя; время нахождения пользователя в сети. Этот алгоритм учитывает, как активность пользователя в блокчейн-экосистеме, так и его статус доверия. [3] [6]
Стоит отдельно отметить такой механизм, как «Proof of Authority» («Доказательство полномочий»), который предполагает существование отдельной категории пользователей с доверенными и одобренными аккаунтами («валидаторы»). В сетях, использующих механизм PoA все транзакции и блоки проверяются только валидаторами. На компьютерных мощностях валидаторов при помощи специального программного обеспечения производится объединение транзакций системы в блоки. [3] [7]
Вызывает интерес механизм уничтожения криптомонет «Proof of Burn» («Доказательство сжигания»). Реализация этого алгоритма осуществляется следующим образом. Изначально вероятность создания блока в PoB-сети у всех майнеров сети одинаково низкая. Для повышения шанса майнеру необходимо отправить часть принадлежащих ему криптомонет на специально сгенерированный адрес. Потратить или вывести средства с этого адреса нельзя. Взамен майнер повышает свою шанс создания блока, за который в последствии получит вознаграждение. Шансы положительного исхода для отыскания блока увеличиваются пропорционально количеству потраченных монет. С экономической точки зрения алгоритм жизнеспособен, когда криптовалюта уже развита и есть необходимость трансфера активов из одной цифровой валюты в другую через «сжигание». [3] [5]
Механизм «Proof of Capacity» также известен как «Proof of Space» («Доказательство наличия пространства»). Его реализация основана на использовании свободного пространства жесткого диска. Впервые идею сформулировал польский эксперт Стефан Дзембовский в 2013 году. Суть идеи в использовании свободного места на устройстве хранения файлов, заранее выделенного пользователями. Данный метод является главной альтернативой считающемуся классическим PoW-методу добычи цифровых валют.
Для майнинга на жестком диске необходимо выделить существенный объем памяти компьютера, после чего начинается сам процесс PoC-майнинга для которого сгодится любой жесткий диск. Алгоритм обеспечивает децентрализацию процесса, так как у каждого участника сети свой собственный жесткий диск.
PoC-алгоритм появился сравнительно недавно. На данный момент отсутствует достаточный объем практического опыта его использования позволяющий выделить все преимущества и недостатки алгоритма. [3] [5] [9]
Алгоритм «Proof of Research» («Доказательство проведенного исследования») был разработан в проекте GridCoin для того, чтобы направить вычислительные мощности PoW-сетей на решение научных задач на платформе Boinc. В PoR-системе одновременно используются PoW- и PoS-алгоритмы. Для вознаграждения участников проекта за выполнение вычисления используется PoW-механизм. А для поощрения долговременного участия в проекте используется PoS-алгоритм. [3] [5]
Еще один вариант реализации PoS-механизма, в котором пользователи с низкими суммами в кошельке не имеют возможности проверять блоки. У пользователей открывается возможность сдавать свой баланс в аренду. Арендодатель может контролировать свой баланс, а после окончания срока аренды полностью распоряжаться своими средствами. При использовании алгоритма «Leased proof of stake» («Арендованное доказательство доли владения») сеть будет наиболее защищена в случае наибольшего распределения. [3]
Отдельно следует уделить внимание такому механизму как «Смарт-контракты». Термин «умные контракты» был предложен ученым-программистом Ником Сабо при внедрении разработки, которую он назвал «высокоразвитой» ступенью договорного права и связанных с ними бизнес-процессов в электронной коммерции. Сабо полагал, что реализация умных контрактов с помощью криптографических протоколов и других механизмов цифровой безопасности может стать значительным улучшением традиционных юридических контрактов. При сравнении обычный контракт и смарт-контракт, можно легко определить их схожесть в том, что они оба являются соглашениями двух или более сторон при соблюдении ряда условий. Их фундаментальные элементы идентичны: добровольное согласие принимающих участие сторон; существование объекта договора (товар или услуга); четко определяется единая цель. Тем не менее, оба отличаются по трем факторам: способ написания; юридические последствия; концепт соблюдения.
Смарт-контракт — это компьютерная программа, предназначенная для реализации ранее заключенного соглашения при соблюдении тех или иных условий. То есть, в момент соблюдения ранее запрограммированных условий, происходит автоматическая активация смарт-контракта для выполнения соответствующего соглашения.
Умные контракты являются полностью цифровыми документами. Их написание осуществляется с использованием языка программирования. Так же, как и в обычном физическом документе, в смар-контракте в дополнение к основному условию выполнения устанавливаются обязательства сторон и последствия тех или иных действий. А поскольку исполнение программного кода происходит автоматически, смарт-контракт может получать и обрабатывать информацию, касающуюся переговоров, уже принимая меры в соответствии с правилами договора. [11]
Управление любой блокчейн-системой обычно делится на два типа:
– Ончейн управление . Процессы принятия решений проходят через стейкинг и транзакции на блокчейне.
– Оффчейн управление . Процессы принятия решений проходят через неформальные процессы обсуждения и предложения вне блокчейна.
Большинство блокчейн-систем с доказательством работы используют оффчейн-процессы управления. Это связано с тем, что основными заинтересованными потребителями таких блокчейн-систем являются пользователи (операторы узлов, разработчики, майнеры). Все вместе они оказывают сдерживающее и уравновешивающее воздействие друг на друга. Оффчейн-управление для экосистемы блокчейна функционирует только тогда, когда все заинтересованные стороны соглашаются и проводят соответствующие обновления и реализации одновременно. Если консенсус не достигнут, сеть может разделиться на две цепочки, работающие под разными версиями программного обеспечения. Цепочка наибольшей длины и с преобладающей вычислительной мощностью будет считаться преемницей исходной цепочки.
Для оффчейн-модели характерно обсуждение вопросов разработки протоколов на конференциях, онлайн-форумах и посредством почтовых рассылок. Чтобы принять участие, вам необходимо использовать эти каналы.
Основным примером таких споров служат дебаты внутри Bitcoin-сообщества на тему улучшения пропускной способности сети и увеличения размера блоков для помещения в него большего количества транзакций, как один из способов решения этой проблемы.
Если провести краткий анализ споров в сети Bitcoin, то мы увидим неформальные оффчейн-процессы, которые сопровождали все изменения принятые в Bitcoin.
Затянувшиеся и не эффективные дебаты по поводу масштабирования Bitcoin выявляют два недостатка оффчен-управления. Во-первых, трудно зарегистрировать свой вклад как отдельного пользователя. И во-вторых, реализация изменений может занять много времени. [4]
Ончейн-управление характерно для блокчейн-систем с доказательством доли участия и проводится в форме голосования. Пользователь для принятия участия в голосовании должен владеть минимальным количеством учетных единиц полезности — токенов блокчейн-системы (англ. «token» — знак, символ, жетон). Вес его голоса определяется соразмерно количеству собственных токенов. Заинтересованные стороны в ончейн-управлении — это пользователи, разработчики и валидаторы транзакций.
Темой голосования может быть, например, добавление нового типа залога в долговую систему или участие в выборе валидаторов сети. Каждое предложение записывается в смарт-контракт, и когда оно получает необходимое количество голосов, изменения в блокчейне выполняются немедленно. Если у вас нет желания участвовать напрямую в управлении блокчейн-системой, некоторые системы позволяют делегировать свое право голоса другому пользователю.
Ончейн-управление расширяет группу людей, участвующих в процессах управления блокчейном и ограничивает угрозу разделения блокчейн-системы, а также позволяет отдельным пользователям регистрировать свой вклад в развитие системы.
Некоторые системы ончейн-управления сохраняют характеристики оффчейн-управления. Это проявляется в частых случаях обсуждения на форумах, в блоках и в Твиттере будущих изменений, закодированных в смарт-контрактах, прежде чем начнется голосование. [4]
Литература:
- Технология блокчейн: что надо знать в 11 карточках [Электронный ресурс] // интернет-ресурс РБК — 27.11.21 — Режим доступа: https://trends.rbc.ru/trends/industry/5f05c0a79a7947aac5c7577a
- Блокчейн: Начало. История появления Самого первого блокчейна [Электронный ресурс] // Сообщество Free TON House — 04.12.21 — Режим доступа: https://freeton.house/ru/blokchejn-nachalo-istoriya-poyavleniya-samogo-pervogo-blokchejna/
- Блокчейн и его алгоритмы, разбираемся в реализации [Электронный ресурс] // Яндекс Дзен — 04.12.21 — Режим доступа: https://zen.yandex.ru/media/vishmat/blokchein-i-ego-algoritmy-razbiraemsia-v-realizacii-6058bde5c8a51571e851ec66
- Обзор механизмов управления в блокчейнах [Электронный ресурс] // интернет-ресурс vc.ru — 05.12.21 — Режим доступа: https://vc.ru/u/642470-teimur-muslim/221198-obzor-mehanizmov-upravleniya-v-blokcheynah
- Доказательство выполнения работ [Электронный ресурс] // Википедия — свободная энциклопедия — 06.12.21 — Режим доступа: https://ru.wikipedia.org/wiki/Доказательство_выполнения_работы
- Доказательство доли владения [Электронный ресурс] // Википедия — свободная энциклопедия — 06.12.21 — Режим доступа: https://ru.wikipedia.org/wiki/Доказательство_доли_владения
- Proof of authority [Электронный ресурс] // Википедия — свободная энциклопедия — 06.12.21 — Режим доступа: https://en.wikipedia.org/wiki/Proof_of_authority
- Доказательство активности с ограниченным доверием [Электронный ресурс] // Википедия — свободная энциклопедия — 06.12.21 — Режим доступа: https://ru.wikipedia.org/wiki/Доказательство_активности_с_ограниченным_доверием
- Proof of Capacity [Электронный ресурс] // интернет-ресурс Recbit — 06.12.21 — Режим доступа: https://recbit.info/ru/wiki/poc-proof-of-capacity/
- Автономность и безопасность, как работают смарт-контракты [Электронный ресурс] // интернет-ресурс РБК — 11.12.21 — Режим доступа: https://www.rbc.ru/crypto/news/600bd6409a79473b23a6d3c4