- 独り言
「マスタリング・イーサリアム」を読み終えて
先週の記事に書いた「マスタリング・イーサリアム」ですが、勢いに任せて読了しました。
読み終えて思ったのは、やはり「面白さ」でした。
先週の記事でも書きましたが、第1章を読み終えた時点で、私はとてもワクワクしていました。
その理由は、ちょっと難しい用語を用いますが、次のように表現できます。
『チューリング完全で、状態遷移する、非中央集権的な、シングルトンを、ガス(gas)という制限によって実現しようというのが面白い』
用語について、ごくごく簡単にかみ砕いて説明します。
(多少の語弊はご容赦ください)
チューリング完全 | 『あらゆるプログラムを実行できる』と同時に、『プログラムの処理が完了するかは実行するまで分からない』という性質 |
状態遷移する | 『システム全体の持つデータが変化する』という性質 |
非中央集権的 | 『管理者がいない』という性質 |
シングルトン | 『世界にただ一つだけ存在する』という性質(を持つもの) |
ガス | 「イーサリアム」内で用いられる『処理の手数料』 |
これの何が面白いのか。
順を追ってみてみましょう。
まず、「イーサリアム」は「チューリング完全」です。
どんなプログラムでも実行できます。
次に、「イーサリアム」は、プログラムを実行することで「状態遷移」をします。
つまり、あるプログラムが実行され処理が完了することで、システム全体の何かのデータが変化します。
ところが、「イーサリアム」は「チューリング完全」なので、『実行したプログラムの処理が完了するか』は、実行するまで分かりません。
ですので、いわゆる『無限ループ』が仕込まれたプログラムを実行してしまうと、永遠に処理が終わらなくなります。
そうなると、そういった困るプログラムが投入されないよう、実行可否を判断できる「管理者」を設けようと考えます。
しかし、「イーサリアム」は「非中央集権的」な構造ですので、「管理者」を設けることはできません。
さらに悪いことに、「イーサリアム」は「シングルトン」です。
つまり、この世に一つしか存在しないので、『代わりのイーサリアムで処理する』といったことができません。
ここまでの概念だけでは、どんな「イーサリアム」にも未来はありません。
故意かどうかを問わず、『無限ループ』のプログラムを実行した瞬間に、その「イーサリアム」は死にます。
そこに現れた救世主が「ガス」です。
ガスは、その名に反してガソリンのようなものです。
(まあ、「ガス欠」とか言いますし、英語圏ではガソリンのことを指しているのかもしれません)
「イーサリアム」で何か処理を行うには、事前に『処理の手数料』である「ガス」を用意する必要があります。
すなわち、処理を依頼したい人は、依頼したい処理の指示書と必要な量の「ガス」を、処理を実行する人に渡します。
処理を実行する人は、受け取った指示書を元に処理を行います。
ここで、指示書の中の1つの操作を行うたびに「ガス」を使っていきます。
もし、処理の途中で、次の操作を行うのに十分な「ガス」が残っていないと分かると、処理は中断され、依頼した人に『「ガス」が足りませんでした』と応答します。
結果として、処理を依頼した人は、渡した分の「ガス」を失い、『「ガス」が足りなかった』をいう結果を手に入れます。
ここで、「ガス」が『有限である』ことがポイントです。
「ガス」が『有限である』以上、処理を『無限に続ける』ということはできません。
どこかで、いつか、必ず止まります。
これにより、「イーサリアム」は、プログラムの『「ガス」が足りなかった』という結果を受けて、状態遷移を終えます。
そうすると、次のプログラムの実行に移ることができます。
結果として、「イーサリアム」は、『チューリング完全で、状態遷移する、非中央集権的な、シングルトン』として成立したまま、生き続けることができます。
面白くないですか?
ツマンナイ? ワケワカンナイ?
そうですか……もっとエキサイティングな説明ができればよかったのですが、私の語彙力が足りなかったようです。
私もこれまで、様々なシステムの開発に携わってきました。
最も多かったのは、「クライアントサーバモデル」などと呼ばれる、「管理者」としてのサーバと「利用者」としてのクライアント(パソコン)が存在するモデルです。
それ以外は、インストールしたパソコンの中で全てが完結する「スタンドアロン」と呼ばれるようなタイプでした。
ですが、「イーサリアム」は、これらのモデルとは根本的に異なります。
「イーサリアム」は、通常何らかのネットワークを形成するので、一見すると「クライアントサーバモデル」のように見えます。
しかし、先ほど述べたように、そこに「管理者」はいません。
全ての「利用者」が対等で、「ガス」を支払いながら様々な処理を行っているのです。
もっとも、そこには「管理者」の代わりに、「摂理」とも言うべき概念が存在します。
それが、「コンセンサス」(日本語に直訳すると「合意」)です。
「イーサリアム」の全ての「利用者」は、この「コンセンサス」に沿って活動します。
全てのプログラムは、「コンセンサス」のルールに則って作成された、「スマートコントラクト」と呼ばれる単位でのみ実行できます。
すなわち、この「コンセンサス」に則った「スマートコントラクト」が実行されている限り、「イーサリアム」の世界は「自律」されます。
分かりやすい例は身近なところにあります。
それは、「自然」です。
「自然」には、物理法則などの「摂理」、すなわち「コンセンサス」があります。
全ての現象は、それらの「コンセンサス」の元で発生します。
晴れの日もあるでしょう、ビル風も吹くでしょう。
台風が来ることもあれば、隕石が落ちてくることだってあります。
ですが、何が起きても、「自然」は「自然」のまま成立し続けています。
太陽の光は光合成による化学変化をもたらし、落ちてきた隕石は地球の一部となって一緒に太陽の周りを回り始めます。
それでも、「自然」の中で起きる現象が、物理法則などの「コンセンサス」に従っている限り、「自然」は生き続けます。
我々人類が滅ぶことはあるかもしれませんが、「自然」という世界は、自らの規律「コンセンサス」によって「自律」し続けるのです。
これが面白いところです。
……ツマンナイ? チョットヨクワカンナイ?
そうですか……無念です。
中々簡単にまとめられないのは悔しいところですが、私はこの「イーサリアム」というアーキテクチャに期待を抱いています。
必要なのは「管理者」ではなく「摂理」。
これ、たぶん現存するあらゆる管理体制を排除できると思うんです。
企業だけでなく、国家すらも。
そして、もし『完全な「イーサリアム」』が実現出来たら、それってたぶん、私たちがイメージする「天地創造」だと思うんです。
つまり、人類が長年追い求めている「神」という存在になれると思うんです。
もっとも、その「神」は、創造した「世界」に対して何もできないただの無能です。
『完全な「イーサリアム」』では、「世界」は「自律」してるので、「神」といえど、「コンセンサス」に反する行為は実行できないはずです。
そして「コンセンサス」に従うならば、万能でも何でもない、ただの「利用者」にすぎません。
皮肉なものですね。
さて、今週は……3000文字オーバー!
これまた長々と書きましたねー。
そんなわけで、「イーサリアム」について、少し理解することができました。
ただ、原書は2018年の発行らしいので、既に5年も遅れています。
それでも、今後活用されるようになった時、いま理解した内容は活きてくるはずです。
時代が来た時に、それをチャンスとして掴めるように。
知らないまま、ピンチとして逃してしまわないように。
しっかり勉強していきましょう。
それでは、「イーサリアム」の世界に足を踏み入れた、山本慎一郎でした。