読者です 読者をやめる 読者になる 読者になる

Satoshi Nakamoto Fan Club

ビットコインが好きです。

分散型合意形成システム、Ethereum


ビットコインをただの"より良い通貨"として考えることは、インターネットをただの"より良いファックス"として考えることと同じだ」
-Andreas Antonopoulus

インターネットが誕生して間もない頃、大半の人が胡散臭いと思うか、そもそも関心を持たず、一部の人がファックスの改良版として期待し、プラットフォームとしてのインターネットに心を奪われたのはごくひと握りの人だけだったという。いまのビットコインを取り巻く状況はインターネットの黎明期に似ている。

分散型合意形成システム

ビットコインの原理 - Satoshi Nakamoto Fan Clubで見たように、ブロックチェインの革新性は「たった一つの合意された状態」を共有できることであり、合意する対象は通貨の取引記録である必要はない。このシステムをセキュアに運用するためには一定量のコンピューティングパワーが必要になり、そのコンピューティングパワーに対する対価として、通貨がいわば副産物としてできただけである。ブロックチェインとは本質的には分散型合意形成システムであり、通貨はシステムを動かす円滑油でしかないのだ。
ブロックチェインを通貨以外のシステムに応用するという試みは、ビットコインがリリースされた当初から行われてきた。代表的な例として、小額のビットコインに「色」を付加することにより任意の資産をビットコインのブロックチェインに乗せるColoredCoins*1や、独自のブロックチェイン内にドメイン名を管理する機能を持ち、中央のサーバーに依存していたドメイン名の登録・管理のP2P化を実現したNamecoin*2 などがある。

Ethereum

ブロックチェインを分散型合意形成システムとして利用する切り口を極限まで推し進めたのがEthereum である。Ethereum とは一言でいうと分散型契約管理システムである。ここでいう「契約」は、

  1. データ領域
  2. そのデータを読み込んだり、書き換えたりできるプログラム

の組み合わせによって構成される。例えば、Ethereum 上で通貨(あるいはトークン)システムを構築したければ、

  1. その通貨をどのアカウントがいくら保有しているかというデータ
  2. その保有額をアカウントからアカウントへと移すプログラム

をブロックチェインに乗せれば良い。あるいは、DNSを構築したければ、

  1. urlとIPアドレスを対応付けるデータ(表)
  2. その対応表を書き加えたり書き換えたりするプログラム

をブロックチェインに乗せれば良い。

つまり、Ethereum はブロックチェイン上に多様な機能を個別に埋め込む代わりに、データ領域とプログラム言語だけを用意し、ブロックチェイン上で任意のP2Pアプリケーションを「ネットワーク内で状態に関する合意を形成しながら」運用できるのである。この「ネットワーク内で状態に関する合意を形成しながら」、という部分こそブロックチェインの革新性であり、Ethereum の革新性である。


多くのシステムは運用するために合意を必要とし、合意を形成するためには銀行や企業、国家などの中央機関にその状態を管理してもらう必要があった。例えば、お金を送ったり、受け取ったりできるようなシステムを構築するために、口座残高の状態を管理する銀行が必然的に誕生した。あるいは保険システムを考えるとき、小規模で顔見知り同士なら口約束でもなんとかなるかもしれないが、大規模に設計しようとすれば契約の状態を管理する保険会社が必要になる。

この合意形成の必要性によってインターネットの分散性は限定されてきた。インターネットには合意形成レイヤーが、つまり現実社会において法律や契約に対応するレイヤーが存在せず、それ故に現実社会の補完的立ち位置から抜け出すことができなかった。何か合意を必要とするようなシステムをネット上で構築しようと思ったとき、僕達は中央集権的な法律や契約を現実社会から「借りて」きて合意を形成するしかなかった。

Ethereumはこれまで合意を管理してきた中央組織の役割を分散化し、置き換える。通貨、所有権、ネットサービス、著作権、株式、負債、取引契約、保険、デリバティブ、あるいは簡単な政治システムや会社システムまで、状態に関する合意を必要とし、なおかつ抽象化可能(プログラム可能)な社会的契約はブロックチェインに乗せることができる。


例えば、ドメイン名登録システムなら3行で、簡単な通貨システムはたった9行のコードで書けるし、KickStarter みたいなクラウドファンディングシステムは38行で書ける。「契約者の住んでいる地域に災害や地震が起こった場合、プールされたお金の何%かを与える」というような契約を書けば、簡単な保険システムも構築できる。また、「このデータ(プライバシーのために暗号化する)をあなたのハードディスクに保存してくれたら、その間一時間ごとに 10Ether(Ethereumの通貨単位)送金する」というような契約を書けば、P2Pファイルストレージシステムとでもいうべきものも構築できる。

より複雑なコードを用いれば、DAO(Decentralized Autonomous Organizations)と呼ばれる、ブロックチェイン上で存在する仮想的な企業体も構築できる。最もシンプルなDAOの実装は「メンバーの67%が合意したときに限り、企業体の資金を使用したり、DAOのコードを変更したりできる」というような形になる。さらに、相互評価に基づく給料システム、仮想的な株の発行、メンバーの追加と追放のメカニズムなども実装できる。


このように、これまでは中央集権的な構造をもたなければ運用できなかったシステムも、Ethereumブロックチェインを用いて分散化できる。そして、分散化することによって、これまで中央を持つことで生じた高額な手数料、煩雑な手続き、理解不可能な契約内容、無駄の多いプロセス、検閲、自己目的化、恣意的な操作などの摩擦や脆弱性が解消される。

もちろん、全てのシステムが分散化されるわけではないし、されるべきだとも思わない。重要なのは、いま中央集権的構造によって運用されているシステムが、果たして本質的必要性に基づいて中央集権的なのか、それとも技術的妥協に基づいて中央集権的なのか、それを見極めることである。Ethereumはこの二つの間に線を引くことを可能にする。Ethereumによって、ビットコイン中央銀行を分散化させたように、技術的妥協が不必要になった様々な中央集権的システムを分散化できるようになる。

Ethereum はTCP/IPのようなプロトコルであり、インターネットに合意形成のための新しいレイヤーを付加する。TCP/IPの開発者達は、今の TwitterFacebook, Google Map のようなサービスがその上にできることを予想していた訳ではない。かれらはただ多様なサービスを可能とするプラットフォームを造っただけである。Ethereum も同じように、誰も予想がつかないような、全く新しいサービスやシステムがその上に開発されるのを待つ、無限の可能性を秘めたプラットフォームである。