:RU: Финализация транзакций Cardano

Перевод статьи https://cexplorer.io/article/finality-of-cardano-transactions

Команда, разрабатывающая сетевой консенсус, должна тщательно сбалансировать каждую функцию. То, что выгодно с одной точки зрения, может оказаться невыгодным с другой. Невозможно разработать единственное наилучшее решение, у которого не было бы недостатков. Только тщательные исследования и технический прогресс позволяют нам приблизиться к идеальному решению. Cardano использует технологию Proof-of-Stake в стиле Накамото, что означает, среди прочего, вероятностную финализацию транзакции. Предлагаем прочесть, что это значит и в чем заключаются преимущества и недостатки.

TLDR

Команда IOG предпочла живучесть и безопасность скорости транзакций в текущей версии PoS. Современные PoS-сети сочетают в себе преимущества вероятностной и доказуемой финализации. Ouroboros Leios может изменить это.

Финализация транзакций

Вы, вероятно, знаете, что каждая транзакция, отправляемая пользователями, постепенно распространяется по распределенной сети на все ноды-производители блоков. Если актив должен быть передан с адреса на адрес, транзакция должна быть включена в блок, а блок должен оставаться в блокчейне. Чтобы транзакция считалась окончательной, блок также должен быть окончательным.

Давайте определим, что означает финализация транзакции и блока.

Финализация транзакции относится к моменту, когда конкретная транзакция в сети блокчейн считается безвозвратно подтвержденной и не может быть отменена или признана недействительной. Это представляет собой гарантию того, что транзакция была вставлена в блок и считается постоянной частью истории блокчейна. Как только транзакция становится окончательной, она обычно считается урегулированной и неизменной.

Финализация транзакции зависит от финализации блока, в который она была вставлена.

Финализация блока связана с подтверждением и постоянством всего блока в блокчейне. Она представляет собой момент, в котором блок транзакций считается неизменяемым и не может быть изменен или отброшен. Когда блок достигает финализации, все транзакции, включенные в этот блок, также считаются окончательными.

Роль сетевого консенсуса

Финализация блока важна, так как содержимое блока является неизменяемым. Сетевой консенсус используется для обеспечения того, чтобы ноды в сети достигли консенсуса большинства по добавлению нового блока. Таким образом, блокчейн - это, по сути, просто цепочка смежных блоков, порядок которых неизменен. Точнее, неизменен с определенного момента времени.

С точки зрения финализации, крайне важно, в какой момент блок можно считать необратимым на основе сетевого консенсуса. Другими словами, мы ищем точку, в которой пользователь может быть уверен, что большинство нод в сети уверены в том, что данный блок навсегда останется в блокчейне.

В контексте блокчейна время можно разделить на периоды, в течение которых добавляются новые блоки. В случае Cardano они составляют в среднем 20 секунд, для Bitcoin - в среднем 10 минут, а для Ethereum - 12 секунд.

Чтобы блок считался окончательным, должно быть получено согласие большинства нод-производителей блоков в распределенной сети. Они могут сделать это либо до добавления нового блока в блокчейн посредством какой-либо формы голосования, либо после, связав новый блок с его предшественником. Использование предыдущего блока (или блоков) в качестве предшественника для нового блока является выражением согласия этого ноды-производителя блоков.

Как мы уже говорили во введении, Cardano использует Proof-of-Stake в стиле Накамото, который основан на дизайне Proof-of-Work.

Консенсус Накамото способен достичь только так называемой вероятностной финализации. Сеть способна прийти к вероятностному консенсусу. Вероятностная финализация означает, что при некоторых предположениях об участниках сети, если мы видим несколько блоков, которые были добавлены за данным предыдущим блоком, мы можем оценить вероятность того, что данный предыдущий блок является окончательным. Достижение окончательного консенсуса означает, что в какой-то момент в будущем все ноды согласятся с неизменяемостью определенного набора блоков. Достижение окончательного консенсуса может занять много времени. Более того, невозможно заранее определить, сколько времени это займет.

Как только добавляется новый блок, ни один участник (ни ноды-производители блоков, ни пользователи) не может быть уверен, что блок не будет отменен. Может произойти так называемый форк, когда новая нода-производитель блоков привязывается не к последнему блоку в блокчейне, а к предшественнику этого блока. Это означает, что за одним блоком следуют два последующих. Только один из последующих блоков может остаться в блокчейне. Другой будет потерян, включая все транзакции. Какой последующий блок останется в блокчейне, будет решено следующими нодами-производителями блоков, которые выберут один из вариантов. Правило более длинной цепочки определит выигрышную версию блокчейна.

Чтобы понять концепцию, считайте, что всегда после добавления нового блока все еще существует небольшая вероятность того, что блок будет отменен и, таким образом, все транзакции в нем будут признаны недействительными.

Альтернативой вероятностной финализации является доказуемая финализация. Консенсус, который предусматривает доказуемую финализацию, направлен на обеспечение абсолютной уверенности в том, что блок-кандидат (и транзакции в нем) является окончательным и не может быть отменен или изменен. Обычно это достигается с помощью механизмов консенсуса, которые гарантируют детерминированный результат и математические доказательства. Возможно создать консенсус, который предотвратит форки блокчейна. Участники могут быть уверены, что каждый вновь добавленный блок является окончательным, то есть неизменяемым.

Поскольку каждый вновь добавленный блок является доказуемо окончательным, важно, чтобы между нодами-производителями блоков проводилось голосование в той или иной форме, прежде чем он будет включен в блокчейн. Определенное правилами большинство (часто ⅔ нод-производителей блоков) должно согласиться с вновь предложенным блоком. Если большинство не соглашается, блок-кандидат не добавляется в блокчейн, и необходимо создать нового кандидата и снова проголосовать за него.

Преимущества и недостатки вероятностной и доказуемой финализации

Обратите внимание, что оба описанных подхода, по сути, касаются той или иной формы голосования. Основное различие заключается в том, что в случае вероятностной финализации голосование проводится после добавления блока (что может привести к форкам), в то время как в случае доказуемой финализации голосование проводится до добавления блока.

Существуют гибридные варианты, где голосование по вновь добавленному блоку происходит сразу после его добавления. Блок считается неизменяемым, как только за него проголосует требуемое большинство в сети. Это означает, что могут происходить форки блокчейна, но блок может быть доработан очень быстро с помощью голосования (ноды-производители блоков голосуют за сохранение определенного блока).

Если нода-производитель блоков предлагает блок-кандидат, он или она, по сути, голосует за него в одиночку. Блок имеет небольшой “вес”. Вес увеличивается вместе с голосами других нод. В случае Cardano (а также Bitcoin) вес увеличивается с каждым добавленным блоком. Поэтому вес (число голосующих) растет медленно. Если консенсус позволяет проголосовать за блок до (или вскоре после) его добавления, новый блок относительно быстро приобретает высокий вес.

Тема немного более сложная, поскольку важно учитывать право голоса отдельных нод-производителей блоков (пулов). В сети Cardano у каждого пула может быть разный стейк (количество делегированных монет ADA). Новый блок может быть предложен пулом с низким стейком или полностью насыщенным пулом. Какое влияние это оказывает на новый блок-кандидат? Теоретически никакого, поскольку каждый вновь предлагаемый блок имеет аналогичный статус. Однако SPO с высоким стейком имеют более высокие шансы произвести больше блоков за определенный период времени, что может быть преимуществом в случае возникновения форков.

Мы не будем усложнять тему и будем придерживаться финализации, но важно отметить, что ноды-производители блоков могут иметь, а могут и не иметь одинаковое право голоса в разных сетях. Децентрализация сети основана на ограниченных ресурсах (монетах или хешрейте), и тот, у кого их больше, имеет больше прав голоса.

Давайте вернемся к финализации. Разница между вероятностной и доказуемой финализацией оказывает существенное влияние на надежность и жизнеспособность. Это также влияет на скорость транзакций, то есть на пользовательский опыт.

В случае с Cardano блок может быть удален, поэтому, как только ваша транзакция будет вставлена в блок, у вас нет гарантии, что она останется в блокчейне навсегда. Все еще остается небольшой шанс, что блок будет отменен. У Cardano медленная финализация блоков, следовательно, транзакций. Как объяснялось выше, вес растет медленно, потому что голосование осуществляется путем добавления новых блоков. Один голос добавляется каждые 20 секунд.

В настоящее время около 1200 пулов производят блоки в сети Cardano. Голосование только 10% пулов занимает 40 минут. За это время добавляется 120 новых блоков.

Можно предположить, что данный блок останется в блокчейне после добавления определенного небольшого количества новых блоков. Проблема в том, что это низкое число трудно поддается оценке и является лишь вероятностным.

Существуют сети, такие как Algorand, которые способны добиться мгновенной финализации блоков с помощью голосования. Как только новый блок добавлен, он никогда не может быть отброшен. В то же время, здесь никогда не бывает форков блокчейна. Время создания блоков Algorand составляет приблизительно 3,6 секунды, и если ваша транзакция вставлена в блок, она немедленно становится окончательной.

Ethereum разбивает всех валидаторов на 32 равных комитета каждую эпоху. В эпохе 32 слота. Каждый слот длится 12 секунд. Таким образом, вся эпоха длится 6 минут и 24 секунды. Каждый комитет отвечает за создание блока, а члены комитета отвечают за предоставление аттестации (подтверждение того, согласны они или не согласны с блоком, предложенным производителем). Каждый вновь добавленный блок подтверждается 3,1% от общего числа голосов. Это означает, что блок наберет высокий вес (большое количество голосов) значительно быстрее, чем в случае с Cardano.

Консенсус в стиле Накамото отдает предпочтение живучести протокола, а не скорости транзакций, то есть способности всегда создавать новый блок, даже если большая часть нод недоступна. В случае выхода большого количества нод в автономный режим производство блоков займет больше времени (пропущенные слоты), но есть хороший шанс, что это произойдет. По мере того как ноды постепенно возвращаются в сеть, производство блоков будет становиться все более частым.

Для сетей, в которых ведется активное голосование по каждому блоку, производство блоков может быть остановлено, если 34% (обычно более ⅓ нод-производителей блоков) перейдут в автономный режим. Сети с доказуемой финализацией считаются более устойчивыми к атакам и могут лучше обеспечивать целостность блокчейна. Эти сети предпочитают прекратить производство блоков, а не производить блоки любой ценой.

Сети с доказуемой финализацией имеют ряд недостатков. Сетевой консенсус может быть относительно сложным и уязвимым. Голосование требует некоторых накладных расходов и может занять относительно много времени. Эти сети могут быть более восприимчивы к перебоям в производстве блоков, если возникают проблемы со скоростью передачи данных через Интернет. Возможно, достичь высокой масштабируемости будет сложнее.

Возвращаясь вкратце к децентрализации и безопасности, в случае Cardano злоумышленнику необходимо получить более половины дефицитного ресурса (монеты ADA), в то время как в сетях с доказуемой финализацией ему обычно требуется получить более ⅓ ресурса. Злоумышленнику достаточно получить 1/3 ресурса, чтобы сеть не смогла достичь консенсуса.

Вывод

Пользователи, как правило, предпочитают скорость транзакций безопасности, поскольку в большинстве блокчейн сетей уровень безопасности относительно высок. В основном они хотят быстро отправить транзакцию и быть уверенными в ее окончательности. Однако первые слои в первую очередь должны быть максимально безопасными и децентрализованными. Будущее, вероятно, принадлежит гибридным подходам, которые сочетают правило самой длинной цепочки с механизмом, обеспечивающим быструю финализацию. Ouroboros Leios привнесет нечто подобное в Cardano, поскольку из 3 типов блоков, которые будут созданы в сети, определенная форма голосования будет проводиться по второму типу, блокам-индоссантам. Третий тип блоков, который будет похож на текущий, будет содержать ссылки на блоки-индоссанты, т.е. блоки, содержащие согласие относительно большого стейка.

Статья была в основном посвящена финализации транзакций, но важно помнить, что основой Cardano является высокая децентрализация и нативный ликвидный стейкинг активов. Эти функции были достигнуты отчасти потому, что в Cardano нет ограничений на вход, и не нужно иметь определенное (относительно большое) количество монет для участия в стейкинге. Ethereum использует голосование для достижения консенсуса, и для этого необходима возможность блокировать ETH и наказывать валидаторов за поведение, противоречащее интересам протокола. Финализация транзакций также связана с качеством стейкинга и, следовательно, децентрализацией.

Технологический прогресс подтолкнет Cardano вперед. Ouroboros Leios станет следующим важным шагом в отношении финализации транзакций на первом слое.

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова, а также на канале Чарльз Хоскинсон на русском. Хотите поговорить или задать вопрос о Cardano по-русски? Приглашаем вас в наше уютное сообщество в Telegram. Оставайтесь на связи, все только начинается!