ただの仮想通貨ではない!イーサリアムとスマートコントラクトの関係とは?

ブロックチェーン

こんにちは!不労所得をめざす管理人です。

皆さんはDapps(ダップス)という言葉を聞いた事がありますか?Dappsはブロックチェーン上で動作するアプリケーションの事を言います。DappsはEtherumのブロックチェーンで動いている事が多いのですが、そもそもなんでEthereumのブロックチェーンで動かさなければいけないのか?Ethereumとは一体なんなのか?という疑問を持つ人もいるかもしれません。

今回は、Ethereumとは一体なんなのか?スマートコントラクトとは一体なんなのか?について簡単に言うと説明して行こうと思います。

Ethereumとは

ethereumというと仮想通貨をイメージする方も多いかもしれません。しかし実際はethereumの仮想通貨としての側面はethereumネットワーク内で取引の燃料として使われるether(イーサ)という単位に過ぎないのです。(bitflyerの通貨一覧を見てみるとイーサリアムではなくイーサと書かれていることがわかります)

ethereumは、仮想通貨としての役割以外に「スマートコントラクトアプリケーションのプラットフォーム」という重要な機能を持っています。スマートコントラクトというのはブロックチェーン上でコントラクト(契約)を結べるシステムという意味です。etherumはコントラクトというプログラムをブロックチェーン上に実装することで、様々なアプリケーションがブロックチェーンの上で動く世界を目指しています。

スマートコントラクト

イーサリアムはビットコインなどと同様に多数のノードの集合からなるブロックチェーンというシステムで動いています。コンセンサスアルゴリズムは現在PoWですが、メトロポリスというアップグレードによってPoSに移行すると言われています。ブロックチェーンでは、あるノードから別のノードにトランザクションを送ることによってネットワークができ上がります。AさんからBさんに1BTCを送るというトランザクションがいい例でしょう。イーサリアムも同様にノードからノードにトランザクションを送ることで相互にネットワークが形成されていきます。

ここではある一つのアドレスのことを「アカウント」と呼ぶことにします。イーサリアムには2つのアカウントの種類があります。一つは「EOA」と呼ばれる私たち人間が利用するためのアカウントです。先ほどの例ではAさんがBさんのアドレスに対してトランザクションを送りましたが、これはEOA対EOAのトランザクションであるということができます。イーサリアムにおけるもう一種類のアカウントは「コントラクト」と呼ばれるプログラムが組まれた人間が操作しないアカウントです。コントラクトはsolidityというプログラミング言語によって書かれていて、ブロックチェーン上で動作します。

イーサリアムにおける「EOA」と「コントラクト」の違いは、SNSの「リア垢」と「Bot」の違いを思い浮かべるとわかりやすいでしょう。SNSにおいてリア垢は実際の人間が操作するアカウントで、友達とのメッセージのやりとりなどに使われます。一方Botは基本的に人間は操作せずに、開発者の組み込んだプログラムに従っって自動的にアカウントとして振舞います。これをそのままイーサリアムのアカウントの概念に当てはめると、EOAは実際に他のノードと取引を行ったり、ウォレットとして使ったりするアカウントで、コントラクトは誰かによってプログラムされた自動的に動くBotのようなものだと思って考えるとイーサリアムのアカウントの概念を理解しやすいのではないかと思います。

先ほどのERC20トークンをウォレットに追加する話で「コントラクトアドレス」という言葉が出てきましたが、これは私たちがEOAとしてアドレスを持つように、コントラクトに対して割り当てられた特定のアドレスであることがわかります。イーサリアムにおいてもっとも重要なスマートコントラクトという仕組みは、このBotのようなコントラクトに対してEOA(もしくはコントラクト)がリクエストをすることで行われます。例えば、SNSで「フォローしてくれた人をフォローし返す」というプログラムが組まれたBotがあったとしましょう。私はこのBotに対してフォローというリクエストを送ります。するとBotはプログラムに従って私をフォロー仕返してくれます。これと同じようなことをイーサリアムのブロックチェーン上で行うことでスマートコントラクトのシステムは成り立ちます。例えば、「トランザクションを送ってきた人を友達リストに登録する」というプログラムが組まれたコントラクトがあったとしましょう。私はこのコントラクトにトランザクションを送り、私の名前がコントラクト作成者の友達リストに乗ります。この取引はイーサリアムのブロックチェーン上で保存され続けるので、誰にも改ざんされないデータとして残り続けます。コントラクトを使うことによって、このような単純な仕組みだけでなく、あらゆる仕組みをコントラクトとしてプログラムし、ブロックチェーン上で動作し続けるアプリケーションとしても残すことができます。これがスマートコントラクトであり、イーサリアムの本当の姿です。

ちなみにイーサという通貨はイーサリアムのブロックチェーンの上でトランザクションを送る際の燃料のような役割を持ちます。発行上限が決まっているビットコインが埋蔵量が決まっている「金や銀」に比喩されるのとは対照的に、イーサに発行上限はないので、作っては消費する価値のあるもの「塩や米」などに例えられます。こうやって考えてみるとそれぞれの仮想通貨にも価値の見いだされ方に違いがあるものです。

ABOUTこの記事をかいた人

「お金をかけないサバイバル術」に関する記事を書きます。証券アナリスト資格(CCMA)を持っています。Ethereum信者です。温泉と餃子とv系バンドが好きです。プログラミングが得意です。趣味はメルカリです。好きな言葉は「最小構成」