【すまーとこんとらくと】

スマートコントラクト とは?

最終更新:
💡 「もし〇〇なら△△する」をコードで実行するデジタルな仕組み

ブロックチェーン上などで、定めたルールをプログラムとして実行する仕組み。Ethereumでは、トランザクションによる呼び出しを受けて、コードに従って状態や資産を操作する。

📌 このページのポイント
スマートコントラクト:ルールを実行 利用者など 呼び出しを送信 コードと状態 ルールを判定 状態・資産の操作 コードに従う 外部の情報 オラクル等が必要 Ethereumでの概念例・手数料が必要 安全性・更新権限・入力情報を確認
条件を記述するだけで動き続けるわけではなく、呼び出しを受けて実行する例
ひよこ ひよこ
スマートコントラクトって、紙の契約の代わりなの?
ペンギン先生 ペンギン先生
ルールをコードで実行する仕組みだよ。Ethereumでは、ブロックチェーン上のアドレスにコードと状態を持つ。名前に契約と付くけれど、コードが書かれているだけで、あらゆる契約の問題が解決するわけではないんだ。
ひよこ ひよこ
自動販売機みたいなもの?
ペンギン先生 ペンギン先生
入金や選択を受けて、決めたルール通りに処理するという比喩だね。Ethereumなら、利用者などがトランザクションで関数を呼び出すと処理される。条件をコードに書いただけで、時計を見て勝手に動き始めるわけではないよ。
ひよこ ひよこ
現実の商品の到着も分かる?
ペンギン先生 ペンギン先生
コントラクトだけでは、ブロックチェーンの外の出来事を直接知ることはできないよ。外部データを取り込むオラクルなどが必要になる。入力された情報が間違っていれば、その情報に沿った処理をしてしまうので、情報源も大切なんだ。
ひよこ ひよこ
バグがあっても絶対に直せないの?
ペンギン先生 ペンギン先生
配置したコードをその場で自由に書き換えることはできないけれど、別のコントラクトへ処理を委ねるプロキシなど、更新を可能にする設計はあるよ。その場合は、誰が変更できるかという権限にも注意が必要になる。更新できることと、安全であることは別なんだ。
ひよこ ひよこ
仲介者が不要になれば、安く安全に使える?
ペンギン先生 ペンギン先生
一部の処理を自動化できても、実行手数料や外部データへの依存は残るよ。バグや管理権限が資産に影響するから、コードだけでなく更新方法や入力情報も確認しよう。自動実行という性質だけで、低コストや安全性が保証されるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「スマートコントラクト」って出てきたら「定めたルールをコードで実行する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Smart Contract」 = 賢い契約
💬 Nick Szaboの1994年の文章では、契約条件を実行するコンピューター化された取引プロトコルとして説明されているよ。現在のEthereumではブロックチェーン上のプログラムとして使われるんだ。

参考資料

← 用語集にもどる