ブロックチェーンのレイヤーを理解する
暗号通貨やブロックチェーンについて何らかの形で調べたことがある人なら、レイヤー1やレイヤー2のプロトコルといった言葉を目にしたことがあるだろう。これらのレイヤーが何なのか、なぜ存在するのか気になりませんか?今回はブロックチェーンのレイヤーアーキテクチャについて説明しましょう。
ブロックチェーン技術は、暗号技術やゲーム理論など、現在のいくつかの技術をミックスした唯一無二の技術であり、暗号通貨など幅広い応用が考えられます。データの暗号化と復号化は、暗号学として知られる数学的・計算的な学問です。合理的な意思決定者間の戦略的相互作用の数学的モデルを研究する学問は、ゲーム理論として知られています。ブロックチェーンは、透明性と安全性をもたらすことで、仲介者を排除し、コストを削減し、効率性を向上させます。
分散型台帳技術(DLT)は、中央機関の監視を受けずに、所定のネットワークプロトコルで合意したユーザーグループの間で、暗号によって情報を検証し続けます。これらの技術を組み合わせることで、本来ならば信頼関係を築く動機のない人や当事者間でも信頼関係を築くことができます。これらの技術を組み合わせることで、ブロックチェーンネットワークは、ユーザー間で価値やデータを安全に交換することが可能になります。
ブロックチェーンは、中央管理者がいないため、非常に安全でなければなりません。また、増加するユーザーや取引、その他のデータに対応するために、非常に高い拡張性が求められます。ブロックチェーンのスケーラビリティとは
ブロックチェーン技術における「スケーラビリティ」とは、システムのスループット(1秒あたりのトランザクション数)を向上させることを指します。暗号通貨の日常生活への普及に伴い、ネットワークのセキュリティや記録保持などの機能を向上させるために、ブロックチェーンのレイヤーが求められるようになりました。
システムが1秒間に処理するトランザクションの数を “スループット “といいます。Visaの電子決済ネットワーク「VisaNet」は1秒間に2万件以上のトランザクションを処理できますが、ビットコイン(BTC)のメインチェーンは1秒間に7件以上のトランザクションを処理できません。
ブロックチェーンは、分散型エコシステムの第1層です。レイヤー2は、ノードの数を増やし、結果的にシステムのスループットを向上させるために、レイヤー1と組み合わせて使用されるサードパーティの統合です。現在、多くのレイヤー2のブロックチェーン技術が実装されています。これらのソリューションでは、取引を自動化するためにスマートコントラクトが使用されています。
ブロックチェーン開発者は、ビットコインが商業界でより重要な力を持つようになるにつれ、ブロックチェーン管理の範囲を広げようとしています。
ブロックチェーントリレンマ
ブロックチェーントリレンマとは、分散化、セキュリティ、スケーラビリティの観点から、分散型ネットワークは常に3つの利点のうち2つしか提供できないという、一般的に考えられている概念を指します。
コンピュータ科学者は1980年代に、これらの難題のうち最も重要なものを表現するために、一貫性・可用性・分割耐性(CAP)定理を考案しました。CAP定理とは、ブロックチェーンのような分散型データストレージは、上記の3つの保証のうち2つしか同時に満たすことができないというものです。
この定理は、現在の分散型ネットワークの文脈では、ブロックチェーントリレンマに発展しています。パブリック・ブロックチェーン・インフラストラクチャは、セキュリティ、分散化、またはスケーラビリティを犠牲にしなければならないという考え方が広く浸透しています。
その結果、ブロックチェーン技術の聖杯は、インターネット規模のトランザクション・スループットを処理しつつ、広範に分散化されたネットワーク上で侵入不可能なセキュリティを備えたネットワークを作ることです。
トリレンマのダイナミクスを掘り下げる前に、スケーラビリティ、セキュリティ、分散化を一般的な用語で定義しましょう。
-
ブロックチェーンのスケーラビリティとは、より大量のトランザクションを処理する能力を指します。
-
セキュリティとは、ブロックチェーン上のデータを様々な種類の攻撃から保護する能力と、二重支出に対するブロックチェーンの防御力を指します。
-
分散化とは、ネットワークの冗長性の一種で、ネットワークがより少ないエンティティによってコントロールされないようにすることです。
スケーラビリティ、セキュリティ、分散化の相互作用
トランザクションを決済するには、まずネットワークがその有効性に合意する必要があります。システムに多数のメンバーがいる場合、この合意には時間がかかることがあります。その結果、セキュリティパラメータが同一の場合、スケーラビリティは分散化に反比例することを示すことができます。
今、2つのプルーフ・オブ・ワーク型ブロックチェーンの分散化の度合いが同じであると仮定し、セキュリティをブロックチェーンのハッシュレートとみなします。ハッシュレートが上がると確認時間が短くなり、セキュリティが向上するとスケーラビリティが上がります。その結果、スケーラビリティとセキュリティは一定の分散化に比例します。
その結果、ブロックチェーンは望ましい3つの機能を同時に最適化することはできず、トレードオフを余儀なくされます。イーサリアムは、このトリレンマの最も最近の例です。イーサリアムのプラットフォームは、今年の夏、分散型金融(DeFi)アプリケーションの成長により、利用者が急増しました。イーサリアムはある一定のところまでしか成長できない。
需要の増加により、取引手数料が上昇し、ブロックチェーンに関わることができない人も出てきています。イーサリアムの手数料の上昇はトリレンマの一例で、イーサリアムはセキュリティや分散性を犠牲にしないとスケールしなかったことがわかります。
イーサリアムの焦点は分散性とセキュリティであり、1秒あたりのトランザクション数は制限されていました(スケーラビリティ)。マイナーに取引を優先させるために、ユーザーは高い手数料を支払っていました。同様に、ビットコインでは分散化とセキュリティがスケーラビリティよりも優先されています。
現在、ビットコインやイーサリアムなどのブロックチェーンのスケーラビリティが制限されていることは周知の事実です。そのため、スタートアップ、企業、技術者のグローバルコミュニティが、ブロックチェーンのトリレンマを解決するために、レイヤー1とレイヤー2のソリューションに必死に取り組んでいます。
レイヤー1のブロックチェーンネットワークは、スピード、セキュリティ、拡張性を重視して設計されています。レイヤー2は、既存のブロックチェーンネットワークのスケーラビリティを拡大するために活用できる技術の強化や製品を指します。この2つのレイヤーの絶妙なバランスを取ることが、ブロックチェーンの普及と分散型ネットワークの拡大に向けたゲームチェンジャーとなるかもしれません。
開発者は様々な視点からこの問題に取り組んでいます。ビットコインキャッシュ(BCH)におけるブロックサイズの増加は、ビットコインのスケーラビリティを向上させるための試みでした。しかし、それが普及しているという証拠はありません。
ビットコインは、既存のブロックチェーン層にレイヤーを追加することで、この問題に取り組もうとしています。レイヤー2のソリューションは、スケーリングソリューションの考え方によれば、多数のトランザクションを束ねて、ベースレイヤーのブロックチェーンにはたまにしかクエリをかけない。イーサリアムはハイブリッドなアプローチをとっており、シャーディングがベースレイヤーのブロックチェーンをスケーリングし、コミュニティはスループットをさらに高めるためにいくつかのレイヤ2ソリューションを予想している。
ブロックチェーンアーキテクチャのレイヤー構造
ブロックチェーンアーキテクチャの分散ネットワークの場合、各ネットワーク参加者が新しいエントリを維持、承認、更新する。特定の順序でトランザクションを持つブロックのコレクションは、ブロックチェーン技術の構造を表しています。これらのリストは、フラットファイル(txt形式)またはシンプルなデータベースとして保存できます。ブロックチェーンのアーキテクチャには、パブリック、プライベート、コンソーシアムの形態があります。
ブロックチェーンのレイヤードアーキテクチャは、6つの層に分類されます。
ハードウェアインフラ層
ブロックチェーンのコンテンツは、この愛すべき地球上のどこかにあるデータセンターのサーバーに保存されています。クライアントは、ウェブを閲覧したり、アプリを利用したりする際に、アプリケーションサーバーにコンテンツやデータを要求します。
クライアントは、他のクライアントと接続し、データを共有することができます。ピア・ツー・ピア(P2P)ネットワークとは、データを共有するコンピュータの大規模なグループのことです。ブロックチェーンは、コンピューターのピア・ツー・ピア・ネットワークで、トランザクションを計算し、検証し、共有台帳に整然と記録します。その結果、分散型データベースが作成され、すべてのデータ、トランザクション、その他の関連データが保存されます。ノードとは、P2Pネットワーク内のコンピュータのことです。
データ層
ブロックチェーンのデータ構造は、トランザクションが順序付けられたブロックのリンクリストとして表現されます。ブロックチェーンのデータ構造は、ポインターとリンクリストという2つの基本要素で構成されています。リンクリストとは、データと前のブロックへのポインターを持つブロックを連鎖させたリストです。
ポインターとは、他の変数の位置を参照する変数のことで、リンクリストとは、データと前のブロックへのポインターを持つ連鎖したブロックのリストのことです。Merkleツリーは、ハッシュの二分木です。各ブロックには、Merkleツリーのルートハッシュと、先行するブロックのハッシュ、タイムスタンプ、ノンス、ブロックのバージョン番号、現在の難易度目標などの情報が含まれている。
ブロックチェーンシステムにとって、Merkleツリーはセキュリティ、完全性、反証不可能性を提供します。ブロックチェーンシステムは、Merkle tree、暗号、コンセンサスアルゴリズムで構築されています。チェーンの最初であるため、ジェネシスブロック、つまり最初のブロックにはポインタが含まれていません。
ブロックチェーンに含まれるデータのセキュリティと完全性を保護するために、トランザクションはデジタル署名されています。トランザクションの署名には秘密鍵が使用され、公開鍵を持つ誰もが署名者を確認することができます。デジタル署名は、情報操作を検出します。暗号化されたデータにも署名が入るため、デジタル署名によって統一性が確保されます。) ()暗号化されているため、データを発見することはできません。捕捉されても二度と改ざんできない。また、送信者や所有者の身元もデジタル署名によって保護されます。
ネットワーク層
ネットワーク層は、一般にP2P層と呼ばれ、ノード間の通信を担当します。ディスカバリー、トランザクション、ブロックプロパゲーションはすべてネットワーク層で処理されます。伝搬層はこの層の別称です。
このP2P層は、ブロックチェーンネットワークを正当な状態に保つために、ノードがお互いを見つけて相互作用したり、発信したり、同期したりすることを保証します。P2Pネットワークとは、ノードが分散してネットワークの作業負荷を分担し、共通の目的を達成するコンピュータネットワークのことです。ブロックチェーンの取引はノードによって行われます。
コンセンサス層
ブロックチェーンのプラットフォームが存在するためには、コンセンサス層が必要不可欠です。コンセンサス層は、Ethereum、Hyperledger、その他のブロックチェーンのいずれにおいても、最も必要かつ重要な層です。コンセンサス・レイヤーは、ブロックを検証し、順序付けし、全員の同意を保証する役割を担っています。
アプリケーション層
スマートコントラクト、チェーンコード、分散型アプリケーション(DApps)がアプリケーション層を構成しています。アプリケーション層のプロトコルは、さらにアプリケーション層と実行層に細分化されます。アプリケーション層は、エンドユーザーがブロックチェーンネットワークと通信するために利用するプログラムで構成されています。スクリプト、アプリケーション・プログラミング・インターフェース(API)、ユーザー・インターフェース、フレームワークなどが含まれます。
ブロックチェーン・ネットワークは、これらのアプリケーションのバックエンド技術として機能しており、APIを介してブロックチェーン・ネットワークと通信します。スマートコントラクト、基礎的なルール、チェーンコードはすべて実行層の一部です。
トランザクションはアプリケーション層から実行層に移動しますが、セマンティック層で検証され、実行されます。アプリケーションは実行層に指示を出し、実行層はトランザクションを実行し、ブロックチェーンの決定性を確保します。
ブロックチェーンレイヤーの説明
レイヤー0
ブロックチェーンレイヤーゼロは、ブロックチェーンを実現するためのコンポーネントで構成されています。ビットコインやイーサリアム、その他のブロックチェーンネットワークを機能させるための技術です。レイヤー0のコンポーネントには、レイヤー1をスムーズに動かすためのインターネット、ハードウェア、接続などが含まれます。
レイヤー1
これは基盤となるレイヤーで、その安全性は不変性に基づいています。Ethereumといえば、Ethereumネットワーク、つまりレイヤー1を指します。この層は、コンセンサスプロセス、プログラミング言語、ブロックタイム、紛争解決、ブロックチェーンネットワークの基本機能を維持するためのルールやパラメータを担当しています。実装層とも呼ばれています。ビットコインはレイヤー1のブロックチェーンの例です。
レイヤー1の問題点
これらのスケーリングソリューションを併用することで、ネットワークのスループットを高めることができます。しかし、ブロックチェーンの利用者が増えている中で、レイヤー1は不足しているように見えます。古くて不器用なプルーフ・オブ・ワークのコンセンサス・プロセスは、レイヤー1のブロックチェーンではまだ使用されています。
このアプローチは他のものより安全ですが、そのスピードには限界があります。マイナーは、計算力を使って暗号アルゴリズムを解くことが求められます。その結果、長期的にはより多くの計算能力と時間が必要となります。また、ユーザー数の増加に伴い、レイヤー1のブロックチェーンの作業量も増加しています。その結果、処理速度や容量が低下しています。
可能な解決策
Proof-of-stakeは、Ethereum 2.0が採用する代替コンセンサスです。このコンセンサス手法は、ネットワーク参加者のステーク担保に基づいて新しい取引データブロックを認証し、より効率的な手続きを実現します。
シャーディングは、レイヤー1ブロックチェーン問題の負担を軽減するスケーリングソリューションです。簡単に言えば、シャーディングは、トランザクションの検証と認証のタスクを、より小さく管理しやすいチャンクに分割します。その結果、作業負荷をネットワーク上に分散し、より多くのノードのコンピューティング能力を利用することができます。
レイヤー2
ベースレイヤーの上に重なるネットワークをL2ソリューションと呼びます。プロトコルはレイヤー2を利用して、ベースレイヤーから一部のインタラクションを取り除くことでスケーラビリティを高めています。その結果、プライマリーブロックチェーンプロトコル上のスマートコントラクトは、入出金のみを扱い、オフチェーンの取引が規制に従うことを保証します。ビットコインのライトニングネットワークは、レイヤー2ブロックチェーンの例です。
では、レイヤー1ブロックチェーンとレイヤー2ブロックチェーンの違いは何でしょうか?ブロックチェーンは、分散型エコシステムにおける最初のレイヤーです。レイヤー2は、ノード数を増やし、結果的にシステムのスループットを向上させるために、レイヤー1と組み合わせて使用されるサードパーティの統合技術です。現在、多くのレイヤ2ブロックチェーン技術が実装されています。
レイヤ2スケーリングソリューション
レイヤ2プロトコルは、近年爆発的に普及しており、特にPoWネットワークにおけるスケーリング問題を解決する最も効果的なアプローチであることが証明されています。様々なレイヤー2のスケーリングソリューションを以下のセクションで説明します。
ネストしたブロックチェーン
ネストしたレイヤー2のブロックチェーンは、別のブロックチェーンの上に実行されます。要するに、レイヤー1が設定を行い、レイヤー2が手続きを行います。1つのメインチェーン上に、複数のブロックチェーン層が存在する場合があります。典型的なビジネス構造だと考えてください。
経営者は、一人の人間(例えば経営者)が全ての仕事を行うのではなく、部下に仕事を任せ、部下は仕事が終わったら経営者に報告するという仕組みになっていました。その結果、マネージャーの仕事量は減り、スケーラビリティが向上しました。例えば、OMG Plasma Projectは、Ethereumのレベル1プロトコルのレベル2ブロックチェーンとして機能し、より安価で高速な取引を可能にしています。
ステートチャンネル
ステートチャンネルは、ブロックチェーンとオフチェーンの取引チャンネルとの間の双方向通信を様々なアプローチで促進することで、トータルの取引容量と速度を向上させます。ステートチャネル上のトランザクションを検証するために、マイナーはすぐに関与する必要はありません。
その代わりに、マルチシグネチャやスマートコントラクトのメカニズムによって保護されたネットワークに隣接するリソースです。チャンネル」の最終的な「状態」とそのすべての固有の遷移は、トランザクションまたはトランザクションのバッチが状態チャンネルで完了したときに、基礎となるブロックチェーンにポストされます。
ステートチャンネルの例としては、Bitcoin LightningやEthereumのRaiden Networkなどがあります。トリレンマのトレードオフでは、ステートチャネルはスケーラビリティの向上と引き換えに、一部の分散性を放棄します。
サイドチェーン
サイドチェーンは、ブロックチェーンと並行して実行されるトランザクションチェーンで、大規模なバルクトランザクションに使用されます。サイドチェーンにはコンセンサス方式があり、スピードやスケーラビリティを調整することができ、サイドチェーンとメインチェーン間のデータ転送メカニズムの一部としてユーティリティトークンが頻繁に利用されています。メインチェーンの主な機能は、一般的なセキュリティと紛争解決を提供することです。
いくつかの重要な点で、サイドチェーンはステートチャネルとは異なります。まず、サイドチェーンの取引は参加者間で非公開ではなく、台帳上でオープンに公開されます。さらに、サイドチェーンでのセキュリティ侵害は、メインチェーンや他のサイドチェーンには影響しません。サイドチェーンを一から構築するには、膨大な時間と労力が必要です。
Rollups
Rollupsはレイヤー2のブロックチェーンスケーリングソリューションで、レイヤー1のネットワークの外でトランザクションを実行し、そのトランザクションのデータをレイヤー2のブロックチェーンにアップロードします。レイヤー1は、データがベースレイヤー上にあるため、ロールアップを安全に保つことができます。
ロールアップは、トランザクションのスループットの向上、オープンな参加、ガスコストの削減に役立つため、ユーザーはロールアップから利益を得ることができます。
レイヤー3
アプリケーションレイヤーは、しばしばレイヤー3またはL3と呼ばれます。L3プロジェクトは、通信チャネルの技術的な側面を覆い隠しながら、ユーザーインターフェースとして機能します。L3アプリケーションは、ブロックチェーンアーキテクチャのレイヤー構造で説明されているように、ブロックチェーンに実世界での適用性を与えるものです。
ブロックチェーンのトリレンマは解決できるのか
ブロックチェーンが発生した分散型データストレージが直面した問題は、ブロックチェーンに受け継がれました。これらの困難や関連する問題をよりよく理解するために、それらをまとめて「ブロックチェーントリレンマ」という言葉が作られました。
「トリレンマ」という言葉が残っていても、ブロックチェーントリレンマは単なる仮説です。この仮説は、初期のデータから正確性が疑われていますが、証明も反証もされていません。レイヤー1とレイヤー2のソリューションがすでに一定の成功を収めているにもかかわらず、さらなる研究が必要です。
The bottom line
ブロックチェーンビジネスにおいて、暗号のメインストリームへの導入が不可能になった理由の1つがスケーラビリティです。暗号通貨の需要が高まると、ブロックチェーンプロトコルを拡張する圧力も高まります。どちらのブロックチェーンレベルにもそれぞれの制約があるため、最終的な解決策はスケーラビリティのトリレンマを解決できるシステムを開発することになります。
レイヤー1は分散型システムの基礎となるため、非常に重要です。ブロックチェーンの基礎となるスケーラビリティの問題は、レイヤー2のプロトコルによって解決されます。残念ながら、現在ほとんどのレイヤー3のプロトコル(DApps)は、レイヤー2をバイパスしてレイヤー1のみで動作しています。
レイヤー3のアプリケーションは、ブロックチェーンの実際のユースケースを開発するために必要不可欠です。しかし、それらは、レガシーネットワークとは対照的に、基盤となるブロックチェーンほどの価値を獲得することはないだろう。