Азбука блокчейна. Алгоритмы консенсуса.
Для начала стоит разобраться, какова концепция работы транзакций в любом из блокчейнов. Представим, что вы находитесь не в блокчейне, а в таблице Excel, и то и другое это по сути набор данных, различие лишь в том, что данные от Excel хранятся на вашем устройстве, а данные блокчейна распределены удаленно по нодам.
Итак, в ячейке A1 и A2 находятся адреса кошельков, в B1 и B2 баланс токенов ETH. Например, A2 хочет отдать A1 100 ETH, для этого он отправляет транзакцию. Транзакция в свою очередь передается в сеть, формируя новый блок, далее блоки рассылаются для проверки всем участникам блокчейна, каждый участник записывает блок в свой экземпляр базы данных. После этого блок попадает в цепочку блоков, которая уже содержит информацию обо всех транзакциях. Пройдя все вышеперечисленные этапы транзакция является завершенной.
Что же собой представляет транзакция? Транзакция это в данном случае математическая функция разности и суммы, она в свою очередь требует определенного количества вычислительной мощности. Эту мощность предоставляют валидаторы, получая при этом награды за проделанную работу, притом концепция их услуг варьируется в зависимости от алгоритма консенсуса.
Алгоритм консенсуса — это правила, по которым происходит генерация блоков в блокчейне. Алгоритм консенсуса, также называемый механизмом консенсуса, моделью или протоколом, представляет собой систему, которая используется для достижения общего соглашения об истинном состоянии блокчейна в режиме реального времени. Такая система гарантирует, что все ноды синхронизированы между собой, а транзакции аутентифицированы и защищены. Как только ноды соглашаются с легитимностью транзакции, она утверждается, а затем записывается в блокчейне. После этого блок остается там навсегда. Алгоритм консенсуса не только гарантирует безопасность всей цепочки блоков, но и помогает установить доверие между незнакомцами в децентрализованной сети. Это достигается за счет того, что именно алгоритм решает, каким узлам доверять для проверки и включения транзакций.
Типы алгоритмов консенсуса в блокчейне
Proof of Work является самым ранним из всех механизмов консенсуса, так как появился он в блокчейне Bitcoin. В данном случае в качестве нод выступают майнеры, которые решают сложные криптографические задачи, тот, кто сделает это первым получает вознаграждение в виде нативного токена блокчейна. Кроме этого, PoW является консенсусом также для второго по величине блокчейна – Эфира. И хотя основатель Ethereum Виталик Бутерин обещает переход на Proof of Stake уже в конце осени 2022, пока ETH все еще добывается вследствие майнинга.
1. Высокие награды за «успешный» майнинг.
2. Гарантия защиты от взломов и невозможность изменения данных блока.
1. Влияние на рынок компьютерных комплектующих и электроэнергии.
3. Дороговизна и низкая скорость транзакций.
4. Объединение. Из-за случайности, связанной с поиском ответа на криптографическую головоломку, которая решает данный блок, большой группе независимых работников выгодно объединять ресурсы и находить ответ более предсказуемо. При объединении в пул, если кто-либо в пуле находит ответ, все члены пула получают часть вознаграждения. Это увеличивает вероятность выплаты в любой момент, даже если каждое вознаграждение намного меньше. К сожалению, объединение ведет к централизации. Например, известно, что 53%+ сети Bitcoin контролируются всего тремя пулами.
5. Форки — естественная вещь в случае консенсуса Накамото, поскольку может быть несколько объектов, которые нашли ответ в течение одних и тех же нескольких секунд. В итоге выбирается вилка, которую в конечном итоге принимают другие участники сети. Это приводит к более длительному ожиданию, пока транзакция не будет считаться «окончательной», поскольку никогда нельзя быть уверенным, что текущий последний блок — это тот, на котором строится большая часть сети.
Наиболее распространенной альтернативой Proof of Work является Proof of Stake (PoS). Как идея, это означает, что каждый узел в системе участвует в принятии решений пропорционально количеству токенов, которое у него есть. PoS выбирает валидаторов случайным образом, но учитывает размер их застейканных токенов. Если с транзакцией проблем нет, блок добавляется в блокчейн, а валидатор получает сетевые сборы за свой вклад. Однако, если валидатор предлагает добавить блок с ложными данными, ему грозит штраф и, как следствие, потеря части застейканных активов.
1. Высокий уровень децентрализации.
2. Отсутствие необходимости для покупки дорогостоящего оборудования и компьютерных комплектующих.
3. Экологичность и экономия электроэнергии. В настоящее время, когда Ethereum работает по модели PoW, он потребляет 113,01 ТВтч электроэнергии в год, что эквивалентно потреблению энергии в Нидерландах. При переходе на PoS его энергопотребление снизится на 99,95%.
4. Высокая скорость и дешевизна транзакций. Например, скорость транзакций Ethereum составляет в среднем 15 транзакций в секунду (tps), в то время как Flow на основе PoS управляет более 1000 tps, а блокчейн Avalanche — более 4500 tps. Стоит отметить, что когда Ethereum будет обновлен и полностью перейдет на PoS, ожидается, что скорость транзакций достигнет 100 000 транзакций в секунду. Что касается стоимости транзакций, то она редко превышает 1 доллар.
1. Возможность крупных валидаторов влиять на блокчейн.
2. Необходимость стейкать токены, которые валидаторы не могут анстейкнуть в течение определенного промежутка времени.
3) Delegated Proof of Stake(DPoS)
В этой системе вся сеть голосует за «делегатов» — участников, которые поддерживают сеть и принимают все решения от имени других участников. В зависимости от реализации делегаты должны либо лично поставить крупную сумму денег, либо использовать ее для предвыборной кампании. И то, и другое означает, что делегатами могут быть только состоятельные лица или консорциумы. Теоретически это очень похоже на то, как работает собственный капитал в компаниях. В этом случае мелкие акционеры участвуют в выборах и избирают небольшое количество лиц, принимающих решения (совет директоров), которые обычно являются крупными акционерами. Затем эти крупные акционеры принимают все основные решения от имени всех акционеров. Участие делегатов в системе голосования напрямую связано с их репутацией. Если избранный делегат работает неэффективно или допускает ошибку, он исключается и заменяется. Что касается блокчейнов, работающих на DPoS, то сюда можно отнести Tron и WAX. Часто используемый для создания торговых площадок NFT и запуска игр на основе блокчейна, блокчейн WAX выполняет около 8000 операций в секунду. Благодаря базовому алгоритму DPoS WAX потребляет в 125 000 раз меньше энергии, чем Биткоин и Эфириум.
1. Голосование в режиме реального времени позволяет осуществлять непрерывный мониторинг безопасности сети. Как только избиратели обнаруживают вредоносную активность, они сразу же исключают подозрительного делегата. Даже если делегат всегда действовал безупречно, его могут исключить из сети в любой момент.
2. Скорость транзакций выше, чем в PoS.
1. Явная централизация из-за небольшого количества отдельных узлов (EOS) или централизованно управляемых пулов, которые в конечном итоге участвуют в обслуживании сети.
2. В конкретных реализациях DPoS тот факт, что все делегаты знают друг друга, означает, что слэшинга (наказания делегата за правонарушение путем взятия его доли) может не произойти, потому что за него должно проголосовать большинство делегатов.
4) Thresholded Proof of Stake(TPoS)
Данный алгоритм консенсуса является новаторским и присутствует только в одном блокчейне, но зато моем любимом – это NEAR Protocol.Общая идея заключается в том, чтобы иметь детерминированный способ наличия большого количества участников, которые поддерживают обслуживание сети, тем самым повышая децентрализацию, безопасность и устанавливая справедливое распределение вознаграждения. Ближайшей альтернативой этому методу является аукцион, на котором люди делают ставки на фиксированное количество предметов, и в конце выигрывают N лучших предложений, получая при этом количество предметов, пропорциональное размеру их ставок. В случае TPoS большой пул участников (создатели блокчейна Илья Полосухин и Александр Скиданов называют их «свидетелями») избирается для принятия решений в течение определенного интервала времени (по умолчанию — один день). Всего существует 1440 блоков(по одному в минуту), в каждом блоке в свою очередь содержится 1024 места. Итак, получается, что 1440*1024 = 1474560 мест.
Каждое место свидетеля определяется ставкой всех участников, которые указали, что хотят подписывать блоки. Например, если 1 474 560 участников ставят по 10 токенов каждый, то каждое отдельное место стоит 10 токенов, и каждый участник будет иметь одно место. В качестве альтернативы, если 10 участников ставят по 1 474 560 токенов каждый, индивидуальное место по-прежнему стоит 10 токенов, и каждый участник получает 147 456 мест. Допустим, если X — цена места, а {Wi} — ставки каждого отдельного участника, то формула для определения порогового значения одного свидетеля выглядит следующим образом:
1) ∈ N означает, что число определено на множестве натуральных чисел (1,2,3,4….)
2) s.t (such that) - квантор, означающий словосочетание «такой что»
3) ∑ - символ, обозначающий суммирование в пределах от 1 до i
4) Wi ≥ X означает, что ставка каждого отдельного участника должна быть больше цены места
5) floor – математическая функция, которая округляет число в меньшую сторону до ближайшего целого или кратного числа
Чтобы принять участие в обслуживании сети (стать свидетелем), любой аккаунт может отправить специальную транзакцию, в которой указывается, сколько денег он хочет поставить. Как только эта транзакция будет принята, указанная сумма денег будет заблокирована как минимум на 3 дня. В конце дня все новые предложения свидетелей собираются вместе со всеми участниками, подписавшими блоки в течение дня. Оттуда определяется стоимость отдельного места (с помощью приведенной выше формулы), выделяется количество мест для всех, кто сделал ставку не менее этой суммы, и выполняется псевдослучайную перестановка. Протокол NEAR использует инфляционные вознаграждения за блоки и комиссии за транзакции, чтобы стимулировать свидетелей участвовать в подписании блоков. В частности, предлагается определять уровень инфляции в процентах от общего количества токенов. Это побуждает стейкхолдеров запускать участвующий узел, чтобы сохранить свою долю в стоимости сети. Когда участник регистрируется в качестве свидетеля, часть его денег блокируется и не может быть потрачена. Ставка каждого свидетеля разблокируется через сутки после того, как свидетель перестанет участвовать в подписи блока. Если за это время свидетель подписал два конкурирующих блока, его ставка аннулируется в пользу участника, заметившего и доказавшего «двойной знак».
1. Нет необходимости в объединении. Нет причин объединять ставки или вычислительные ресурсы, потому что вознаграждение прямо пропорционально ставке. Иными словами, две учетные записи, содержащие по 10 токенов, принесут такой же доход, как 20 токенов на одной учетной записи. Единственное исключение, если у вас меньше жетонов, чем порог, которому противодействует очень большое количество избранных свидетелей.
2. Меньше разветвления. Форки возможны только при серьезном разделении сети (при наличии менее ⅓ противников). При нормальной работе пользователь может наблюдать за количеством подписей в блоке, и если их больше ⅔+1, блокировка необратима. В случае разделения сети участники могут четко наблюдать за разделением, понимая, сколько подписей есть по сравнению с тем, сколько их должно быть. Например, если сеть разветвляется, то большинство участников сети будут наблюдать блоки с менее чем ⅔ (но, вероятно, более ½) необходимых подписей и могут дождаться достаточного количества блоков, прежде чем сделать вывод, что блок в прошлом вряд ли обратится. Меньшая часть участников сети увидит блоки с менее чем ½ подписями и будет иметь явные доказательства возможного разделения сети.
3. Безопасность. Переписать один блок или провести атаку чрезвычайно сложно, поскольку необходимо получить закрытые ключи от свидетелей, которые владеют ⅔ общей суммы ставок за два дня в прошлом. Это при условии, что каждый свидетель участвовал только в течение одного дня, что редко случается из-за экономического стимула к постоянному участию, если они держат токены на счете.
1. Свидетели известны заранее, поэтому злоумышленник может попытаться выполнить DDoS-атаки.
2. В PoS общее вознаграждение делится между текущим пулом свидетелей, что делает несколько неблагоприятным для них включение новых свидетелей. В TPoS же добавляются дополнительные стимулы для включения новых транзакций-свидетелей в блок.
PoH — один из самых молодых алгоритмов консенсуса. Этот механизм буквально можно назвать часами для блокчейна. Но как работает Proof of History? PoH представляет собой встроенный механизм синхронизации, который решает печально известную проблему часов. Дело в том, что узлы во многих децентрализованных сетях должны полагаться на внешние источники информации для назначения «медианной» отметки времени при проверке транзакций. Алгоритм PoH предлагает внутренние часы, которые всегда отображают одно и то же время для всех узлов в сети. На данный момент самым ярким примером внедрения алгоритма PoH в блокчейн является Solana.
1. Быстрая проверка транзакций.
2. Высокая пропускная способность и дешевизна транзакций.
3. Отсутствие связи с внешними сервисами, что экономит время и уменьшает затраты.
1. Если мы сравним Proof of History и Proof of Stake, например, мы увидим, что для того, чтобы стать валидатором в сети на основе PoS, вам нужен только обычный ПК. При использовании PoH же ваше оборудование должно соответствовать строгим спецификациям, описанным в документации Solana. Это означает, что стать валидатором в сети PoH немного сложнее и довольно дорого. Также есть опасения, что Solana — пока единственный блокчейн на основе PoH — может быть не таким децентрализованным, как кажется . На сегодняшний день в его сети 1670 валидаторов. Проблема в том, что 21 валидатор вместе контролируют более 33% от общей суммы стейка. Если они вступят в сговор и решат отключить всю сеть, они могут сделать это довольно легко.
В заключение хотелось бы сказать, что за последние 5 лет почти весь топ-100 монет по версии coingecko или же coinmarketcap изменился и только 3 монеты до сих пор торгуются в плюс. Мир криптовалют меняется очень быстро и даже проекты, которые казались фундаментальными скамятся в очень короткие сроки, поэтому, возможно, через 5 лет мы увидим уже совершенно другие алгоритмы консенсуса блокчейнов.