イーサリアムとスマートコントラクト

イーサリアムとは何か、その上でスマートコントラクトがどう動くのか、イーサ(ETH)の用途、簡単には変更できないコードの主なリスクを解説します。

6 分 · 2362 語更新: #基礎#イーサリアム#スマートコントラクト

ビットコインは、銀行を介さずにインターネット上で価値を送れることを示しました。イーサリアムはその考えをさらに推し進めました。ブロックチェーンが支払いだけでなく、どんなプログラムでも実行できたらどうなるか、という発想です。イーサリアムは2015年に稼働を始め、スマートコントラクトのプラットフォームとして最もよく知られる存在になりました。スマートコントラクトとは、ブロックチェーン上に置かれ、書かれたとおりに正確に動くプログラムです。

イーサリアムとは

イーサリアムは、世界中の多数の独立したコンピューターによって維持されているパブリックブロックチェーンです。ビットコインと同じく、残高とトランザクションの共有記録を保持しています。ビットコインと違うのは、プログラムのコードとデータも保持していて、すべてのノードがそのコードを実行し、同じ結果にたどり着けることです。

イーサリアムのネイティブ通貨はイーサ(ETH)です。主な役割は二つあります。

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

スマートコントラクトは、ブロックチェーン上に固有のアドレスを持つ形でデプロイされたプログラムです。デプロイされた後は、誰でもトランザクションを送ってその関数を呼び出せます。するとコントラクトはコードに従って動作します。資金を保有したり、送金したり、データを記録したり、ほかのコントラクトを呼び出したりできます。

わかりやすいたとえは自動販売機です。正しい入力を与えれば、店員が対応するかどうかを判断することなく、あらかじめ決められた出力が返ってきます。「コントラクト(契約)」という言葉は少し誤解を招きます。スマートコントラクトは法的な契約ではなく、動作が予測できるコードにすぎません。

どのように動くのか

イーサリアムのスマートコントラクトは、すべてのノードが実装している標準的な実行環境、イーサリアム仮想マシン(EVM)の中で動きます。開発者は通常、Solidityなどの言語でコントラクトを書き、EVM用のコードにコンパイルします。すべてのノードが同じ入力に対して同じコードを実行するため、全員が同じ新しい状態にたどり着きます。

EVMでのすべての操作には、ガスという単位でコストがかかります。これにより、永遠に動き続けたりネットワークに過剰な負荷をかけたりするプログラムからネットワークが守られます。トランザクションを開始した人が、それが使う計算量の代金を支払うのです。

通常のプログラムとの違い

  • 透明性:コントラクトのコードとその動作はブロックチェーン上で確認できます。
  • 不変性:デプロイされたコードは、原則として編集できません。アップグレード可能な設計のコントラクトもありますが、それは誰かが変更する権限を持っていることを意味します。
  • 中央の運営者がいない:一度デプロイされれば、ネットワークが動いている限りコントラクトは動き続けます。
  • コンポーザビリティ(組み合わせ可能性):コントラクト同士は互いを呼び出せるため、開発者は既存のサービスの上に新しいサービスを構築できます。

スマートコントラクトで作られているもの

  • トークン:多くの暗号資産やステーブルコインは、共通の規格に従うスマートコントラクトです。たとえば、互いに交換可能なトークンにはERC-20という規格があります。
  • 分散型取引所やレンディングプロトコル。これらはまとめてDeFiと呼ばれることが多くあります。
  • NFT:特定のアイテムの所有権を表す唯一無二のトークンで、ERC-721などの規格に従います。
  • DAO:共有の資金の使い道を、メンバーがコントラクトを通じた投票で決める組織です。

主な節目

イーサリアムは、ノード運営者が採用するネットワークアップグレードによって変化していきます。重要なものをいくつか挙げます。

  • 2015年:プルーフ・オブ・ワークを採用したイーサリアムのメインネットが稼働を開始。
  • 2021年8月:ロンドン・アップグレードでEIP-1559が導入され、手数料の仕組みが変わり、手数料の一部がバーン(焼却)されるようになりました。
  • 2022年9月:**The Merge(マージ)**により、イーサリアムはプルーフ・オブ・ワークからプルーフ・オブ・ステークへ移行しました。

その後のアップグレードでもネットワークの細部は変わり続けており、今後予定されているものはイベントカレンダーに掲載されています。

理解しておきたいリスク

コードが書かれたとおりに正確に動くことは、強みであると同時に危うさでもあります。

  • バグ:コントラクトに誤りがあれば攻撃者に悪用される可能性があり、盗まれた資金は通常取り戻せません。
  • アップグレード用の鍵:チームがコントラクトを変更できる場合、ユーザーはそのチームが誠実に行動し、鍵を安全に管理することに頼ることになります。
  • 悪意のあるコントラクト:詐欺師は正規のものに見えるコントラクトをデプロイし、それを承認した人のウォレットから資金を抜き取ります。
  • 取り消しができない:間違ったアドレスや有害なコントラクトに送ったトランザクションは、元に戻せません。

セキュリティ企業による監査はリスクを減らしますが、なくすわけではありません。監査済みのコントラクトが悪用された例もあります。

スケーリングとレイヤー2

すべてのノードがすべてのトランザクションを実行するため、イーサリアムのメインネットの処理能力には限りがあり、需要が高まると手数料が上がります。より多くの処理をこなすため、多くのプロジェクトはレイヤー2ネットワークを利用しています。レイヤー2はトランザクションを別の場所で処理し、その結果をイーサリアムに書き戻します。

まとめ

  • イーサリアムは、スマートコントラクトと呼ばれるプログラムを実行するブロックチェーンです。
  • イーサはガス代の支払いに使われ、ステーキングを通じてネットワークを守ります。
  • スマートコントラクトは透明で変更しにくく、信頼の助けになる一方で、バグの代償は大きくなります。
  • トークン、DeFi、NFT、DAOは、いずれもスマートコントラクトの上に作られています。