zkRollup に関する 2 つのディスカッション: SNARK とブロックチェーンの将来について議論する
以太坊爱好者
2021-12-03 03:03
本文约6711字,阅读全文需要约27分钟
zkrollupをどう説明するか?

最初のルール:

@StopAndDecrypt:

zkrollup について説明してくれるビットコイン愛好家はいますか?

私はイーサリアム開発者がトレードオフについて正直になるとは期待していませんし、イーサリアムファンがイーサリアムの仕組みを実際に理解しているとも期待していません。

(これは深刻な質問です)

@SomsenRuben:

ビットコインの用語で言えば、これは大規模なブロック スキームであり、誰もが追加データをダウンロードします。トランザクションがブロックに入る前に、仲介者は SNARK プルーフを使用してすべての証人データ (署名などの証人) を集約/圧縮し (現在の SNARK は信頼できるスタートアップ設定を使用する必要があります)、新しい SNARK の UTXO セット コミットメントを公開します。状態(上記のSNARK証拠でも証明されています)。

全員がこの SNARK を検証し、ブロックの有効性と UTXO セットのコミットメントの正しさを証明します。必要に応じて UTXO セットを生成できることが SNARK によって証明されているため、誰も UTXO セットを生成する必要はありません。その仲介者がいない場合は、UTXO セットコミットメントを使用して州を証明するだけで資金を使用できます。

つまり、利点は、証人データと計算 (両方とも SNARK 証明に委託) を節約できることです。 zkrollup は、SNARK で実行できることを私たちが以前から知っていることを適用するだけですが、唯一の違いは、単一の UTXO セットで使用されることです。

私のSNARK記事「SNARKとブロックチェーンの未来」も参照してください。 (翻訳者注: 以下に添付。SNARK で何ができるのか、そして zkrollup が証人データなしでトランザクション データを公開する理由が明確に説明されています。)

2番目のルール(非常に長いので、しばらくお待ちください):

(第 2 層ネットワークの台頭により第 1 層ブロック領域の需要が減少するかどうかに関する 2 人の議論は省略します)

@AdrianoFeria:

サイドチェーンは、L1 と同じレベルのセキュリティを提供できません。ステートチェーンは完全にトラストレスではありません。チョーミアンの銀行についてはまだ調べていません。

@bergealex4:

(サイドチェーン)もちろんそうではありません、それができるとは決して言いませんでした。

L1 のセキュリティを複数のレイヤーにわたって複製することはできません。

@AdrianoFeria:

「L1 セキュリティを複数のレイヤーにわたって複製することはできません。」

これが ZK-Rollup でできることです。

@bergealex4:

さて、この前提を受け入れたとしても、これだけでETHがBTCよりも優れているわけではありません。

@AdrianoFeria:

これだけでも、イーサリアムには、チャネルの開閉に伴うオーバーヘッドや、ライトニング ネットワークに固有のデータ可用性リスクを発生させることなく、L1 のセキュリティを維持するスケーリング メカニズムが備わっています。

全体的にどちらのシステムが優れているかを議論するのに Twitter に頼ることはできません。

いずれにせよ、zk-rollup は大きな進歩であり、支払いチャネルよりもはるかに大きなメリットを提供します。

@SomsenRuben:

ZK ロールアップ チャネルと支払いチャネルは直交しています。 zk-rollup は拡張ブロックのようなものです。目撃者以外のデータはチェーン上に置かれ、全員によって (SNARK 経由で、安価に) 検証されます。皆さんがそれを「L2」と呼ぶ理由は理解できますが、技術的にはそうではありません。非対話型証人データ集約 (NIWA) を実行するだけです。私の記事「SNARKsとブロックチェーンの未来」を参照してください。

@AdrianoFeria:

SNARK の計算が別のネットワークに委任されるため、これは L2 です。 L1 はプルーフを保存するためにのみ使用されますが、L1 のスループットが約 100 倍向上することがわかりました。私の理解では、これは可逆圧縮と同等です。

@SomsenRuben:

「L2」は単なるラベルです。重要なのは、このプロセスで SNARK が行うこと、つまりメインチェーンでも使用できる非対話型証人データ集約 (つまり、L1 で完全に使用され、マイナーが NIWA を行う) に同意することです。チェーン内のチェーン上 (zk-rollup と同様ですが、単なる「拡大されたブロック」です)。

ビットコイン ネットワークでは、監視データは (イーサリアムとは異なり) ブロックの 50% しか占めないため、(ブロック スペースの観点から) 最大 2 倍の効率向上しか得られません。これは完璧な SNARK テクノロジーを前提としています。 ; この拡張効果は非常に一般的です。たとえそれがあったとしても、支払いチャネルは明らかに有益です。

@AdrianoFeria:

ロールアップに基づいて支払いチャネルを実行することは不可能ですか?

@SomsenRuben:

もちろん、それは可能です。だから私は、それらは同じ次元ではないと言いました。

(わずかに)

@AdrianoFeria:

それ (zk-rollup) が追加の計算を犠牲にして L1 スループットを向上させると主張することは可能ですか (イーサリアムの場合、現在の仕様要件により検証者はこれを行うことができません)。そして、たとえ証拠の提供者が倒産したとしても、資金はまだ取り戻すことができます。

@SomsenRuben:

私の記事で紹介したNIWAの概念は、この直感を説明しています。誰でもすべての証人データ (署名、取引の正当性を証明するデータを含む) を収集し、SNARK 証明に圧縮/集約できます。誰かがみんなに利益をもたらすには、あと少しだけ必要です。

資金はいつでも取り戻すことができ、証拠の提供者はいつでも置き換えることができます。

@AdrianoFeria:

これは理解していますが、理想的には、SNARK 計算は分散ネットワークによってサービスとして提供されるべきです。それがイーサリアムのエコシステムで起こっていることであり、なぜそのようなことがビットコインにとって望ましくないのか私にはわかりません。

@SomsenRuben:

それには常にメリットがありますが、その利点 (スケーリングは最大でも 2 倍のみ) を過大評価し、そのコスト (計算はテストされておらず、トラステッド ブート設定を使用しないと非効率的です)、マイナーの集中化などを過小評価しています。

私は、いつか SNARK が成熟して意味のあるものになると信じていますが、まだそうなっていません。

@AdrianoFeria:

一般的なコンセンサスは、zkrollup がイーサリアム上で 100 倍優れたスケーリングを実現するということです (この情報は複数のソースにわたって一貫しています)。

なぜビットコインには同じ効果が及ばないのでしょうか?

@SomsenRuben:

考えられる理由は次の 2 つです。

ビットコインと比較して、イーサリアムの証人データははるかに大きく、検証に費用がかかります。そのため、SNARK はイーサリアムの非効率性をより効果的に軽減できます。

アドレスの再利用により、目撃者以外のデータがさらに削減されますが、これはビットコインでは受け入れられそうにないプライバシーの犠牲です。

私の主張は次の点で簡単に説明できます。

  • SNARK は目撃データを削減することしかできません

  • ビットコインの証人データがブロックの約50%を占める

これらを理解している限り、「自分が専門家であると信じる」必要はありませんが、100 回考えても、それを推論するのは非常に困難です。

@AdrianoFeria:

この 100 倍の主張に異議を唱える人はどこにもいません。 zkrollup の技術設計はビットコインの例とは若干異なる可能性があり、UTXO またはビットコイン スクリプトの制限と何らかの関係があるのではないかと考えています。

@SomsenRuben:

私はそうすぐに仮定を始めるつもりはありません。 「信用するな、自分自身を確認せよ」。

また、一般的に、よほど強い信念がない限り、請求を弁護しないことをお勧めします。謙虚になりなさい、http://www.paulgraham.com/identity.html

@AdrianoFeria:

したがって、私はこの声明に対する技術的な挑戦も歓迎します。この記述が多くの著名な開発者によって引用され、広く配布されており、異議が唱えられていないという事実に基づいて、この記述を支持するのは合理的です。 Rollup はほぼ統合されており、その証拠は目前にあります。

この「信用するな、自分で確認せよ」という信念を実践的に実践する必要があります。自分ですべてを検証するのではなく、何かを信じるには理由があります。例えば:

  • SHA-256 が適切に機能することを信頼してください

  • 公開鍵暗号への信頼

  • クライアント用のバイナリを作成しても、コンパイラが有効であるとは限りません

@SomsenRuben:

私は、SNARK によってビットコインが 2 回を超えて拡張できないことを検証できる (はずである) という証拠を示しました。

この観点から見ると、イーサリアムが 100 倍のスケーリングを達成できるという主張は、少なくとも最初は疑わしいものです。

これを「検証」と呼ばないとしたら、何が検証なのかわかりません。

@AdrianoFeria:

私はこれを完全に理解できていませんが、この記事はあなたがビットコインについて説明しているものとはまったく異なる状況のように見えます。何かコメントはありますか? https://medium.com/interdax/ethereum-l2-optimistic-and-zk-rollups-dffa58870c93

@SomsenRuben:

記事には多くの拡張スキームがリストされていますが、私の知る限り、zk-rollup を除いて他のスキームはイーサリアム コミュニティによって放棄されています。

しかし、それに比べれば、私はビットコインのことをよく理解しています。私の記事に関してご質問がございましたら、喜んでお答えいたします。これは間接的にイーサリアムを理解するのにも役立ちます。

@AdrianoFeria:

Vitalik がこの記事を公開したばかりで、私は読む時間がありませんでしたが、多くの技術的な設計の詳細と、さまざまな種類のトランザクションでどの程度のデータを圧縮できるかについて詳しく説明しているようです。 」ロールアップの不完全なガイド

@SomsenRuben:

良い記事。つまり、私の理由はどちらも正しいのですが、なぜこの 100 回になったのかがよく理解できました。イーサリアムでは空間と計算の両方でガスを消費しますが、前者の方がガスコストは安くなります。 SNARKでは計算量を0に近づけるため、全ガスをデータ公開に利用できます。デメリットは何ですか?ブロックが大きくなっていきます。

@AdrianoFeria:

ブロックは大きくなっていますが、これが私が知っているストレージ スペースの最も効率的な使用法です。

さらに、この記事は、共通のトランザクションによってスペースを 10 倍節約できることも証明しています。したがって、これは、ビットコインで説明した状況に比べて、ロールアップには 5 倍の効率上の利点があることがわかります。これは小さくありません。

@SomsenRuben:

2 番目のコストであるアドレスの再利用を忘れています。これは重大なプライバシーの低下です。ブロックスペースを節約するためにビットコインのこのような逆アップグレードを導入することもできます。これは以前にも提案されましたが、正当な理由により拒否されました。

@AdrianoFeria:

アドレスの再利用がロールアップ固有の問題であり、特別に設計されたプライバシーを強化するスマート コントラクトによってどのように軽減できるのかわかりません。さらに、ウォレットは現金を受け取るたびに新しいアドレスを使用して、UTXO のプライバシーをシミュレートすることはできないでしょうか?

@SomsenRuben:

重要なのは、アドレスの再利用がトランザクション サイズを削減する方法であるということです。トランザクションごとに新しいアドレスを使用する (およびアドレスを変更する) 場合、zk-rollup のトランザクション サイズははるかに大きくなります。

(この議論には別の議論もありますが、ここには添付しません)

(翻訳者注: zk-rollup の拡張効果がどのように実証されたかを読者がまだ覚えているかどうかはわかりません。簡単に言うと、zk-rollup ではロールアップが行われている間、メイン チェーン上の通常のトランザクションが X ユニットのガスを消費すると仮定しています。 Y 単位のガスを消費するだけでよいため、拡張効果は X/Y になります。言い換えれば、すべての引数はイーサリアム上のさまざまな操作のガス価格に基づいていますが、ガスは実際のリソースではなく、単なる仮想リソースです。ユニットは、さまざまなリソースのコストをインデックスに削減できることを前提としています。ここで calldata のガス価格を 2 倍にすると、zk-rollup の拡張効果は 2 倍になります (EIP-4488および4490まさにそれが意味するもの)。これはちょっとした冗談ではありませんか?それどころか、ソムセン氏によるSNARKの拡張効果の実証は、目撃データの保存(そして理想的には検証計算の保存)というテクノロジーの本来の側面に近いものとなっている。

この記事この記事)。 Adriano のいわゆる UTXO をシミュレートし、毎回新しいアドレスを使用する方法は不可能ではありませんが、すべての履歴アドレスが状態に残り、ノードの負担になるため、イーサリアムの世界では良い習慣ではありません。いわゆる状態爆発問題です。

最初のレベルのタイトル

SNARKs とブロックチェーンの未来

ルーベン・ソムセン

出典: https://medium.com/@RubenSomsen/snarks-and-the-future-of-blockchains-55b82012452b

SNARK (簡潔で非対話型の知識の議論、簡潔で非対話型の知識の証明) は、拡張問題を「解決」するための万能薬と考えられることがよくあります。 SNARK は想像を絶するメリットをもたらしますが、ブロックチェーンが現在直面している帯域幅の制約を SNARK が解決できないことも知っておく必要があります。

この記事では、SNRAK がブロックチェーンに対してできることとできないことの (比較的) 簡単な概要を提供することで、SNARK の謎を解き明かしたいと考えています。まず、そのブロックチェーン関連の機能が「Non-Interactive Witness Compression (NIWA)」として簡潔に要約できる理由について説明します。ビットコインの仕組みを知っていれば、この記事を理解することができます。

最初のレベルのタイトル

スナークとは何ですか?

副題

チェスケース

  • ルール: チェスのルール
  • 開始状態: ボードの開始位置 A
  • 結果: ボードの新しい位置 B

ポジション A からポジション B へのゲーム移行が有効であることを証明する従来の方法は、各ステップを公開して各ステップが有効であることを確認することです。 SNARK は状態遷移の有効性をチェックするためにも使用できますが、より良い方法は次のとおりです。

  • ステップを公開する必要はありません (プライバシー、データ保存)
  • 検証の計算効率が向上

副題

ブロックチェーン事件

  • ルール: フルノード ソフトウェア
  • 開始状態: 時点 A でブロックヘッダーと UXTO がハッシュ値を設定
  • 結果: ブロックヘッダーと UTXO が時点 B に設定される

上で述べたチェスと同様に、状態遷移の有効性を検証する通常の方法は、ポイント A にある UTXO セット (すべての未使用のトランザクション) から開始し、ポイント B までのすべてのブロックを受信し、UTXO セットを更新することです。 SNARK では、そのようなデータが有効性を証明する必要はありません。実際、時点 A がジェネシス ブロック (空の UTXO セット) に設定され、時点 B が現在に設定されている場合、履歴データを受信せずにチェーン全体を検証できます。

重要なことは、ポイント B の UTXO コレクション全体が必要であり、ポイント A の UTXO コレクションのハッシュ値だけを知っていればよいということです。このデータは妥当性を証明するために厳密には必要ありませんが、可用性にも関心があります。常に UTXO セットのハッシュ値しか取得できない場合、有効な状態が存在することがわかっていても、その状態が何であるかを知ることはできません。つまり、UTXO が現在のセットに属していることを証明するデータがないため、資金を使うことができません。チェスに例えると、新しい状況のハッシュ値はわかっていますが、状況がどのようなものであるかはわからないため、ゲームを続けることはできません。

最初のレベルのタイトル

SNARKブロックチェーン

誰もがお金を使うことを保証するには、UTXO セットの更新に必要なすべてのデータを各ブロックで伝播する必要があります。どの UTXO が使用されているか (つまり、入力)、どの UTXO が新しく生成されているか (出力) を知る必要があります。これを「非目撃データ」と呼びます。

状態遷移の有効性は SNARK によって検証できるため、SNARK はすべての監視データ (スクリプト、署名) を置き換えることができ、帯域幅をほとんど消費しません。入力と出力の間のリンクは消去され、ブロックは 1 つの大きなコインジョイン トランザクションのように見えます。データのほとんどは非目撃者データです。

したがって、一般的な想像に反して、SNARK は、非監視データをダウンロードする必要があるため、ライトクライアントや非連合サイドチェーンの背後にある根本的な問題を解決できません。フル ノードには、非監視データが失われた場合に有効な SNARK を拒否する機能がありますが、ライト クライアントが非監視データのダウンロードを怠った場合、データ損失チェーンが有効であると誤って信じてしまう可能性があります。たとえ小規模な非目撃データがマイナーによって隠蔽されたとしても、他の誰も有効な SNARK 上に新しいブロックを作成することはできず、最終的には許可されたシステムになります。

SNARK は目撃データを消費します

おそらく、ブロックチェーンの SNARK の最も適切な要約は、SNARK が 1 つの機能、非対話型証人集約 (NIWA) を有効にするということです。

ここで私が「証人」という言葉を使ったのはかなり自由です。ビットコインでは、証人データは、特定の UTXO が合法的に作成できるかどうかを証明するためにトランザクションに配置されるデータです。しかし、時間が経つにつれて、この UTXO (非目撃データ) も使用されると、それ自身の目撃データになります。 1 btc がアリスからボブ、そしてキャロルに転送されたと仮定すると、ボブのトランザクションはアリスからキャロルへの転送の証人データになります。同様に、ジェネシスブロック以降のすべての支払いトランザクションは、現在の UTXO セットの監視データです。

SNARK 自体が証人データであることも指摘しておく必要があります。各トランザクションが SNARK によって検証される場合、これらの SNARK を集約 (NIWA) して、ブロックの単一の SNARK を生成することもできます。さらに、出力は使用されると証人データとなるため、未確認だがすでに使用された出力をトランザクション プールから取得して集計することもできます。アリス→ボブ→キャロル→アリス→キャロルとなり、非対話型のトランザクションマージ(トランザクションカットスルー)を実現します。これは、多くのオフチェーン トランザクション フォークを持つ単一の UTXO がオンチェーンに強制される場合 (Lightning Network チャネル ファクトリなど)、特に便利です。

簡単な概要

SNARKsが提供するブロックチェーンのコア機能をNIWAのコンセプトでまとめました。あらゆる目撃データは、SNARK によって非対話的に集約できます。残りの非監視データは、システム状態 (UTXO コレクション) を直接反映しています。 SNARK は、UTXO セットと SNARK を直接ダウンロードして作成状態から最新の状態にジャンプしたり、リンクされていないトランザクションのシーケンスを単一のトランザクションに非対話的に集約したりするなど、いくつかの魔法の機能を実現できますが、依然として Every を提供する必要があります。新しいブロックはすべての非監視データをパブリッシュし、すべての完全なノードが UTXO セットを更新できるようにします。したがって、SNARK はブロックチェーンが直面する基本的な帯域幅の制約を解決できません。

画像の説明

写真

- 活動中のNIWA。 SNARK は目撃者を消費しますが、それ自体が目撃者でもあります。つまり、SNARKはSNARKを飲み込むことができます -

以太坊爱好者
作者文库