Как работает мост Rainbow Bridge

Мост Rainbow Bridge уникален в крипто-сфере как единственный общедоступный мост в Ethereum без доверия сторон. В этой статье мы раскроем, как он работает!

Posted by Matt Henderson

Протокол NEAR создал Rainbow Bridge - нечто уникальное и ценное в криптовалютном пространстве, мост для трансфера токенов без доверия сторон между Ethereum и NEAR и, в конечном итоге, Aurora. Хотя существуют технические описания моста, в этой статье мы объясним, как он работает, чтобы это было понятно каждому, кто хоть немного знаком с криптовалютами.

Концепция

Для начала представим, что мы хотим перевести 20 DAI из Ethereum в NEAR. Поскольку физическая передача токенов между сетями невозможна, нужно вывести 20 DAI из обращения на Ethereum и ввести 20 DAI в обращение на NEAR, чтобы глобальное предложение DAI не изменилось.

Вот как можно это сделать без доверия и разрешения:

  1. Мы сообщаем сети Ethereum, что хотим перевести 20 DAI в другое место.
  2. Сеть Ethereum блокирует наши 20 DAI в хранилище (смарт-контракте), чтобы они были выведены из обращения.
  3. Когда мы убеждаемся, что эти 20 DAI заблокированы в Ethereum, мы просим NEAR создать там 20 новых DAI.
  4. NEAR, естественно, не доверяет нам, поэтому просит доказать, что 20 DAI заблокированы нами в Ethereum.
  5. Мы предоставляем NEAR доказательство того, что мы заблокировали эти DAI в Ethereum.
  6. NEAR независимо проверяет доказательство, а затем создает 20 новых DAI для использования на NEAR.

Далее, если и когда мы захотим перевести свои DAI из NEAR обратно в Ethereum, мы просто проделаем вышеописанную процедуру в обратном порядке. Здорово, правда?

Актеры

Итак, теперь давайте посмотрим, как все это происходит на практике, используя Rainbow Bridge. В этой истории будет задействован ряд технических компонентов, из которых состоит мост:

  • Пользовательский интерфейс Rainbow Bridge - это веб-сайт, через который вы, как пользователь, взаимодействуете с мостом для передачи ваших активов между сетями.

  • Лёгкая нода (LiteNode) - она похожа на ноду (узел) блокчейна, но хранит только заголовки блоков, что значительно сокращает необходимое пространство для хранения данных. LiteNode реализована в виде смарт-контракта, и у нас их две - одна размещена в сети Ethereum и хранит заголовки блоков NEAR, а другая размещена в NEAR и хранит заголовки блоков Ethereum.

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

  • Каждое обновление LiteNode - это платная транзакция. Поэтому узел на NEAR (содержащий блоки Ethereum) обновляется на каждый блок Ethereum (поскольку плата за газ на NEAR дешевая), а частота обновления ноды на Ethereum (содержащей блоки NEAR) настраивается и определяется экономическим бюджетом (в настоящее время около 4-8 часов).

  • Коннекторы. Коннекторы - это смарт-контракты, которые отвечают за всю логику, связанную с межблокчейновым управлением определенным типом активов. Как и LiteNodes, они существуют парами - один работает на Ethereum, а другой - на NEAR. Например, существует пара "ETH Connectors", отвечающая за передачу ETH между двумя сетями. И есть пара "ERC-20 Connector", отвечающая за передачу токенов ERC-20. При желании кто-то может написать коннектор "NFT", коннектор "Результаты рынка предсказаний" или коннектор "Результаты голосования DAO". Любой актив или данные могут быть переданы через Rainbow Bridge, если существуют соответствующие коннекторы!

Собираем части в целое

Чтобы понять, как все эти элементы работают вместе, позволяя мне без разрешения и доверия переводить токены между Ethereum и NEAR, давайте снова пройдемся по нашему исходному примеру:

  1. Используя пользовательский интерфейс Rainbow Bridge, мы начинаем перевод 20 DAI из Ethereum в NEAR.
  2. Когда мы подтверждаем первую из двух транзакций в MetaMask, Rainbow Bridge связывается с коннектором ERC-20 на Ethereum (поскольку DAI является токеном ERC-20), который переводит и блокирует 20 DAI в своем хранилище. После этого эти DAI больше не находятся в обращении в сети Ethereum.
  3. На основе данных заголовка в блоке транзакции пользовательский интерфейс Rainbow Bridge рассчитывает криптографическое доказательство того, что мы действительно заблокировали 20 DAI.
  4. Поскольку далее мы собираемся попросить сеть NEAR создать несколько DAI на основе того, что только что произошло в Ethereum, мы сначала ждем, пока рилеер отправит около 20 заголовков блоков Ethereum на LiteNode, работающую на NEAR. Это делается для безопасности, точно так же, как криптовалютная биржа заставляет ждать некоторых подтверждений перед использованием внесенных средств.
  5. После этого ожидания пользовательский интерфейс Rainbow Bridge позволяет сделать второй шаг в процессе - попросить коннектор ERC-20 на NEAR создать для нас 20 новых DAI в сети NEAR.
  6. Когда мы делаем этот запрос коннектору ERC-20, мы предоставляем полученное ранее криптографическое доказательство, подтверждая, что мы заблокировали 20 DAI в Ethereum.
  7. Затем коннектор ERC-20 на NEAR найдет заголовок блока Ethereum в LiteNode, работающей на NEAR, и произведет независимый расчет криптографического доказательства.
  8. Если предоставленное доказательство совпадает с доказательством, которое вычисляет ERC-20 Connector, он знает, что эти 20 DAI надежно заблокированы в Ethereum (и что именно мы их заблокировали!), приступает к созданию (выпуску) 20 новых DAI на NEAR и отправляет их в мой кошелек.

Когда мы хотим перевести DAI из NEAR обратно в Ethereum, процесс происходит в обратном порядке, то есть вместо того, чтобы заблокировать 20 DAI в NEAR, мы уничтожаем их - это называется "сжиганием" - и затем предоставляем "доказательство" этого сжигания коннектору, работающему на Ethereum. Имея доступ к блокам NEAR в LiteNode, работающей на Ethereum, он проверяет наше доказательство, освобождает 20 DAI из своего хранилища и отправляет их на наш кошелек!

Вот так, в двух словах, работает Rainbow Bridge! Это единственный мост Ethereum в крипто-пространстве, который работает подобным образом, позволяя вам беспрепятственно переводить активы между Ethereum, NEAR, а скоро и Aurora - без необходимости доверять третьим лицам. Очень круто!

Прочие мелочи

Вот несколько интересных примечаний в дополнение к этому обзору:

  • Поскольку рилеер NEAR в Ethereum отправляет заголовки блоков NEAR на узел Ethereum LiteNode только раз в 8 часов, между первым и вторым шагами при перемещении токенов в этом направлении существует 8-часовая задержка. (Помните, это связано с тем, что расходы на газ Ethereum делают обновление LiteNode на каждом блоке непомерно дорогим для рилеера). Существует ряд подходов, которые позволили бы нам уменьшить эту задержку, и команда активно работает над этим.
  • На NEAR нода LiteNode хранит все прошлые заголовки блоков Ethereum. Для того, чтобы место в хранилище не вышло из-под контроля, LiteNode "подрезает" (удаляет) блоки старше примерно двух недель. Это означает, что если вы начнете перевод с Ethereum на NEAR и будете бездействовать больше двух недель между первым и вторым шагами, вы не сможете завершить перевод, потому что данные Ethereum, хранящиеся в NEAR, необходимые для проверки вашего "доказательства", будут удалены!
  • Интересной особенностью дизайна заголовка блока NEAR является то, что с помощью одного заголовка блока мы можем вычислить историю прошлых блоков за довольно длительный период. Поэтому теоретически LiteNode на Ethereum нужен только один блок NEAR; однако мы перезаписываем и сохраняем максимум два заголовка блока (текущий подтверждённый и следующий), таким образом сокращая затраты газа и экономя ресурсы.
  • Команда, которая создала Rainbow Bridge - та же, что создала Aurora - NEAR EVM. Поскольку эта команда стала отдельнйо организацией, Rainbow Bridge перейдет под ее управление для эксплуатации, обслуживания и дальнейшего развития.
  • Команда Aurora работает над автоматической финализацией для Rainbow Bridge, так что больше не придется вручную инициировать второй шаг этих переводов. Это будет очень удобно для пользователей (вы сможете начать перевод Ethereum в NEAR и не беспокоиться, что не сможете его завершить).
  • Трансферы между Ethereum и Aurora осуществляются мостом Aurora Bridge, который использует ту же технологию, что и Rainbow Bridge, но дополненную для обработки скрытого этапа переводов NEAR/Aurora.
  • Пользовательский интерфейс и опыт работы с мостом Aurora отличаются от Rainbow Bridge, и в какой-то момент в будущем они будут унифицированы.

Хотя некоторые технические детали были упрощены, теперь у вас есть фундаментальное понимание того, как работает Rainbow Bridge!

Для более подробного описания Rainbow Bridge вы можете прочитать эту статью (на английском), а чтобы быть в курсе всего, что связано с Aurora, обязательно подпишитесь на наш Twitter!