約1ヶ月後、#Bitcoin次の半減期が始まる予定です。ただし、著者は、Satoshi Nakamotoのビジョンである、誰もがCPUを介してアクセスできる合意がまだ実現されていないと考えています。この点において、Arweaveの反復機構は、Nakamotoのオリジナルのビジョンとより忠実に一致するかもしれません。バージョン2.6は、その期待を満たす方向に向けて重要な一歩となっています。このバージョンは、前身に比べて大幅な改善をもたらし、次のような目標を掲げています。
上記の目標に基づいて、バージョン2.6のメカニズムはおおよそ以下のようになります:
グラフ1:バージョン2.6のコンセンサスメカニズムの概略図
このメカニズムに現れるさまざまな用語や概念について知識を深めましょう:
Arweaveデータ:「Weave Network」としても知られています。ネットワーク内のすべてのデータは、個々のデータブロックであるChunks(図中の「レンガの壁」に似たブロック)に分割されています。これらのブロックはArweaveネットワーク全体に均等に分散され、Merkleツリー構造(グローバルオフセットとも呼ばれる)を使用してアドレス付けされており、Weave Network内の任意のデータブロックの位置を特定できます。
チャンク:各データブロックの通常のサイズは256 KBです。マイナーは、対応するデータブロックをパッケージ化し、ハッシュする必要があります。これにより、SPoRAマイニングプロセス中にデータのコピーを保存していることを証明し、マイニングの権利を獲得します。
パーティション:「パーティション」とは、バージョン2.6で導入された新しい概念です。各パーティションは3.6TBのデータをカバーしています。パーティションは、Weave Networkの最初(インデックス0)から、Weave Network全体をカバーするすべてのパーティションの総数まで番号が付けられています。
Recall Range: リコールレンジはバージョン2.6でのもう1つの新しいコンセプトです。Weave Network内の一連の連続データブロック(チャンク)を表し、特定のオフセットから始まり、長さが100MBです。各データブロックは256KBであり、リコールレンジには400個のデータブロックが含まれます。このメカニズムでは、以下で詳しく説明されている2つのリコールレンジがあります。
潜在的な解決策:リコール範囲内のすべての256KBデータブロックは、採掘の権利を獲得するための潜在的な解決策と見なされます。採掘プロセスの一環として、各データブロックはハッシュ化され、ネットワークの難易度要件を満たしているかどうかがテストされます。成功した場合、採掘者は採掘の権利を獲得し、採掘報酬を受け取ります。失敗した場合、採掘者はリコール範囲内の次の256KBブロックを試行し続けます。
ハッシュチェーン:ハッシュチェーンは、バージョン2.6での重要なアップデートであり、以前のSPoRAに暗号化されたクロックを追加し、最大ハッシュレートを制限します。ハッシュチェーンは、SHA-256関数を使用してデータの断片を連続してハッシュ化することで、ハッシュのシーケンスを生成します。このプロセスは並列化することができません(一般向けCPUでは簡単に実現できます)、一定数の連続するハッシュ操作を実行することで1秒の遅延を達成します。
マイニングハッシュ:十分な回数の連続したハッシュ演算(つまり、1秒の遅延後)の後、ハッシュチェーンはマイニングに適したと考えられるハッシュ値を生成します。すべてのマイナー間でマイニングハッシュが一貫しており、すべてのマイナーがそれを検証できることに注意してください。
これで必要な用語をすべて紹介しましたので、Version 2.6 の動作を理解するために最適な取得戦略について話し合うことができます。
Arweaveの全体的な目標は以前に複数回紹介されており、それはネットワークに保存されているデータレプリカの数を最大化することです。しかし、何を保存するのか?どのように保存するのか?多くの要件と複雑さが関係しています。ここでは、最良の実践戦略を採用する方法について説明します。
レプリカ vs コピー
バージョン2.6以降、さまざまな技術文書で2つの用語、ReplicasとCopiesに頻繁に遭遇しています。両概念は中国語で「コピー」と翻訳できますが、実際にはそれらの間には重要な違いがあり、これがメカニズムを理解する際にいくつかの障害を引き起こしました。理解を容易にするため、Replicasを「副本」と翻訳し、Copiesを「バックアップ」と翻訳することを好みます。
コピーは単にデータをコピーすることを指し、同じデータのバックアップには違いがない場合です。
レプリカは、一方で、ユニークさを強調します。それは、データがユニーク化のプロセスを経た後に保存される行為を指します。Arweaveネットワークは、単なるバックアップではなく、レプリカの保存を奨励しています。
注: バージョン2.7では、コンセンサスメカニズムがSPoResに変更され、これは複製のストレージに基づくSuccinct Proofs of Replicationsを意味します。将来、さらなる解釈を提供します。
ユニークなレプリカの梱包
アーウィーブメカニズムにおいて、ユニークなレプリカは重要です。マイナーは、マイニングの権利を獲得するための前提条件として、すべてのデータを特定の形式でパッケージ化してユニークなレプリカを形成する必要があります。
新しいノードを実行したい場合、他のマイナーがすでにパッケージ化したデータを直接コピーしようとしてもうまくいきません。まず、Arweave Weave Networkから元のデータをダウンロードして同期する必要があります(もちろん、すべてをダウンロードする必要はなく、一部をダウンロードすることも可能であり、リスキーなデータをフィルタリングするために独自のデータポリシーを設定することができます)。その後、元のデータの各データブロックをパッケージ化するためにRandomX機能を使用し、それらを潜在的なマイニングソリューションに変換します。
パッケージングプロセスは、ランダムX関数にパッキングキーを提供し、元のデータブロックをパッケージングするための複数の計算を通じて結果を生成することを可能にします。すでにパッケージ化されたデータブロックを展開するプロセスも同様であり、パッキングキーを提供し、複数の計算を通じて生成された結果を使用してデータブロックを展開します。
バージョン2.5では、Packing Keyバックアップは、chunk_offset(データブロックのオフセット、データブロックの位置パラメータとしても理解される)とtx_root(トランザクションルート)に関連付けられたSHA256ハッシュです。これにより、採掘された各マイニングソリューションが特定のブロック内のデータブロックのユニークなレプリカから来ることが保証されます。データブロックが壊れたネットワーク内の異なる場所に複数のバックアップがある場合、各バックアップはユニークなレプリカとして別々にバックアップする必要があります。
バージョン2.6では、このバックアップキーは、chunk_offset、tx_root、およびminer_address(マイナーのアドレス)に関連付けられたSHA256ハッシュに拡張されます。これは、各レプリカも各マイニングアドレスに対して一意であることを意味します。
完全なレプリカを保存する利点
アルゴリズムは、マイナーが部分的に複製されたものではなく、ユニークな完全なレプリカを構築すべきであり、これによりデータがネットワーク全体に均等に分散されることを保証します。
これをどのように理解すればよいですか?次の2つの画像を比較して理解しましょう。
まず、Arweaveの断片化されたネットワーク全体が合計16のデータパーティションを生成したと仮定しましょう。
シナリオ1:
図2: ボブの「賢い」戦略: 最初のシナリオ
第二シナリオ:
今度は、第2のシナリオを見てみましょう。2つのリコール範囲の配置により、より問題の多いデータのユニークなレプリカを保存するのがより最適な戦略です。これは図3に示されています。
図3:アリスの戦略は大きな利点を持っています
リコール範囲の役割
バージョン2.5より前、単一のリコールブロックオフセットがランダムにハッシュ化され、マイナーが検索してストレージ証明を提供するための機能がありましたが、バージョン2.6では代わりにリコール範囲がハッシュ化されます。
理由は非常に単純です:リコール範囲は連続するデータブロックで構成されており、この構造は1つの主な目的を果たします-機械式ハードドライブ(HDD)の読み取りヘッドの移動を最小限に抑えることです。この物理的最適化方法により、HDDの読み取りパフォーマンスをより高価なソリッドステートドライブ(SSD)と同等に保つことができます。これは、SSDの手と足を縛るようなものです。もちろん、1秒あたり4つのリコール範囲を転送できるというわずかな速度の利点があります。しかし、より安価なHDDと比較すると、その数がマイナーの選択を駆動する主要な指標になります。
今度は新しいブロックの検証について話し合いましょう。
新しいブロックを受け入れるために、検証者はブロックプロデューサーから受け取った新しいブロックを検証する必要があります。これは、生成されたマイニングハッシュを使用して新しいブロックのマイニングハッシュを検証することで行うことができます。
バリデータがハッシュチェーンの現在の先頭にない場合、各マイニングハッシュには25個の40ミリ秒のチェックポイントが含まれます。これらのチェックポイントは、40ミリ秒間のハッシングの連続した結果であり、前のマイニングハッシュから始まる1秒間隔を表しています。
新しく受信したブロックを他のノードに伝播する前に、バリデータは40ミリ秒以内に最初の25個のチェックポイントの検証を迅速に完了します。検証が成功すると、ブロック伝播がトリガーされ、残りのチェックポイントの検証が続行されます。
すべての残りのチェックポイントを検証することで、完全なチェックポイントが完了します。最初の25個のチェックポイントの後、500個の検証チェックポイントがあり、その後さらに500個の検証チェックポイントが続き、その後の500個のチェックポイントグループごとに間隔が2倍になります。
ハッシュチェーンはマイニングハッシュを生成する際に順次進行する必要がありますが、検証者はブロックを検証する際にハッシュ検証を行うことができ、ブロックを検証する時間を短縮し効率を向上させることができます。
図4:ハッシュチェーンの検証プロセス
ハッシュチェーンの種
もしマイナーやマイニングプールがより速いSHA256ハッシュ能力を持っている場合、彼らのハッシュチェーンはネットワーク内の他のノードよりも進む可能性があります。時間の経過とともに、このブロック速度の利点は蓄積され、重要なハッシュチェーンのオフセットになり得ます。これにより、採掘されたハッシュは他の検証者と同期しなくなる可能性があります。これは一連の制御不能なフォークや再編成を引き起こす可能性があります。
このようなハッシュチェーンオフセットの可能性を減らすために、Arweaveは一定の間隔で過去のブロックからトークンを使用して、グローバルハッシュチェーンを同期させます。これにより、ハッシュチェーンの新しいシードが定期的に提供され、検証済みブロックを持つさまざまなマイナー間でハッシュチェーンが同期されます。
ハッシュチェーンシードの間隔は、新しいシードブロックを選択するために毎50 * 120採掘されたハッシュ(50はブロック数を表し、120は2分のブロック生産サイクル内の採掘されたハッシュ数を表します)ごとに行われます。 これは、シードブロックがおおよそ50 Arweaveブロックごとに現れることを意味しますが、ブロック時間の変動により、シードブロックは50ブロックよりもわずかに早くまたは遅く現れることがあります。
図5:ハッシュチェーンシードの生成方法
上記の内容は、バージョン2.6の仕様から抜粋されたもので、著者によって、Arweaveはバージョン2.6から全体のネットワークを運営するために低消費電力かつより分散化されたメカニズムを実装していることが示されています。サトシナカモトのビジョンは、Arweaveで実践的な実現を見つけています。
Arweave 2.6: https://2-6-spec.arweave.dev/
ステートメント:
Mời người khác bỏ phiếu
Nội dung
約1ヶ月後、#Bitcoin次の半減期が始まる予定です。ただし、著者は、Satoshi Nakamotoのビジョンである、誰もがCPUを介してアクセスできる合意がまだ実現されていないと考えています。この点において、Arweaveの反復機構は、Nakamotoのオリジナルのビジョンとより忠実に一致するかもしれません。バージョン2.6は、その期待を満たす方向に向けて重要な一歩となっています。このバージョンは、前身に比べて大幅な改善をもたらし、次のような目標を掲げています。
上記の目標に基づいて、バージョン2.6のメカニズムはおおよそ以下のようになります:
グラフ1:バージョン2.6のコンセンサスメカニズムの概略図
このメカニズムに現れるさまざまな用語や概念について知識を深めましょう:
Arweaveデータ:「Weave Network」としても知られています。ネットワーク内のすべてのデータは、個々のデータブロックであるChunks(図中の「レンガの壁」に似たブロック)に分割されています。これらのブロックはArweaveネットワーク全体に均等に分散され、Merkleツリー構造(グローバルオフセットとも呼ばれる)を使用してアドレス付けされており、Weave Network内の任意のデータブロックの位置を特定できます。
チャンク:各データブロックの通常のサイズは256 KBです。マイナーは、対応するデータブロックをパッケージ化し、ハッシュする必要があります。これにより、SPoRAマイニングプロセス中にデータのコピーを保存していることを証明し、マイニングの権利を獲得します。
パーティション:「パーティション」とは、バージョン2.6で導入された新しい概念です。各パーティションは3.6TBのデータをカバーしています。パーティションは、Weave Networkの最初(インデックス0)から、Weave Network全体をカバーするすべてのパーティションの総数まで番号が付けられています。
Recall Range: リコールレンジはバージョン2.6でのもう1つの新しいコンセプトです。Weave Network内の一連の連続データブロック(チャンク)を表し、特定のオフセットから始まり、長さが100MBです。各データブロックは256KBであり、リコールレンジには400個のデータブロックが含まれます。このメカニズムでは、以下で詳しく説明されている2つのリコールレンジがあります。
潜在的な解決策:リコール範囲内のすべての256KBデータブロックは、採掘の権利を獲得するための潜在的な解決策と見なされます。採掘プロセスの一環として、各データブロックはハッシュ化され、ネットワークの難易度要件を満たしているかどうかがテストされます。成功した場合、採掘者は採掘の権利を獲得し、採掘報酬を受け取ります。失敗した場合、採掘者はリコール範囲内の次の256KBブロックを試行し続けます。
ハッシュチェーン:ハッシュチェーンは、バージョン2.6での重要なアップデートであり、以前のSPoRAに暗号化されたクロックを追加し、最大ハッシュレートを制限します。ハッシュチェーンは、SHA-256関数を使用してデータの断片を連続してハッシュ化することで、ハッシュのシーケンスを生成します。このプロセスは並列化することができません(一般向けCPUでは簡単に実現できます)、一定数の連続するハッシュ操作を実行することで1秒の遅延を達成します。
マイニングハッシュ:十分な回数の連続したハッシュ演算(つまり、1秒の遅延後)の後、ハッシュチェーンはマイニングに適したと考えられるハッシュ値を生成します。すべてのマイナー間でマイニングハッシュが一貫しており、すべてのマイナーがそれを検証できることに注意してください。
これで必要な用語をすべて紹介しましたので、Version 2.6 の動作を理解するために最適な取得戦略について話し合うことができます。
Arweaveの全体的な目標は以前に複数回紹介されており、それはネットワークに保存されているデータレプリカの数を最大化することです。しかし、何を保存するのか?どのように保存するのか?多くの要件と複雑さが関係しています。ここでは、最良の実践戦略を採用する方法について説明します。
レプリカ vs コピー
バージョン2.6以降、さまざまな技術文書で2つの用語、ReplicasとCopiesに頻繁に遭遇しています。両概念は中国語で「コピー」と翻訳できますが、実際にはそれらの間には重要な違いがあり、これがメカニズムを理解する際にいくつかの障害を引き起こしました。理解を容易にするため、Replicasを「副本」と翻訳し、Copiesを「バックアップ」と翻訳することを好みます。
コピーは単にデータをコピーすることを指し、同じデータのバックアップには違いがない場合です。
レプリカは、一方で、ユニークさを強調します。それは、データがユニーク化のプロセスを経た後に保存される行為を指します。Arweaveネットワークは、単なるバックアップではなく、レプリカの保存を奨励しています。
注: バージョン2.7では、コンセンサスメカニズムがSPoResに変更され、これは複製のストレージに基づくSuccinct Proofs of Replicationsを意味します。将来、さらなる解釈を提供します。
ユニークなレプリカの梱包
アーウィーブメカニズムにおいて、ユニークなレプリカは重要です。マイナーは、マイニングの権利を獲得するための前提条件として、すべてのデータを特定の形式でパッケージ化してユニークなレプリカを形成する必要があります。
新しいノードを実行したい場合、他のマイナーがすでにパッケージ化したデータを直接コピーしようとしてもうまくいきません。まず、Arweave Weave Networkから元のデータをダウンロードして同期する必要があります(もちろん、すべてをダウンロードする必要はなく、一部をダウンロードすることも可能であり、リスキーなデータをフィルタリングするために独自のデータポリシーを設定することができます)。その後、元のデータの各データブロックをパッケージ化するためにRandomX機能を使用し、それらを潜在的なマイニングソリューションに変換します。
パッケージングプロセスは、ランダムX関数にパッキングキーを提供し、元のデータブロックをパッケージングするための複数の計算を通じて結果を生成することを可能にします。すでにパッケージ化されたデータブロックを展開するプロセスも同様であり、パッキングキーを提供し、複数の計算を通じて生成された結果を使用してデータブロックを展開します。
バージョン2.5では、Packing Keyバックアップは、chunk_offset(データブロックのオフセット、データブロックの位置パラメータとしても理解される)とtx_root(トランザクションルート)に関連付けられたSHA256ハッシュです。これにより、採掘された各マイニングソリューションが特定のブロック内のデータブロックのユニークなレプリカから来ることが保証されます。データブロックが壊れたネットワーク内の異なる場所に複数のバックアップがある場合、各バックアップはユニークなレプリカとして別々にバックアップする必要があります。
バージョン2.6では、このバックアップキーは、chunk_offset、tx_root、およびminer_address(マイナーのアドレス)に関連付けられたSHA256ハッシュに拡張されます。これは、各レプリカも各マイニングアドレスに対して一意であることを意味します。
完全なレプリカを保存する利点
アルゴリズムは、マイナーが部分的に複製されたものではなく、ユニークな完全なレプリカを構築すべきであり、これによりデータがネットワーク全体に均等に分散されることを保証します。
これをどのように理解すればよいですか?次の2つの画像を比較して理解しましょう。
まず、Arweaveの断片化されたネットワーク全体が合計16のデータパーティションを生成したと仮定しましょう。
シナリオ1:
図2: ボブの「賢い」戦略: 最初のシナリオ
第二シナリオ:
今度は、第2のシナリオを見てみましょう。2つのリコール範囲の配置により、より問題の多いデータのユニークなレプリカを保存するのがより最適な戦略です。これは図3に示されています。
図3:アリスの戦略は大きな利点を持っています
リコール範囲の役割
バージョン2.5より前、単一のリコールブロックオフセットがランダムにハッシュ化され、マイナーが検索してストレージ証明を提供するための機能がありましたが、バージョン2.6では代わりにリコール範囲がハッシュ化されます。
理由は非常に単純です:リコール範囲は連続するデータブロックで構成されており、この構造は1つの主な目的を果たします-機械式ハードドライブ(HDD)の読み取りヘッドの移動を最小限に抑えることです。この物理的最適化方法により、HDDの読み取りパフォーマンスをより高価なソリッドステートドライブ(SSD)と同等に保つことができます。これは、SSDの手と足を縛るようなものです。もちろん、1秒あたり4つのリコール範囲を転送できるというわずかな速度の利点があります。しかし、より安価なHDDと比較すると、その数がマイナーの選択を駆動する主要な指標になります。
今度は新しいブロックの検証について話し合いましょう。
新しいブロックを受け入れるために、検証者はブロックプロデューサーから受け取った新しいブロックを検証する必要があります。これは、生成されたマイニングハッシュを使用して新しいブロックのマイニングハッシュを検証することで行うことができます。
バリデータがハッシュチェーンの現在の先頭にない場合、各マイニングハッシュには25個の40ミリ秒のチェックポイントが含まれます。これらのチェックポイントは、40ミリ秒間のハッシングの連続した結果であり、前のマイニングハッシュから始まる1秒間隔を表しています。
新しく受信したブロックを他のノードに伝播する前に、バリデータは40ミリ秒以内に最初の25個のチェックポイントの検証を迅速に完了します。検証が成功すると、ブロック伝播がトリガーされ、残りのチェックポイントの検証が続行されます。
すべての残りのチェックポイントを検証することで、完全なチェックポイントが完了します。最初の25個のチェックポイントの後、500個の検証チェックポイントがあり、その後さらに500個の検証チェックポイントが続き、その後の500個のチェックポイントグループごとに間隔が2倍になります。
ハッシュチェーンはマイニングハッシュを生成する際に順次進行する必要がありますが、検証者はブロックを検証する際にハッシュ検証を行うことができ、ブロックを検証する時間を短縮し効率を向上させることができます。
図4:ハッシュチェーンの検証プロセス
ハッシュチェーンの種
もしマイナーやマイニングプールがより速いSHA256ハッシュ能力を持っている場合、彼らのハッシュチェーンはネットワーク内の他のノードよりも進む可能性があります。時間の経過とともに、このブロック速度の利点は蓄積され、重要なハッシュチェーンのオフセットになり得ます。これにより、採掘されたハッシュは他の検証者と同期しなくなる可能性があります。これは一連の制御不能なフォークや再編成を引き起こす可能性があります。
このようなハッシュチェーンオフセットの可能性を減らすために、Arweaveは一定の間隔で過去のブロックからトークンを使用して、グローバルハッシュチェーンを同期させます。これにより、ハッシュチェーンの新しいシードが定期的に提供され、検証済みブロックを持つさまざまなマイナー間でハッシュチェーンが同期されます。
ハッシュチェーンシードの間隔は、新しいシードブロックを選択するために毎50 * 120採掘されたハッシュ(50はブロック数を表し、120は2分のブロック生産サイクル内の採掘されたハッシュ数を表します)ごとに行われます。 これは、シードブロックがおおよそ50 Arweaveブロックごとに現れることを意味しますが、ブロック時間の変動により、シードブロックは50ブロックよりもわずかに早くまたは遅く現れることがあります。
図5:ハッシュチェーンシードの生成方法
上記の内容は、バージョン2.6の仕様から抜粋されたもので、著者によって、Arweaveはバージョン2.6から全体のネットワークを運営するために低消費電力かつより分散化されたメカニズムを実装していることが示されています。サトシナカモトのビジョンは、Arweaveで実践的な実現を見つけています。
Arweave 2.6: https://2-6-spec.arweave.dev/
ステートメント: