ブロックラビットでは今年、web3, ゼロ知識証明、ステーブルコインの3本の柱を掘り下げていく予定です!今回ご紹介する翻訳記事はStarkware Industriesのブログから。なんだかMarvelっぽい強そうな名前ですね。ファンなのか?
ブロックチェーンにおけるスケーラビリティとプライバシーの問題を改善する技術、ゼロ知識証明・簡潔性・(トラステッドな設定を必要としない)透明性を備えた暗号証明システムの提供を目指しているといいます。ブロックの正当性を証明するにははたしてどの方法が最強なのか? ブロックラビットの今年のテーマのひとつであり、仮想通貨/ブロックチェーンのコミュニティでもますます注目のゼロ知識証明に関係するトピックをお届けします!
元記事:「Validity Proofs vs. Fraud Proofs」
仮想通貨取引所への51%攻撃がとまらない!
Starkwareが悪質マイナーを封じる必殺仕事人に?
本投稿では、Fraud Proof(不正で証明)とValidity Proof(検証で証明)の違いから、さまざまなレイヤー2(以下L2)スケーラビリティ・ソリューションを分析/比較していきたいと思います。根本的にはValidity Proofsにこそ利点があるというのが私たちの考えなのですが、これは正当なステート(状態)の移行の承認のみが保証されることからきています。
背景
ここ数カ月で、Ethereumのスケーラビリティ問題を解決するいくつかのエキサイティングな実証ベースの試みが登場しました – Truebit、Gluon Plasma、dFusion、Roll-Up、Ignisなどがそうです。 基本的な考え方はシンプルで、ブロックチェーンに多数のトランザクションを書き込む代わりに、これらトランザクションの簡潔な表現(たとえばハッシュ)が新しいステートを表していることを実証します。
上記のプロジェクトはすべてL2ソリューションです。レイヤー1(以下L1)の上で実行されるプロトコル(およびロジック)を設定し、さまざまなサービス(預け入れ/引き出し、オフチェーンへのコミットメントの台帳)のため、そして「ユニバーサルクロック(普遍的な時計)」として、そのプロトコルに依拠します。重要なのは、L1がL2ロジックを認識しないため、結果としてそれを執行できない点です。
本投稿ではこれらのソリューションを比較するための枠組みとして、とくにFraud Proof、そして私たちがValidity Proofと呼ぶものを提案し、その違いに注目したいと思います。基本的には両方ともL1に存在し得るものですが、現在の試みにそって、今回の分析はすべてL2内のものとなっています。
Fraud Proofは、ステートの移行が正しくなかったという証拠を示すもので、楽観的な世界観を反映しているといえます:前提となるのは、そうでないと証明されるまではブロックがL2データの正当なステートのみを表しているとすること。が、実際には、確定ブロックに誤ったステートの移行が含まれている可能性はあります。
一方、Validity Proofは、ステートの移行が正しいという証拠を示すもので、より悲観的な世界観を反映しているといえます。そのステートが正当な場合に限り、ブロックにL2ステートを表す値が含まれます。
まず次の点を強調したいのですが、Proof Systems(例:SNARK、STARK)は、Fraud Proofとしても、Validity Proofとして使用できます。どのように証明するか(例:SNARK、STARK)と何を証明するか(FraudまたはValidity)を混同しないようにしてください。
さらに深く踏み込んでみよう
Fraud Proofs
主な利点は、すべてのステートの移行に必要なわけではなく、ステート崩壊の場合にのみ必要となることです。そのため計算リソースはより少なくて済み、スケーラビリティに制約のある環境によりよく適合します。一方、不利な点はその双方向(対話)性から生じます:これらのプロトコルは、複数の当事者間の「会話」を設定します。 会話では当事者、とりわけ不正を主張する当事者がその場にいること(ライブネス)が必須で、他の当事者が様々な手段で会話を中断することが認められています。しかし問題の核心は、沈黙(新しいステートへの異議の不在)をプロトコルが同意と解釈してしまうところです。実際、攻撃者はDDoS攻撃で沈黙を装うことができてしまいます。
次は概念的なプロトコルについてです。ブロックには不正なステートの移行が含まれる可能性があるため、Fraud Proofプロトコルではタイムフレーム(Dispute Time Frame:DTF)内にこの不正状態へ異議を唱えることができ、その期間はブロック単位で測定されます。DTF内にFraud Proofが提出されない場合、L2ステートの移行は正しいとみなされます。Fraud Proofがスマートコントラクトに提出され、正しいと判断された場合(すなわちDTF内に提出され、実際に不正なステートの移行が証明される)、少なくともスマートコントラクトは最後に正しかったL2ステートのコミットメントまで立ち戻ります。そして、違反当事者に対する罰則などの追加措置が適用される場合があります。
DTF期間の選択は重要です。長ければ長いほど、不正なステートの移行を検出する可能性が高くなり、これはいうまでもなくよいことです。しかし、そうなればユーザーの待ち時間は長くなり、資金もかかるわけで、それはよいこととはいえません。
Validity Proofs
一方、こちらは至極単純です。まず、いくつかのオフチェーン計算の代表がスマートコントラクトに送信されます。スマートコントラクトは、正しいと確認された後でのみ、この新しい値でブロックチェーンを更新します。Validity Proofsの主な利点は、ブロックチェーンが常に正当なL2ステートを反映すること、そして新しい状態を即時に信頼して使用できることです。不利な点は異議申立てが出た場合のみではなく、全ステートの移行に証明が必要とされることで、これは当然スケーラビリティに影響してきます。
51%攻撃
次に、考えられる膨大な数の攻撃のなかから、L1に対する51%攻撃にフォーカスを当てます。 近ごろではEthereum Classicへの攻撃といったケースが急増しています。Fraud ProofとValidity Proofはどう対応できるのでしょうか?
Fraud Proof
51%攻撃では、攻撃者がブロックチェーンに不正のステートを取り込むことが可能で、たとえば攻撃されている取引所から資金を盗むこともできてしまいます。
- 攻撃者は不正なステートの移行でBlockFrを作成。たとえば、取引所の全資金の自口座へのトランスファーなど。
- BlockFrに加え、攻撃者はBlockFrで付与された資金の引き出しを含むブロックに達するDTFブロックも追加する。
- その後はDTFおよび現行チェーンを超えて拡張し続ける。攻撃者はハッシュレートの51%を掌握しているので、それが可能だ。
- 厄介なことに、そのような攻撃を仕掛けるためのコストは「宝くじの大当たり」というほどではなく(現時点では著しく低い:Ethereumへの攻撃では1時間あたり10万ドル未満)、ようするに取引所は攻撃下にあるといっていい。ということは、仮想通貨取引所での動きが活発になればなるほど、こうした攻撃のより魅力的な標的になっていくことを意味している。
ようするに根本的な問題は、L2ソリューションが独自のロジックを設定し、とりわけ、不正なステートの移行を含むブロックを許可してしまうことです。攻撃者が資金を盗んだ後の台帳は合法的な状態なのですから!二重支払いこそこれまで発生していませんが、不正はもう発生しています。
Validity Proof
51%攻撃では履歴を容易に巻き戻したり、代わりの履歴を提示することもできてしまいます。この代替履歴も正しいというのが重要な点です。実行できる攻撃の範囲はL1で可能な攻撃に限られています。仮想通貨同士の取引(とりわけ取引されるすべての資産が同じブロックチェーンに存在する場合)では、履歴を巻き戻すことが非常に利潤性の高いものとなり得ます。
これら重大な欠点を考慮しても、なぜFraud Proofシステム(Gluon PlasmaやdFusionなど)が検討されるのか。 その主な理由は、検証を証明することが最近まで非常に高額で面倒なものだったからです。
Proof Systemを使用する以前、パーミッションレスなシステムにおけるValidity Proofの唯一の選択肢は単純なリプレイで、スケーラビリティは非常に限られていました。本質的にこのリプレイは、スケーラビリティに対する既知のペナルティを伴うかたちで、今にちもL1で行われているものです。Proof Systemは簡潔さ(succinctness)という、非常に魅力的な特徴を提供します。ステートの移行を検証するためには、証明を検証するだけでよいのです。これは、事実上ステートの移行サイズから独立したコスト(より綿密に言うと、ステートの移行サイズにおける多重対数関数)で行われます。
Ignis / Roll-Upはどちらもトラステッドな設定と、STARKよりもはるかに多くの証明者計算リソースを必須とするSNARKを頼みとしています。私たちStarkWareは、分散型取引所(以下DEX)用のスケーラビリティ・ソリューションStarkDEXを開発中です。今後、DEXでValidity Proofを達成するためにSTARKが使用されることになるでしょう。2019年第1四半期末までにテストネット上で展開する予定です。
結論
本投稿では、L2スケーラビリティ・ソリューションのためのツールとして、Fraud ProofとValidity Proofを比較。51%の攻撃に対するValidity Proofs固有の利点にフォーカスしました。STARKは、その短い証明時間、簡潔な検証、トラストレスな設定により、Validity Proofを構築するための強力な手段であるといえます。