本文へスキップ
BecomeCoder

Solidityコース · 第1章 ブロックチェーンとスマートコントラクト · レッスン4

Ethereumとスマートコントラクト ― 「動くお金」

ローカル実施

導入

ビットコインが主に「送金」の台帳なのに対し、Ethereum は台帳の上でプログラムを動かせるようにしたブロックチェーンです。この「ブロックチェーン上で自動実行されるプログラム」が スマートコントラクトであり、Solidity で書きます。

説明

スマートコントラクト(smart contract) は「契約を自動で実行するプログラム」です。たとえば「Aが1ETH送ったら、自動でデジタルチケットをAに発行する」というルールをコードにしておくと、仲介者なしで、条件が満たされた瞬間に自動で・確実に実行されます。一度デプロイ(配置)されると、そのコードは台帳に刻まれ、誰にも勝手に止められず・書き換えられません

graph TB
    U[利用者] -- 1ETH送金 --> C
    subgraph chain["Ethereumブロックチェーン"]
        C["スマートコントラクト<br/>(Solidityのコード)"]
        C -- 自動実行 --> R[チケットをUに発行]
        C -- 記録 --> L[(台帳に永久保存)]
    end

Ethereum 自体の通貨は ETH(イーサ) で、送金やコントラクトの手数料の支払いに使います。スマートコントラクトを使うと、次のようなものが「管理者なし」で作れます。

  • トークン(独自の通貨・ポイント。ERC-20 規格。第5章で扱います)
  • NFT(デジタル資産の所有証明。ERC-721)
  • DeFi(銀行を介さない貸し借り・両替)
  • DAO(プログラムで運営される組織)

Code is Law(コードが規則)」――合意された条件どおりに、感情も忖度もなく実行される。これがスマートコントラクトの思想です。

やってみよう

自動販売機を思い浮かべてください。「お金を入れる → ボタンを押す → 商品が出る」は、店員がいなくても機械のルールで実行されます。スマートコントラクトは「お金と条件を入れると自動で価値を返す、改ざんできない自動販売機」だと考えると、イメージが掴めます。