Nobiq
研究所についてWeb3入門
5 / 6

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

スマートコントラクトとは、ブロックチェーン上にデプロイされたプログラムです。 誰かがトランザクションで呼び出すと、書かれたルールどおりに実行されます。 「自動実行」と表現されることがありますが、時間で勝手に動くのではなく、あくまで呼び出されたときに実行されるという点が重要です。

従来の契約との違い

通常の契約は「紙」や「約束」に基づき、仲介者(弁護士・銀行・取引所など)が必要です。 スマートコントラクトでは、契約の条件をコードで書き、誰かがそれを呼び出すことで実行されます。 仲介者は不要で、デプロイ後のコードは書き換えにくい構造になっています。

従来の契約
スマートコントラクト
紙・口頭・PDF
コード(Solidity 等)
仲介者が必要
コードが実行、仲介者不要
執行に時間・コストがかかる
呼び出されると即時実行
改ざん・反故のリスクあり
デプロイ後は書き換えにくい

コードで見るスマートコントラクト

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 でコードを動かして体験します。
トランザクションとは実際に触ってみる