スマートコントラクトとは
注:この文書は英語の原文からの自動翻訳です。
スマートコントラクトとは
スマートコントラクト とは、ブロックチェーン 上に保存され実行されるプログラムです。一度デプロイされると、その条件が満たされたときに自動的に動き — 合意の強制、資産の管理、操作の協調を、各ステップを実行する人間の仲介者を必要とせずに行います。その名前にもかかわらず、スマートコントラクトは 人工知能 の意味で「スマート」でも、法律的な意味で「契約(コントラクト)」でもありません。それは決定論的なコードです:同じ入力が与えられれば、開発者が書いた正確なロジックに従って、常に同じ出力を生成します。
スマートコントラクトは自動販売機のようなものだと考えてください。コインを入れ、商品を選ぶと、機械がそれを渡してくれます — レジ係も、交渉も、裁量もありません。機械はプログラムされたルールを正確に守ります。スマートコントラクトはブロックチェーン上で同じことをします:資産やロジックを保持し、入力(トランザクション)を受け取り、あらかじめ定義された操作を自動的かつ透明に実行します。
要約: スマートコントラクトはブロックチェーン上の自己実行型コードです — 仲介者なしにルールを強制し、暗号資産 AI プロジェクトでは経済とガバナンスのロジックを扱う一方で、AI の計算は通常オフチェーンで行われます。
スマートコントラクトの仕組み
記述とデプロイ
スマートコントラクトは、特定のブロックチェーン向けに設計されたプログラミング言語で書かれたソースコードとして始まります。最も一般的な言語は Solidity で、Ethereum とすべての EVM 互換チェーン(BNB Smart Chain、Arbitrum、Base、Polygon、Avalanche C-Chain)で使われます。Solana は Rust とそのネイティブのフレームワークを使います。他のチェーンには独自の言語があります:Move(Sui、Aptos)、Cairo(Starknet)など。
開発者はロジック — コントラクトが何をするか、どんなデータを保存するか、どの条件がどのアクションをトリガーするか — を書き、その後ソースコードを バイトコード(ブロックチェーンの仮想マシンが実行できる低レベルの命令)にコンパイルします。このバイトコードは、デプロイのトランザクションでブロックチェーンに提出されます。確認されると、コントラクトはチェーン上の特定の アドレス に存在し、誰でも相互作用できるようになります。
実行
ユーザーまたは別のコントラクトがスマートコントラクトの関数を呼び出すと、次のことが起きます:
- 呼び出し元は、コントラクトのアドレス、呼び出す関数、入力パラメータを指定する トランザクション を提出します。
- ネットワーク上のすべての バリデータノード が、同じ入力を同じバイトコードを通じて処理しながら、その関数を独立して実行します。
- その結果 — あらゆる状態変更、トークン送金、発行されたイベント、書き込まれたデータ — はブロックに記録され、恒久的な台帳の一部となります。
- 呼び出し元は計算に対して ガス代 を支払います。より複雑な操作はより多くのガスを要します。
この実行モデルには重要な性質があります:それは 決定論的(すべてのノードが同じ結果を得る)、透明(誰でもバイトコードとトランザクション履歴を調べられる)、そして パーミッションレス(誰でも公開関数を呼び出せる)です。
ガスとコスト
スマートコントラクトの内部のあらゆる計算ステップは ガス — 必要な計算努力を測る単位 — を要します。ガス代は二つの目的に役立ちます:コードの実行に対してバリデータに報いること、そして濫用を防ぐこと(手数料がなければ、攻撃者は無限に複雑な計算を提出してネットワークを遅くできてしまう)です。
ガスのコストはネットワークによって異なります。Ethereum メインネットでは、需要の高い時期に複雑な操作が数十ドルから数百ドルかかることがあります。Arbitrum や Base のような L2 ネットワークでは、同じ操作が数セントで済むかもしれません。Solana では、トランザクション手数料は通常 1 セントの何分の一かです。これらのコストの違いは、暗号資産 AI プロジェクトがどこにオンチェーンのコンポーネントをデプロイするかに直接影響します。
不変性とアップグレード可能性
一度デプロイされると、スマートコントラクトのバイトコードはブロックチェーンに恒久的に保存されます。それは編集、削除、上書きができません。この不変性はセキュリティ上の特徴です — ユーザーはどのコードが実行されるかを正確に検証でき、それが変わらないと信頼できます — が、それはまた、ブロックチェーンにデプロイされたバグが従来のソフトウェアのようにパッチできないことも意味します。
これに対処するため、開発者は プロキシコントラクト を用いた アップグレード可能なコントラクトのパターン を作り出しました。この設計では、ユーザーは、呼び出しを実装コントラクトに委譲するプロキシコントラクトと相互作用します。チームは新しい実装をデプロイし、プロキシをそれに向けることができ — 実質的にコントラクトを「アップグレード」します。これはバグ修正の問題を解決しますが、信頼のトレードオフを導入します:プロキシのアップグレード機構を制御する者は、コントラクトの振る舞いを変えられます。アップグレード可能なコントラクトは本質的に悪いわけではありませんが、信頼を「コードは恒久的である」から「アップグレード権限を持つチームが責任を持って行動する」へと移します。
スマートコントラクトができること、できないこと
できること:
- トークンやその他のデジタル資産を保持し、移転する
- 条件付きロジックを強制する(X ならば Y)
- 同じチェーン上の他のスマートコントラクトと相互作用する
- 外部システムが監視できるイベントを発行する
- アクセス制御を管理する(誰がどの関数を呼べるか)
できないこと:
- ブロックチェーンの外部からデータにアクセスする(外部のデータフィードには オラクル が必要)
- AI 推論のような計算集約的な操作を行う(ガスのコストがこれを非現実的にする)
- スケジュールに沿って自律的に実行する(実行するには外部のトリガー — トランザクション — が必要)
- 大きなファイルを保存する(オンチェーンのストレージは高価;プロジェクトは大量のデータに IPFS や Arweave を使う)
- 主観的な判断を下す(推論ではなく決定論的なロジックを実行する)
この最後の制約は、暗号資産 AI にとって特に関連します。スマートコントラクトは AI の意味で「考える」ことも「決める」こともできません。ルーティング、決済、ルールの強制はできますが、実際の AI の計算は オフチェーン で行われ、結果をコントラクトにフィードバックする必要があります。
暗号資産 AI プロジェクトにとってなぜ重要か
スマートコントラクトは、ほとんどの暗号資産 AI プロジェクトにおいて、ブロックチェーンのインフラと AI の機能の間をつなぐ結合組織です。その役割 — とその限界 — を理解することは、プロジェクトカードを正確に読むうえで不可欠です。
経済レイヤー
多くの暗号資産 AI のアーキテクチャでは、スマートコントラクトが経済面を扱います:計算への支払い、データ提供者への報酬の分配、バリデータのためのステーキング、推論サービスの手数料徴収。AI モデルはオフチェーンで動きますが、スマートコントラクトは、中央の権威が会計を管理することなく、全員がルールに従って確実に支払われるようにします。
ガバナンス
スマートコントラクトはガバナンスの機構を実装できます:提案の提出、投票、定足数の要件、承認された変更の実行。AI プロジェクトにとって、これはモデルのパラメータ、データセットの選択、リソースの配分に対するガバナンスを意味し得ます — 創設チームによって非公開で決定されるのではなく、オンチェーンで透明に行われます。
検証のチェックポイント
一部のプロジェクトは、検証データを保存するためにスマートコントラクトを使います:モデルの重みのハッシュ、推論結果の証明、または特定の計算が実行されたことの証明(attestation)。スマートコントラクトは AI の出力自体を検証しはしませんが(計算能力を欠くため)、後で監査できる不変の記録を提供します。
アクセス制御と権限
スマートコントラクトは、誰が何にアクセスできるかを管理します。ブロックチェーン上に構築された AI 推論 API は、アクセスを許可する前に、呼び出し元が必要なトークンを保有しているか、十分なクレジットを持っているか、その他の条件を満たしているかを確認するためにスマートコントラクトを使うかもしれません。これは中央集権的な認証システムを、オンチェーンの透明なアクセス制御に置き換えます。
「AI の意味でスマートではない」という区別
混乱の根強い源があります:「スマートコントラクト」は人工知能とは何の関係もありません。ここでの「スマート」という言葉は自己実行を意味します — コントラクトはそのロジックを自動的に強制する — のであって、推論したり、学習したり、適応したりすることではありません。AI システムはデータから学習し、予測を行います。スマートコントラクトは固定されたルールに従い、決定論的な出力を生成します。暗号資産 AI プロジェクトは通常、両方を組み合わせます:スマートコントラクトがオンチェーンのロジック(支払い、ガバナンス、アクセス制御)を扱い、AI モデルがオフチェーンの知能(推論、予測、分析)を扱います。
DecAIHub のプロジェクトカードでの登場箇所
スマートコントラクトは、いくつかのフィールドと証拠の指標を通じてプロジェクトカードに現れます:
- Main chain — プロジェクトのスマートコントラクトがどのブロックチェーン上にデプロイされているかを教えてくれます。Ethereum 上のプロジェクトは Solidity ベースのコントラクトを使い、Solana 上のプロジェクトは Rust ベースのプログラムを使います。チェーンの選択は、コントラクトの能力、ガスのコスト、他のプロトコルとのコンポーザビリティに影響します。
- Token standard —
ERC-20、BEP-20、SPLのような値は、プロジェクトのトークンがどう振る舞うかを定義するスマートコントラクトの標準を指します。ERC-20 トークンは、特定のインターフェースを実装する Ethereum 上のスマートコントラクトです。 - Type と Category — スマートコントラクトを中核的なオンチェーンのコンポーネントとして依拠するプロジェクトは通常、
Type: EVMまたはnon-EVM(チェーンによる)と、その役割を反映する Category(例:DeFi、AI/Agents | DeFi)を持ちます。DeFi プロトコルは本質的に、流動性、取引、貸付を管理するスマートコントラクトの集まりです。 - Evidence(Tier-1) — 検証されたスマートコントラクトのアドレス、監査レポート、ブロックエクスプローラ上のデプロイ済みコントラクトのコードは、最も強力な形態の Tier-1 の証拠に含まれます。プロジェクトがオンチェーンの機能を主張するなら、そのコントラクトアドレスは検証可能であるべきです。
- Token model —
fee-mechanism、governance、staking、utilityのような値は、トークンがプロジェクトのスマートコントラクトとどう相互作用するかを表します。ガバナンストークンは通常、スマートコントラクトベースのガバナンスシステムにおける投票権を付与します。
プロジェクトカードを読むときは、プロジェクトのオンチェーンの主張が実際にデプロイされたコントラクトによって裏付けられているかを確認してください。スマートコントラクトベースのガバナンスを主張しながら検証可能なコントラクトアドレスを持たないプロジェクトは、そのオンチェーンの存在の実体に疑問を投げかけます。
スマートコントラクトだけでは証明できないこと
デプロイ済みのスマートコントラクトの存在は、コードがブロックチェーン上に存在することを教えてくれますが、次のことを証明しません:
- AI 能力 — スマートコントラクトは AI モデルを動かせません。よく設計されたコントラクトの存在は、オンチェーンの経済またはガバナンスのロジックを証明するのであって、AI reality を証明しません。AI reality は、別個の証拠の集合(AI_0 から AI_4 のフラグ)を通じて評価されます。
- セキュリティ — スマートコントラクトのコードはバグ、脆弱性、バックドアを含み得ます。デプロイはセキュリティと同義ではありません。監査されたコントラクトは未監査のものより信頼できますが、監査されたコントラクトでさえエクスプロイトされたことがあります。プロジェクトのコントラクトが評判のよい会社によって監査されているかを確認してください。
- 分散性 — 分散型ブロックチェーン上にデプロイされたスマートコントラクトは、そのネットワークのコンセンサスのセキュリティを継承しますが、コントラクト自体は集権的な制御の機構を持ち得ます:コントラクトを一時停止またはアップグレードできる管理キー、オーナー専用の関数、または中央集権的なオラクルへの依存。
- 不変性 — プロジェクトがアップグレード可能なプロキシのパターンを使う場合、コントラクトの振る舞いは、アップグレードキーを保持する者によって変えられます。プロキシが関わるとき、「オンチェーン」は自動的に「恒久的」を意味しません。
- ユーザーの便益 — スマートコントラクトは技術的に完璧でありながら、完全に無用であり得ます。コードの品質と製品の価値は別個の問いです。
混同しないでください
- AI モデル — AI モデルはデータから学習し、予測を行い、出力を生成します。スマートコントラクトは決定論的なロジックを実行します。それらは暗号資産 AI プロジェクトにおいて根本的に異なる役割を担います。AI モデルは知能であり、スマートコントラクトは強制の機構です。
- dApp(分散型アプリケーション) — dApp は、ブロックチェーン上のスマートコントラクトと相互作用するユーザー向けのアプリケーションです。スマートコントラクトはバックエンドのロジックであり、dApp は、しばしばフロントエンド、オフチェーンのサービス、スマートコントラクトとのやり取りを含む完全な製品です。
- API — 従来の API は中央集権的なサーバ上で動き、その運用者によって変更、停止、検閲され得ます。スマートコントラクトはブロックチェーン上の誰にでもアクセス可能で、不変のルール(アップグレード可能でない限り)に従って動き、単一の当事者によって停止されることはありません。一部の暗号資産プロジェクトは、開発者の便宜のために、標準的な API インターフェースを通じてスマートコントラクトを公開します。
- 法的契約 — 法的契約は裁判所や法的機関によって執行可能です。スマートコントラクトはコードとブロックチェーンのコンセンサスによって執行可能です。それらは異なる執行機構を持つ異なるシステムです。スマートコントラクトは、管轄の法律が明示的にそれを契約として認めない限り、法的な合意を構成しません。
- スクリプト(Script) — Bitcoin は、基本的な条件(マルチシグの要件など)を可能にする限定的なスクリプト言語を使いますが、Ethereum スタイルのスマートコントラクトの豊かなプログラマビリティは持ちません。暗号資産 AI の文脈で「スマートコントラクト」と言うとき、それはほとんど常に、完全なプログラマビリティを持つ Ethereum スタイルのコントラクトを意味します。
よくある質問
スマートコントラクトはハッキングされ得ますか?
はい。スマートコントラクトはソフトウェアであり、ソフトウェアにはバグがあり得ます。一般的な脆弱性のカテゴリには、リエントランシー攻撃、整数オーバーフロー、アクセス制御の失敗、オラクルの操作があります。一度デプロイされると、バグのあるコードは恒久的にオンチェーンに存在し、エクスプロイトされ得ます。これがセキュリティ監査が重要である理由であり、DecAIHub がプロジェクト評価の一部として監査の状況を追跡する理由です。スマートコントラクトを信頼できるものにする不変性は、デプロイされたバグがアップグレード可能なパターンを使わない限り修正できないことも意味します。
スマートコントラクトは本当に不変ですか?
標準的なスマートコントラクトはデプロイ後に不変です — コントラクトアドレスのバイトコードは変えられません。しかし、多くの現代のプロジェクトは、実装ロジックを差し替えられる アップグレード可能なプロキシのパターン を使います。これらの場合、プロキシのアドレスは同じままですが、基礎となる振る舞いは変わり得ます。コントラクトがアップグレード可能かどうか、そして誰がアップグレード機構を制御するかは、プロジェクトの分散性と信頼モデルを評価するうえで重要な要因です。
スマートコントラクトはすべてのブロックチェーンでガスを必要としますか?
ほとんどのブロックチェーンは、用語や価格設定は異なるものの、何らかの形の実行手数料を課します。Ethereum はそれを「ガス」と呼びます。Solana は「コンピュートユニット」と「レント(rent)」を課します。概念は普遍的です:バリデータはコードの実行に対して報われる必要があり、手数料はスパムを防ぎます。コストのレベルは大きく異なります — ピーク需要時の Ethereum L1 でのトランザクションあたり数ドルから、L2 ネットワークや Solana での 1 セントの何分の一かまで。
AI モデルはスマートコントラクトに保存できますか?
現代の AI モデルの完全な重みをスマートコントラクトの内部に保存することは現実的ではありません。大規模言語モデルは数十億のパラメータを持ち、ギガバイト規模のストレージを占めることがあります。Ethereum 上のオンチェーンのストレージのコストは、32 バイトのスロットあたり約 20,000 ガスであり、モデルの重みをオンチェーンに保存することを法外に高価にします。実際には、プロジェクトは検証のためにモデルのハッシュやポインタ(IPFS のコンテンツ識別子など)をオンチェーンに保存し、実際のモデルファイルはオフチェーンに置きます。
暗号資産 AI プロジェクトにおけるスマートコントラクトの役割は何ですか?
ほとんどの暗号資産 AI のアーキテクチャでは、スマートコントラクトは協調と経済のレイヤーを扱います:計算マーケットプレイスの支払いの管理、データ提供者への報酬の分配、ステーキングとスラッシングのルールの強制、AI サービスへのアクセスの制御、プロトコルのパラメータのガバナンス。AI の計算自体はオフチェーンで行われ、スマートコントラクトは信頼を最小化した決済と検証のレイヤーとして機能します。
プロジェクトのスマートコントラクトをどうやって検証できますか?
ブロックエクスプローラ(Ethereum なら Etherscan、Solana なら Solscan、その他のチェーンには該当するエクスプローラ)でコントラクトアドレスを探してください。検証済みのコントラクトはエクスプローラ上にソースコードを直接表示し、誰でも実際のロジックを読めます。コードがプロジェクトのドキュメントと一致するか、コントラクトが監査されているか、監査レポートが公に入手可能かを確認してください。DecAIHub のプロジェクトカードでは、デプロイ済みのコントラクトアドレスと監査レポートが Tier-1 の証拠として追跡されます。
外部リンク
- Ethereum.org — Introduction to Smart Contracts — スマートコントラクトの概念と開発を説明する公式 Ethereum ドキュメント。
- Smart contract(Wikipedia) — 概念から実装までのスマートコントラクトの歴史的・技術的な概説。
- Solana Documentation — Programs — Solana ブロックチェーン上でスマートコントラクト(「プログラム」と呼ばれる)がどう機能するか。
- OpenZeppelin — Smart Contract Security — セキュアなスマートコントラクトを書くための広く使われるライブラリとベストプラクティス。
No comments to display
No comments to display