Proof-of-Activity как перспективный алгоритм работы
Консенсусные алгоритмы, по исследованиям Microsoft, являются самыми надежными инструментами в условиях конкуренции блокчейнов. На сегодняшний день компании используют несколько типов протоколов подтверждения записей: Proof-of-Work, Proof-of-Stake, Proof-of-Space, Proof-of-Authority, их вариации, а также гибридные алгоритмы, которым и является Proof-of-Activity, именно о нем сегодня пойдет речь.
Про то, что представляет из себя основная масса этих алгоритмов, каждый может прочитать и в Википедии. Мы же обратим пристальное внимание на последний из них, а именно Proof-of-Activity. Но все равно настоятельно рекомендуем прочитать про остальные алгоритмы, поскольку это будет необходимо для понимания принципов работы Proof-of-Activity.
Принцип работы
Алгоритм был придуман не так давно (в 2014 году), и не зря его называют гибридом: он соединяет в себе черты Proof-of-Work и Proof-of-Stake.
Процесс записи в блокчейне начинается с создания майнерами заготовки для блоков с указанием хэша предыдущего блока, собственных данных (публичного адреса), индекса текущего блока и одноразового кода. После генерации заголовка пустого блока, если он отвечает текущим требованиям сложности, узел рассылает этот заголовок в сеть. Такие заготовки должны обладать числом, меньшим того, которое задает система. Важный момент: во время операции нет нужды просчитывать весь блок транзакций, как в случае с PoW, электроэнергии на эти операции уходит существенно меньше. Фактически каждый при таком раскладе может быть PoS-майнером (читайте о том, что такое Proof-of-Stake), и в данном случае их называют уже стейкхолдерами. Заготовку должны подписать определенное количество стейкхолдеров, после чего формируется полноценный блок и вписывается в блокчейн. Если кто-то из холдеров (подписантов) в этот момент недоступен или не участвует, то генерируются новые заготовки с различными наборами холдеров.
В итоге, награда за сформированный блок распределяется между майнерами и холдерами. Это избавляет систему от преимуществ майнеров и вводит фактически еще одну степень защиты. Начисление токенов за добычу блока происходит в среднем 1 раз в день, что сделано для защиты от получения контроля над большей частью вычислительных мощностей или взлома алгоритма.
Особенности PoA
Для защиты этого алгоритма существует несколько схем. Первая из них – это те самые заготовки, которые служат своего рода точкой сохранения информации, и каждая из таких точек несет в себе информацию о предыдущих блоках, подтвержденными участниками сети, но не включает в себя весь список транзакций. Такое разделение необходимо потому, что работа Proof-of-Activity четко разделена между PoW-майнерами, создающими монеты, и PoS-холдерами, которые подтверждают транзакции. Таким образом и уменьшается нагрузка на сеть, и поэтому алгоритм требует постоянного обмена данными для формирования блока с транзакциями: блок начинают майнеры, а заканчивают холдеры, говоря простыми словами.
Еще одна ступень защиты – алгоритм делает невозможным контроль сети одним участником, даже если найдется такой Зевс, который будет владеть половиной монет в сети: он не сможет самостоятельно заниматься созданием новых блоков. Майнеры, делая свою работу, попросту смогут выкидывать из сети заготовки, позволяющие атакующим единолично формировать блокчейн.
Таким образом, алгоритм PoA является крайне интересным гибридом, где участники застрахованы друг от друга: PoA-майнинг не дает возможности PoA-майнерам или PoS-майнерам монополизировать сеть.
Практическая реализация
На сегодняшний день среди всего многообразия блокчейн-проектов лишь два из них используют Proof-of-Activity: это созданный в 2015 году Decred и новый проект Enecuum.
Причем, подчеркнем, Decred прямо не указывает свою принадлежность к PoA, поэтому включение его в данный микросписок весьма условно. Decred является криптовалютой (DCR), в которой основной упор делается на гибридную систему PoW/PoS без прямого указания, что именно эта система – PoA. У нее в описании просто прямо написано, что данная гибридная система используется для гарантии того, что небольшая группа не может доминировать в потоке транзакций или вносить изменения в Decred без участия сообщества. Данный проект создавался с идеей полноценного и открытого участия всех желающих. Таким образом, не называя себя PoA-проектом напрямую, Decred исповедует те же принципы.
Второй проект, Enecuum, уже прямо предлагает свой вариант с использованием протокола Proof of Activity (PoA). Реализована возможность подтверждения транзакций с практически любого подключенного к сети устройства, что и позволяет добиться максимально возможной степени распределённости системы и её высокой устойчивости к различным атакам.
Соответственно, работа системы уже была описана выше. Майнеры ищут нужное число для блоков разной величины (по системе Proof-of-Work), победитель заполняет блоки транзакциями, а затем, на второй стадии, новый блок подписывают 64 владельца узлов сети, отобранные случайным образом. После этого запись проверяет еще один владелец узла (также случайный) – и тут уже в дело вступает схема Proof-of-Stake, когда владеющий узлом максимальное время в сети является наиболее вероятным кандидатом для участия в проверке. Таким образом, создание состоит из трех этапов, а вознаграждение участники получают по следующей схеме: 70% уходят первому майнеру, 20% делятся между 64 подписантами и еще 10% достаются проверяющему.
Проект Enecuum еще не запущен полностью: пока работает только майнинговый механизм, в ближайшее время ожидается эмиссия токенов и процесс открытого майнинга.
Заключение
Как мы видим, прогрессивный алгоритм Proof-of-Activity пока еще не нашел широкого применения, но, обладая несомненными преимуществами перед Proof-of-Work и Proof-of-Stake, точнее – комбинируя их, он, безусловно, заинтересует участников новых проектов, будучи менее затратным во всех смыслах, а также более безопасным алгоритмом.