原文:ヘロドトス:Starknetのストレージ証明を使用したイーサリアムの状態の証明
翻訳と校正:Starknet Chinese Community」
イーサリアム上の過去の状態への証明可能なアクセスを持つことが重要です。 しかし、これまでのところ、私たちは最後の1時間まで、トラストレスに制限された履歴にアクセスすることができました。
しかし、Starknetは活気にあふれ、常に革新を続け、可能性の限界を押し広げています。 現在、ヘロドトスとStarkWareのおかげで、ジェネシスブロック以降のすべてのイーサリアムブロックハッシュをチェーンネイティブで証明可能な方法で追跡および取得できるようになりました。
ヘロドトスとStarkWareがどのようにしてこれを達成したのか、そしてそれが何を意味するのかを詳しく見てみましょう。 まず、プルーフ・オブ・ストレージの背景から説明します。
保管証明は、第三者を信頼することなく、過去のある時点で国家が実際に存在したことを証明することができます。 証明を保存することで、信頼が数学に組み込まれます。 プルーフ・オブ・ストレージは、チェーン間でこれらの状態にアクセスするためにも使用できます。
Proof of Storage に関する最近の記事では、Proof of Storage の研究と革新を主導するチームである Herodotus を紹介しました。 現在、ヘロドトスチームは、ブロックの作成以来、イーサリアムの状態のトラストレスな証明を可能にする新しいテクノロジーを実装し、プルーフオブストレージのパフォーマンスを大幅に向上させました。
ヘロドトスがこれをどのように達成したのか、そしてなぜそれが重要なのかを探ってみましょう。
まず、イーサリアムのブロックヘッダーとブロックハッシュがどのように機能するかを理解する必要があります。
ブロックヘッダーは、親ブロックのハッシュ、ブロックのタイムスタンプ、状態ルートなど、ブロックに含まれるすべての情報を要約するブロックの一部です。
! ヘロドトス:イーサリアムの状態を証明するためにStarknetのプルーフ・オブ・ストレージを活用する方法は?
イーサリアムブロックヘッダーと状態マークルツリー(コンテンツソース)
ブロックヘッダーには多くの情報が含まれています。 この記事では、状態のルートに焦点を当てます。 その理由を見てみましょう。
上の画像からわかるように、ブロックヘッダーの下にはイーサリアムアカウントの状態があります。 各イーサリアムアカウントには、アカウントの変数(基本的にスマートコントラクトの状態)を格納するストレージスペースが関連付けられています。 アカウントによって保存された暗号化コミットメントがハッシュされると、アカウントの残高、乱数、およびコードハッシュとともにストレージルートとして保存されます。 これらをまとめると、基本的にアカウントのステータスの概要が形成されます。
すべてのイーサリアムアカウントの状態を含むマークル・パトリシア・トライツリーが構築され、そのハッシュがブロックヘッダー(上の画像ではstateRootというラベルが付けられています)に状態ルートとして格納されます。 この状態ルートには、任意の時点でのイーサリアムネットワーク全体の状態を証明するために必要なすべての情報が含まれています。
最後に、イーサリアム(およびEVMチェーン)上のすべてのブロックにはこの状態ルートが含まれており、各ブロックにはブロックハッシュと呼ばれる文字列(状態ルートを含むブロックヘッダーのすべてをハッシュした結果)も含まれているため、ブロックハッシュは特定の時点でのイーサリアムの状態全体の暗号化コミットメントです。
ブロックハッシュには大量の重要な情報が保存されているため、多くの場合、その履歴にアクセスする必要があります。
Solidityでは、2ブロック前にマイニングされたブロックのハッシュを取得したい場合(バックトラッキングカウントはトランザクションを含むブロックから始まります)、次の構文を使用できます。
方法は非常に簡単です。 しかし、問題があります — このブロックハッシュメソッドは、最後の256ブロックのハッシュしか取得できません。 イーサリアムのブロックの平均12秒に基づくと、チェーン上の51.2分の履歴に相当します。
256ブロックの制限は、通常、エントロピー(ランダム性)のソースとしてヒストリカルブロックハッシュを使用したい人には十分です。 しかし、イーサリアムの8年の歴史を考えると、ブロックハッシュを使用して特定のブロックの履歴状態を取得したい場合は、51分の履歴では不十分です。
このオンチェーンの256ブロックハッシュ取得制限は、主に状態ストレージの効率を向上させ、潜在的な状態増加の問題を軽減することを目的としています。
ヘロドトスがこの制限をどのように解決し、達成できるようにするか:
*イーサリアムブロックハッシュの完全な履歴にアクセスする *開始ブロック以降のすべてのイーサリアムの状態を証明する *そして、それはすべてトラストレスな方法で行われます
鍵となるのは、暗号証明の力です。
ヘロドトスの歴史的ブロックハッシュアキュムレータの手続き手順を詳しく見ていきましょう。
イーサリアムのメインネットでは、最近のブロックハッシュがSharpFactsAggregatorと呼ばれるスマートコントラクトに登録されています。 このブロックハッシュは、ブロックハッシュオペコード(オペコード値0x40)を使用して取得し、上記のスマートコントラクトに単純な文字列変数として保存することができます。 また、後からアクセスするために、対応するブロック番号を登録することもできます。
登録されたブロック番号が18,000,000であると仮定すると、Etherscanを通じて、このブロックのハッシュ値が0x95b1であることがわかります。 4baf3。
次のステップは、アーカイブノードからブロック18,000,000のブロックヘッダー情報を取得し、そのブロックハッシュ値をオフチェーンで計算し、登録されたブロックハッシュ値で0x95b1することです… 4baf3です。 この計算プロセスでは、証明者を使用してこの計算の証明も作成します。
このブロックのハッシュは、マークル山脈に追加されます。 これはマークルツリーの変形であり、ツリーに新しい要素を追加するのに多くの計算は必要ありません。
アーカイブノードから取得したブロックヘッダーが有効であることを証明したら、X-1ブロックのブロックヘッダーを取得し、そのハッシュ値を計算して、Xブロックの親ハッシュと比較します(この値は、以前に取得したXブロックのブロックヘッダーにあります)。
ハッシュが一致すれば、X-1ブロックのブロックヘッダーも有効であることを確認できます。 計算全体を関数としてモデル化できるため、その計算のSTARK証明も同時に作成することができます。 これにより、X-1ブロックヘッダーの有効性が証明されました(下図参照)。
すべてのプレオーダーブロックのブロックハッシュは、イーサリアムメインネットのジェネシスブロックまでさかのぼるまで、同様に計算されます。 これらのハッシュはMMRツリーに追加され、最終的なMMRルートが作成されます。
これらの計算はオフチェーンで行われ、ヘロドトスも計算の証明を生成することに注意することが重要です。
最終的なMMRルートが生成されると、このルートは、何百万ものブロックの計算証明とともにオンチェーン(プルーフアグリゲーションスマートコントラクト)で公開できます。 これらの証明をオンチェーンで検証するコストは、生成されたSTARK証明を検証するコストが非常に低いため、正当化されます。
ジェネシスブロック以降のイーサリアムのすべての状態を追跡してアクセスする方法を実装しました。
ヘロドトスチームは、これらのMMRを「ヒストリカル・ブロック・ハッシュ・アキュムレータ」と呼び、2020年にヴィタリック・ブテリンとトマシュ・スタンチャクが提案したEIP-2935の目標(256ブロック以上のヒストリカルデータにアクセスする方法)を実装しています。 これは3年以上前から開かれている問題です! しかし、ヘロドトスとスタルクネットは、プロトコル層を一切変更することなくこれを達成しました。
上記のプロセスに関するいくつかの重要なポイント:
MMRルートがオンチェーンで見つかると、MMRに各ブロックのハッシュが含まれていることが証明されます(これはマークルツリーの基本的な特性です)。
証明をイーサリアムのメインネットに送信する前に、ヘロドトスチームの証明者はStarkWareチームが作成したSHARPシステムを使用します。 SHARPシステムの主な利点は、コストを削減し、証明の生成効率を高めることができることです。
上記のワークフローは、Keccak256 ハッシュ関数を使用した 2 つの個別の MMR に複製され、もう 1 つは Poseidon を使用しました。 イーサリアムはKeccak256の亜種を使用し、Starknetはポセイドンの亜種を使用します。
イーサリアムメインネットのMMRルートは、Starknetで使用するために、ネイティブのStarknet L1からL2へのメッセージングプロトコルを介してStarknetに送信されます。 ヘロドトスのブロックハッシュアキュムレータは、Starknet上の過去のイーサリアムデータにアクセスする機能も実装しています。 Starknet L1-to-L2 メッセージング システムを使用して、L1 ブロック ハッシュと検証済みの MMR ルートを安全な方法で Starknet に転送できます。 Starknetに送信されると、イーサリアムの履歴データのプルーフ・オブ・ストレージをこれらのコミットメントに照らして検証できます。
ヘロドトスとStarkWareは、公共財としてブロックハッシュアキュムレータをイーサリアムにもたらしています。 最終的なMMRルートと計算証明がイーサリアムメインネットで公開されると、開発者はそれらを活用して、チェーンの開始以来、いつでも証明可能な状態にアクセスできます。
イーサリアムのMMRルートもネイティブのクロスチェーンメッセージングプロトコルを介してStarknetに送信されるため、クロスチェーンの状態情報にシンプルでトラストレスな方法でアクセスできます。 DeFiプロトコルは、特定の時点での口座の残高情報または口座のレバレッジされた位置情報を活用することで、過去のプルーフ・オブ・ステートの恩恵を受けることができます。 より大きなヒストリカル・ブロック・ハッシュ・レコードを使用して、より堅牢な乱数を生成することが可能です。 また、ユーザーはL2に投票する前にチェーン間で資産を転送する必要がないため、クロスチェーン投票もよりシンプルになりました。 これにはさらに多くの可能性があります。
ブロックチェーンのスケーラビリティ、分散化、検証可能性が絶えず進化している世界で、Starknetのチームはイノベーションのビーコンになりつつあります。 Starknetで作成されたプロジェクトは、イーサリアムをスケーリングする上で重要な要素になりつつあります。 この新しい未来を深く掘り下げるにあたり、Starknetのエコシステムに慣れることは、将来の成長の基盤となります。
1.02M 人気度
13.15K 人気度
17.14K 人気度
101.01M 人気度
850.35K 人気度
ヘロドトス:イーサリアムの状態を証明するためにStarknetのプルーフ・オブ・ストレージを活用する方法は?
原文:ヘロドトス:Starknetのストレージ証明を使用したイーサリアムの状態の証明
翻訳と校正:Starknet Chinese Community」
概要
はじめに
イーサリアム上の過去の状態への証明可能なアクセスを持つことが重要です。 しかし、これまでのところ、私たちは最後の1時間まで、トラストレスに制限された履歴にアクセスすることができました。
しかし、Starknetは活気にあふれ、常に革新を続け、可能性の限界を押し広げています。 現在、ヘロドトスとStarkWareのおかげで、ジェネシスブロック以降のすべてのイーサリアムブロックハッシュをチェーンネイティブで証明可能な方法で追跡および取得できるようになりました。
ヘロドトスとStarkWareがどのようにしてこれを達成したのか、そしてそれが何を意味するのかを詳しく見てみましょう。 まず、プルーフ・オブ・ストレージの背景から説明します。
プルーフ・オブ・ストレージとは?
保管証明は、第三者を信頼することなく、過去のある時点で国家が実際に存在したことを証明することができます。 証明を保存することで、信頼が数学に組み込まれます。 プルーフ・オブ・ストレージは、チェーン間でこれらの状態にアクセスするためにも使用できます。
Proof of Storage に関する最近の記事では、Proof of Storage の研究と革新を主導するチームである Herodotus を紹介しました。 現在、ヘロドトスチームは、ブロックの作成以来、イーサリアムの状態のトラストレスな証明を可能にする新しいテクノロジーを実装し、プルーフオブストレージのパフォーマンスを大幅に向上させました。
ヘロドトスがこれをどのように達成したのか、そしてなぜそれが重要なのかを探ってみましょう。
イーサリアムのオンチェーン設立ブロックの証明
まず、イーサリアムのブロックヘッダーとブロックハッシュがどのように機能するかを理解する必要があります。
ブロックヘッダーとブロックハッシュとは何ですか? **
ブロックヘッダーは、親ブロックのハッシュ、ブロックのタイムスタンプ、状態ルートなど、ブロックに含まれるすべての情報を要約するブロックの一部です。
! ヘロドトス:イーサリアムの状態を証明するためにStarknetのプルーフ・オブ・ストレージを活用する方法は?
イーサリアムブロックヘッダーと状態マークルツリー(コンテンツソース)
ブロックヘッダーには多くの情報が含まれています。 この記事では、状態のルートに焦点を当てます。 その理由を見てみましょう。
上の画像からわかるように、ブロックヘッダーの下にはイーサリアムアカウントの状態があります。 各イーサリアムアカウントには、アカウントの変数(基本的にスマートコントラクトの状態)を格納するストレージスペースが関連付けられています。 アカウントによって保存された暗号化コミットメントがハッシュされると、アカウントの残高、乱数、およびコードハッシュとともにストレージルートとして保存されます。 これらをまとめると、基本的にアカウントのステータスの概要が形成されます。
すべてのイーサリアムアカウントの状態を含むマークル・パトリシア・トライツリーが構築され、そのハッシュがブロックヘッダー(上の画像ではstateRootというラベルが付けられています)に状態ルートとして格納されます。 この状態ルートには、任意の時点でのイーサリアムネットワーク全体の状態を証明するために必要なすべての情報が含まれています。
最後に、イーサリアム(およびEVMチェーン)上のすべてのブロックにはこの状態ルートが含まれており、各ブロックにはブロックハッシュと呼ばれる文字列(状態ルートを含むブロックヘッダーのすべてをハッシュした結果)も含まれているため、ブロックハッシュは特定の時点でのイーサリアムの状態全体の暗号化コミットメントです。
EVMの履歴ブロックハッシュ
ブロックハッシュには大量の重要な情報が保存されているため、多くの場合、その履歴にアクセスする必要があります。
Solidityでは、2ブロック前にマイニングされたブロックのハッシュを取得したい場合(バックトラッキングカウントはトランザクションを含むブロックから始まります)、次の構文を使用できます。
! ヘロドトス:イーサリアムの状態を証明するためにStarknetのプルーフ・オブ・ストレージを活用する方法は?
方法は非常に簡単です。 しかし、問題があります — このブロックハッシュメソッドは、最後の256ブロックのハッシュしか取得できません。 イーサリアムのブロックの平均12秒に基づくと、チェーン上の51.2分の履歴に相当します。
256ブロックの制限は、通常、エントロピー(ランダム性)のソースとしてヒストリカルブロックハッシュを使用したい人には十分です。 しかし、イーサリアムの8年の歴史を考えると、ブロックハッシュを使用して特定のブロックの履歴状態を取得したい場合は、51分の履歴では不十分です。
このオンチェーンの256ブロックハッシュ取得制限は、主に状態ストレージの効率を向上させ、潜在的な状態増加の問題を軽減することを目的としています。
ヘロドトスは完全なブロックハッシュ履歴の取得を可能にします
ヘロドトスがこの制限をどのように解決し、達成できるようにするか:
*イーサリアムブロックハッシュの完全な履歴にアクセスする *開始ブロック以降のすべてのイーサリアムの状態を証明する *そして、それはすべてトラストレスな方法で行われます
鍵となるのは、暗号証明の力です。
ヘロドトスの歴史的ブロックハッシュアキュムレータの手続き手順を詳しく見ていきましょう。
ステップ1:最近のブロックハッシュを登録する
イーサリアムのメインネットでは、最近のブロックハッシュがSharpFactsAggregatorと呼ばれるスマートコントラクトに登録されています。 このブロックハッシュは、ブロックハッシュオペコード(オペコード値0x40)を使用して取得し、上記のスマートコントラクトに単純な文字列変数として保存することができます。 また、後からアクセスするために、対応するブロック番号を登録することもできます。
登録されたブロック番号が18,000,000であると仮定すると、Etherscanを通じて、このブロックのハッシュ値が0x95b1であることがわかります。 4baf3。
ステップ2:最新のブロックのハッシュを証明する
次のステップは、アーカイブノードからブロック18,000,000のブロックヘッダー情報を取得し、そのブロックハッシュ値をオフチェーンで計算し、登録されたブロックハッシュ値で0x95b1することです… 4baf3です。 この計算プロセスでは、証明者を使用してこの計算の証明も作成します。
このブロックのハッシュは、マークル山脈に追加されます。 これはマークルツリーの変形であり、ツリーに新しい要素を追加するのに多くの計算は必要ありません。
ステップ3:X-1ブロックのハッシュを証明する
アーカイブノードから取得したブロックヘッダーが有効であることを証明したら、X-1ブロックのブロックヘッダーを取得し、そのハッシュ値を計算して、Xブロックの親ハッシュと比較します(この値は、以前に取得したXブロックのブロックヘッダーにあります)。
ハッシュが一致すれば、X-1ブロックのブロックヘッダーも有効であることを確認できます。 計算全体を関数としてモデル化できるため、その計算のSTARK証明も同時に作成することができます。 これにより、X-1ブロックヘッダーの有効性が証明されました(下図参照)。
! ヘロドトス:イーサリアムの状態を証明するためにStarknetのプルーフ・オブ・ストレージを活用する方法は?
ステップ4:前のブロックのハッシュを再帰的に証明する
すべてのプレオーダーブロックのブロックハッシュは、イーサリアムメインネットのジェネシスブロックまでさかのぼるまで、同様に計算されます。 これらのハッシュはMMRツリーに追加され、最終的なMMRルートが作成されます。
! ヘロドトス:イーサリアムの状態を証明するためにStarknetのプルーフ・オブ・ストレージを活用する方法は?
これらの計算はオフチェーンで行われ、ヘロドトスも計算の証明を生成することに注意することが重要です。
ステップ5:配達確認をオンチェーンで公開し、その後の使用
最終的なMMRルートが生成されると、このルートは、何百万ものブロックの計算証明とともにオンチェーン(プルーフアグリゲーションスマートコントラクト)で公開できます。 これらの証明をオンチェーンで検証するコストは、生成されたSTARK証明を検証するコストが非常に低いため、正当化されます。
ジェネシスブロック以降のイーサリアムのすべての状態を追跡してアクセスする方法を実装しました。
ヘロドトスチームは、これらのMMRを「ヒストリカル・ブロック・ハッシュ・アキュムレータ」と呼び、2020年にヴィタリック・ブテリンとトマシュ・スタンチャクが提案したEIP-2935の目標(256ブロック以上のヒストリカルデータにアクセスする方法)を実装しています。 これは3年以上前から開かれている問題です! しかし、ヘロドトスとスタルクネットは、プロトコル層を一切変更することなくこれを達成しました。
上記のプロセスに関するいくつかの重要なポイント:
! ヘロドトス:イーサリアムの状態を証明するためにStarknetのプルーフ・オブ・ストレージを活用する方法は?
MMRルートがオンチェーンで見つかると、MMRに各ブロックのハッシュが含まれていることが証明されます(これはマークルツリーの基本的な特性です)。
証明をイーサリアムのメインネットに送信する前に、ヘロドトスチームの証明者はStarkWareチームが作成したSHARPシステムを使用します。 SHARPシステムの主な利点は、コストを削減し、証明の生成効率を高めることができることです。
上記のワークフローは、Keccak256 ハッシュ関数を使用した 2 つの個別の MMR に複製され、もう 1 つは Poseidon を使用しました。 イーサリアムはKeccak256の亜種を使用し、Starknetはポセイドンの亜種を使用します。
イーサリアムメインネットのMMRルートは、Starknetで使用するために、ネイティブのStarknet L1からL2へのメッセージングプロトコルを介してStarknetに送信されます。 ヘロドトスのブロックハッシュアキュムレータは、Starknet上の過去のイーサリアムデータにアクセスする機能も実装しています。 Starknet L1-to-L2 メッセージング システムを使用して、L1 ブロック ハッシュと検証済みの MMR ルートを安全な方法で Starknet に転送できます。 Starknetに送信されると、イーサリアムの履歴データのプルーフ・オブ・ストレージをこれらのコミットメントに照らして検証できます。
ヘロドトス・ブロック・ハッシュ・アキュムレータの新たな可能性
ヘロドトスとStarkWareは、公共財としてブロックハッシュアキュムレータをイーサリアムにもたらしています。 最終的なMMRルートと計算証明がイーサリアムメインネットで公開されると、開発者はそれらを活用して、チェーンの開始以来、いつでも証明可能な状態にアクセスできます。
イーサリアムのMMRルートもネイティブのクロスチェーンメッセージングプロトコルを介してStarknetに送信されるため、クロスチェーンの状態情報にシンプルでトラストレスな方法でアクセスできます。 DeFiプロトコルは、特定の時点での口座の残高情報または口座のレバレッジされた位置情報を活用することで、過去のプルーフ・オブ・ステートの恩恵を受けることができます。 より大きなヒストリカル・ブロック・ハッシュ・レコードを使用して、より堅牢な乱数を生成することが可能です。 また、ユーザーはL2に投票する前にチェーン間で資産を転送する必要がないため、クロスチェーン投票もよりシンプルになりました。 これにはさらに多くの可能性があります。
まとめ
ブロックチェーンのスケーラビリティ、分散化、検証可能性が絶えず進化している世界で、Starknetのチームはイノベーションのビーコンになりつつあります。 Starknetで作成されたプロジェクトは、イーサリアムをスケーリングする上で重要な要素になりつつあります。 この新しい未来を深く掘り下げるにあたり、Starknetのエコシステムに慣れることは、将来の成長の基盤となります。