crosschain
November 15, 2022

IBC - выход за рамки простой передачи токенов.

Перевод оригинальной статьи.

IBC был запущен в марте 2021 года с единым приложением, построенным поверх него — взаимозаменяемыми переводами токенов (ICS-20). Несколько месяцев спустя Cosmos Hub и Osmosis возглавили усилия по выводу этого приложения на рынок.

В то время как передача токенов была хлебом и маслом для взаимодействия с блокчейном, они стремятся вывести этот примитив на шаг вперёд.

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

Это достигается за счет использования мемо-поля в пакетах передачи взаимозаменяемых токенов.

Недавние улучшения, внесенные в передачу токенов ICS-20, вводят необязательное memoполе в FungibleTokenPacketDataструктуру:

Это позволяет передавать произвольные данные в виде строки вместе с передачей токенов. Например, в поле памятки может быть указана такая информация, как действие пользователя/данные о вызове, количество знаков после запятой, номинал (номинал), символ тикера и логотип.

Обратите внимание, что метаданные в поле memo не используются в самом ICS-20, но вместо этого промежуточное ПО или пользовательский контракт CosmWasm могут "обернуть" протокол передачи для анализа метаданных и выполнения пользовательской логики на их основе.

Поле memo будет в версии ibc-go v6.0.0, которая включает в себя изменение API. В версии 6.0.0 вы можете передать его в memo качестве аргумента NewFungibleTokenPacketData, как показано здесь . В версиях v2.5, v3.4, v4.2 и v5.1 вы по-прежнему можете использовать memo-поле — без нарушения API — путем присвоения значения memo непосредственно после инициализации, NewFungibleTokenPacketData , как показано здесь.

Примечание. Пакет IBC с непустым полем memo не будет доставлен к месту назначения (после распаковки пакета), если цепочка получения использует версию ibc-go, отличную от v6.0.0, v2.5, v3.4, v4.2. или v5.1.

Какую пользу это дает вам, как конечному пользователю?

Если сегодня пользователь хочет отправить ATOM из Cosmos Hub в Osmosis, а затем предоставить ликвидность пулу (или выполнить другие действия, такие как обмен/ставка/размещение токенов в качестве залога), он должен подписать и одобрить две разные транзакции — одну. отправить ATOM на осмос, а затем еще один, чтобы добавить ликвидности.

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

Недавно представленное поле memo обеспечивает инфраструктуру, позволяющую сделать это возможным. Вскоре пользователь сможет отправлять токены и выполнять некоторые действия программно (обмен, стейкинг, предоставление ликвидности и т. д.), эффективно позволяя объединять несколько транзакций в одну.

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

Другие улучшения ICS-20

Помимо добавления поля memo в структуру пакета передачи, в ICS-20 было внесено несколько других улучшений, таких как:

Вывод

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

Компонуемость между цепочками всегда была основным принципом разработки IBC. С принятием внутрипротокольной передачи метаданных вскоре большее количество цепочек приложений сможет в большей степени компоноваться друг с другом.

Об авторе:

Адитья Рави Радж работает в Interchain GmbH и является аналитиком протокола в команде Inter-Blockchain Protocol (IBC).