:RU: Сравнение комиссий на платформах Cardano и Ethereum

Перевод статьи https://cexplorer.io/article/comparison-of-fees-on-cardano-and-ethereum-platforms

image

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

Затраты на выполнение смарт контрактов

Выполнение смарт контрактов в распределенной сети потребляет компьютерные ресурсы. Пользователи должны заплатить комиссию за выполнение смарт контракта. Выполнение контракта требует больше ресурсов, чем проверка обычной транзакции, поэтому комиссии обычно выше. Для измерения объема вычислительных усилий, необходимых для выполнения смарт контракта в Ethereum, используется концепция газа (GAS). GAS - это единица измерения, представляющая наименьшую долю работы, которую может выполнить виртуальная машина Ethereum (EVM).

Каждая операция, которая может быть выполнена EVM, имеет фиксированную стоимость газа. Например, сложение двух чисел обходится в 3 GAS, в то время как сохранение значения в памяти обходится в 20 GAS. Выполнение одних и тех же шагов в рамках одного и того же смарт контракта всегда будет стоить одно и то же количество GAS.

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

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

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

Cardano использует иную систему комиссий, чем Ethereum, которая не зависит от газа или его цены.

Система комиссий Cardano основана на двух параметрах протокола: A и B. Формула для расчета минимальной комиссии за транзакцию (tx) такова: комиссия = A + B * размер(tx), где:

  • A и B - это параметры протокола, которые можно настроить
  • размер (tx) - размер транзакции в байтах

Параметр A отражает фиксированную стоимость обработки любой транзакции, независимо от ее размера или сложности. Параметр B отражает переменную стоимость обработки транзакции в зависимости от ее размера. Чем больше транзакция, тем больше ресурсов требуется для ее хранения и обработки.

Параметры протокола A и B в настоящее время установлены на 0,155381 ADA и 0,000043946 ADA/байт соответственно. Например, если транзакция имеет размер 200 байт, то комиссия составит 0,164271 ADA (0.155381 + 0.000043946 * 200 ).

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

За исполнение одного и того же контракта на Ethereum пользователь может каждый раз платить разное количество ETH, в то время как, в случае с Cardano, комиссия в ADA будет каждый раз одинаковой. Комиссии в Ethereum непредсказуемы, в то время как в Cardano они предсказуемы. Все осложняется тем фактом, что рыночная стоимость ETH и ADA также непредсказуема.

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

Другая проблема заключается в том, что параметры протокола A и B должны быть тщательно откалиброваны, чтобы сбалансировать интересы пользователей, разработчиков и операторов пулов, а также адаптироваться к изменениям объема транзакций, цен на оборудование и рыночной стоимости ADA.

Неудачные транзакции

Еще одно различие между Cardano и Ethereum касается оплаты за неудачные транзакции и влияние неудачных транзакций на леджер.

В Ethereum пользователи должны платить ETH также за неудачные транзакции. Это связано с тем, что валидаторам по-прежнему необходимо подтверждать транзакции и выполнять смарт контракты, даже если они терпят неудачу или отменяются. Комиссия выплачивается за вычислительные ресурсы, которые потребляются транзакцией, независимо от ее результата. Это может привести к непредвиденным затратам и потерям для пользователей.

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

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

Транзакции в Ethereum могут иметь непредсказуемые последствия для леджера, в зависимости от результатов смарт контрактов, которые они запускают. Некоторые операции могут завершиться сбоем или отмениться по различным причинам, таким как:

  • Не достаточно газа: Если транзакция или смарт контракт превысят свой лимит газа, который является максимальным количеством газа, за которое пользователь готов заплатить, то она завершатся неудачей и отменит все свои последствия, но все равно израсходует весь газ и заплатит максимальную комиссию.
  • Недопустимый код операции: Если транзакция или смарт контракт обнаруживает недопустимый код операции, который представляет собой инструкцию, не распознанную EVM, то он генерирует исключение и отменяет все его эффекты. Это может произойти из-за ошибок в коде смарт контракта или попыток злоумышленников использовать уязвимости.
  • Код операции возврата: Если транзакция или смарт контракт явно вызывает код операции возврата, который является инструкцией, позволяющей смарт контракту прервать выполнение и отменить все его последствия, то он это сделает. Это может произойти по различным причинам, таким как несоблюдение определенных условий, запуск определенных событий или применение определенных правил.

Эти непредсказуемые последствия для леджера могут привести к непредвиденным затратам и потерям для пользователей, которые инициируют транзакции или развертывают смарт контракты. Например, если пользователь отправляет ETH на смарт контракт, который по какой-либо причине завершается сбоем или отменяется, то пользователь потеряет отправленный ETH, а также заплатит комиссию за неудачную транзакцию.

Модульный подход по сравнению с монолитным

Платформы Cardano и Ethereum имеют разные подходы к тому, как они обрабатывают выполнение и верификацию смарт контрактов. Cardano использует модульный подход, при котором смарт контракты состоят из двух компонентов: ончейн кода и оффчейн кода. Ethereum использует монолитный подход, при котором смарт контракты выполняются и проверяются полностью на блокчейне.

Разные подходы влияют на комиссии, производительность, безопасность и масштабируемость. Сумма комиссий за услуги ончейн зависит от масштабируемости.

Давайте сначала рассмотрим масштабируемость.

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

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

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

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

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

Зависимость комиссии от размера транзакции имеет еще одно преимущество, о котором мы поговорим ниже.

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

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

Давайте теперь рассмотрим различные концепции понимания того, что такое смарт контракт.

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

image

Ончейн код - это скрипт (скрипт верификации), который запускается в блокчейне для проверки транзакций, связанных со смарт контрактом. Оффчейн код - это приложение, которое запускается на компьютере пользователя для генерации транзакций, соответствующих логике смарт контракта. Ончейн код написан на Plutus и скомпилирован в Plutus Core, языке низкого уровня, который работает на виртуальной машине Cardano (CVM). Оффчейн код может быть написан на любом языке, который может взаимодействовать с API ноды Cardano.

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

Ончейн логика также может выполнять некоторые сложные операции, такие как генерация случайных чисел, создание невзаимозаменяемых токенов или реализация стейт-машин.

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

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

Ethereum использует монолитный подход, при котором смарт контракты выполняются и проверяются полностью на блокчейне. Смарт контракты написаны на языках высокого уровня, таких как Solidity или Vyper, и скомпилированы в байт-код, который выполняется на виртуальной машине Ethereum (EVM). Каждая нода в сети должна запускать один и тот же код смарт контракта для каждой транзакции, в которой задействован смарт контракт.

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

image

Модульный подход Cardano имеет некоторые преимущества перед монолитным подходом Ethereum с точки зрения комиссий и масштабируемости.

На Cardano можно создать сложный сервис с очень низкими комиссиями. Большая часть функциональных возможностей может выполняться оффчейн, и только необходимые детали могут быть выполнены ончейн. Чем меньше транзакция Cardano, тем меньше комиссия. Комиссия за использование оффчейн, естественно, может быть значительно ниже (или даже почти не взиматься, если пользователь запускает бэкенд локально).

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

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

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

Вывод

Некоторые считают, что рынок комиссий - лучшее решение для получения части ончейн ресурсов, в то время как другие полагают, что блокчейн сети однажды будут доступны только богатым. Осмелюсь сказать, что вопрос о том, как установить правильную политику взимания комиссий, является нерешенной темой, включая Bitcoin транзакции. Если мы хотим, чтобы комиссия за услуги ончейн была низкой и стабильной, важно обеспечить масштабируемость.

Невозможно однозначно сказать, что лучше - Cardano или Ethereum. Обе платформы имеют свои преимущества и недостатки. Это всегда зависит от команды, какую функциональность они хотят реализовать и что им предлагает конкретная платформа.

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

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