:RU: Вавилонские комиссии - деноминирование транзакционных издержек в нативных токенах

Перевод статьи Babel fees - denominating transaction costs in native tokens - IOHK Blog

Внедрение нового механизма, позволяющего оплачивать транзакционные комиссии в пользовательских токенах на Cardano

image

В классическом “Путеводителе автостопом по Галактике” Дугласа Адамса (Douglas Adams) Вавилонская рыба - это существо, которое позволяет вам слышать любой язык, переведенный на ваш собственный. Эта фантазия универсального перевода обеспечивает осмысленное взаимодействие, несмотря на мириады различных языков в галактике.

В криптовалютном пространстве платформы смарт контрактов позволяют разрабатывать множество пользовательских токенов. Можно ли взаимодействовать с платформой, используя ваш токен, который вы выбрали? Если бы только существовал механизм “Вавилонских комиссий” для перевода используемого вами токена в тот, который требуется платформе для проводки транзакции.

Общепринятая мудрость в блокчейн системах предполагает, что размещение действительной транзакции должно нести определенные затраты для ее отправителя. Аргумент состоит в том, что без такого ограничения ничто не мешает кому-либо перегружать систему тривиальными транзакциями, насыщающими ее емкость и тем самым делающими ее непригодной. Учитывая вышеизложенный принцип, часто можно прийти к выводу, что в любой блокчейн системе, где поддерживаются пользовательские токены, должно быть запрещено платить транзакционные комиссии в таких токенах. Вместо этого транзакции должны облагаться оплатой комиссий в нативных токенах платформы, которые принимаются всеми участниками как ценные. Возможно, такое ограничение нежелательно. Но как можно обойти вытекающую из этого – и, казалось бы, неизбежную – уязвимость?

Искусство возможного

Криптография и теория игр, как известно, делают возможным то, что казалось невозможным. Известные примеры включают обмен ключами по общедоступному каналу, головоломки Меркла и аукционы, где быть правдивым - это рациональная вещь, как аукционы Викри. Так получается и в данном случае.

Во-первых, давайте вспомним, как работают нативные активы в Cardano. Токены могут быть созданы в соответствии с политикой чеканки, и они обрабатываются изначально в леджере вместе с ADA. Леджер Cardano использует расширенную модель UTXO (EUTXO), а выпуск действительной транзакции требует использования одного или нескольких UTXO. UTXO в Cardano может работать не только с ADA, но и фактически с пакетом токенов, который может содержать несколько различных токенов, как взаимозаменяемых, так и невзаимозаменяемых. Таким образом, можно создавать транзакции, которые передают несколько различных токенов с помощью одного UTXO.

Комиссионные за транзакции в леджере указываются в ADA в соответствии с функцией, фиксированной в качестве параметра леджера. Ценная особенность модели EUTXO Cardano заключается в том, что комиссии, необходимые для действительной транзакции, могут быть точно предсказаны до ее публикации. Это уникальная функция, которой не пользуются другие механизмы учета (например, модель на основе счетов, используемая в Ethereum). Действительно, в этом последнем случае комиссии, необходимые для транзакции, могут изменяться в течение времени, необходимого для ее урегулирования, поскольку другие транзакции могут влиять на промежуточное состояние леджера и влиять на необходимые затраты на обработку транзакции.

Теоретический эксперимент

Давайте рассмотрим следующий мысленный эксперимент, который поможет нам приблизиться к нашей цели - вавилонским комиссиям. Представьте себе, что можно осуществить транзакцию, которая сопровождается обязательством, номинированным в ADA, равным сумме комиссий, которые должен заплатить эмитент транзакции. Такая операция была бы неприемлема для леджера. Однако это может быть воспринято как открытое предложение, которое требует покрытия ответственности. Зачем кому-то откликаться на такое предложение? Чтобы получить ответную реакцию, предполагая, что концепция мульти токенов уже присутствует в Cardano, транзакция может предложить некоторую сумму токенов тому, кто покроет ответственность. Это предполагает спотовую торговлю между ADA и предлагаемым токеном(ами) по определенному обменному курсу. Рассмотрим теперь производителя блоков, который видит такую транзакцию. Производитель блоков может создать соответствующую транзакцию, поглощая ответственность, покрывающую ее с ADA, а также претендуя на токены, которые предлагаются.

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

Конкретный пример

Этот механизм, конечно, обусловлен наличием поставщиков ликвидных активов, которые обладают ADA и готовы выдавать соответствующие транзакции. Фактически механизм создает рынок для таких поставщиков ликвидных активов. Например, оператор стейк пула (SPO) может публиковать обменные курсы для конкретных токенов, которые он считает приемлемыми. Например, SPO может объявить, что он примет TokenX по обменному курсу 3:1 в отношении к ADA. Из этого следует, что если транзакция стоит, скажем, ₳0,16, то транзакция может объявить обязательство в размере ₳0,16, а также предложить 0,48 TokenX. В модели нативных активов Cardano это может быть реализовано как один UTXO, несущий пакет токенов со следующей спецификацией (ADA→-0,16, TokenX→0,48). Обратите внимание на отрицательный знак, обозначающий ответственность.

Предположим теперь, что оператор стейк пула собирается произвести блок. Он восстанавливает транзакцию ответственности из мемпула и выдает соответствующую транзакцию, потребляющую UTXO с ответственностью. Соответствующая транзакция переводит 0,48 TokenX на новый выход, который принадлежит SPO. Результирующий блок содержит две транзакции в последовательности. Соответствующая транзакция предоставляет недостающие ₳0,16 в дополнение к комиссиям, которые необходимы для нее самой. На самом деле несколько транзакций могут быть объединены вместе, и их комиссии покрываются одной соответствующей транзакцией.

Схема. Алиса отправляет Бобу количество из 9 токенов типа X с помощью Стейси, SPO, который покрывает транзакционные обязательства Алисы и получает токены типа X для обмена. Подразумеваемый обменный курс между X и ADA составляет 3:1.

Новые измерения стоимости

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

Это иллюстрирует, как нативные активы, модель EUTXO, и простая, но мощная настройка введения обязательств в виде отрицательных значений в пакетах токенов могут учесть Вавилонские комиссии, дающие пользователям возможность оценивать транзакции в любом токене, поддерживаемом системой изначально. Это также показывает уникальное преимущество являться оператором стейк пула в такой системе. Следует отметить, что SPO не обязательно должен быть единственным субъектом в сети, предлагающим покрыть обязательства. Фактически, SPO могут легко сотрудничать - если они этого пожелают - с внешним поставщиком ликвидных активов, который будет инициировать соответствующие транзакции. Кроме того, сторонние провайдеры также могут действовать в сети независимо и выдавать соответствующие транзакции. Тем не менее, преимущество останется за производителями блоков; SPO всегда могут запустить соответствующие транзакции и заменить их своими собственными, если захотят. Это тот случай, когда фронтальные транзакции являются особенностью: это делает возможным для SPO получать оплату в токенах, которые они предпочитают за оказание своих услуг по обработке транзакций.

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

Я благодарен Мануэлю Чакраварти (Manuel Chakravarty), Майклу Пейтону Джонсу (Michael Peyton Jones), Никосу Карагианнидису (Nikos Karagiannidis), Чаду Нестеру (Chad Nester) and Полине Виноградовой (Polina Vinogradova) за полезные обсуждения, предложения и комментарии, связанные с концепцией Вавилонских комиссий и ее реализацией в леджере Cardano. У нас также есть пошаговое видео руководство по этой теме.

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова. Хотите поговорить или задать вопрос о Cardano по-русски? Приглашаем вас в наше уютное сообщество в Telegram. Оставайтесь на связи, все только начинается!