official_blog:260120_実行手数料

文書の過去の版を表示しています。


260120 Qubicで実行手数料(Execution Fees)が導入されました:知っておくべきこと

 Qubic のスマートコントラクトが新しくなりました。2025年1月14日より、コントラクトは実際に消費した計算リソース量に応じて手数料を支払う仕組みへと移行しました。

 このアップデートは、ライブテストネット環境での検証を経てメインネットに導入されました。これにより、コントラクトが行う「仕事」に直接比例した有機的な バーン メカニズムが導入されたことになります。


実行手数料が重要な理由

 Qubic 上のすべてのスマートコントラクトは、「実行手数料リザーブ(残高)」を維持するようになります。これは実質的に、計算コストをカバーするためのプリペイド式の残高です。

  • 休止状態への移行:
    • リザーブが枯渇しても、コントラクト自体が消滅することはありませんが「休止状態」となります。
    • 資金の受け取りや基本的なシステムイベントへの応答は可能ですが、リザーブが補充されるまで、そのコア機能(プロシージャ)を呼び出すことはできなくなります。
  • 計算量に基づいた課金:
    • 以前は、コントラクトがアクティブであるためにはプラスの残高があれば十分でした。
    • しかし現在は、プロシージャの実行にかかった「時間」に比例して費用が差し引かれるようになり、手数料が実際の計算量と直接リンクする形に変更されました。

システムの仕組み

 手数料のメカニズムは、676 ティック(Tick)ごとのフェーズで動作します。プロセスは以下の通りです:

  • 実行と測定:
    • Computor がコントラクトを実行する際、各実行にかかった時間を測定します。
  • 蓄積:
    • これらの測定値は、完全な 676 ティックのフェーズを通じて蓄積されます。
  • コンセンサス:
    • Computor たちは、特別なトランザクションを通じて測定値を共有します。
    • ネットワークはこれらのレポートを集計し、3分の2パーセンタイル(上位66.6%)の値を使用して、公平で合意された実行手数料を決定します。
  • 差し引き:
    • 合意された手数料は、次のフェーズでコントラクトのリザーブから差し引かれます。

誰が何を支払うのか?

 システムはシンプルな原則に従います。「アクションを開始した者が支払う」という原則です。

 ユーザーがコントラクトのプロシージャを呼び出すと、そのコントラクトのリザーブがコストをカバーします。コントラクト [A] が コントラクト[B] を呼び出す場合、実行前にコントラクト [B]のリザーブがチェックされます。

  • 手数料チェックの対象:
    • あり:
      • ユーザーによるプロシージャ呼び出し
      • コントラクト間プロシージャ呼び出し
      • コントラクト間ファンクション呼び出し
    • なし:
      • システムコールバック(送金など)
      • 読み取り専用(Read-only)ファンクション
      • エポック(Epoch)移行処理

 データを読み取るだけのファンクションは、常に無料です。これらはコントラクトの状態を変更せずにアクセスを提供するため、リザーブの状態に関係なく実行可能です。


開発者がすべきこと

 Qubic 上でスマートコントラクトを維持している場合は、以下のステップを検討してください。

  • リザーブ状態の確認:
    • `contracts.qubic.tools` や Qubic Explorer で、現在の手数料消費パターンを確認してください。
  • プロシージャの精査:
    • 早期リターン(早期終了)を行い、リソース消費を抑えるコードは安価になります。
    • 過度なループや冗長な操作を繰り返すプロシージャはコストが高くなります。
  • 持続可能性の計画:
    • コントラクトは `qpi.burn()` 関数や QUtil の `BurnQubicForContract` プロシージャを通じてリザーブを補充できます。
    • コントラクトのライフサイクルを通じて適切なリザーブを維持するメカニズムを組み込むことが推奨されます。
  • エラー処理の強化:
    • 他のコントラクトを呼び出す際、その呼び出しが成功したかを確認してください。ターゲットとなるコントラクトの残高が不足している場合、呼び出しは失敗しエラーコードを返します。

ユーザーの保護

 システムにはセーフガードが組み込まれています。

 リザーブが枯渇したコントラクトにトランザクションを送信した場合、添付された資金は自動的に返却されます。コントラクトの残高不足によってユーザーが資金を失うことはありません。

 休止状態のコントラクトであっても、読み取り専用のクエリ(照会)は引き続き利用可能です。いつでも状態を確認できますが、リザーブが補充されるまで状態を変更する操作は実行されません。


Qubic にとっての意義

 このアップデートは、Qubic のスマートコントラクト経済における重要な転換点となります。

 より多くの仕事をするコントラクトが、より多くの手数料を支払う。

 これにより、効率的なコードに真の価値が生まれます。そしてネットワークは、恣意的な固定額ではなく、実際の「有用性」に結びついたトークンの持続的な バーン メカニズムを獲得しました。


official_blog/260120_実行手数料.1768919745.txt.gz · 最終更新: by d.azuma