Окончательность (Finality) — это механизм, который обеспечивает в блокчейне возможность достижения точки, после которой транзакции становятся необратимыми. Как только транзакция совершенная пользователем достигает окончательности (или финализации), она уже не может быть изменена или отменена. Этот механизм имеет решающее значение для доверия к блокчейн-технологиям, т.к. гарантирует высочайший уровень безопасности и неизменность транзакций.
Окончательность относится как к транзакциям, так и к состоянию блокчейна. Окончательность транзакции — это когда транзакция уже подтверждена и не может быть отменена. В зависимости от блокчейна, транзакция может считаться финализированной после определенного количества подтверждений (блоков, добавленных в блокчейн). В тоже время окончательность состояния блокчейна — это гарантия согласованности всей сети, что крайне важно для смарт-контрактов и децентрализованных приложений, развернутых на этом блокчейне.
Какие бывают типы механизмов окончательности?
Различные блокчейны могут иметь различные типы механизмов, определяющие каким образом и когда транзакция будет считаться неизменной. Они могут отличаться в зависимости от того, какой алгоритм консенсуса применяется в том или ином блокчейне.
Рассмотрим 3 основных типа механизма окончательности, часто применяемых в современных блокчейн-платформах:
1. Вероятностная окончательность
Данный тип окончательности используется преимущественно в блокчейнах с алгоритмом консенсуса Proof-of-Work (PoW), таких как Bitcoin, Dogecoin и.т.д. Чем больше блоков добавляется в блочейн, тем безопаснее становится транзакция. Каждый новый блок усиливает неизменность транзакций в предыдущих блоках, что значительно усложняет задачу изменения истории блокчейна.
2. Экономическая окончательность
Этот тип окончательности является ключевым механизмом в блокчейнах с алгоритмом консенсуса Proof-of-Stake (PoS), безопасность которых обеспечивается залогом в нативных токенах сети, которые блокируют узлы-валидаторы. При попытке узлом обмануть и подменить действительные транзакции, они теряют свой залог. Таким образом, риск потерять свои активы заставляет узлы работать честно.
В блокчейне Ethereum, транзакции и состояние считаются окончательными в том случае, если 2/3 всех узлов подтверждают блок, отмечающий прогресс блокчейна. Как только это произошло, все предыдущие блоки становится окончательными и не могут быть изменены без огромных финансовых потерь со стороны валидаторов. Теоретически изменения возможны, но это экономически нецелесообразно и ни один валидатор не пойдет на это.
3. Детерминированная окончательность
Детерминированная окончательность применяется в сетях с алгоритмом консенсуса Byzantine fault tolerance (BFT), в таких как Cosmos, Ripple и т.д. Как только узлы такой сети достигают консенсуса, транзакции и состояние блокчейна становятся окончательными и неизменными. Данный тип окончательности считается более быстрым и эффективным, особенно для приложений, требующих мгновенного подтверждения, таких как децентрализованные биржи бессрочных контрактов (PerpDEX).
Распространенные проблемы и ограничения
Не смотря на то, что разработки в области окончательности блокчейнов ведутся постоянно, блокчейны все еще могут быть подвержены форкам, различным задержкам и даже атакам злоумышленников.
1. Атака 51%
В блокчейнах с алгоритмом консенсуса Proof-of-Work, таких как Bitcoin, существует возможность «атаки 51%», которая возможна при контроле 51% всех майнинговых мощностей.
Не смотря на то, что вероятность захвата таких огромных мощностей в сети Bitcoin мало вероятна, в других менее известных блокчейнах PoW такие случаи уже были. Например, в 2018 году блокчейн Bitcoin Gold (форк Bitcoin), подвергся такой атаке, что позволило злоумышленнику дважды потратить 388 000 BTG ($18 000 000).
Детерминированная окончательность позволяет снизить риск, т.к. в блокчейнах с этим типом окончательности, транзакции финализируются мгновенно. Тем не менее, такая система все еще опирается на экономические стимулы и при определенных условиях, хоть и теоретически, злоумышленник может нарушить работу блокчейна.
2. Форки и реорганизация
Форки, подобные тем, которые случались в Bitcoin (например: Bitcoin Cash или Bitcoin Gold), разделяют сеть на две или более конкурирующие версии, создавая таким образом неопределенность, пока один из форков не будет выбран. Из-за этого замедляется окончательность и понижается доверие к системе в целом.
Современные блокчейны отдают предпочтение детерминированной окончательности, чтобы избавиться от возможных форков, но это не решает всех проблем. Например сеть Polkadot делает форки невозможными в принципе, но она все-равно остается уязвимой перед вероятностью сговора валидаторов.
3. Задержки сети
Серьезной проблемой в вероятностных и экономических типах окончательности является задержка в достижении консенсуса. Поэтому, такие блокчейны как Solana, используют алгоритм консенсуса Proof-of-History (PoH), который направлен на эффективное упорядочивание транзакций, что значительно сокращает задержки и ускоряет окончательность.
Не смотря на множество современных решений в области окончательности, узким местом для любого блокчейна остается пропускная способность. Во время интенсивного использования сети, могут возникать проблемы с производительностью и это говорит о том, что современные системы далеки от идеала.
Окончательность в существующих блокчейнах
Различные существующие блокчейны используют свои уникальные механизмы для достижения окончательности, но все они делятся на 3 вида, которые мы обсудили выше. Рассмотрим подробнее, какие механизмы окончательности используют популярные существующие блокчейны на рынке криптовалют.
- Bitcoin. Первый из существующих блокчейнов в мире использует вероятностную окончательность. Транзакции в сети Bitcoin становятся полностью действительными после 6-ти подтверждений (то есть, после 6-ти добавленных блоков).
- Ethereum. Сеть Ethereum использует алгоритм консенсуса Proof-of-Stake (PoS) и достигает окончательности при помощи экономических стимулов. Контрольные точки, создаваемые в блокчейне, считаются завершенными после достижения консенсуса двумя третями всех валидаторов сети.
- Solana. Объединяя алгоритмы консенсуса Proof-of-Stake (PoS) и Proof-of-History (PoH), сеть Solana использует детерминированную окончательность, что позволяет повысить безопасность и скорость транзакций.
- Avalanche. Используя собственный уникальный алгоритм консенсуса PoS, сеть Avalanche обеспечивает детерминированную окончательность и завершает транзакции менее, чем за 1 секунду.
- Polkadot. Сеть Polkadot использует детерминированный механизм окончательности GRANDPA и мгновенно финализирует блоки, сразу после достижения узлами консенсуса.
- Cardano. Детерминированная окончательность в Cardano реализована на основе собственного уникального алгоритма консенсуса Ouroboros PoS, который обеспечивает высокую безопасность транзакций.
Не сложно заметить, что в подавляющем большинстве современных блокчейнов, используется детерминированная окончательность, что не удивительно, ведь она позволяет подтверждать транзакции моментально. Тем не менее, разработки в этом направлении продолжаются и возможно, уже скоро мы увидим новые типы механизмов окончательности, которые еще сильнее повысят безопасность и избавятся от присущих современным системам проблем.