誰でも分かるWeb3の原点(後編)
Web3とは何かを理解するために、ギャビンの「ĐApps: What Web 3.0 Looks Like」を翻訳して、私がなるべく優しく(とは言っても最低限のIT知識は必要かも)解説しました。
前編はこちら
ここから後編
③
Web 3.0の3つ目の部分は、コンセンサスエンジンである。ビットコインは、私たちの多くにコンセンサスベースのアプリケーションのアイデアを紹介しました。しかし、これは最初の暫定的なステップに過ぎない。コンセンサスエンジンとは、将来の相互作用(またはその欠如)が、自動的に、そして不可逆的に、指定されたとおりに実施されるという知識の下で、相互作用のルールに合意する手段である。これは事実上、すべてを包含する社会契約であり、コンセンサスのネットワーク効果からその強さを引き出している。
ブロックチェーンにはコンセンサスアルゴリズムという仕組みがあり、どのトランザクションが正しいトランザクションかを複数のNodeと呼ばれるコンピュータが相談をしながら判断しています。すごく簡単に言うと、分散コンピューティングにコンセンサスアルゴリズムを追加したものがブロックチェーンです。「自動的に」というのは人間が関与しなくても動くシステムを想定しています。「そして不可逆的に」とは、ブロックチェーンならではの改ざん不可能性を指していると読みました。
ある契約を破った場合の影響が、他のすべての契約にも及ぶという事実は、強力な社会契約を作り、破りや故意の無視の変化を少なくする鍵である。例えば、評判システムは、より個人的な社会的相互作用システムから分離されているほど、評判システムはあまり効果的ではなくなります。ユーザーは、彼らの友人、パートナーや同僚がそれらを考えるものに本質的な価値を置くので、機能のようなFacebookやTwitterと組み合わせた評判システムは、1なしでよりうまくいくでしょう。特に、雇用主や交際相手とFacebookで友達になるべきかどうか、またいつ友達になるべきかという難しい問題は、その顕著な例です。
簡単に言うと、「『悪いことしたら、他の人にバレるよ。』という評価システムは強力だよ。それはトラストなしでうまくいくよ。でも会社の人や恋人と友達になるのは悩むよね。」と言ってるように思えます。
コンセンサス・エンジンは、すべての信頼できる情報の公開と変更に使用されます。これは、完全に一般化されたグローバルなトランザクション処理システムを通じて実現されるもので、その最初の実用的な例がイーサリアムプロジェクトである。
従来のウェブはコンセンサスに根本的に取り組んでおらず、ICANN、ベリサイン、フェイスブックといった当局の集中的な信頼に頼っており、民間や政府のウェブサイトと、それらが構築されているソフトウェアに還元しています。
ギャビンが関与したイーサリアムは最初のワールドコンピュータと言われています。スマートコントラクトと呼ばれるプログラムが自動的に動きます。コンセンサスアルゴリズムがすべての情報の変更(追加やアップデート)をVerify(承認)します。これは非中央集権ですが、ICANNやフェイスブックは中央集権なので会社が情報の変更を承認します。中の人が頑張ってます。これはWeb2.0ですね。
④
Web 3.0 体験の 4 番目、そして最後の要素は、これらすべてを統合するテクノロジー、つまり「ブラウザ」とユーザーインターフェイスです。面白いことに、これは私たちがすでに知っているブラウザーのインターフェースとかなり似ています。URIバー、戻るボタン、そしてもちろん、ĐApp(n'ute webpage/webサイト)の表示に主要な部分が割当てられます。
(今はないけれど)Web3.0でのブラウザを作れば良いということかと。それはURIや戻るボタンという今のブラウザと見た目はほぼ同じですが、DAppを表示するのが違います。
このコンセンサスベースの名前解決システム(アプリケーションのNameCoinに似ています)を使用すると、URIはそのアプリケーションのフロントエンドのユニークなアドレス(つまりハッシュ)に還元されます。情報公開システムを通じて、これはフロントエンドに必要なファイルのコレクションに拡張することができます(例えば、.html, .js, .css & .jpg ファイルを含むアーカイブ)。これは、ĐApp(-let)の静的な部分です。
名前解決というのは、今だとDNS(Domain Name Service)の役割です。
名前って何?なんで解決するの?と思うかもしれません。
(人間が読める)名前(ドメイン): note.com
(コンピュータが理解できるIPアドレスに)解決: 13.226.78.78
これは、note.comだとコンピュータは通信できないので、固有の識別子であるIPアドレス(13.226.78.78)に変換する簡単な機能です。それをブロックチェーンでやったのがNameCoinです。しかし中央集権なICANNに認められてないので、普通のブラウザ/OSでは動きません。
Web3ではすべてのリソース(htmlやjpgといった画像ファイル)がハッシュになりダウンロードできます。静的なコンテンツはこれでいけます。
これは動的なコンテンツを含まず、代わりに他の通信チャネルを通じて提供されます。出所を絶対に特定する必要があり、永遠に不変に保持する必要がある("set in stone")、評判や残高などの動的だが一般に入手可能なコンテンツを収集し送信するために、合意形成エンジンと対話するためのJavascriptベースのAPIがあります。動的で、潜在的にプライベートな、必然的に揮発性で消滅または利用不可能になる可能性があるコンテンツを収集し送信するには、p2p-messaging-engineが使用されます。
https://address/path" のような従来のクライアントサーバー型URLモデルから、"goldcoin" や "uk.gov" のような新しい形式のアドレスに移行していくことでしょう。名前解決はコンセンサスエンジンに基づく契約によって行われ、ユーザーによって簡単にリダイレクトや拡張を行うことができる。ピリオドは複数レベルの名前解決を可能にする。たとえば、「uk.gov」は「gov」サブネームを「uk」が指定する名前解決器に渡すかもしれない。
評判や残高などの動的なコンテンツはコンセンサスアルゴリズムを使いましょう。そのためにJavascriptという言語で作ったAPI(アプリケーション間の通信規格)があります。ハッシュでアクセスするので、ファイルにアクセスするドメイン/パス/ファイル名という書き方じゃなくても良いですねと述べています。もっというと、現在のURLは一つのDNS体系(ただし個別のDNSは分散されている)で名前解決されますが、ドットで区切った複数の名前解決システムを切り分けられる柔軟に方式になるということを示唆しています。
これは私の想像ですが、従来のDNSはサーバレベルでの名前解決をしています。Web3では、リソースレベル(文字、画像、動画等)でのアクセスを想定していると読めるので、数が多すぎて処理が大変になるので複数レベルの名前解決を考えているのかもしれません。
「名前解決コンセンサスエンジンに基づく契約」の部分では、今DNSがやってることをスマートコントラクトでやりましょう。ということかと。
WEB2のデータ取得の書き方 https://address/path
WEB3のデータ取得の書き方 uk.gov.xxx.yyy.zzz
コンセンサスバックエンドの更新とピアネットワークの維持を通じて、ブラウザが自動的かつ偶然に利用可能になる情報の常に一時的な性質のため、バックグラウンドĐAppsまたはĐAppletsがWeb 3.0体験で大きな役割を果たすと思われます。常に見えるMac OSドックのようなダイナミックなアイコンインフォグラフィックスや、ダッシュボードスタイルのダイナミックなĐAppletsを通じて、私たちは気になることについて偶然に最新情報を得ることができるのです。
Web3では動的に(ダイナミックに)情報が更新されるのにバックグラウンドでDAppsやDAppletsが動きます。これは今と見た目は同じだと思います。ブラウザで動くJAVAのアプレットみたいなものですね。
静的データは事前にダウンロードされ、最新であることが保証され、動的データ(コンセンサスエンジンまたはp2p-messaging-engineを通じて配信)も最新に保たれているので、最初の同期プロセスの後、ページのロード時間はゼロになります。同期している間は、実際に表示される情報は古くても(古くなくても、そのように注釈をつけることは可能)、ユーザーエクスペリエンスは完全に安定したものになる。
これも今のAJAXのように動的に情報が更新されるということを述べているかと思います。そして、静的なデータは最初にロードしたら、ローカルデバイスでキャッシュしているのでロード時間はゼロになると述べているように読めます。
Web 3.0のユーザーとして、すべてのインタラクションは偽名で、安全に、そして多くのサービスでは信頼なく行われるでしょう。サードパーティ(-ies)を必要とするものは、ツールがユーザーとĐApp開発者に、複数の異なる、おそらく競合する、エンティティ間で信頼を広める能力を与え、任意の単一のエンティティの手に置かなければならない信頼の量を大幅に削減することができるようになります。
偽名=匿名ということかと。Web3のブラウザが将来開発されれば、自分のIPアドレスを特定されることなく、情報検索ができますと述べています。これは悪いことをしても本人を特定することがかなり難しくなることを想定していると思います。ほぼ匿名(自分のIPアドレスが第三者に特定されない)でのインターネットは技術的には可能だと思うのですが、議論を呼びそうです。
エンティティとは会社と考えて良いです。一つの大きな会社が沢山の情報を取得するのは駄目であるという理念に基づいています。
フロントエンドとバックエンドからAPIを分離することで、優れたユーザーエクスペリエンスを提供することができる異なるフロントエンドソリューションを利用する能力がさらに高まるでしょう。Qt の QtQuick と QML 技術は、例えば、従来の Web 技術の HTML/CSS の組み合わせに代わるもので、ネイティブのインタフェースとリッチなアクセラレーショングラフィックスを、最小限の構文的オーバーヘッドと非常に効果的なリアクティブプログラミングのパラダイムで提供することが可能です。
フロントエンドは簡単にいうとブラウザやアプリです。バックエンドはブラウザに情報提供するサーバです。従来のWeb技術はhtmlという文字や画像のデータとその見た目を綺麗にしましょうというcssの組み合わせで書かれています。
でも、これだとOSやブラウザによって見た目が少し変わってしまいますし複雑なことをするのは大変です。それでも昔はコンピュータの性能が低かったので、データ量を少なくするためにhtml/cssを使ってましたが、今後はアプリで使うような本格的なGUIのプログラムを標準にしましょうということかと思います。
Web 2.0では、Bitcoin、BitTorrent、NameCoinといったWeb 3.0的なコンポーネントをバックエンドに利用したサイトを目にすることが多くなっているため、その変化は緩やかなものになるだろう。この傾向は続き、真のWeb-3.0プラットフォームであるイーサリアムは、投票サイトや取引所など、コンテンツの取引証拠を提供したいサイトによって使用されるようになるでしょう。もちろん、システムは最も弱い部分ほど安全であるため、最終的にそのようなサイトは、エンドツーエンドのセキュリティと信頼できるインタラクションを提供できるWeb 3.0ブラウザに移行することになるのです。
Web 3.0、安全な社会的オペレーティングシステムに「こんにちは」と言いましょう。
今でもすでにBitcoin、BitTorrent、NameCoinといったWeb3.0的な技術は利用されています。なのでWeb3.0へ移行するときの見た目の変化はゆる方でしょう。しかし、最終的には個別のPCのセキュリティー(個別のIPアドレスが分からないので、中央集権的な組織に監視されない)が担保されるWeb3.0ブラウザに移行するということを述べています。
「こんにちは」
加納の纏め
私はギャビンの文章を以下のように要約しました。
・スノーデンの理念に同意しており中央集権的な組織が個人の情報を監視すべきではありません
・すでにファイル交換ソフトのBit Torrentのように匿名で自分のIPアドレスを気にしなくて情報交換できる仕組みがあります
・ブロックチェーンのコンセンサスアルゴリズムでデータが正しいかを検証することができます
・Web3技術はハッシュでデータにアクセスするのでURI(Webのファイル識別子)を変更しましょう。ドットで区切った複数のシステムを切り替えられる柔軟な方式が良いです
・Web3ブラウザができれば、安全でアプリみたいに動的にかっこいいものが作れます
そして、一般的に言われているような以下の解釈が成立するか分析しました。
Web3 ≒ DAO
Web3 ≒ NFT
Web3 ≒ メタバース
DAOとはDecentralized Autonomous Organizationの略で、分散型自律組織のことです。DAOであるためには、サービスが人を介さずに自動的に提供され続けなければなりません。DAppsは必ずしもDAOではありません。DAOについては明示的に述べられていませんが、以下の文章にヒントがあります。
コンセンサスエンジンとは、将来の相互作用(またはその欠如)が、自動的に、そして不可逆的に、指定されたとおりに実施されるという知識の下で、相互作用のルールに合意する手段である。これは事実上、すべてを包含する社会契約であり、コンセンサスのネットワーク効果からその強さを引き出している。
コンセンサスエンジンというのを、狭義の意味でのコンセンサスアルゴリズムとは解釈せずに、広義の意味でWeb3の想定する世界で動く自動的に相互作用を及ぼすエンジンと解釈すると、DAOの世界観に近づきます。
NFTは(Non-Fungible Token)の略で、世界で一つしかないトークンのことです。NFTという言葉は当時(2014年)は存在しなかったのですが、NFTの概念に該当する部分は明示的には読み取れませんでした。Bit Torrentでは世界で一つのものをダウンロードしているわけではなく、また個人が所有していることを証明する機能もありません。ブロックチェーンのコンセンサスアルゴリズムも、沢山あるトークン(FT)のようなものでもNFTでも使用できます。電子署名に関する言及はあるのですが、これがNFTでの重要な概念である存在証明を語っていると読むのは難しいかと思います。
メタバースでは、ブロックチェーンとの相性が良いと言われています。それは仮想空間でトークンを使ったり、NFTのような存在証明をアートだけではなく契約行為に使えるからです。メタバースについては文中に明記はありません。
①メタバースの一部にブロックチェーン技術を使う
②Web3はブロックチェーンの概念を包含している
①と②を組み合わせてもWeb3≒メタバースと読むのは難しいかと思います。
ユーザー視点で纏めると、「ĐApps: What Web 3.0 Looks Like」では、Web3ブラウザはGUIのデータがシームレスに更新されてかっこいい。DAppsを使ってる。根幹の技術にはP2P技術+ブロックチェーンを使っているので、個人情報は監視されずに安心であると述べているように思えます。
最後に、今回は原点であるギャビンの「ĐApps: What Web 3.0 Looks Like」を読み解きましたが、現在言われている(オレオレ)Web3とは必ずしも一致しないように思えます。だからといって、Web3を語る上での定義はギャビンのこの文章でなければならないとも思っていません。そして、8年前の文章なのでそこからアップデートもあるでしょう。
私は、この原点の文章から読み取れる理念を尊重して、Web3とは何であるのか?どうあるべきなのか?の議論を続けながら、新しい世界観のプラットフォームやアプリケーションの実装を進めるのが良いかと考えています。