Статья Мэтта Хендерсона из Aurora
Rainbow Bridge на NEAR уникален в криптографии, он единственный, не требующий разрешения и доверия мост к Ethereum. В этой статье мы расскажем, как это работает!
NEAR создал Rainbow Bridge — нечто уникальное и ценное в криптопространстве, полностью «надежный» мост для передачи токенов между Ethereum и NEAR. Rainbow Bridge – это Aurora. Несмотря на то, что существуют технические описания моста, в этой статье объясняется, как он работает простым языком. Думаю, те, кто хоть немного знаком с криптографией, поймут как работает этот мост.
Концепция
Давайте представим, что я хочу перевести 20 DAI из Ethereum в NEAR. Поскольку физическая передача токенов между сетями невозможна, это означает, что нам нужно вывести 20 DAI из обращения на Ethereum и ввести 20 DAI в обращение на NEAR, чтобы глобальное предложение DAI не изменилось.
Вот как я мог бы сделать это без доверия и разрешения:
- Я сообщаю сети Ethereum, что хочу перевести 20 DAI куда-то еще.
- Сеть Ethereum блокирует мои 20 DAI в хранилище (смарт-контракт), чтобы они были изъяты из обращения.
- Убедившись, что эти 20 DAI заблокированы в Ethereum, я прошу NEAR создать для меня там 20 новых DAI.
- NEAR, конечно, мне не доверяет, поэтому просит доказать, что я заблокировал 20 DAI на Ethereum.
- Я предоставляю NEAR доказательство того, что я заблокировал эти DAI на Ethereum.
- NEAR самостоятельно проверяет мое доказательство, а затем создает 20 новых DAI для использования в NEAR.
Позже, если я захочу перенести свой DAI из NEAR обратно в Ethereum, я просто отменю вышеописанную процедуру. Отлично, да?
Деятели
Итак, теперь давайте посмотрим, как все это происходит на практике, используя Rainbow Bridge. Описание будет включать в себя ряд технических компонентов, из которых состоит мост:
Пользовательский интерфейс Rainbow Bridge — это веб-сайт, на котором вы, как пользователь, взаимодействуете с мостом для передачи своих активов между сетями.
LiteNode — это как узел обнаружения, за исключением того, что он хранит только заголовки блоков, что позволяет значительно увеличить пространство для хранения. LiteNode реализует как смарт-контракт, и у нас есть два из них — один в сети Ethereum, в которых находятся заголовки блоков NEAR, а другой расположен в NEAR, в которых находятся заголовки блоков Ethereum.
( LiteNode на самом деле упоминается в других статьях как «легкий клиент». Если вы спросите меня: «Что хранит данные блокчейна?». Моя первая мысль будет «узел», так и в статье, чтобы помочь с моделями, я называю ее LiteNode.)
Ретрансляторы. Поскольку LiteNodes — это смарт-контракты, они не могут запускаться и обновляться сами по себе. Ретрансляторы — это скрипты, работающие на традиционных серверах, которые периодически считывают блоки из одного блокчейна и передают их на LiteNode, работающий на другом. Таким образом, ретрансляторы поддерживают LiteNodes в актуальном состоянии.
Поскольку существуют транзакционные издержки, т.е. плата за газ — каждый раз, когда ретранслятор обновляет LiteNode, узел в NEAR (содержащий блоки Ethereum) обновляется в каждом блоке Ethereum (поскольку плата за газ NEAR невелика), в то время как частота обновления в Ethereum (содержащая блоки NEAR) настраивается и определяется экономическим бюджетом (в настоящее время от 12 до 16 часов).
Коннекторы. Коннекторы — это смарт-контракты, отвечающие за всю логику, связанную с межсетевым управлением активами данного типа. Как и LiteNodes, они существуют парами — один работает на Ethereum, а другой — на NEAR. Например, есть пара «коннекторов ETH», отвечающих за передачу ETH между двумя сетями. И есть пара «соединитель ERC-20», отвечающая за передачу токенов ERC-20. Кто-то может использовать коннектор «NFT», коннектор «Прогнозирование результатов рынка» или коннектор «Результаты голосования DAO», если пожелает. Любой актив или данные могут быть переданы через Rainbow Bridge, если существуют соответствующие коннекторы!
Соберем всё воедино
Чтобы понять, как все эти элементы работают вместе, и позволяют мне без разрешения и без доверия передавать токены между Ethereum и NEAR, снова рассмотрим наш исходный пример:
- Используя пользовательский интерфейс Rainbow Bridge, я запускаю перевод 20 DAI из Ethereum в NEAR.
- Когда я подтверждаю первую из двух транзакций в MetaMask, Rainbow Bridge связывается с соединителем ERC-20 на Ethereum (поскольку DAI — это токен ERC-20), который передает и блокирует 20 DAI в своем хранилище. Эти DAI больше не используются в сети Ethereum.
- На основе данных заголовка в моем блоке транзакций пользовательский интерфейс Rainbow Bridge вычисляет криптографическое «доказательство» того, что я действительно заблокировал 20 DAI.
- Поскольку в следующий раз мы собираемся попросить сеть NEAR создать DAI на основе того, что только что произошло в Ethereum, мы сначала ждем, пока ретранслятор отправит около 20 заголовков блоков Ethereum на LiteNode, работающий на NEAR. Это сделано для безопасности, так же как ваша криптобиржа заставляет вас ждать некоторое количество подтверждений, прежде чем зачислить ваши средства.
- После этого ожидания пользовательский интерфейс Rainbow Bridge позволяет нам сделать второй шаг в этом процессе — попросить коннектор ERC-20 в NEAR создать для нас 20 новых DAI в сети NEAR.
- Когда мы отправляем этот запрос соединителю ERC-20, мы предоставляем наше криптографическое доказательство, которое мы получили ранее, «доказывая», что мы заблокировали 20 DAI на Ethereum.
- Коннектор ERC-20 на NEAR затем будет искать заголовок нашего блока Ethereum в LiteNode, работающем на NEAR, и произведет собственный независимый расчет криптографического доказательства.
- Если предоставленное нами доказательство совпадает с доказательством, которое вычисляет коннектор ERC-20, то он знает, что эти 20 DAI заблокированы в Ethereum — и что это я их заблокировал! Затем он приступает к созданию (чеканке) 20 новых DAI на NEAR и переводит их на мой кошелек.
Когда мы хотим перевести DAI из NEAR обратно в Ethereum, процесс происходит в обратном порядке. Вместо того чтобы блокировать 20 DAI в NEAR, мы уничтожаем их — так называемое «сжигание», а затем предоставляем «доказательство» этого сжигания в Коннектор, работающий на Ethereum. Имея доступ к блокам NEAR в LiteNode, работающем на Ethereum, он подтверждает наше доказательство, выпускает 20 DAI из своего хранилища и отправляет их на наш кошелек!
Кратко мы описали как работает Rainbow Bridge! В настоящее время это единственный мост Ethereum в криптовалюте, который работает таким образом, позволяя вам без разрешения передавать активы между Ethereum, NEAR и, вскоре, Aurora, без необходимости доверять третьим сторонам. Это очень круто!
Oстатки
Вот несколько интересных фактов, дополняющих этот обзор:
- Поскольку NEAR-to-Ethereum ретранслятор отправляет заголовки блоков NEAR в Ethereum LiteNode каждые 16 часов, при перемещении токенов в этом направлении между первым и вторым этапами возникает 16-часовая задержка. (Помните, это связано с тем, что сборы за газ 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 Bridge отличаются от Rainbow Bridge и в будущем они будут унифицированы.
Хотя некоторые технические детали были упрощены, теперь у вас есть общее представление о том, как работает Rainbow Bridge!
Подробное описание Rainbow Bridge вы можете прочитать в этой статье, а чтобы быть в курсе всего, что связано с Авророй, обязательно подписывайтесь на Аврору в Твиттере!