Rollupで使われる二つの証明方法 ~Validity proof と Fraud proof~
この記事は・・・
レイヤー2ソリューションであるZK RollupとOptimistic Rollup、それぞれで採用されている証明方法の「Validity Proof」「Fraud Proof」について簡単にまとめたものです。
そもそもRollupとは?
Rollupはレイヤー2ソリューションの1つです。レイヤー2でトランザクションの実行を行い、レイヤー1にトランザクションのデータを保管します。オンチェーンで行う処理を減らしつつ、トランザクションデータはレイヤー1にあるので、レイヤー1の高いセキュリティを享受することができます。
Rollupでは「Operators」とよばれる人たちがトランザクションの検証を行い実証します。「Operators」になるためには、自分の資産を担保として預けなければなりません。この預けられた資産のことを"Bond"と言います。Operatorsは不正な取引を実行するとこの担保になっているbondを没収されてしまいます。なので「Operators」は正しい取引のみを実行するように動機づけられています。
RollupにはOptimistic RollupとZk Rollupの二種類があります。
Zk RollupではValidity Proof、Optimistic RollupではFraud Proofが採用されています。
この記事ではその二つの証明方法について解説していきます。
Validity Proof
Validity proofではオフチェーン上で行われたトランザクションに対して、正しい取引かどうか検証し、正真性が証明されたものをメインのブロックチェーンに刻みます。通常ではすべての取引の検証・実行・保存をメインチェーン上で行っていますが、Validity Proofでは検証と実行をオフチェーン上で行い、データの変更のみをメインチェーンで行います。
Validity Proofのメリット・デメリット
メリット
・検証と実行をオフチェーンで行うことで、メインでの負担を軽減することができる
・検証された取引のみがメインに刻まれるので、メイン上にある取引データは常に正しいものになる
・OperatorはいつでもBondを引き出すことができる。
デメリット
・検証の回数が多く、スケーラビリティに影響する可能性がある。
Fraud Proof
Validity Proofではすべての取引を検証してからメインチェーンに刻んでいました。一方Fraud Proofでは検証の回数を大幅に減らしています。
Fraud Proofの場合は検証を行わず、いったんすべての取引をメインチェーンに刻みます。取引が刻まれてから一週間ほど、「Challenge期間」というものが設けられます。Challenge期間中には、疑わしい取引を告発し、取引の正真性を検証することができます。告発された取引を検証し、不正だと発覚した場合はその取引は無効化されます。また、その不正な取引を承認したオペレーターはペナルティとして担保資産のBondを没収されてしまいます。没収されたBondは取引が不正だと訴えた人へ送られます。
・不正な取引を承認すると担保資産が没収されてしまう。
・反対に不正な取引を発見し、告発すると利益を得ることができる。
この二つのインセンティブとディスインセンティブにより、検証の回数を少なくしても取引の正真性が保たれる。という仕組みになっています。
+α Fraud Proofの課題 "Silence"
Silenceは直訳すると静寂になります。
Fraud ProofでのSilenceは、誰も取引を監視せず、不正を訴えない場合のことを指します。Silenceが起こる可能性は二つあります。
1 インセンティブの低下
Fraud proofにおいて取引の不正を訴えるメリットは、不正者から担保資産を得ることです。しかし、誰も不正な取引を承認しなくなれば、もちろん没収される担保資産もなくなり、取引を監視する人に報酬を与えられなくなてしまいます。インセンティブが減ると監視する人は自然と減っていき、不正な取引が発見されず、通ってしまう確率が高くなってしまいます
2 DDos攻撃
DDos攻撃とは、特定のサーバーやサービスに大量のアクセスをしかけて負担をかけ、正常に稼働できなくするサイバー攻撃のことです。
Fraud proofの検証者に対してこの攻撃を仕掛けることで、誰も不正を告発できない状態を意図的に作り出し、不正な取引を通過されることができます。大量の参加者に攻撃を仕掛けることは困難ですが、1のようにインセンティブが低下し、参加者が少なくなった場合はターゲットになる可能性が高いです。
Fraud Proofのメリット・デメリット
メリット
・検証の回数を大幅に減らせる。
・スケーラビリティ問題解決につながる
デメリット
・Silenceの可能性
・Operatorはchallenge期間中自分の資産を移動できない
以上です!
まだまだ理解が不十分なところもあり、解釈が間違っている部分があるかもしれません。その時は優しく教えていただけると嬉しいです!
さいごに
私がインターンしているBlockBaseではブロックチェーン学習のコミュニティも作っています。ブロックチェーンを技術的に理解を深めたいという方は気軽にご参加ください!discord: https://discord.gg/UMcFBDfPa8
また、BlockBaseでは開発や事業の相談を受け付けています。
気軽にご相談ください。お問い合わせ: https://block-base.co/