XRP Wiki
REF · 03.01 / Технология и протокол

Консенсус-протокол XRP Ledger

Как XRP Ledger достигает согласия по транзакциям без майнинга и традиционного доказательства доли.

XRP Ledger не использует майнинг с доказательством работы (как Bitcoin) или традиционное голосование с весом по доле (как большинство цепочек с доказательством доли). Вместо этого используется Консенсус-протокол XRP Ledger (XRP LCP) — форма федеративного византийского согласия, при которой сеть независимых валидирующих серверов многократно предлагает и голосует за следующий набор транзакций, пока не сойдётся на согласованном результате.

Почему не майнинг?

Доказательство работы требует, чтобы валидаторы конкурировали, сжигая огромные объёмы вычислений, что энергозатратно и привязывает право «решать, каким будет следующий блок» к чистой вычислительной мощности. Разработчики XRPL хотели добиться финальности транзакций за секунды, а не минуты, и полностью избежать этих энергозатрат — поэтому вместо этого они построили альтернативу на основе голосования.

Базовый процесс

Каждый раунд консенсуса (порождающий одну новую «версию леджера» примерно каждые 3–5 секунд) работает приблизительно так:

  1. Сбор. Каждый валидатор собирает действительные, ожидающие обработки транзакции, которые он увидел в сети (набор кандидатов).
  2. Предложение. Валидаторы рассылают свой предлагаемый набор транзакций доверенным пирам.
  3. Голосование по раундам. Валидаторы сравнивают предложения от валидаторов, которым они доверяют, и обновляют собственное предложение в соответствии с большинством, повторяя это в течение нескольких раундов. С каждым раундом порог согласия, необходимый для сохранения транзакции в наборе, повышается (начиная примерно с 50% и поднимаясь к 80%).
  4. Схождение. Как только не менее 80% доверенных пиров валидатора соглашаются на один и тот же набор транзакций, этот набор считается достигшим консенсуса.
  5. Применение и закрытие. Все узлы применяют согласованные транзакции в каноническом, детерминированном порядке, вычисляют итоговое состояние леджера и «закрывают» эту версию леджера — после чего она становится финальной и не может быть изменена или отменена.

Каким валидаторам доверяет узел?

Каждый сервер выбирает собственный список доверенных валидаторов, называемый Unique Node List (UNL). Пока различные UNL, используемые в сети, в достаточной степени пересекаются и каждый валидатор действует добросовестно, сеть в целом сходится к единой, согласованной истории транзакций. О том, как устанавливается доверие и чем это отличается от единого глобального «списка участников», см. в статье Unique Node List and Validators (на английском).

Что это даёт сети

  • Быстрая, детерминированная финальность — как только леджер закрыт, это окончательно; в нормальном режиме работы здесь нет аналога реорганизации блокчейна.
  • Низкое энергопотребление — отсутствие вычислительной гонки означает, что предельные энергозатраты самого консенсуса невелики.
  • Отсутствие блочных наград — поскольку нет гонки майнинга, которую нужно стимулировать, валидаторам не выплачивается блочная субсидия; о том, как вместо этого устроена экономика сети, см. в статье Transaction Fees and Burning (на английском).

Чем приходится расплачиваться взамен

Этот дизайн отказывается от permissionless-выбора валидаторов, основанного исключительно на весе доли, в пользу доверия на основе репутации, добровольного по своей природе. Запустить валидатора может кто угодно, но чтобы его голос имел значение для остальной сети, другие участники должны сами решить довериться ему. Этот компромисс — и связанная с ним историческая критика централизации — подробно рассматривается в статье The Centralization Debate (на английском).