Skip to main content
Мост — точка, в которой сеть соприкасается с активами, которых она не создавала. Всё остальное в этой архитектуре — замкнутая система, корректность которой кто угодно может проверить, воспроизведя блоки. Мост таким быть не может: половина его находится в другом блокчейне, со своими валидаторами, своей финальностью и своими режимами отказа. Эта асимметрия и определяет конструкцию. Депозиты и выводы — не симметричные операции, и выводы намеренно медленнее, чем требуется технически.

Роли

Внешний блокчейн
Intention
Контракт мостахранение средств · проверка подписей перед выпускомчасть, от которой реально зависят средства
Валидаторынаблюдают внешний блокчейн и подписывают увиденное
Финализаторретранслятор, а не орган власти: не может создать вывод без подписей
Администраторнабор валидаторов и параметры — то, что нельзя автоматизировать
Вывод становится исполнимым только после того, как собрано достаточно подписей валидаторов, — то же допущение о доверии, что и в консенсусе, только через границу блокчейнов.
события депозитов
агрегированные подписи
транзакции вывода
Валидаторы наблюдают за внешним блокчейном и подписывают то, что видят. Вывод становится исполнимым только после того, как собрано достаточно подписей валидаторов, — то же допущение о доверии, что и в консенсусе, только применённое через границу блокчейнов. Финализатор отправляет транзакции на внешней стороне. Это ретранслятор, а не орган власти: он может выбирать, когда отправить, и может не отправить вовсе, но не может создать вывод, который валидаторы не подписали. Администратор выполняет административные операции: изменения набора валидаторов, обновления параметров. Его полномочия — ровно те, которые нельзя безопасно автоматизировать. Контракт моста держит средства на внешней стороне и проверяет подписи, прежде чем что-либо выпустить. Это та часть, от которой на самом деле зависят средства пользователя.

Депозиты

Депозит — лёгкое направление. Средства блокируются во внешнем контракте, который выпускает событие депозита; валидаторы его наблюдают, и зачисление становится нативной транзакцией протокола в Intention. Раз это зачисление — обычная транзакция, оно наследует всё, что гарантирует ядро. Оно исполняется в каноническом порядке, изменение, которое оно вносит в счёт, приписано именно ему, и видно оно в тех же выходных данных, что и любое другое изменение состояния. Если депозит восстанавливает маржу по позиции, стоящей у грани ликвидации, клиринговая палата видит его в том же шаге исполнения, а не при последующей сверке. Ждать приходится финальности внешнего блокчейна, а не Intention. Депозит зачисляется, когда выполнено требование по подтверждениям в исходном блокчейне.

Выводы

Вывод — опасное направление, и он идёт в две фазы с периодом оспаривания между ними.
Запрос в Intention
Подписан валидаторами, зарегистрирован в контрактевыплаты не производит
Период оспариваниядолжен истечь настроенный период
Финализировансредства выпущены
Аннулированотменён до движения средств
Зачем ожиданиеУ каждого катастрофического взлома моста одна и та же структура: атакующий получает возможность авторизовать вывод, и средства исчезают в том же блоке. Период оспаривания превращает мгновенную необратимую потерю в окно, в котором успевают сработать мониторинг и люди. Платить за это приходится тем, что законные выводы тоже ждут.
истёк
оспорен
Запрос подписывается валидаторами и регистрируется во внешнем контракте. Выплаты он не производит. Сначала должен истечь настроенный период, в течение которого вывод можно аннулировать — отменить до того, как сдвинутся хоть какие-то средства. Медленно здесь не по недосмотру. У каждого катастрофического взлома моста одна и та же структура: атакующий получает возможность авторизовать вывод, и средства исчезают в том же блоке. Период оспаривания превращает мгновенную необратимую потерю в окно, в котором успевают сработать люди и мониторинг. Платить за это приходится тем, что законные выводы тоже ждут. Выводы пакетируются — запрашиваются и финализируются группами, а не по одной транзакции на каждый, — поэтому комиссии внешнего блокчейна не растут линейно с числом выводов. Отказы явные. Вывод, который не удаётся финализировать, выдаёт отказ с кодом ошибки, а не молча ничего не делает, поэтому разница между застрял и отклонён наблюдаема, а не выводится из отсутствия чего-либо.

Как это остановить

На случай, когда что-то пошло не так, есть два механизма. Аннулирование отменяет конкретный вывод внутри его периода оспаривания. Это точечная реакция. Блокировка — грубая: назначенная роль может заблокировать мост, а число сторон, которые должны для этого действовать, — тоже параметр. Это механизм на случай «что-то не так, и мы пока не знаем что»: он останавливает поток целиком, а не разбирает отдельные транзакции.
Именно эти рычаги делают период оспаривания полезным, и они же — реальные допущения о доверии. Сторона, способная заблокировать мост, способна остановить и законные выводы. Это осознанный размен: мосты ломаются катастрофически и необратимо, и возможность остановить мост стоит больше, чем гарантия, что он никогда не встанет на паузу. См. Раскрытие рисков.

Изменения набора валидаторов

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

Где на самом деле сидит риск

Стоит сказать прямо, потому что именно на мостах пользователи теряют деньги:
  • В Intention мост устроен обычно. Зачисленный депозит — обычная транзакция с обычными гарантиями.
  • Во внешнем блокчейне вы зависите от контракта и порога подписей. Это другая модель безопасности, не консенсусная, и она проверяется аудитом отдельно — мост и есть тот компонент, который проходит сторонний аудит.
  • Между ними вы зависите от того, что валидаторы наблюдают верно, и от того, что финализатор отправляет. Ни тот ни другой не могут сфабриковать вывод; задержать могут оба.
Поддерживаемые блокчейны, активы, требования по подтверждениям и длина периода оспаривания — эксплуатационные параметры, меняющиеся с каждым релизом. Авторитетны те значения, которые показаны в диалогах депозита и вывода в интерфейсе биржи в момент перевода — см. Депозит и Вывод средств.

Что дальше

Пополнение счёта

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

Неторговые комиссии

Сколько стоит вывод и почему депозиты бесплатны.

Клиринговая палата

Что депозит делает с маржой в момент зачисления.

Раскрытие рисков

Допущения о доверии к мосту, сформулированные как риски.