5 / 6
スマートコントラクトとは
スマートコントラクトとは、ブロックチェーン上にデプロイされたプログラムです。 誰かがトランザクションで呼び出すと、書かれたルールどおりに実行されます。 「自動実行」と表現されることがありますが、時間で勝手に動くのではなく、あくまで呼び出されたときに実行されるという点が重要です。
従来の契約との違い
通常の契約は「紙」や「約束」に基づき、仲介者(弁護士・銀行・取引所など)が必要です。 スマートコントラクトでは、契約の条件をコードで書き、誰かがそれを呼び出すことで実行されます。 仲介者は不要で、デプロイ後のコードは書き換えにくい構造になっています。
コードで見るスマートコントラクト
Ethereum のスマートコントラクトは主に Solidity という言語で書かれます。 シンプルなカウンターの例です。
contract Counter {
uint count;
function increment() public {
count = count + 1;
}
}
この関数を誰かがトランザクションで呼び出すと、count の値がブロックチェーン上で更新されます。 状態(count の値)はトランザクションによって変化しますが、コントラクトのルール(コード)自体は変更できません。 つまり、increment 以外の方法で count を操作することは誰にもできません。
スマートコントラクトの応用
- トークン — ERC-20 規格で誰でも独自の通貨を発行できる
- NFT — ERC-721 規格でデジタル所有権を証明する
- DeFi — 取引所・融資・利回りをコードで実現する
- DAO — 組織のルールと投票をコードで運営する
注意点
「変更不可」はメリットでもあり、リスクでもあります。 コードにバグがあっても、デプロイ後は修正できません(アップグレード可能な設計にする場合は別途の仕組みが必要です)。 スマートコントラクトの監査(Audit)が重要視される理由はここにあります。
次のレッスンでは、実際に Nobiq Lab でコードを動かして体験します。