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 было внесено несколько других улучшений, таких как:
- Возврат последовательности пакетов после
MsgTransferResponse
(улучшение Dev UX) - Делаем
SendTransfer
метод закрытым
Вывод
Позволяя передавать ликвидность и произвольные данные за одно действие, добавление поля memo значительно изменит способ, которым пользователи осуществляют транзакции и управляют активами между цепочками.
Компонуемость между цепочками всегда была основным принципом разработки IBC. С принятием внутрипротокольной передачи метаданных вскоре большее количество цепочек приложений сможет в большей степени компоноваться друг с другом.
Адитья Рави Радж работает в Interchain GmbH и является аналитиком протокола в команде Inter-Blockchain Protocol (IBC).