見出し画像

誰でも分かるWeb3の原点(前編)

Web3が昨今バズワードとなっていますが、定義はいまいち分からない状況で、これがWeb3、あれがWeb3と「ぼくのかんがえたさいきょうのWeb3」が乱立するという状況は、2014年に私がビットフライヤーを創業した時の「ブロックチェーン」に通じるものがあります。

やはり定義を考えるのは原点に返って見るということが良いと思い元イーサリアムのGavin Woodが書いた以下の「ĐApps: What Web 3.0 Looks Like」をDeeplで翻訳して、ブロックチェーンが少し分かってる初心者を意識して理解してもらえるように私のコメントを添えました。


原文はこちらです。



ĐApps:Web 3.0はどのようなものか


注:元々はgavofyorkのブログInsights into a Modern Worldに2014年4月17日(水)に投稿されたものです。
・Appsです。ウェブ3.0はどのようなものか
未来に向かうにつれて、ゼロ・トラスト・インタラクション・システムの必要性が高まっていることがわかります。

DAppsとは、分散型アプリケーションのことです。ブロックチェーン上で動くアプリだと考えてください。DApps:Web3.0とタイトルにあるので、DApps≒Web3.0だということがギャビンが伝えたい重要なことだと解釈できます。


ゼロトラストとはブロックチェーンでよく使われる概念ですが、信頼できない相手であっても正しく通信できることだと考えています。ブロックチェーンの場合は、「嘘つき」のコンピュータがいることを前提にアルゴリズムが正しいトランザクションを判定します。ゼロ・トラスト・インタラクション・システムは、ゼロトラストを利用して、ユーザーやコンピュータが相互に通信できるようなシステム(この場合は個別のアプリケーションではなく、複数のアプリケーション間で構築されるシステム体系)と私は読みました。



スノーデン以前から、私たちはインターネット上の任意の存在に自分の情報を預けることは危険と隣り合わせであることを認識していました。しかし、スノーデン事件以後は、大規模な組織や政府が日常的に自分たちの権限を拡大し、踏み越えようとしていると考える人々の手に、この議論は明らかに落ちている。こうして私たちは、一般的な組織に私たちの情報を託すことは、根本的に壊れたモデルであることに気づくのです。ある組織が私たちのデータに干渉しない確率は、必要な労力から期待される利益を差し引いたものに過ぎない。組織は、人々についてできるだけ多くのことを知らなければならないという収入モデルを持つ傾向があるため、現実主義者は、変換器による悪用の可能性を過大評価することは困難であることに気づくでしょう。

国民の情報を無許可で監視する政府の活動を批判し、命がけの告発をしたスノーデンの話をしています。「イギリスの首相は銀行への2度目の救済措置の瀬戸際」とサトシ・ナカモトがビットコインの最初のブロックに刻んだことを思い出しました。両者ともに、権力が増大した中央集権的な機構に対して個人主権型への回帰を促す問題提起だと思います。



ウェブ上のプロトコルや技術、さらにはインターネットは、素晴らしい技術のプレビューの役割を果たしました。SMTP、FTP、HTTP(S)、PHP、HTML、Javascriptといった主力技術は、Google Drive、Facebook、Twitterはもちろん、ゲーム、ショッピング、銀行、デートなど、数え切れないほどのアプリケーションを提供し、今日見られるような充実したクラウドベース・アプリケーションに貢献しています。しかし、今後、これらのプロトコルや技術の多くは、社会とテクノロジーの相互作用に関する新しい理解に従って、再構築される必要があります。

ここではインターネット上で使われている具体的なプロトコルの話をしています。私がインターネットに出会った時のブラウザはNCSA Mosaicでした。この時は回線が非常に遅くWebサーフィンをするにはhttp、ファイルをダウンロードするにはftpとプロトコルを使い分けないといけませんでしたが、今ではプロトコルを選んでファイルをダウンロードする人はほぼいないでしょう。こういったプロトコルやアプリケーションが再構築されるべきだと述べています。



ウェブ3.0、あるいは「ポスト・スノーデン」ウェブと呼ばれるものは、私たちがすでにウェブを利用しているようなものを再構築したものですが、当事者間の相互作用については根本的に異なるモデルとなっています。公開されると想定される情報は、公開される。合意されたと思われる情報は、合意記録簿に載せる。非公開と想定される情報は、秘密にし、決して公開しない。通信は常に暗号化されたチャネルで行われ、エンドポイントには仮名IDのみを使用し、追跡可能なもの(IPアドレスなど)は一切使用しません。つまり、政府や組織は合理的に信頼することができないので、数学的に事前の仮定を強制するようにシステムを設計します。

ウェブ3.0あるいはポスト・スノーデンウェブと述べているので、以下の方程式が成り立ちます。

Web3.0 = Web3 = ポスト・スノーデンウェブ ≒ DApps

当事者間の相互作用については根本的に異なる」と言っているので、これがWeb2とWeb3の差を理解する上での重要な要素だと考えられます。通信は常に暗号化されたチャネルと言っても、いまでもhttpsやsshでは暗号化されています。しかしIPアドレスは当然公開されています。現在TCP/IPを使っている限りは、IPアドレスがわからなければ、相手と情報交換することができません。IPアドレスはコンピュータ同士(PC、サーバ、スマートフォン、iPad等)が通信するときの、コンピュータの識別番号です。世界でIPアドレスとドメインはICANNという組織が管理しており、ピラミッド型の典型的な中央集権的な組織構造をしております。これは信頼できないので、IPアドレスを使用せずに仮名IDを使用すると述べています。仮名IDとは何でしょうか?


ポスト・スノーデンのウェブには、静的コンテンツの公開、動的メッセージ、信頼性のないトランザクション、統合されたユーザーインターフェースの4つのコンポーネントがあります。

ここから4つのコンポーネントの具体的な説明が始まります。

最初の要素は、私たちはすでに多くのものを手にしています。分散化された、暗号化された情報公開システムです。これは、ある情報の短い固有アドレス(技術的に言えばハッシュ)を受け取り、ある時間の後に情報そのものを返すだけです。新しい情報を投稿することもできる。いったんダウンロードされれば、アドレスがその情報に固有であるため、それが正しい情報であることが保証されるのです。この静的出版システムは、HTTP(S)の仕事の大部分とFTPの仕事のすべてを占めています。この技術の実装はすでにたくさんありますが、最も引用しやすいのはBit Torrentのものです。Bit Torrentのマグネットリンクをクリックするたびに、実際にやっていることは、固有アドレス(ハッシュ)がそれと等しいデータをダウンロードするようにクライアントに指示しているだけだ。
Web 3.0では、この部分の技術は、私たちが喜んで共有するあらゆる(潜在的に大きな)静的な情報の部分を公開し、ダウンロードするために使用されます。Bit Torrentと同じように、この情報を維持し共有するよう他者にインセンティブを与えることができますが、Web 3.0の他の部分と組み合わせることで、これをより効率的で正確なものにすることができます。インセンティブを与えるフレームワークはプロトコルに内在しているので、私たちは(このレベルでは、とにかく)設計上DDoSに耐えられるようになります。どうですか、このおまけは?

暗号化とハッシュとはよく出てくる用語です。ハッシュとは、あるデータを同じ規則によってサイズを小さくする技術です。元のサイズよりかなり小さいので元のデータに戻すことはできませんが、同じデータを与えたら必ず同じハッシュになることが保証されています。それとは逆に、あるハッシュを取り上げたら、世界中のあらゆるデータと重複せずに一つのデータを指し示すことができます。(実際には重複する確率が十分に低くなるようにハッシュの長さを決める必要がある)また、重複しないだけでなく、そのハッシュ値になるデータを作ることができません。


Bit Torrentとは有名な分散型ファイル共有ソフトです。著作権に違反しているファイルも多くあるので使用することをお勧めしませんが、ここでは技術的にどのようになっているかを解説します。Bit TorrentはP2P(ピア・ツー・ピア)という技術を使用しています。ピアとは各ユーザーのPCのことです。つまり各企業が用意したサーバを経由せずに個人のPCから個人のPCにデータをやりとりします。(なお、このnoteはサーバ型です。みなさんはnoteの会社が用意したサーバに格納された私の文章をブラウザでダウンロードして読んでいます。)ユーザーは自分のコンピュータのダウンロードフォルダにある全てのファイルを全世界に公開します。その逆に別の個人のダウンロードしたファイルを読み込むことができます。与えたらもらえます。Give and Take。自分が与えないと、ダウンロード速度が制限されて、手に入れるのも難しくなります。これは通貨やトークンを使わない形でに物々交換に近いモデルです。

そして、先程のハッシュを使うと、同じデータには同じハッシュになるので、特定の個人のPCに行かなくても、誰かがデータを持っていれば別のPCからダウンロードできます。当然ですが、根底の技術にはTCP/IPを使っています。自分のIPアドレスも他のBit Torrentユーザーには(当然匿名で)公開しています。でないとインターネット上で通信できません。ただ、ハッシュさえ分かればデータがどこにあるのかを気にしていないので、バラバラのTCP/IPからバラバラのデータを取得して復元しているので非中央集権的であると言えます。

DDoSとはハッカーが特定のサーバーを攻撃するための手段ですが、個人のPCは分散さてれいるのでDDoSは無意味になります。これはブロックチェーンも同様です。


Web 3.0の2つ目の部分は、IDベースの偽名低レベルメッセージングシステムです。これは、ネットワーク上の人々の間で通信を行うために使用されます。メッセージは、あるIDの公開鍵で暗号化され、そのIDだけがメッセージを解読できることが保証されています。また、送信者の秘密鍵で署名することで、送信者からのメッセージであることを保証し、受信者に通信の安全な受信を提供することができる。共有秘密は、グループ間を含め、受信証明の必要なく安全に通信する機会を提供することができる。
これらはいずれも究極のメッセージロジスティックスを提供するので、伝送プロトコルレベルのアドレスの使用は不要となる。アドレスは、かつてユーザーまたはポートがIPアドレスと一緒になっていたが、今では単なるハッシュとなる。

IDベースの偽名低レベルメッセージングシステムとは何かを説明しています。従来の公開鍵暗号と署名技術を使って情報(メッセージ)交換しましょうと述べています。メッセージとはLINEアプリのメッセージと考えてよいのですが、コンピュータ用語としてのメッセージはあらゆる情報を含み、短い情報ではなくてもよく本一冊の情報をメッセージとして考えることもできます。人と人の間のメッセージだけではなく、コンピュータ同士の通信もメッセージです。

note.comというドメインのIPアドレスは「13.226.78.78」です。コンピュータはドメインを変換したIPアドレスとポートのセットで通信をします。一般的に使われているhttpというプロトコルは80または8080というポート番号を使います。コンピュータは複数経路や相手と同時に通信を行っています。そこで決められたポート番号で通信することを事前に合意しておき、情報が混乱しないようにしています。ポート80番はhttpというWEBの一般的な情報を交換するためのポートなので、違うプロトコルのアプリケーションをポート80番に置いても情報を解釈できないので動きません。

ギャビンは、例えば13.226.78.78:80という従来のIPアドレスレベルでの暗号化(TLS)は不要と言っているように読めます。Bit Torrentのデータを暗号化すれば、秘密鍵を持っている特定の人にだけデータを届けるということができますよね?そして電子署名を使えば(必ずしも個人情報を載せなくても良いです。あるPCであるという証明さえできれば良いです)本人であることも証明できます。このようにWeb3でもTCP/IPは基礎技術で使うが、実質的にはTCP/IPに組み込まれた暗号技術は使わなくても良い状況をIDベースの偽名低レベルメッセージングシステムと呼んでいると解釈できます。

そしてこれはブロックチェーンがすでに行っている技術です。ブロックチェーンのトランザクションにBit Torrentのデータを格納すれば同じ状態になります。ただブロックチェーンは巨大なデータが格納できないので、大きな画像や動画をブロックチェーンに乗せるのは工夫が必要です。

※厳密には、ブロックチェーンにもP2P要素はありますが、個別のデータではなく、個別に暗号化されているわけでありません。


メッセージはtime-to-liveを持ち、多くのIDがそれを見ることを保証するためにできるだけ長く「生きて」いたい公開メッセージと、ネットワーク上でできるだけ早く送信されたいインスタント信号メッセージの間の曖昧さをなくすことができるようになる。このように、レイテンシーと寿命の二律背反が取引されています。

これはtime-to-live(情報が有効な時間)を設定すれば、ホームページのように未来永劫読んでほしい情報(メッセージ)とLINEのメッセージのように短期間しか読まれたくないものを区別することができます。今のようにわざわざ別の技術を使わなくても良いようになります。


実際の物理的なルーティングは、ゲーム理論的な適応型ネットワークシステムによって行われる。各ピアは、他のピアが入ってくる情報に対して価値があるという主張のもと、他のピアに対する自分の価値を最大化しようとする。情報が価値のないピアは切断され、他の、おそらく未知の(あるいは2次)ピアへの接続でそのスロットが奪われる。ピアがより有用であるためには、特定の属性を持つメッセージが要求される(たとえば、送信者アドレスやトピック(どちらも暗号化されていない)、特定のビット列で始まるもの)。

物理的なルーティングですが、従来のTCP/IPでは各ルータ(インターネットで情報の行き先を決めるハードウェア)が保有しているルーティングテーブルに沿ってメッセージが処理されます。ギャビンは、ゲーム理論を導入して、何かしらの利得計算をさせて優先順位を決めましょうということを提案しています。これはビットコインのブロックチェーンではFee(手数料)が大きいものを優先的にVerifyするので、同様の概念を入れたいということかと思います。




Web 3.0では、この部分によって、ピアはリアルタイムで通信、更新、自己組織化を行い、その優先順位を本質的に信頼したり後で参照したりする必要のない情報を公開することができます。従来のWebでは、AJAXスタイルの実装でHTTP上を移動する情報の多くがこれである。

AJAXはリアルタイムでブラウザ上で情報をアップデートする仕組みです。これをWeb3でやる場合は、上記の仕組みでやりましょうという説明だと理解しました。


(後編に続く)

この記事が気に入ったらサポートをしてみませんか?