本記事では、LXDAOの著者である0xSamo氏が、Starknetのチェーンのコアコンポーネント、楽観的/zkロールアップ手数料体系、EIP-4844のブロブメカニズム、EtherScanの柔軟な使用によるSHARPシステムのレートについて解説する。本当の理由は、Starknetのコイン発行後、国庫には他の収入源があるため、取扱手数料に頼らずに収入を得ることができ、L2 Gasを大幅に削減することができるからです。価格ベンチマークを大幅に引き下げる。
はじめに
EIP-4844は、The Merge以来のイーサ最大のアップグレードとして十分な注目を集めました。このアップグレードによって導入されたBlob一時保管スペースは、Ether列車にサイド車両を追加したのと同じで、列車の本来の運用状態に影響を与えることなく、より安価なDAスペースを提供します。
Optimism、StarkNet、Arbitrum、および他のLayer2プロジェクトはすべて、短期間でEIP-4844をサポートし、大幅な手数料削減を達成しています。EIP-4844の前後のガス料金は、驚くことに100倍も違っていました。
しかし、驚きの中で、StarkNetはEIP-4844の前と後ではガス料金が100倍も違うことがわかりました。strong>StarkNetは、ZK Rollupの代表として、1ドル以上動いていたガスレベルから0.01ドルまでという驚くべきレート引き下げを受けたのです。
Starknet'sStarknet's Handling Fee How Came Down So much
OP RollupとZK RollupはDAスペースの1ティアの要件が異なる
この2つ。OP Rollupは、ユーザー署名を含む最近のトランザクションのすべての詳細を、パッケージ化して圧縮した後、ネットワークの1つの層にアップロードします。ティア1ネットワークでの検証作業はあまり必要なく、コストのほとんどすべてがティア1ネットワークのDAスペースを使用することにある。
対照的に、ZK Rollupは、アップロードされたデータの圧縮率がはるかに高い。たとえば、Layer2トランザクションのデジタル署名をアップロードする代わりに、トランザクションが有効であることを確認するためにZK Proofだけに頼ることができます。また、トランザクションのすべての詳細をパッケージ化する代わりに、ZK Rollupは単に状態変化の結果をパッケージ化してチェーンにアップロードします。
例えば、レイヤー2ネットワーク上で、USDC/USDTペアで取引した100人のユーザーがおり、各取引後に資産契約におけるUSDCとUSDTの残高が変化します。OP Rollupの場合、これらの取引行動の背後に生成されるDAデータは、100の取引、200のアカウントにおける400の残高の変化です。2つの最終状態要約変更に圧縮することができ、DAデータのサイズを大幅に削減します。
ZKロールアップは、ZKPによって消費された追加のガスを検証します
2つの違いを理解した後、最初の印象は、ZKロールアップの方がガス料金が低いと思うかもしれません。ガス代は安くなりますが、EIP-4844以前、StarkNet、ZkSyncなどのZK Rollupは、OP Rollup、特にStarkNetは、ゼロ知識証明のサイズが大きいSTARKアルゴリズムを採用しているため、そのコストはOP Rollupよりもかなり高いことを、現場で運用したことのある学生は知っておく必要があります。
(2023年のある時点におけるL2別のL2料金表)
ZKロールアップがオンラインになってすぐにOPロールアップを潰さなかった理由は簡単です。を検証する必要があり、計算コストが増加する。
BlobはDA手数料を減らすだけで、計算部分についてはあまり役に立ちませんし、ZK RollupはOP RollupよりもEIP-4844から得られるものが少ないです。そのため、Starknetが手数料の面で非常に高価であったのが、すぐにセントレベルの手数料を達成したのを見ると、驚かないわけにはいきません。
Starknetの手数料構成を探る
ZKロールアップはOPロールアップよりも複雑な傾向があります。下のグラフは、OptimismシーケンサーがDAデータをネットワークのレイヤーにポストしたときに生成されるトランザクションレコードを示しており、EIP-4844が着陸したときにOPのトランザクション手数料が2桁下がった理由を誰でも理解できます。
しかし、スタークネットの手数料の出所を調査すると、以下のようなことがわかりました。しかし、スタークネットの料金の源泉を調査する際、スタークネットのさまざまな構成要素間の相互作用がはるかに複雑であるため、この記事の著者はかなりの困難を経験した。この全過程を辿ってみよう。
消えるDAのレイヤー
Optimismの料金体系を探った経験から、Starknetがメインネットワークに提出するデータを見つけようと考えるのは自然なことです。メインネットワークにデータを提出するためのStarknetの契約アドレス、そのような重要な契約は、EtherscanのGas Consumptionリストのトップにあるはずで、まだEIP-4844に適応しておらず、その契約がGas Consumptionリストのトップにまだぶら下がっているScrollなど、見つけるのは難しくないはずです。
スタークネットのキーワードで検索すると、以下のようになります。その後、EtherScanで3つの関連コンポーネント、Operator、Core Contract、Memory Page Fact Registryが見つかりますが、DAに関連すると思われる3つ目のコンポーネントは2年近く前に廃止されています。
現時点では、StarkentのOperatorは常にCore Contractと相互作用していることがわかります。Operatorは常にCore Contractとインタラクトし、"Update State "関数を呼び出していることがわかります。
カンクンのアップグレードが有効化される前と後のレコードの連鎖を見ると、Operatorはカンクンのアップグレードが有効化される前と後に連鎖していることがわかります。レコードで、Operatorの「状態の更新」動作が確かに詳細に変更されていることがわかります。第1に、関数名が「UpdateStateKzgDA」に変更され、第2に、旧状態更新関数がリクエストをコアコントラクトにProgramOutput、onchainDataHash、onchainDataSizeをアップロードするのに対し、新しいバージョンではProgramOutputとonchainDataSizeをアップロードします。ProgramOutputとKzgProofをアップロードします。
ここでKzgProofは、一般にKZGとして知られている。として一般的に知られているKzgProofは、Blobのdatahashに似た役割を果たし、Blobに格納されたデータと対応します。状態更新関数の新しいバージョンは、古いものより多くのガスを消費することは注目に値する。そこで疑問なのは、スタークネットはいったいどうやって料金をこれほど低く抑えているのかということだ。その理由はいったい何なのでしょうか?
詳細については、LXDAOのLayer2普及サイトMyFirstLayer2:
https://layer2。myfirst.io/zh#3.3-optimistic-rollup
最初の挫折のあとの分析
最初の探索はあまり成功しませんでしたが、それでも私たちは、まだ、この探索を続けています。はあまり成功しませんでしたが、それでもいくつかの推論と推測を得ることができました。MyFirstLayer2をご覧になった方は、Rollupの核となる問題がDA問題(Data Availability)であることを知っているはずで、両者とも主要なデータをメインネットワークにアップロードすることで、誰もが簡単に必要なデータにアクセスできるようにすることで、Data Availability問題を解決しています。
少し話を戻しますが、OP Rollupは単純かつ粗雑にすべてのトランザクションコマンドを圧縮して集約し、それらをパッケージ化してネットワークの一階層にアップロードしました。各トランザクションをリプレイして、第2層のネットワークの状態変化を知る。
ZKロールアップは、トランザクションの完全な詳細をアップロードする必要はありません。ZKRollupはZKPを使用して、State Diffが有効でエラーがないことを確認します。一方、他のものはPrev_GlobalStateの上に直接State Diffをオーバーレイして、レイヤー2ネットワークの最新の状態を知ることができます。
私たちは皆、BlobがBlobの最も重要な部分であることを知っています。ブロブデータは、ちんぷんかんぷんなバイナリテキストの文字列に過ぎず、ネットワークの第一層は、ブロブデータがアップロード後に悪意のあるノードによって改ざんされないことを保証するだけで、データの内容を検証する責任はなく、もちろん、第一層に配備されたスマートコントラクトも、ブロブの内容を読み取ることはできません。
つまり、ZKプルーフがまだ1つのレイヤーで検証されているのであれば、ZKプルーフは確かにBlobに入れることはできないわけで、スタークネットがこれだけ手数料を下げる効果があると判断できるのは、ZKPとはあまり関係がなく、State diffの保存場所に原因があるに違いない。State diffの保管場所が変更されたことに起因するに違いない。
次の課題は、スタークネットがState diffをどこに置いたかを調べることだ。以前はどこにあったのか、そして今はBlobにあるのかないのか。
さらに、UpdateState関数の入力パラメータにStateRootしか見つからないことから、メインネットワークに直接アップロードされるはずだったデータを、Starknetが代わりにオフチェーンDACに送信しているのではないかと疑ってしまいます。そうであるならば、Starknetの法外な料金はまったく正当化されず、......
SHARPシステム
幸いなことに、@0xYandhiiと話し合った結果、啓発されました。Starknetの最初の製品は、実は汎用メインネットで稼動する前のStarkEXで、分散型デリバティブ取引所dYdXもその時期の製品でした。
メインネットが稼動した後、元の製品を放棄する代わりに、元の製品はバリデータ契約をメインネットと共有することに移行しました。SHARP Blockchain Writer、SHARP Verifier、その他の関連する契約を見つけることができます。
ブロックブラウザを開いて関連するトランザクションを調べると、SHARP: Shared Proving and Verifying Systemシステムが見つかります。
1.VerifyMerkle: Merkle Treeの検証
2. VerifyFRI: 提出されたデータや計算が、元のイメージを明らかにすることなく、特定のルールに従っていることを確認するために使用されます。を確認するために使用されます。
3.Register Continuous Memory Page:ネットワークのレイヤーにデータを書き込むときに呼び出される関数と思われます。
4.Verify Proof And Register:この関数は、10分に1回と早く、または1~2時間とゆっくり呼び出されます。Starknetが十分な数のトランザクションを保存した後、これらのトランザクションのZKPの有効性を検証します。
1、2、4がZKProofに関連する機能であることは難しくないが、3番目の機能は、明らかにネットワークのレイヤーにデータを書き込むステップであり、State diffアップロードに関連する可能性が最も高いものである。
私たちは、1、2、4を呼び出すコストはBlobのアップグレードの前後で大きく変わらなかったが、3番目の機能を使用するコストは大きく減少したはずだと推測している。
そこで、私はブロック ブラウザーをめくり続け、EIP-4844 より前の 3 つの期間、直近の古いバージョン、直近の最初のバージョン、アップグレード後の最新バージョンのそれぞれについて検証サイクルを 1 回ずつ取り、4 つの関数が呼び出されるたびに、それぞれによって消費されるガスを数えました。
その結果は、頭を悩ませるものでした。
データ公開に関連する3番目の機能は、コストが半分になりました。は半分に下がりましたが、ZK証明検証の全ラウンドにおけるコストシェアから見ると、このレベルのDAコスト削減は、私たちが以前に提案した仮説を正当化するものではありません。
探求はここでほぼ限界に達しており、私はまるで3体世界の大型粒子衝突型加速器の前に座っている物理学者のような気分です! 私はスタークネットのコミュニティにも行って、それについて尋ねる投稿をしたが、問題があまりに複雑だったためか、英語のコミュニティの反応は鈍かった。
SHARP System GasUsed Exploration
この時点で、まだ最後の小さなトリックが残っています。先にダウンロードした取引データのcsvの中には、Gas料金で消費されたETHしかなく、GasPriceやGaslimitなどの情報がないので、Gas単価の変動が統計結果に与える影響を排除できない。そこで、以前に関係した各取引の実際のGasUsed(Gaslimitを使い切った部分)をカウントするスクリプトを書いた。
今回、ついに何かを発見しました。
今回、ついに何かを発見しました。Cancunのアップグレード前は、Register Continuous Memory Pageという関数が、DAデータのアップロードごとに2回トリガーされ、1回は50,000ガスを消費し、もう1回は300,000ガスを消費していました。
また、カンクンのアップグレード後は、ほとんどすべてのRegister& Continuous Memory Pageの呼び出しが、DAデータのアップロードごとに2回発生しました。strong>Register Continuous Memory Page functionトランザクションは、わずか50,000ガスしか消費しません。
以前はサンプルの数が少なすぎました。アップグレード後、メインネットのガス料金が高騰した時期があり、それが統計に影響を与えたため、連続メモリページの登録関数呼び出しのコストは、Cancunアップグレードの前後であまり変化していないと考えられるようになり、さらに広く統計を採用したところ、すぐに何が問題なのかがわかりました。
この考えに従って、3 つの瞬間を並べ替えました。GasUsedのデータを3つのモーメントで並べ替えると、今度は非常に理にかなっている。これにより、DAデータのアップロードに関連するRegister Continuous Memory Page機能は、Cancunのアップグレード後に確かに大幅に減少していることが確認されました。これは、State Diffを保存する本来のステップであったはずで、Cancunのアップグレード後は、DAデータはBlobに転送されました。
その後、L2beatのウェブサイトにスタークネットの製品構造の概略図が掲載されており、それを見ると、確かにState diffは上記の機能を介してイーサチェーン上に保存されていることがわかります。
(画像ソース:L2BEAT)
最後に、GasUsedの数量計算(今回は無作為に選んだ少ないサンプル数で大まかに推定)に基づき、StarknetのCancunアップグレード後のDAコストは、およそ4倍から10倍の変化があると結論づけます。の変化であり、1桁をわずかに下回ります。
これはまた、私たちの最初の推測と一致しています:ZK Rollupは、EIP-4844のアップグレード後、OP Rollupほどの利益を得ませんでした。
まとめ
これだけの調査を経て、私たちはついにスターネットの料金が大きく下がった理由を整理しました。にはまだ少し興味をそそられる。
DA手数料の大きな下落は、2桁の大きさを説明するものではありません
スターネットが以前は、各バッチから状態変化データをネットワークのレイヤーに直接アップロードしていたことは明らかです。以前はネットワークのレイヤーに直接アップロードされていたデータは、現在ではBlobに置かれるため、料金のDAデータ部分を1桁弱減らすことができます。
しかし、スタークネットの手数料が99%下がったことをどう説明するのでしょうか?DA料金の削減だけでは明らかに十分ではありません。唯一もっともらしい説明は、カンクンのアップグレードの前にスタークネットがユーザーに課金しすぎていたということだ。STRKコインのリリース前、Starknetのすべての活動とコミュニティのインセンティブには資金が必要だった。 投資家の資金を燃やすことに加え、ユーザーに請求されたETHと実際に消費されたETHの間にはさみの差を設定することは、おそらくStarknetの運営を維持する方法の1つであり、以前はStarknetのガス料金が非常に高かったことにつながった。
STRKトークンの発行がStarknetに十分な資金をもたらした今、Gasを妥当なレベルに戻す時が来たのだ。カンクンのアップグレードを利用して、足元に縛り付けられた土嚢を一緒に下ろし、手数料を下げる効果を示すことで、本当に多くの人をうならせた。
Rollup's historical data loss problem
OP Rollupは、アップグレード後、もともとトランザクションCalldataに保存されていたデータを、一時的な保存領域であるBlobに移動しました。一時的な記憶領域であるBlobに移動したことで、実際には信頼性が少し損なわれました。
以前は、Calldataスペースのデータは永続的に保存されていたため、OPRの現在の状態を検証し同期するために、誰でもイーサリアムのメインネットワークから十分な過去のデータをダウンロードすることができました。
しかし、Cancunのアップグレード後、Blobのデータには期限切れの陳腐化設定があるため、ネットワーク全体で過去のBlobデータを保持している単一のエンティティがない場合、OPRの取引履歴が失われる可能性があります。
最新のレイヤー2ネットワーク状態はまだ保護できますが、これはBlobの保持がOPの7~14日のチャレンジ期間を超えているためです。この最新の 10 日間のトランザクション ロギングは、OPR のセキュリティを維持するためにロールオーバーされます。
また、ZK RollupはBlobsの利点を享受したいのであれば、重要な第2レベルのステートデータをCalldataスペースからBlobスペースに移動する必要があります。これは、しばらくすると、以前のように第2層の状態をReplayするためにネットワークの第1層が提供するデータに頼ることもできなくなることを意味する。
おそらくこれは、すべてのL2ネットワークが最新の状態のセキュリティを維持するためにBlobに依存し、各L2がセキュリティと効率の間のより良いバランスを取るために、過去のトランザクションデータを保存するための別のソリューションを考え出す必要があるという、当たり前のことになるでしょう。
OPとZKの収束に向けた傾向
過去には、OPロールアップの第1世代が最初に稼働し、ZKロールアップの第1世代は、より競争力のあるガス料金を持ち込むことなく稼働しました。より競争力のあるガス料金をもたらすことなく。その後のOP Stack、Polygon SDKによってもたらされたモジュール化の流れに、OP Stackは将来的にZKテクノロジーを導入し、チャレンジ期間を短縮する計画さえ立てています。
これは間違いなく、OPとZKという2つの技術ルートが、あなたと私の間で競争しているわけではなく、互いに学び合い、融合する傾向があるという事実を指し示していますが、今回は「高貴な」ZKから「単純で残忍な」ZKへ。ただ一つ言えることは、「高貴な」ZKが「単純で残忍な」OPから学ぶ時だということだ。
たった2、3年で2次ネットワークの技術がここまで進化したとは信じがたいが、それがブロックチェーンの世界の素晴らしさなのかもしれない。
References:
[1]https://community.starknet.io/t/data-availability-with-eip4844/113065.em>h
[2] L2BEAT研究チーム. [2024-04-16]. https://l2beat.com/scaling/projects/starknet?selectedChart=activity#contracts.
.