На сегодняшний день на рынке представлено несколько алгоритмов, по которым в блокчейн появляются новые блоки: это Proof-of-Work, Proof-of-Stake, Proof-of-Space, Proof-of-Authority, их вариации, а также гибридные алгоритмы, которым является Proof-of-Activity. Именно о последнем сегодня и пойдёт речь.
Консенсусные алгоритмы, по исследованиям Microsoft, являются самыми надёжными инструментами в условиях конкуренции блокчейн. На сегодняшний день компании используют несколько типов протоколов подтверждения записей: Proof-of-Work, Proof-of-Stake, Proof-of-Space, Proof-of-Authority, их вариации, а также гибридные алгоритмы, одним из которых и является Proof-of-Activity, именно о нём сегодня пойдёт речь (помимо него, есть ещё малопопулярные алгоритмы типа Proof-of-Burn, Proof-of-Capacity, Proof-of-Storage и другие).
Мы обратим пристальное внимание на первый из гибридных, а именно 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 еще не запущен полностью: пока работает только майнинговый механизм, в ближайшее время ожидается эмиссия токенов и процесс открытого майнинга. Недавно также была запущена тестнет-симуляция с основной сетью и эмиссия была назначена на май. В дополнение ко всему, его PoA-код является открытым и доступен на github.
Заключение
Как мы видим, прогрессивный алгоритм Proof-of-Activity пока еще не нашел широкого применения, но, обладая несомненными преимуществами перед Proof-of-Work и Proof-of-Stake, точнее – комбинируя их, он, безусловно, заинтересует участников новых проектов, будучи менее затратным во всех смыслах, а также более безопасным алгоритмом.