Istanbul, zkRollup, and Ethereum throughput limits: an analysis(みらい翻訳)
Istanbul, zkRollup, and Ethereum throughput limits: an analysis
zkRollupはEthereumのスループットを毎秒3000トランザクション(tps)に向上させるのに役立つ、という推測もある。この論文はこの主張を立証する試みである。
(twitter訳) IstanbulのアップグレードにはEIPが含まれており、Ethereumを最大3000TPSまで拡張できることをご存知でしたか。
これを文脈に当てはめると、Visaネットワークが現在平均しているのは2000tpsだ。
Ethereumは現在約30tpsをサポートしている。ご覧のとおり、これらの推定が正しい場合、これは非常に重要なパフォーマンスの向上です。
(僕の意見) マジ?流石に嘘くさい
Istanbul:ロールアップイノベーションへの扉を開く
12月7日に行われたイスタンブールのハードフォークは、Ethereumの最新のアップグレードだ。
イスタンブールには、zk-SNARKを安価にするEIP-1108とEIP-2028というEthereum改良提案(EIP)があります。
EIP-1108には、革新への扉を開く、切望されていたガス精製が含まれています。これらの報告はzk‐SNARK検証のガスコストを大幅に低減する。
(twitter訳) #ethereum Istanbulが有効になったので、証明書の検証はずっと安くなる。Groth16プルーフの検証には約200kガス(入力ごとに8k)の費用がかかり、PLONKも同じようなものになるはずだ。
EIPから直接見積を作成する手順は、次のとおりです。:
簡単な要約: 楕円曲線の演算プリコンパイルは現在高価です。プリコンパイルの価格を変更することは、Ethereum上の多くのプライバシーソリューションおよびソリューションの拡張に大いに役立ちます。
理論的根拠: 既存のプロトコルは安価な楕円曲線暗号から多大な恩恵を受ける
スループット制限: Istanbulの前と後
Ethereum (現在)
ただ、現時点で許可されているブロックガスの上限は1000万ガス。
Ethereumのトランザクションごとに21,000のガスが基本料金として課金されます(単純な移動のために)。
約15秒ごとに、チェーンにブロックが追加されます。
(僕注) 現在 Ethereum ネットワークのガスリミットは最大で1000万。単純なETHの送金は21,000ガス。ブロック生成は15秒に一回
これらの図から、Ethereumの最大スループットを算出できます:
EthereumとZkRollup(イスタンブール以前に)
各zkRollupブロック(バッチと呼ばれるもの)には、2048(バニラ・eth)トランザクションとzk-proofが含まれます。したがって、取引と証拠という2種類のデータについてガスコストを計算する必要があります。
(僕注) バニラは素の状態って事。
各トランザクションは8.125バイトです。コストは68gas/byteで、トランザクションあたり552.5 gasです。バッチごとに2048の取引があるため、原価(バッチ当たり)は取引に対して552.5*2048=1,131,520ガスとなります。
したがって、各積上バッチのコストは1,131,520+80万=1,931,520ガスです。
1ブロックあたりのガス量が10Mに制限されている場合、EthereumブロックにzkRollupバッチをいくつ挿入できますか。
10M/1,931,520=5.17バッチ。説明を簡単にするために、1ブロックあたり約5バッチにします。
Ethereumブロックに5つのバッチが挿入され、各バッチが2048トランザクションを保持する場合、これは、ブロック当たり5*2048=10,240トランザクションに適合できることを意味します。
EthereumとZkRollup(イスタンブールの後で)
前述のように、各バッチ(バッチは単なるzkRollupブロックであることを覚えておいてください。)には2048(バニラ・eth)のトランザクションとzk-proofが含まれます。しかし、EIP1108と2028のおかげで、取引と証明の両方のガスコストが変化した。
各トランザクションは8.125バイトです。コストは16gas/byteで、トランザクションあたり130gasです。バッチごとに2048の取引があるため、原価(バッチ当たり)は取引に対して130*2048=266,240ガスとなります。
プルーフの製造コストは現在、35万ガスだ。バッチ当たり一プルーフとは、プルーフ用の35万ガスバッチ当たりのコストを意味する。
したがって、各積上バッチのコストは266,240+35万=616,240ガスです。
1ブロックあたりのガス量が10Mに制限されている場合、EthereumブロックにzkRollupバッチをいくつ挿入できますか。
10M/616,240=16.22バッチ。簡単にするために、これを最も近い5に丸めて、ブロックあたり約15バッチとします。
Ethereumブロックに15のバッチが挿入され、各バッチが2048のトランザクションを保持する場合、これはブロック当たり15*2048=30,720のトランザクションに適合できることを意味します。
Summary table
zkRollupでのスループットの増加は、トランザクション・コストの減少に直接関係しているため、上記に関するもう1つの考え方は次のとおりです。
現在、Ethereumの取引を送信するには約21,000ガスのコストがかかる。
ZkRollup(イスタンブール以前に)を使用したEthereumでは、このコストを約945ガス分の1000未満にまで削減できました。
ポスト・イスタンブール、コストは現在300ガス。
以下の表は、3つのシナリオすべてについて、トランザクションのコストとスループットを比較したものです。:
[https://iden3.io/sites/default/files/styles/900_x_900/public/content/image/2019/12/12/bakeryadmin/rollup-table-hq_0.png?itok=4XDFXvk:image=https://iden3.io/sites/default/files/styles/900_x_900/public/content/image/2019/12/12/bakeryadmin/rollup-table-hq_0.png?itok=4XDFXvk]
(NOTE: ZkRollupによるEthereumのトランザクション・コストを計算するには、証拠ごとのガス・コスト(2048)をバッチ内のトランザクション数で除算することに注意してください。これは、バッチごとに証拠が80万一つ35万あるため、証拠のコストをバッチ内のすべてのトランザクションで償却することに相当するためです。次に、この数値をトランザクションごとのデータ・ストレージ・ガス・コスト (Istanbulの前は552.5、後は130) 、つまりトランザクション・データをコールデータに保管するコストに追加します。)
結論
この論文の冒頭で述べたように、Visaネットワークの現在の平均速度は2000TPSだ。Ericの言う3000tpsにはまだ十分に対応できていないが、2048tpsという最大スループットはまだかなり大きい。私たちの想定とは少し違っていますが、3000tpsはありそうもないです。
注意事項
夢中になりすぎる前に、これが理論上の最大値であることを覚えておくことが重要です。実際には、物事はそれほど単純ではありません。
実際には、15バッチを1ブロックに収めるには、平均バッチ作成時間が毎秒1(15秒ブロック・タイムを想定)である必要があります。
各zkRollupバッチには、バッチ内のトランザクションの整合性を証明する短い暗号証明(ザクザク)が必要です。この証明を生成することは、計算上非常に高価であることが判明した。実際、理論上のスループット制限を達成する上での主なボトルネックとなっています。
今のところ、1つのCPUと3つのGPUを使用すると、そのような証明を生成するのに数分かかります。
並列化によってパフォーマンスが改善されることは明らかですが、プルーフ生成時間を数分から数秒に短縮し、コストを抑えることは依然として重要な課題です。
(ロールアップ・トランザクション・アグリゲータ(オペレーターと呼ばれるもの)がバッチを「採掘される」すると、証明オンチェーンを検証する必要があります。この検証は、他のオペレータに対する一種の「データベース更新」として機能します。実際には、これは、バッチn+1は、バッチnの証明が生成され、検証された後にのみ「採掘される」可能であることを意味する。)
ここでは証明生成が主なボトルネックですが、残された課題はこれだけではありません。毎秒2000トランザクションを処理できるサーバを設定することは、簡単な問題ではありません。また、すべての署名を確認することもできません。また、これらの情報を処理するだけの高度なブロックエクスプローラも必要です。...
もちろん、私たちはまだこれらすべての部分に取り組んでいます。そして、それらを解決するまで、立ち止まるつもりはありません。
結局のところ、それが可能だと信じていなければ、私たちはこの分野にはいなかったでしょう。