Solving Bitcoin’s gas issue (without a fork) | Opinion
Решение проблемы "газа" в Bitcoin (без форка) | Мнение

Поделиться
Ссылка скопирована
Отказ от ответственности: Мнения и взгляды, изложенные здесь, принадлежат исключительно автору и не отражают мнения редакционной коллегии crypto.news.
Каждая платформа смарт-контрактов имеет встроенный актив для оплаты комиссий. Например, Ethereum ( ETH) использует ETH, Solana ( SOL) использует SOL, но в случае с Bitcoin ( BTC), ситуация становится сложной. Если вы хотите создавать сложные приложения, вы обычно вынуждены использовать экономику другой сети.
Например, в Stacks комиссии оплачиваются в STX. В слоях Bitcoin, использующих EVM, вам могут сказать, что BTC является "газом", но это обычно является локальной для этого слоя реализацией с соглашениями, аналогичными EVM (включая 18 десятичных знаков), и вы все равно работаете в этой L2-среде. Сам Bitcoin, тем временем, уже имеет хорошо отлаженный рынок комиссий, где пользователи делают ставки за место в блоке в сатоши/vB, а майнеры отдают приоритет более высоким ставкам.
Учитывая это, что если бы взаимодействие со смарт-контрактом можно было инициировать и оплачивать как обычную транзакцию Bitcoin, с комиссиями в BTC, без дополнительных "газовых" токенов или форков, при этом сама логика смарт-контракта выполнялась в другом месте и оставалась надежно привязанной к Bitcoin? OpNet стремится предложить решение.
Возможно, вам также будет интересно: Слои второго уровня Bitcoin не работают, потому что это не настоящие L2 | Мнение
Bitcoin не предназначен для выполнения вычислений (это проблема)
Рынок комиссий Bitcoin отлично справляется с одной задачей: ценообразованием места в блоке. Вы конкурируете в сатоши/vB, майнеры выбирают транзакции с самыми высокими ставками, и сеть остается простой и устойчивой к злоупотреблениям. Bitcoin не предназначен для работы в качестве универсальной среды выполнения, где цепочка может измерять и взимать плату за произвольные вычисления. Bitcoin Script намеренно является stateless (не имеющим состояния) и не является полной системой (не Turing-complete), в частности, в нем отсутствуют циклы или операторы перехода, чтобы каждый узел мог предсказуемо проверять скрипты, не открывая двери для неограниченных вычислений.
Именно поэтому большинство подходов к смарт-контрактам Bitcoin в конечном итоге размещают выполнение на отдельной системе, которая может измерять вычисления и иметь свой собственный рынок комиссий. Как только у вас появляется этот отдельный слой выполнения, он обычно имеет свой собственный актив для оплаты комиссий (например, Stacks взимает комиссии в STX).
Это не идеально, и система, в которой оплата могла бы осуществляться в нативном рынке комиссий Bitcoin, при этом выполнение происходило бы в другом месте, была бы предпочтительнее.
Выполнение - это не то, что Bitcoin должен делать.
Как только вы осознаете, что Bitcoin Script намеренно ограничен (не имеет состояния и не предназначен для неограниченных вычислений), вы начинаете думать о том, как заставить Bitcoin фиксировать результаты и осуществлять платежи.
Действительно, выполнение может происходить в специальной виртуальной машине, предназначенной для детерминированного выполнения логики смарт-контрактов, в то время как Bitcoin остается базовым уровнем, который фиксирует время, определяет порядок и устанавливает цены для взаимодействий посредством существующего механизма комиссий. В архитектуре OpNet логика контрактов выполняется виртуальной машиной, ориентированной на Wasm (OP-VM), в то время как вся остальная инфраструктура узла специально разработана для управления и выполнения смарт-контрактов с использованием существующих механизмов транзакций и UTXO Bitcoin.
Важно отметить, что это не связано с созданием нового актива для оплаты комиссий. Bitcoin не нуждается в механизме учета вычислительных ресурсов в виде "газа". Ему необходимо быть конечным уровнем урегулирования, в который в конечном итоге поступают все платежи и к которому они привязаны.
Как выглядит вызов контракта, оплаченный в BTC
Наша модель взаимодействия основана на последовательности "симуляция-выполнение", а не на традиционной модели выполнения смарт-контрактов, при этом финальный этап выполнения происходит в виде фактической транзакции Bitcoin. Сначала ваше приложение вызывает метод контракта в режиме симуляции. Этот запрос проходит через провайдера к узлу OpNet, который выполняет контракт в своей виртуальной машине и возвращает результат (включая оценки стоимости "газа"/комиссии), не отправляя ничего в сеть Bitcoin.
Если вызов изменяет состояние, вы берете этот результат и отправляете его как "выполнение". В этот момент библиотека создает транзакцию Bitcoin, подписывает ее и отправляет в сеть Bitcoin. Стоит помнить два момента:
- Комиссии майнерам являются нативными для Bitcoin. Вы выбираете комиссию
feeRateв сатоши за байт (sat/vB), опционально добавляете приоритетную комиссиюpriorityFeeв сатоши и устанавливаете максимальный лимит расходов на комиссии с помощью параметраmaximumAllowedSatToSpend(параметр буквально называетсяmaximumAllowedSatToSpend). - Адрес целевого контракта представлен в формате, аналогичном P2OP. Экземпляр контракта предоставляет формат адреса P2OP, и транзакции ссылаются на "адрес контракта P2OP" в качестве адреса назначения контракта.
В то же время, система учета вычислительных ресурсов OpNet по-прежнему существует. Но она оценивается в сатоши (оцениваемый "газ" в сатоши, возврат в сатоши и т.д.), поэтому единица измерения никогда не переходит в отдельную токеновую экономику.
Меньше препятствий, более понятные стимулы
Пользователям больше не нужно использовать вторую систему оплаты комиссий, чтобы взаимодействовать с приложениями. В Bitcoin комиссии уже являются аукционом за место в блоке, цена устанавливается за байт и выплачивается майнерам. Когда вызовы контрактов являются просто транзакциями Bitcoin, вы возвращаетесь к знакомой среде (с комиссиями sat/vB, загруженности пула транзакций и стимулам для майнеров), не требуя изучения отдельного рынка токенов "газа".
Кроме того, инструменты используют стандартные рабочие процессы Bitcoin, такие как обработка UTXO, подключение к провайдерам и даже автономная/холодная подпись. Контракты работают во время выполнения Wasm и написаны на AssemblyScript, что обеспечивает выразительность, аналогичную Solidity, не предполагая, что Bitcoin Script внезапно стал виртуальной машиной.
Bitcoin как "газ", без второго токена.
Утверждение о том, что BTC не может функционировать в качестве "газа", обычно основывается на предположении, что базовый слой должен измерять вычислительные ресурсы для определения цены. Bitcoin не измеряет вычислительные ресурсы; он измеряет пространство блока и фиксирует стоимость.
Решение заключается в том, чтобы позволить виртуальной машине выполнять операции детерминированно, а затем направлять каждое взаимодействие, изменяющее состояние, через стандартную транзакцию Bitcoin, где комиссии выражаются в привычных терминах, таких как sat/vB, и ограничены в сатоши. В нашем случае это реализовано на уровне клиента с помощью таких параметров, как feeRate и maximumAllowedSatToSpend.
Таким образом, возможно, что BTC как "газ" действительно является жизнеспособным решением. Комиссии остаются в нативной валюте BTC на протяжении всего процесса, в то время как выполнение контракта остается основанным на WebAssembly (AssemblyScript → Wasm), что сохраняет логику выразительной, не меняя валюту комиссии.
Подробнее: DeFi убил токенизацию, но ProFi возвращает ее | Мнение

Frederic Fosco
Frederic Fosco, также известный как Danny Plainview, является соучредителем OP_NET и занимается Bitcoin с 2013 года. Он запустил OP_NET, чтобы сделать Bitcoin нативно программируемым, открывая возможности для смарт-контрактов и DeFi-примитивов непосредственно на первом уровне. Его цель – создание реальных ончейн-функций без мостов, хранителей, оберток или синтетического Bitcoin, сохраняя само custody и децентрализацию в качестве безусловных приоритетов.