ビットコインのガス問題を(フォークなしで)解決する | オピニオン

すべてのスマートコントラクトプラットフォームには、料金資産が組み込まれています。例えば、イーサリアム(ETH)にはETH、ソラナ(SOL)にはSOLがありますが、ビットコイン(BTC)の場合は事情が複雑です。表現力豊かなアプリを望む場合、通常は別のネットワークの経済性を採用することになります。

概要

  • ビットコインは計算を価格付けせず、ブロックスペースのみを対象としています。イーサリアムやソラナとは異なり、BTCの料金市場は取引のインクルージョンに対してsat/vBで構築されており、スマートコントラクトの実行に対して計測されていません。
  • 実行はオフチェーンで行われる一方、決済はビットコイン上に留まります。OpNetのようなシステムは、Wasm VMでコントラクトロジックを実行しながら、支払いと最終状態の変更を通常のBTC取引を通じて行います。
  • BTCは、新たなトークンを発行せずにガス資産として機能できます。実行コストをサトシ単位で価格付けし、ビットコイン取引を通じてやり取りを決済することで、アプリは第二の料金経済を作り出す必要がありません。

例えば、Stacksでは料金をSTXで支払います。EVMスタイルのビットコインレイヤーでは、BTCがガストークンだと伝えられることがありますが、これは通常、EVMの規則(18進数を含む)を持つL2ネイティブの表現であり、そのL2環境内で操作しています。一方、ビットコイン自体は既にクリーンな料金市場を持ち、ユーザーはsat/vBでブロックスペースに入札し、マイナーは高い料金レートを優先します。

この点を踏まえると、スマートコントラクトの操作を通常のビットコイン取引として開始・支払いができ、料金はBTCで(追加のガストークンやフォークなし)支払われ、スマート部分は他の場所で実行され、ビットコインに証明可能に紐付けられるとしたらどうでしょうか?OpNetはその答えを提供しようとしています。

ビットコインは計算を計測しない(それが問題)

ビットコインの料金市場は、ブロックスペースの価格付けに優れています。sat/vBで競争し、マイナーは最高料金を選び、ネットワークはシンプルで対立的に堅牢です。ビットコインは、任意の計算を計測し料金を課す汎用実行環境を持ちません。Bitcoin Scriptは意図的にステートレスで、ループやgotoを持たず、すべてのノードがスクリプトを予測可能に検証できるようになっています。

そのため、多くのビットコインスマートコントラクトのアプローチは、計算を計測できる別のシステムに実行を委ねることになります。その別の実行層には、通常、別の料金資産(例えばStacksはSTXで料金を請求)があります。

これは理想的ではなく、ビットコインのネイティブ料金市場内で支払いを維持しつつ、実行を他に移すシステムが望ましいのです。

実行はビットコインの役割ではない

ビットコインScriptが意図的に制限されている(ステートレスで無制限の計算に向いていない)ことを受け入れると、次に考えるのは、ビットコインが結果と支払いを決済する方法です。

実行は、スマートコントラクトロジックを決定論的に実行できる専用の仮想マシンで行われ、ビットコインはその基盤層として、既存の料金市場を通じてインタラクションのタイムスタンプ、順序付け、価格付けを行います。OpNetの設計では、コントラクトロジックはWasm指向のVM(OP-VM)で評価され、より広範なノードスタックは、ビットコインの既存の取引とUTXOメカニズムを用いてスマートコントラクトを管理・実行するように明示的に構築されています。

重要なのは、これが新しい料金資産とペアになっていないことです。ビットコインは計算を計測する必要はなく、最終決済層としてすべてが最終的に支払われ、紐付けられるべきです。

BTC支払いのコントラクト呼び出しの例

私たちのインタラクションモデルは、従来のスマートコントラクト実行パターンではなく、シミュレーション後に支出する流れに従います。最終的な実行は実際のビットコイン取引として行われます。まず、アプリはコントラクトメソッドをシミュレーションモードで呼び出します。そのリクエストはプロバイダーを経由してOP-ネットのノードに送られ、そこでコントラクトがVM内で実行され、ガス/料金見積もりを含むCallResultをBitcoinにブロードキャストせずに返します。

もし状態を変更する呼び出しであれば、そのCallResultを受け取り、実行として送信します。この時点で、ライブラリはビットコイン取引を構築し、署名し、ビットコインネットワークにブロードキャストします。覚えておくべきポイントは二つです。

  • マイナー料金はビットコインネイティブです。sat/vBの料金レートを選び、必要に応じてsatsのpriorityFeeを追加し、maximumAllowedSatToSpend(パラメータ名はそのまま)で料金支出の上限を設定します。
  • コントラクトのターゲットはP2OPスタイルのコントラクトアドレスで表現されます。コントラクトインスタンスはp2opアドレス形式を公開し、トランザクションは「p2opコントラクトアドレス」をコントラクト宛先として参照します。

一方、OpNetの独自の計測も依然として存在します。ただし、それはサトシ単位(推定SATS Gas、SATSでの払い戻しなど)で価格付けされているため、単位が別のトークン経済にずれることはありません。

摩擦を減らし、インセンティブを明確に

ユーザーはもはや、アプリとやり取りするために第二の料金経済を採用する必要はありません。ビットコインでは、料金はすでにブロックスペースのオークションであり、バイトあたりの価格でマイナーに支払われています。コントラクト呼び出しがビットコイン取引であれば、馴染みのある土壌に戻ることになります(sat/vB料金、メモリプールの動き、マイナーのインセンティブなど)。別のガストークン市場を学ぶ必要はありません。

また、ツールは標準的なビットコインのワークフロー(UTXO管理、プロバイダー接続、オフライン/コールド署名など)に寄せられています。コントラクトはWasmランタイムに存在し、AssemblyScriptで書かれ、Solidityのような表現力を目指しつつ、ビットコインScriptが突然VMになったわけではありません。

ガスとしてのビットコイン、第二のトークンなしで

BTCがガスとして機能し得ないとする主な理由は、基盤層が計算を計測して価格付けすべきだという前提にあります。ビットコインは計算を計測しません。ブロックスペースを計測し、価値を決済します。

解決策は、仮想マシンに実行を決定論的に処理させ、その後、すべての状態変更を標準的なビットコイン取引にルーティングし、料金をsat/vBのような馴染みのある用語で表現し、サトシ単位で上限を設けることです。私たちの場合、これはクライアント側のパラメータ(feeRateやmaximumAllowedSatToSpend)を通じて実現されています。

したがって、BTCをガスとして使うことは本当に実現可能かもしれません。料金はエンドツーエンドでBTCネイティブのまま、コントラクトの実行環境はWebAssembly(AssemblyScript → Wasm)を維持し、表現力を保ちながら料金通貨を変更しないままです。

Frederic Fosco

フレデリック・フォスコ

フレデリック・フォスコ、別名ダニー・プレインビューは、OP_NETの共同創設者であり、2013年からビットコインに関わっています。彼はOP_NETを立ち上げ、ビットコインをネイティブにプログラム可能にし、レイヤー1上でスマートコントラクトやDeFiのプリミティブを直接解放しています。彼の焦点は、ブリッジやカストディアン、ラップ、シンセティックビットコインを使わずに、オンチェーンの機能を構築し、自己管理と分散化を不可欠とすることにあります。

BTC-0.77%
ETH-1.43%
SOL-2.35%
STX-4.54%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
コメントを追加
コメントを追加
コメントなし
  • 人気の Gate Fun

    もっと見る
  • 時価総額:$0.1保有者数:1
    0.00%
  • 時価総額:$2.45K保有者数:1
    0.00%
  • 時価総額:$2.45K保有者数:1
    0.00%
  • 時価総額:$2.46K保有者数:1
    0.00%
  • 時価総額:$2.46K保有者数:1
    0.00%
  • ピン