Namada Ethereum Мост

Namada Ru Blog
7 min readNov 1, 2023

--

В этой статье рассматривается конструкция Ethereum моста Namada, начиная с предпосылок и мотивов его создания, далее — принцип работы моста и заканчивая архитектурой смарт-контрактов.

Мост Namada Ethereum Bridge

Блокчейн Namada стремится предоставить единый набор приватности для как можно большего количества активов, поскольку приватность является добавочной. Поэтому взаимодействие — важная составляющая Namada. Кроме реализации протокола IBC, Namada будет иметь интегрированный мост на Ethereum.

В этой статье мы обсудим дизайн и функции этого моста. Мы разберем дизайн на три раздела. В первом разделе мы объясним, почему мы решили создать отдельный мост, и как работает базовый дизайн моста. Во втором разделе мы предоставим подробности по пересылке активов с Ethereum на Namada и обратно с Namada на Ethereum. В третьем разделе мы обсудим архитектуру смарт-контрактов.

Если у вас есть отзывы, вопросы или обсуждения по этой статье, пожалуйста, перейдите в эту тему в на форуме Namada.

Прямая интеграция в Namada

Namada интегрирует Ethereum мост прямо в свой основной протокол, вместо создания отдельного протокола. Валидаторы Namada работают на мосту как часть основного протокола Namada. Для передачи активов на Namada валидаторы также выступают в качестве посредников; другие участники не требуются. Однако для передачи активов на Ethereum будут вовлечены сторонние участники (посредники), но они не несут ответственности за проверку или обеспечение безопасности моста.

Это означает, что работоспособность и безопасность моста Ethereum напрямую зависят от работоспособности и безопасности всей сети Namada. В целом, при передаче активов через мосты на другие сети пользователи должны доверять как валидаторам моста, так и валидаторам сети назначения. Безопасность их активов зависит только от самого слабого звена. Поскольку пользователи уже доверяют валидаторам Namada для использования сети, интеграция моста таким образом не добавляет дополнительных предположений о безопасности. Существуют и другие надежные дизайны мостов, совместимых с IBC, такие как Gravity и Axelar, и Namada также может подключиться и поддержать эти мосты, но это потребует от пользователей принятия дополнительных предположений о безопасности (и некоторой задержки).

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

При голосовании за новый блок Namada валидаторы должны включить подписанный список новых событий, которые они видели, как часть своего голоса. Когда 2/3 валидаторов голосуют за конкретное событие, оно считается истинным, и сеть Namada может действовать на основе этого события. Валидатор должен голосовать только за события, которые маловероятно будут отменены (в контексте Ethereum 1 PoW) или завершены (в контексте Ethereum 2 PoS).

Для контекста, в Ethereum 2 (на данный момент) окончательность определяется, когда 2/3 мощности сети голосуют за событие “дважды”, и в разные эпохи. Более конкретно, первый блок в каждой эпохе может быть завершен, если за него проголосовали две отдельные (но совместные) пары. Первая пара позволяет “обосновать” блок, а вторая — завершить его. Таким образом, окончательность происходит позже, чем в Namada.

События маловероятно будут отменены, если блок содержит достаточно много потомков, называемых “подтверждениями”. Количество подтверждений, необходимых для того, чтобы считать событие “окончательным”, устанавливается на этапе генезиса в Namada, но может быть изменено через управление. В Ethereum 2, когда блок достигает 64 подтверждений, он либо принадлежит к финализированному блоку-контрольному пункту, либо является предком такого блока. Это означает, что для того, чтобы очередной блок на той же высоте был подтвержден кворумом валидаторов Ethereum, под угрозой потери находится не менее трети от общей ставки валидаторов. Таким образом, 64 подтверждения должны считаться достаточными в Ethereum 2.

Стоит отметить, что любой валидатор может подать фальшивое событие, но оно не наберет достаточного количества поддерживающих голосов, чтобы на него можно было повлиять, если только не нарушена вся безопасность Namada. Если бы валидаторы Namada захотели проверить подлинность событий, то для этого потребовалось бы предоставить легкие клиентские доказательства, подтверждающие включение транзакции в Ethereum, породившей данное событие. Это, в свою очередь, потребовало бы от валидаторов Namada запускать легкие клиенты Ethereum для проверки таких доказательств. Разрешение фальшивых событий означает, что валидаторам Namada не нужно запускать клиенты Ethereum light для проверки реальности событий. Это значительно упрощает мост и не оказывает существенного влияния на наши предположения о безопасности (поскольку 2/3 голосов все равно могут подписывать произвольные блоки).

Перевод активов в Namada

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

Перевод активов обратно в Ethereum

Перевод активов обратно в Ethereum, очевидно, не так прост, как его обратный аналог, поскольку в Ethereum не работают полноценные узлы Namada. Это означает, что транзакции на Namada, инициирующие перевод в Ethereum, должны быть переданы соответствующему смарт-контракту.

Это создает множество проблем:

  • Должна быть создана транзакция Ethereum
  • Кто-то должен отправить эту транзакцию
  • Кто-то должен оплатить комиссию за газ
  • Отправлять транзакции по отдельности нерентабельно, необходима пакетная обработка

Для решения этих проблем Namada будет поддерживать пул Ethereum bridge, состоящий из запросов на перевод активов в Ethereum. Этот пул следует рассматривать как mempool. Когда пользователь Namada добавляет запрос на перевод в пул, он может выбрать в качестве платы определенное количество NAM (или другого актива из белого списка). Эта плата депонируется в Namada.

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

Такая транзакция вызовет событие, которое увидят валидаторы Namada. После подтверждения на цепочке депонированная плата за переводы будет выдана тому, кто их передал.

Этот дизайн избегает необходимости в оракулах газа Ethereum, так как рыночные стимулы будут побуждать пользователей определять соответствующие сборы и определять, какие запросы на передачу наиболее экономично передавать. Если комиссия за запрос на передачу слишком низкая, в конечном итоге запрос будет “протухать” и будет удален из пула, и все депонированные активы будут возвращены. Период протухания устанавливается как параметр протокола при создании и может быть изменен через управление Namada.

Доказательства на Ethereum

Как мы упомянули выше, мы должны представить подписанный корень Меркля соответствующим контрактам Ethereum для ретрансляции запросов на передачу. Фактически, любая транзакция, подписанная кворумом валидаторов, должна быть принята контрактами Ethereum, так как они фактически представляют собой доказательства Namada lightclient.

Для того чтобы сделать такие доказательства экономичными по газу, они должны использовать хеширование Keccak и формат сериализации ABI Ethereum. Валидаторам Namada также необходимы учетные записи на Ethereum, позволяющие им подписывать доказательства с ключами secp256k1.

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

Это обновление набора валидаторов должно быть подписано как минимум 2/3 валидаторами по доле предыдущей эпохи, уполномочивающими это обновление с использованием своих ключей Ethereum. Когда начинается новая эпоха, новый набор валидаторов должен утвердить обновление набора валидаторов на следующую эпоху в рамках своего голоса за блок.

Их голос будет подписан их ключом Namada и будет содержать новый набор валидаторов, подписанный их ключом Ethereum. Наборы валидаторов работают последовательно, поэтому они известны за две эпохи вперед. Таким образом, “передача власти” привязана к согласию и доступна в конце эпохи.

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

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

Смарт контракты

Архитектура

В рамках моста в основной сети Ethereum будет развернуто несколько смарт-контрактов. Основными контрактами, с которыми будут взаимодействовать пользователи, являются Bridge Contract и контракт wNAM. Контракт Bridge Contract используется для отправки или получения активов из Namada. Контракт wNAM представляет собой ERC20-токен для разрешенного обернутого NAM на Ethereum. Следует отметить, что между Namada и Ethereum можно передавать только токены ERC20. Это означает, что Эфир не может быть передан, но может быть передан обернутый Эфир (обертывание может быть автоматизировано с помощью интерфейса).

Кроме того, существуют еще три контракта: Proxy, Governance и Vault. Контракт Proxy — это фиксированный контракт, в котором хранятся адреса всех последних контрактов. Это делается для того, чтобы в случае обновления контракта можно было найти адрес, по которому этот контракт развернут.

Контракт Governance содержит наборы валидаторов, необходимые для проверки доказательств. Он также используется при замене контрактов, остановке моста и при необходимости доступа к средствам, заблокированным в мосте.

Контракт Vault представляет собой депонирование и учет всех остатков токенов в активах моста. Выделение его в отдельный контракт позволяет минимизировать объем хранилища, которое необходимо переносить при обновлении контракта Bridge.

Глубинная оборона

Как мы уже говорили, валидаторы Namada должны иметь учетные записи Ethereum с открытыми ключами, которые известны мосту. Фактически валидаторы должны иметь как горячие, так и холодные ключи. Горячие ключи — это те, которые используются регулярно, в то время как холодные ключи должны использоваться редко, поскольку они предназначены для выполнения конфиденциальных операций. До сих пор под “ключом Ethereum” мы подразумевали горячие ключи.

Валидаторы могут использовать свои холодные ключи для восстановления моста в экстремальных случаях, например, при сбое liveness. Кворум валидаторов Namada может использовать свои холодные ключи для извлечения средств, депонированных в хранилище, на любой адрес Ethereum.

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

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

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

Оригинал статьи на английском: English (15.02.2023)
Автор перевода: ghotoman

Будь в курсе новостей и присоединяйтесь к сообществу Namada!

Сайт / Блог / Твиттер / Дискорд / Форум / Подкасты / Документы / Specs / Ютуб / Календарь сообщества / Телеграм / Reddit /

Подпишитесь, для получения обновлений на свой email.

--

--

Namada Ru Blog

Namada - блокчейн первого уровня PoS, основанный на IBC, разработанный для пользователей Cosmos и совместим с Ethereum! Powered by @NickShakel & @Ghotomanc