はじめに
過去30年間でWebは大きく進化しました。HTMLやCSSで作成された静的なWebページに代表される「Web1.0」から、YouTubeやFacebookなどのようにインタラクティブなインターフェースとコンテンツに象徴される「Web2.0」へと発展し、現在では誰もが簡単に大量の情報を共有できる社会になっています。
多くの情報が流通する一方で、現在のWebは一部の企業に情報が集中する中央集権的な構造となっている点は否めません。ただ、この構造は少しずつ変わっていく可能性があります。
技術開発が進むにつれ、「Web3.0」と形容される新しいWebの姿が浮き彫りになってきました。機械学習やAR/VR、IoTやブロックチェーンといった新たなテクノロジーが台頭しており、Webは現在よりも分散化しつつ、個々に最適化されたサービスが利用されるようになると考えられています。
そして、ブロックチェーンはWeb3.0時代のインフラを担う技術と目されており、既にブロックチェーンの各レイヤーで技術開発が進んでいるのです。本記事では、ブロックチェーンのテクノロジースタックについて、各レイヤーごとに概観していきます。
Web3.0時代におけるブロックチェーンのテクノロジースタックとは?
ブロックチェーン技術は複数のレイヤーに分かれて開発が進んでおり、個別の技術やプロジェクトがどのレイヤーに分類できるのかを意識すると、当該技術(PJ)の位置付けや重要性がより明確になります。
以下では5つのレイヤーに分けて紹介していますが、その名称や分類方法に関しては、世界的なコンセンサスがあるわけではない点には留意が必要です。あくまでもレイヤー構造を整理する際の参考としてご覧ください。
アプリケーション層
いわゆるDApps(Decentralized Applications)と呼ばれるサービスなどが、最上位のアプリケーション層に分類されます。また、DAppsを利用する際に必要なDAppsブラウザなどもこのレイヤーです。基本的に、一般ユーザーがブロックチェーンを使う際に意識されるのはアプリケーション層だと言えるでしょう。多くのブロックチェーン企業はこのレイヤーで事業を構築しています。
特にパブリックチェーンを利用する場合は、開発の進捗やハードフォーク、(イーサリアムであれば)トランザクション手数料の変動など、自社でコントロールできない変数が比較的多いため、開発・事業構築どちらの観点でも、一般的なアプリよりは難易度が高いと言えるでしょう。
サービス層
アプリケーション層とプロトコル層の間に位置し、様々なサービスを提供するミドルウェアとして機能するのがサービス層です。以下のコンポーネントがサービス層に分類されます。
- データフィード:更新されたデータ情報を受信するために使用されるメカニズム。ノードが情報を適宜更新するために使用される
- オフチェーンコンピューティング:プライバシーやスケーリングなどが必要な場合、コンピューティングプロセスをオフチェーンに委託する
- ガバナンス:意思決定のため機能を提供する
- ステートチャネル:手数料とブロック承認の制約を最小化した、2つのピア間の双方向のトランザクション実行チャネル
- マルチシグネチャ:トランザクション実行に複数の署名を要求する仕組み
- オラクル:ブロックチェーンネットワーク外部の情報を利用するためのコンポーネント
- ウォレット:公開鍵と秘密鍵を管理し、トランザクションのブロードキャストなどを行うサービス
- デジタルアセット:暗号通貨やトークンに代表され、ブロックチェーン上で流通する資産
- スマートコントラクト:事前合意された条件に従って自動執行されるプログラム。一度デプロイしたプログラムは改ざんが困難
- デジタルアイデンティティ:高いセキュリティとプライバシーを備えたデジタルID
- 分散ファイルストレージ:ノードがストレージの空き容量を提供し合う形式のファイルストレージ。ファイルは暗号化され、正当な秘密鍵を持つ持ち主しか制御できない
これらのサービスやコンポーネントによって、他のテクノロジーやプラットフォームとの接続が可能になります。
プロトコル層
プロトコル層は主として、分散ネットワーク上でコンセンサスを形成する方法を提供します。コンセンサスアルゴリズムやブロック提案のメカニズムはこの層に属しています。また、目的に応じてネットワークへの参加を許可制にすることも可能です(パーミッション型)。
なお、コンセンサスアルゴリズムについては以下の記事をご覧ください。
▼詳細はこちら
PoW vs PoS vs DPoSの比較とコンセンサスアルゴリズムの意味を整理する
また、サイドチェーンやEVM(Ethereum Virtual Maschine)のような仮想マシンもこのレイヤーに分類可能です。特に、セキュリティを維持しつつ、コードを実行する仮想マシンは、ブロックチェーンアプリケーションにとって重要な要素だと言えるでしょう。
ネットワーク・トランスポート層
ネットワーク・トランスポート層は、P2Pネットワークにおいてピア間での通信をサポートするレイヤーです。データのパケット化、アドレス指定、送信、ルーティング、受信の方法を決定しています。
DApps向けの仕様が提供されている場合もあり、例えばイーサリアムではノード間の通信に、TCP(Transmission Control Protocol)ベースのトランスポートプロトコルである「RLPx」が使用されています。
参考:The RLPx Transport Protocol
インフラストラクチャ層
インフラストラクチャ層はもっとも低いレイヤーであり、該当部分はBaaS(Blockchain as a Service)として提供されることが多いです。仮想化やストレージ、ノードなどがこのレイヤーに属します。
参考:Vitalik Buterinが整理したテクノロジースタック(2014年ver)
イーサリアムの考案者として知られるVitalik Buterinは、2014年末に暗号通貨・ブロックチェーン関連の技術をレイヤー構造で整理しています。本記事で紹介したものとは分け方が異なるものの、共通している点が多いです。
ブロックチェーン領域におけるWeb3.0のユースケース
最後に、現在の主なWebサービスを代替しようとする非中央集権性を重視したサービスを紹介していきます。各サービスの詳細には立ち入りませんが、カテゴリごとに既存のサービスと対比したものが以下の表です。
サービス概要 | Web2.0 | Web3.0 |
---|---|---|
ブラウザ | Chrome、Safari | Brave |
クラウドストレージ | Google Drive、Dropbox、box、OneDrive | Storj、Filecoin、Sia |
SNS | Facebook、Twitter | AKASHA、Steemit |
メッセージングアプリ | WhatsApp、WeChat、Messenger | Status |
上記はほんの一例です。ブロックチェーンをベースとした、コンシューマー向けのアプリケーションが普及するのは時間がかるかもしれませんが、今後も既存のサービスをブロックチェーンベースで代替するサービスは登場してくるでしょう。
まとめ:ブロックチェーン関連技術も様々なレイヤーで開発されている
現在行われているブロックチェーン関連の技術開発は、本記事で紹介したようにレイヤー構造で整理することができます。技術開発の動向を見ていく際に、レイヤー構造を意識すると、ブロックチェーンのエコシステムにおける各技術・プロジェクトの位置付けを把握する際に役立つはずです。
各レイヤーごとに技術開発が進んでおり、各レイヤーごとにより良いプロトコルやサービスが登場することで、Web3.0のインフラをサポートする技術としてのブロックチェーン(および関連技術)は成熟していくでしょう。