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

Окончательность как основополагающая черта блокчейна

Окончательность («finality», иногда можно встретить «финализация»/«завершенность») в блокчейне — это гарантия того, что транзакции не могут быть изменены, отменены или аннулированы после их завершения.

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

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

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

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

Вероятностная окончательность

Вероятностная окончательность (probabilistic finality) характерна для блокчейнов, работающих на алгоритме Proof-of-Work (PoW), например, Биткоина. В таких системах транзакции подтверждаются в своей окончательности по мере добавления новых блоков в цепочку. Каждый новый блок усиливает надежность предыдущих, делая их изменение практически невозможным.

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

Экономическая окончательность

Экономическая окончательность (economic finality) свойственна блокчейнам, использующим алгоритм Proof-of-Stake (PoS). В таких системах валидаторы блокируют определенное количество криптовалюты в качестве залога (стейкинг). Если валидаторы попытаются обмануть сеть, их залог будет потерян. Такой механизм делает мошенничество экономически невыгодным.

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

Детерминированная окончательность

Детерминированная окончательность (deterministic finality) встречается в блокчейнах, использующих алгоритмы консенсуса, основанные на «византийской отказоустойчивости» (BFT), например, Ripple. В таких системах транзакции становятся окончательными сразу после достижения консенсуса между узлами сети. Таким образом, там нет необходимости ждать последующих подтверждений — как только консенсус достигнут, транзакция уже необратима.

Время до окончательности

Интересно, что концепт «finality» можно также использовать для измерения скорости работы сети.

Существует отдельная метрика, а именно «время до окончательности» (Time to Finality, TTF) — это период, за который транзакция становится окончательной. В отличие от показателя TPS (транзакции в секунду), TTF является во многом более удачной метрикой именно для измерения скорости работы сети, так как отражает время от отправки транзакции до достижения ею окончательности. TPS же лучше подходит для измерения пропускной способности сети.

Сравнить TPS и TTF можно при помощи наглядного примера автомобильной дороги. Каждая машина — это транзакция, движущаяся с определенной скоростью. Нажатие кнопки «Отправить» в криптокошельке — это момент, когда машина въезжает на дорогу. Момент достижения окончательности — это когда машина прибывает в пункт назначения. Таким образом, TTF — это время пути от пункта A до пункта B.

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

То есть, TTF наряду с TPS является важной метрикой для определения скоростных характеристик блокчейна.

Проблемы достижения finality

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

  1. Сетевые задержки. Медленная передача данных между узлами может затруднить проверку и подтверждение транзакций, увеличивая время до окончательности.
  2. Форки сети могут привести к разрушению окончательности, например, хардфорк в Эфириуме, при помощи которого удалось вернуть похищенные у проекта DAO токены. Окончательность транзакций оказалась скомпрометирована.
  3. «Атака 51%». Если злоумышленник получает контроль над более чем половиной вычислительной мощности сети, он может изменять историю транзакций и отменять подтвержденные переводы.
  4. Уязвимости смарт-контрактов. Ошибки в коде смарт-контрактов способны привести к эксплойтам, что потенциально создает риски отката транзакций и подрыва окончательности.
  5. Регуляторные барьеры. Окончательность делает блокчейн неподконтрольным, что может не устраивать регуляторов. Возьмем для примера недавний взлом биржи Bybit. По заявлению гендиректора биржи Бена Чжоу (Ben Zhou), 20% из $1,4 млрд украденных хакерами криптоактивов потеряны безвозвратно. Это произошло в том числе из-за окончательности транзакций в блокчейне, и подобные случаи могут быть использованы государством в риторике о «защите инвесторов», направленной против распространения блокчейн-технологий.

Вывод

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