マルチチェーンとは④?Avalanche(アバランチ)後編A 2023.5.30 本日の学び

AvalancheB本、メディア
AvalancheB

どうも金時です!

ついにマルチチェーン勉強第4回になりました。今日、気になったのはこのWorldCoinに関する考察記事です。

長文ですがとにかくWorldCoinがだいぶわかってきました。「WoldCoinは虹彩の生データを保管せずに破棄している。生データをもとに生成されたirisコードを本部サーバに保管している」つまり一番デリケートなバイオメトリクス情報の保管はされていない、しかし、それを元に唯一無二のunique humanとしてサンプルされているのであれば、スノーデン氏いわく「眼球のカタログ化」という意味では一緒のように感じます。

ふむふむ、この反対意見もよくわかります。

とにかく気になるWorldCoinの話題。人を本当に自由にするのかそれとも新たなビッグブラザーの誕生なのか、まったくわかりませんね。私はクリプトの持つこういったそもそもの矛盾とカオスをはらんだ世界を愛しています。

今後も情報を収集していきたいと思います。

Avalancheとは?後編。

前回はAvalancheは実はそれぞれに特化した3本のチェーンが組み合わさって高いパフォーマンスを実現しているということが理解できました。

Avalancheには以下の2つのコンセンサスプロトコルが存在します。

  • Avalanche・コンセンサスプロトコル:並列処理によって高い処理性能を実現している(DAG(Directed Acyclic Graph)構造により複数のバリデータ群でトランザクションを並行処理することで、従来のブロックチェーンよりも高速にトランザクションを処理できる)
  • Snowmanプロトコル:Avalanche・コンセンサスプロトコルをベースに、スマートコントラクトに最適化されている(Avalanche・コンセンサスプロトコルとは異なり、Snowmanはブロックを作成する)

コンセンサスとは合意形成でAIに確認したところ以下のような解説になりました。要は取引の正しさをみんなで検証する作業ですね。ブロックチェーンには必須の要素です。

ブロックチェーンのコンセンサスは、分散型ネットワークにおいて参加者間で合意を形成し、取引やブロックの追加を承認するための仕組みです。ブロックチェーンは、分散型台帳であり、ネットワーク上の複数のノードがそれぞれ状態のコピーを持っています。これにより、信頼性とセキュリティが高まりますが、ネットワークの参加者が分散しているため、合意形成が困難な課題となります。

コンセンサスアルゴリズムは、ネットワークの参加者が取引の正当性やブロックの追加順序について合意する方法を提供します。さまざまなコンセンサスアルゴリズムが存在しますが、以下にいくつか代表的なものを紹介します。

Proof of Work(PoW): Bitcoinなどで広く使用されているアルゴリズムです。参加者は複雑な計算問題を解くことによって証明を提供し、最初に解答を見つけたノードが新しいブロックを追加する権利を獲得します。しかし、高い計算リソースが必要であり、エネルギー効率が低いという課題があります。

Proof of Stake(PoS): Ethereum 2.0などで導入されたアルゴリズムです。参加者は自身が所有する仮想通貨の保有量(ステーク)に応じて、ブロックを追加する権利を与えられます。より多くの通貨を保有しているほど、ブロックを追加する確率が高まります。PoSはエネルギー効率が良く、スケーラビリティにも優れています。

Delegated Proof of Stake(DPoS): EOSやTronなどのブロックチェーンで使用されています。DPoSでは、通貨の保有者が一部の信頼できるノード(証人やブロックプロデューサー)を選び、彼らにブロック追加の権限を委任します。これにより、合意形成のスピードとスケーラビリティが向上しますが、一部のノードに権限が集中するという懸念もあります。

これらのコンセンサスアルゴリズムは、ブロックチェーンの特定のニーズや目的これらのコンセンサスアルゴリズムは、ブロックチェーンの特定のニーズや目的に応じて採用されます。たとえば、BitcoinのProof of Work(PoW)はセキュリティが高く、耐攻撃性が求められる場合に使用されますが、エネルギー効率の面で課題もあります。

一方、Proof of Stake(PoS)はエネルギー効率が高く、スケーラビリティが良いため、Ethereumなどのプロジェクトで採用されています。保有量に基づいたステークの概念を導入することで、セキュリティを確保しながら効率的な合意形成を実現しています。

また、Delegated Proof of Stake(DPoS)は、ブロックプロデューサーに権限を委任することで、高速なトランザクション処理やスケーラビリティを実現します。しかし、信頼できるノードの選定や権限の集中に関する議論もあります。

コンセンサスアルゴリズムの選択は、ブロックチェーンの性能、セキュリティ、スケーラビリティ、参加者のインセンティブなどを考慮して行われます。また、新しいコンセンサスメカニズムや改良版が開発されることもあります。

ブロックチェーンのコンセンサスは、ネットワークの参加者間で合意を形成し、分散型システムの信頼性とセキュリティを確保する重要な要素です。

ビットコインやイーサリアムには独自のコンセンサスアルゴリズムがありますがAvalancheにも独自の「Avalancheコンセンサスプロトコル」というものが存在します。記事によると以下のようにあります。

「Avalanche・コンセンサス」は「ナカモト・コンセンサス」と「クラシカル・コンセンサス」の長所をあわせ持ったコンセンサスプロトコルと言われています。

すごい!いいところどりのコンセンサスアルゴリズムなんですね。「ナカモト・コンセンサス」とは?

ナカモト・コンセンサス(Nakamoto Consensus)は、ビットコインのブロックチェーンにおけるコンセンサスアルゴリズムの一種です。このコンセンサスアルゴリズムは、ビットコインの創設者であるサトシ・ナカモト(Satoshi Nakamoto)によって提案され、ビットコインの仕組みを支える基盤となっています。

ナカモト・コンセンサスはProof of Work(PoW)を基にしており、以下のような仕組みで合意形成を行います:

1. ブロックの生成と追加: ビットコインのネットワークに参加しているマイナーと呼ばれるノードは、新しいトランザクションを含むブロックを生成します。この際、複雑な計算問題(ハッシュパズル)を解く必要があります。

2. Proof of Workの解答: マイナーはブロック生成時に、ハッシュパズルの解答を見つけるために計算を行います。解答は特定の条件を満たす必要があり、ネットワーク全体で探索が行われます。

3. ブロックの検証と追加: 最初に正しい解答を見つけたマイナーが他のノードにその解答と共に新しいブロックを伝えます。他のノードはブロックの検証を行い、正当性を確認します。その後、ブロックはブロックチェーンに追加されます。

ナカモト・コンセンサスの特徴は以下の通りです:

1. セキュリティ: ブロック生成におけるProof of Workの計算問題は高度に複雑であり、攻撃者がブロックチェーンを攻撃するためには膨大な計算リソースを必要とします。これにより、ビットコインのネットワークは攻撃や不正行為に対して強力なセキュリティを提供します。

2. 分散性: ナカモト・コンセンサスでは、ブロック生成に参加するマイナーはネットワーク上の様々な場所に存在し、参加者が分散しています。そのため、ブロックチェーンは中央集権的な制御から解放され、分散型の特性を持つことができます。

3. 非可逆性: ブロックチェーンにおけるトランザクションは一度ブロックに含まれると、後から変更することが非常に困難です。ブロックチェーンは連続的に成長し、新しいブロックが追加されるたびに過去のトランザクションが確定します。このため、改ざんや不正な操作を防ぐことができます。

ナカモト・コンセンサスはビットコインのブロックチェーンにおいて使用されているコンセンサスアルゴリズムですが、その概念や特徴は他のブロックチェーンプロジェクトにも影響を与えています。Proof of WorkやProof of Stakeといったさまざまな派生形式のコンセンサスアルゴリズムが開発され、それぞれのプロジェクトのニーズや要件に合わせて採用されています。

ナカモト・コンセンサスは、分散型ネットワークにおける信頼性とセキュリティの確保を可能にし、ブロックチェーンの中心的な原則となっています。

なるほどPowの話ですね。ではクラシカル・コンセンサスもAIに聞いてみました。


クラシカル・コンセンサス(Classical Consensus)は、分散システムにおける一貫性を確保するためのアルゴリズムです。分散システムでは、複数のノードが相互に通信しながら協調して動作するため、各ノードが同じ結果に合意することが重要です。

クラシカル・コンセンサスは、分散システム内のノードが故障したり、メッセージが遅延したりするなどの不確定な状況でも、一貫性を維持することを目指します。具体的には、ノード間でメッセージを交換しながら合意を形成し、一致した結果を得ることを目指します。

クラシカル・コンセンサスは、バイナリ合意(Binary Consensus)とも呼ばれることがあります。これは、システム内の各ノードが2つの値(例: 0と1)のうちのいずれかを選択する合意形成問題を解決することを目指すためです。

代表的なクラシカル・コンセンサスアルゴリズムの1つは、ビザンチン将軍問題(Byzantine Generals Problem)を解決するためのビザンチン・フォルトトレランス(Byzantine Fault Tolerance)アルゴリズムです。このアルゴリズムでは、ノード間でメッセージを交換しながら合意を形成し、ビザンチン将軍問題における故障や攻撃に対しても安全な一貫性を確保します。

クラシカル・コンセンサスは、分散データベースやブロックチェーンなど、信頼性の高い分散システムの構築において重要な役割を果たしています。

なるほど、データの一貫性を維持するというとても大事な機能ですね。ビザンチン将軍問題もよく聞きますよね。ついでに聞いちゃいましょう。

ビザンチン将軍問題(Byzantine Generals Problem)は、分散システムにおける合意形成の問題の一つであり、分散システム内のノード間で信頼性のある合意を形成することを困難にする、不確かな状況を表現したものです。

ビザンチン将軍問題のシナリオは、ビザンチン帝国の将軍たちが敵軍に対する攻撃計画を立てる際に直面する状況を想定しています。将軍たちは各々異なる陣営に所属し、相互にメッセージを送信して攻撃の意思決定を行います。しかし、将軍の中には故障している将軍や裏切り者が存在する可能性があります。さらに、メッセージの送信過程でメッセージが改ざんされたり遅延したりする可能性もあります。

ビザンチン将軍問題では、将軍たちは合意を形成し、攻撃または撤退のどちらかを選択する必要があります。問題は、不正行為を行う将軍や不正なメッセージが存在する場合でも、ノード間で合意を形成することができるアルゴリズムを見つけることです。

ビザンチン将軍問題は、分散システムやコンピュータネットワークにおいて、信頼性とセキュリティの問題を扱う際に重要な概念となります。ビザンチン将軍問題を解決するためのアルゴリズムやプロトコルは、ビザンチン・フォルトトレランス(Byzantine Fault Tolerance)として知られています。これらのアルゴリズムは、分散データベースやブロックチェーンなどの分散システムのセキュリティや一貫性を確保するために応用されます。

なるほど、情報を伝達する時に裏切り者や不正行為が混ざっている場合にどう正しい情報を見つけるかですね。なんでビザンチンなんでしょう?


ビザンチンという用語は、ビザンチン帝国(東ローマ帝国)に由来しています。ビザンチン帝国は、東ローマ帝国の首都であったコンスタンティノポリス(現在のイスタンブール)を中心に繁栄しました。

ビザンチン将軍問題は、分散システムにおいてノード間で合意形成を行う際に発生する不確実性や信頼性の問題を表現するために考案されました。この問題においては、ノードの中には故障しているノードや裏切り者が存在する可能性があります。さらに、メッセージの送信過程で改ざんや遅延が発生するかもしれません。このような不確実性と信頼性の問題を反映するために、ビザンチン将軍問題という名称が使われました。

ビザンチン将軍問題は、1982年にレスリー・ランポート、ロバート・シャピロ、シスレ・スニガによって初めて提案されました。彼らは、分散システムにおける合意形成の問題を、ビザンチン将軍たちが攻撃計画を立てる際の状況に例えて説明しました。

ビザンチン将軍問題は、その複雑さと困難さから、分散システムやコンピュータサイエンスの研究分野において重要なテーマとなりました。ビザンチン将軍問題を解決するためのアルゴリズムやプロトコルの研究は、分散システムの信頼性やセキュリティの向上に貢献しています。

なるほどもっと詳細を知りたくなってきました。さらに聞いてみます。

ビザンチン将軍問題という用語は、ビザンチン帝国で具体的に起きた出来事を指しているわけではありません。実際の歴史的な出来事とは異なり、ビザンチン将軍問題はコンピュータ科学における抽象的な問題を表現するために使われる用語です。

ビザンチン将軍問題は、分散システムにおける合意形成の問題を記述するための架空のシナリオとして作られました。このシナリオでは、ビザンチン将軍たちが攻撃計画を立てる際に、不確実性や信頼性の問題に直面する状況を想定しています。将軍たちは相互にメッセージを送信し、合意を形成しなければなりませんが、故障した将軍や裏切り者が存在する可能性や、メッセージの改ざんや遅延が発生する可能性があります。

ビザンチン将軍問題は、1982年にレスリー・ランポート、ロバート・シャピロ、シスレ・スニガによって提案され、コンピュータ科学の分散システムにおける合意形成の問題を抽象化して記述するために使用されるようになりました。この問題は、分散システムにおける信頼性やセキュリティの向上に関する研究において重要な役割を果たしています。

ええ!実際にすったもんだはあったんでしょうけど実は抽象的な概念だったんですね。面白い。ということで今日も思ったより時間がたってしまったのでさらに後半Bに続きます。ではまた!!

コメント

タイトルとURLをコピーしました