本文へスキップ
buybitcoinsmart

スマートコントラクトとは何か、何の役に立つのか

スマートコントラクトはブロックチェーン上で自動実行されるプログラムです。DEX、融資、ステーブルコインを支えていますが、バグやオラクルによってできることは限られます。

読了目安は1分です。更新日は2026年8月12日です。

スマートコントラクトとは、ブロックチェーン上に保存されたプログラムで、条件が満たされると自動的に実行されます。それを運営する企業はなく、どちらの当事者も取引の途中でルールを密かに変更することはできません。スマートコントラクトが本当に得意とするのは限られた種類の業務です。トークンの交換、担保を差し入れての融資、ステーブルコインの発行、そして透明で共有されたルールの下での資金の保管です。一方、現実世界が関わってくるところでは不得意です。オンチェーンの外の出来事は助けがなければ見ることができず、バグは機能と同じだけ拘束力を持ち、何十億ドルもの資金を守るコードは、地球上で最も資金力のある攻撃者を引き寄せるからです。本記事では、スマートコントラクトの仕組み、大規模に実行されている内容、失敗する場面、そしてビットコインがこうした機能に意図的にごくわずかしか対応していない理由を説明します。

合意としてのコード

この考え方は、それを実用化したブロックチェーンより前に存在していました。計算機科学者のNick Szaboは1990年代にこの用語を作り、自動販売機を代表的な例として挙げました。硬貨を入れれば機械が軽食を出し、店員も裁判所も契約弁護士も関与しません。合意は機械そのものによって執行されます。

スマートコントラクトは、その自動販売機を一般化したものです。従来の合意は紙に書かれた言葉であり、誰かが破った場合には事後に制度によって執行されます。スマートコントラクトは実行可能なルールであり、同じコードを実行し互いの結果を検証するコンピューターのネットワークによって、その場で執行されます。一度デプロイされると、コントラクトはブロックチェーン上のアドレスに存在し、コードは誰でも検査できるよう公開され、作者の意図がどうであれ、書かれているとおりに正確に動作します。

この名称は二つの方向に同時に誇張しています。スマートコントラクトは賢くありません。判断力はなく、プログラムされたとおりに動くだけです。そして多くの場合、法的な意味での契約ではありません。もっとも、各地の裁判所はコードと法がどこで重なるかをなお整理しているところです。ルールに従って資金を動かすソフトウェアと理解するのが最も適切です。

スマートコントラクトが実際に実行される仕組み

最大のスマートコントラクト基盤であるEthereumでは、ライフサイクルは次のとおりです。開発者はSolidityなどの言語でコントラクトを書き、トランザクションでデプロイします。それ以降、コントラクトは独自のアドレスを持ち、独自の残高を保持でき、誰でも呼び出せる関数を公開します。コントラクトとやり取りするときは、関数と入力値を指定したトランザクションを送信し、計算に対してガス手数料を支払います。すべての検証ノードが同じ状態に対して同じコードを実行し、同じ結果に到達しなければなりません。これにより、どの単一のマシンも信頼することなく、結果が信頼できるものになります。

この設計から二つの性質が導かれます。第一に、実行は決定論的で止められません。誰もあなたのトランザクションを承認せず、サポート窓口もそれを取り消せません。第二に、コントラクトは他のコントラクトを呼び出せるため、部品のように組み合わさります。融資プロトコルは、価格フィードとトークン取引所を1つのアトミックなトランザクションで接続できます。このコンポーザビリティはDeFiとは何かで扱うすべての原動力であり、こうした活動の大部分はいまや、手数料を低く保つためにEthereumに決済を戻すレイヤー2のネットワーク上で行われています。

スマートコントラクトが本当に得意なこと

仲介者なしでの取引

分散型取引所は、従来の取引所のマッチングエンジンを数式に置き換えます。最大手のUniswapは、ペアになったトークンをプールのコントラクトに保有し、プールに対して取引価格を自動的に決めます。口座も登録もカストディアンもありません。あなたは自分のウォレットから取引し、流動性提供者は手数料を得ます。このモデルは驚くほどの取引量を処理してきました。Uniswapは累計取引量で3兆ドルを超え、これを達成した最初の分散型取引所となりました。トレードオフも実際に存在し、大口取引でのスリッページや、トランザクションの順序を悪用するボットなどがあります。

担保を差し入れての融資

AaveやCompoundといったプロトコルは、金融市場をコントラクトとして運営します。預金者は資産を提供して利息を得て、借り手は借りる額より価値の高い担保を差し入れ、利息を支払います。コントラクトはあなたの人格や給与を評価できないため、融資は過剰担保となり、担保価値が下がりすぎるとコントラクトは自動的にそれを清算します。これは、コードが検証できる唯一のもの、すなわちコントラクトがすでに保有する資産にまで信用を還元したものです。

ステーブルコイン

地球上で最も広く使われているスマートコントラクトは、おそらくUSDCやUSDTといったステーブルコインの背後にあるトークンコントラクトで、ドルにペッグしたトークンの残高と送金を記録します。ハイブリッドな信頼モデルに注意してください。トークンはコードによって動きますが、それを裏付けるドルは発行者のもとにオフチェーンで保管されています。規制当局が介入したのはまさにこの理由です。米国のGENIUS Actは2025年7月に署名され、支払用ステーブルコインに関する最初の連邦の枠組みを創設し、現金および短期の米国債による1対1の準備金を義務付けました。ステーブルコインは、スマートコントラクトが地味で有用な金融の配管を世界的規模で行っている最も明確な例です。

エスクローと共有カストディ

コントラクトは、合意された条件の下でのみ解放される資金を保管できます。支払いの承認に複数の鍵保有者を必要とするマルチシグウォレット、出金を遅らせるタイムロック、創業者に何年にもわたってトークンを少しずつ付与するベスティングスケジュール、トークン保有者の投票で運営されるトレジャリーなどです。共有された資金に対して単一の信頼点を持ちたくない組織にとって、これは最も強力な実用的ユースケースです。

誰も軽視してはならない限界

オラクルの問題

コントラクトは自分のブロックチェーン上にあるものしか知りません。イーサのドル価格も、天気も、商品が届いたかどうかも見えません。オラクルとは外部データをオンチェーンに供給するサービスであり、コントラクトが取り除くはずだった信頼をまさに呼び戻します。データソースを汚染すれば、それに依存するすべてのコントラクトを汚染することになります。価格フィードの操作は多くのDeFiの攻撃を動かしてきましたし、現実世界の事実に依存するコントラクトは、それを報告する者の分だけの強さしか持ちません。

バグは法である

不変性は長所であり欠点でもあります。デプロイされたコードは密かに修正できないため、ユーザーは利用中にそれが変わらないと信頼でき、攻撃者もそれを信頼できます。エクスプロイトは侵入ではなく、書かれたとおりのコードの正しい実行です。ルールが金庫を空にすることを許していれば、ネットワークは忠実に金庫を空ける手助けをします。

監査は助けになるが、保証は存在しない

本格的なプロトコルはセキュリティ企業に監査を依頼し、バグバウンティを運営し、重要な部分に形式的手法による検証を用います。それらはすべてリスクを減らしますが、どれもリスクを排除しません。監査を受けたプロトコルがそれでも資金を抜かれています。監査は専門家の注意を限られた範囲に向けたものにすぎず、正しさの証明ではありません。また、コントラクトは単独では正しく動作しても、誰もモデル化しなかった方法で他のコントラクトと組み合わさると失敗することがあります。

アップグレード可能なコントラクトは信頼を呼び戻す

不変のバグは恐ろしいため、多くのチームは管理者鍵やガバナンス投票で制御されるアップグレード可能なコントラクトをデプロイします。それは一つの問題を、別の問題の解決を打ち消すことで解決します。誰かがコードを変更できるなら、人を信頼する状況に戻り、盗まれた管理者鍵は決定的なエクスプロイトになります。あらゆる本格的なプロトコルは、修正不能と変更可能の間のこのスペクトラムのどこかに位置しており、どこに位置するかを知ることは、自分のリスクを知ることの一部です。

覚えておく価値のある教訓

The DAO、2016年6月。スマートコントラクトの最初の大きな実験であり、完全にコードで運営されたベンチャーファンドは、イーサで約1.5億ドル相当を集め、数週間のうちにリエントランシーのバグを通じて360万ETHを抜き取られました。Ethereumのコミュニティは盗難を取り消すためにチェーンをハードフォークすることを選び、それを拒否した反対派は元のチェーンをEthereum Classicとして存続させました。この出来事は、今日も続く議論の条件を定めました。すなわち、損失がフォークするに足るほど大きくなるまでは、コードは法である、ということです。

Ronin、2022年3月。ゲームAxie Infinityにサービスを提供していたブリッジは、コントラクトのバグではなく鍵の侵害によって約6.25億ドルを失いました。攻撃者は、資金を動かす署名を行う9人のバリデータのうち5人の制御を奪いました。教訓は、鍵が少なすぎる状態で守られた完璧なコントラクトは、手間が増えただけの小さなマルチシグにすぎない、ということです。

Bybit、2025年2月。記録上最大の暗号資産窃盗である約15億ドルは、北朝鮮のLazarus Groupがマルチシグウォレット提供元であるSafeの開発者用マシンを侵害し、Bybitの署名者に偽装されたインターフェースを表示したことで、取引所Bybitを襲いました。署名者は定例の送金に見えるものを承認し、マルチシグコントラクトはその悪意あるトランザクションを署名どおりに正確に実行しました。コードは完璧に動作しました。エクスプロイトだったのは、人間と、その目の前の画面でした。

10年間にわたるパターンは一貫しており、Chainalysisは2025年だけで盗まれた資金を約34億ドルと推計しました。攻撃者は、それがコントラクトであれ、鍵であれ、オラクルであれ、署名デバイスを持つ人であれ、最も弱い層があるところへ向かいます。

ビットコインのミニマリズムとEthereumの表現力

ビットコインはこの一部を実行できますし、それ以上を行わないことは設計上の立場であり、不足ではありません。組み込みの言語であるBitcoin Scriptは意図的に限定されています。ループも任意のプログラムもなく、マルチシグによる支払い、タイムロック、ライトニングネットワークの背後にある支払いチャネルを支えるのに十分なだけです。その理由は、何千億ドルもの資金を守るお金は、攻撃対象領域を可能な限り小さくすべきであり、複雑さは基盤となる通貨の中ではなく、その上のレイヤーに置くべきだというものです。TaprootのようなアップグレードはScriptが表現できる範囲を広げましたが、哲学は変わっていません。ビットコインは、プログラムしやすさではなく、破られにくさに最適化しています。

Ethereumは逆の賭けをしました。開発者が何でも構築できる汎用の仮想マシンであり、何でもには本記事のあらゆる故障モードも含まれることを受け入れています。どちらの側も単純に正しいわけではありません。実際の用途に関する節のすべてはEthereumがそのリスクを取ったから存在し、あらゆる教訓も同じ理由で存在します。二つの設計は異なる問いへの答えであり、だからこそ誠実な比較は、優劣ではなく目的と目的を突き合わせるものです。

これがあなたにとって意味すること

スマートコントラクトのリスクにさらされるのにSolidityを一行も書く必要はありません。ステーブルコインを保有するか、DeFiアプリを使えば十分です。実践的なルールは上記のすべてから導かれます。古く、多用され、監査を受けたプロトコルを選んでください。この環境で何年も生き残ることは、それ自体が証拠だからです。トークンの承認を与える前にその内容を理解してください。コントラクトがあなたのトークンを使えるようにする署名は、まさに承認フィッシング詐欺が集めているものだからです。異常に高い利回りは、そうでないと証明されるまでは価格に織り込まれていないリスクとして扱ってください。そしてデジタル資産を安全に保つ習慣を続けてください。コードがあなたが署名した内容を正確に実行するシステムでは、最後の防御線は署名する本人だからです。

よくある質問

スマートコントラクトを簡単に言うと何ですか?

スマートコントラクトとは、誰かが起動すると自動的に実行される、ブロックチェーン上に保存されたプログラムです。コードでできた自動販売機のようなものです。一度デプロイされると、資金を保管し、定められたルールを正確に守り、いかなる企業や管理者もそれを停止したり、その動作をこっそり変更したりすることはできません。

スマートコントラクトには法的拘束力がありますか?

通常は、それ自体には法的拘束力はありません。スマートコントラクトは、実行することによって技術的にルールを強制するものであり、法的に強制するものではありません。そして、ほとんどの国の裁判所では、コードと契約法がどのように関係するかをまだ整理している段階です。実際のプロジェクトでは、コードでできないことを補うために、オンチェーンのコードと通常の法的契約を組み合わせることがよくあります。

スマートコントラクトはデプロイ後に変更できますか?

イミュータブルなコントラクトは変更できず、そのためバグも永続します。そこで多くのチームは、管理者鍵やガバナンスの投票で管理されるアップグレード可能なコントラクトをデプロイしていますが、それでは人への信頼が再び持ち込まれ、管理者鍵の盗難が大規模な窃取を引き起こしてきました。あるプロトコルがこのスペクトルのどこに位置するかは、そのリスクの核心部分です。

なぜビットコインにはEthereumのようなスマートコントラクトがないのですか?

選択によるものです。Bitcoin Scriptは、マルチシグによる送金やタイムロックといった単純な構成要素に意図的に限定されており、貨幣は可能な限り小さな攻撃面を持つべきだという考えに基づいています。Ethereumは代わりに完全なプログラマビリティを選び、それがDeFiとステーブルコインを可能にするとともに、それらに伴うあらゆる種類のエクスプロイトも可能にしました。

スマートコントラクトは安全に使えますか?

しっかり作られたものでも、実際のリスクを伴います。エクスプロイトは欠陥のあるコードの正当な実行であり、監査はバグを減らせても決してなくすことはできず、オラクルは操作され得ます。そして2025年2月のBybitからの約15億ドルの窃取は、署名者が騙されれば正しいコントラクトでも機能しないことを示しました。Chainalysisは2025年に約34億ドルが盗まれたと集計しています。

さらに学ぶ

このページを英語で読む