blockchainjapan’s blog

旬のブロックチェーンを記事を厳選して提供!

zkRollup vs. Validium


zkRollup vs. Validium

StarkExは取引所のセキュリティを大幅に強化しますが、それでもお客様の資金は凍結やハッキングされる可能性が生じます

Alex Gluchowski

DeversiFiは、StarkEx取引エンジンを搭載した 新バージョンの取引所をローンチしました。これは、ユーザーが暗号取引所に期待するセキュリティ水準を飛躍的に向上させる、驚くべき技術的成果です。また、歴史的なターニングポイントでもあります。これはSTARKs(信頼できるセットアップを必要としない簡潔なゼロ知識証明)を実運用システムに初めて適用したものです。

StarkEx は Validium であり、ゼロナレッジ証明を用いて全てのトランザクションの有効性を保証し、データの可用性をオフチェーンで維持するレイヤー 2 スケーリングソリューションです。これにより、あるユーザーのアカウントからの価値の移転は全てそのユーザーによって承認されなければならないため、Validium内の資金が盗まれることは理論上ありません。

Validiumの仕組みは zkRollupと非常によく似ています。唯一の違いは、zkRollupのデータ利用可能性がオンチェーンであるのに対し、Validiumはオフチェーンであることです。

これにより、Validiumは非常に高いスループットを実現しているが、実際にはこの部分には代償が伴います。

StarkEx Validiumのオペレーターはユーザー資金を凍結できる

“物を壊すことができる人が、それを支配する”
フランク・ハーバート『Dune』より

zkRollupのデータ可用性保証がなければ、Validiumのオペレーター(正確にはデータ可用性管理者)は、ユーザーの資金移動を拒否することができます。

どういうことかというと、オペレーターはユーザーに公開することなく、Merklizedの状態を少しだけ変更する。この情報がないと、ユーザーは自分のアカウントの所有権をMerkleで証明する事ができません。

例:アカウントd3がオペレーターによって変更された場合、アカウントd1の所有者は、アカウントの所有権を証明するために証明に必要なノードmの情報を失うことになります。

Validiumのデータ非公開攻撃を防ぐ方法は?この問題は、2016年にPlasmaが構想されたときから広く議論されており、その研究の成果としてzkRollupsが誕生したという経緯があります。Rollup以外でデータの可用性を信頼なく確保しようとすると、 Validiumは競争力の優位性のほとんどを失うことになります。

この問題は完全に解決できるものではありませんが、StarkExは許可制のデータ・アベイラビリティ委員会(DAC)を導入することで問題を軽減しています。DAC は、一定メンバー数による状態の更新に署名がされることで、データを受け取った事実を確認します。StarkExでは、DACではこれは8人の参加者で構成されています(多くのメンバーを追加し過ぎるとシステムの有効性が損なわれます)この組織は、確立された法的管轄権を持つ、非常に評判の良い組織であり、この組織が権限を乱用しようとする可能性は極めて低いというのがその理由です。

逆説的に言えば、知名度が高く、評判が良く、国家がしっかりしている地域に住んでいるという事が、 脆弱性の正体でもあるのです。さらに、物事を乱すシナリオの1つは、オペレーターがKYC/AML規制の実施を義務付けられ、1万ドル以上のトランザクション履歴を持つアカウントの全資金を凍結する事です。

深く掘り下げると、さらに興味深い事になります。StarkExは、検証コントラクトのアップグレードメカニズムを実装しています。これにより、オペレーターは、検証コントラクトのチェーンに新しいアイテムを即座に追加できます。これにより、古いロジックを無効にする事はできなくなります。例えば、ユーザーの署名チェックを削除することはできません。むしろ、追加の制約を追加することができます (Solidityの観点から言えば、制約は `require()` ステートメントと考えることができます)

これは素晴らしいセキュリティ機能です。万が一、StarkExのSTARK回路のロジックに不足している制約が発見された場合、新たな脆弱性を引き起こすことなく修正する事が可能です。

しかし、この機能はバックドアとして悪用される可能性があります。一言で言えば、StarkExのオペレーターは、ユーザーに事前警告なく、ブラックリストを導入するコントラクトロジックの拡張機能をいつでも展開することが可能になります。現状のドキュメントからは明らかではありませんが、新ルールを施行するためにDACの同意は必要ないように見えます。

これは、StarkExを完全な分散化交換プロトコルと考えた場合、あまり意味がありません。最もわかりやすい例え:Vitalik Buterinが、あらゆるEthereumアカウントを瞬時に凍結できるスイッチを所有していることを想像してみてください。一方で、StarkExを暗号取引所のセキュリティ強化と考えれば、完全に理にかなっていると言えるでしょう(これはオペレーターが確信していることです)

StarkEx Validiumのオペレーターは、ユーザー資金を差し押さえることができる

思考実験を広げてみましょう。どのような仮定の理由であれ(恐らくオペレーターがコントロールできない状況において)多くのユーザーの資産が凍結されたとします。

この場合、StarkEx内のユーザー資金も失われてしまうのでしょうか?

実際のところ、そのようなこともあり得ます。

StarkExは、他の多くの暗号プロジェクトと同様、最先端のアップグレードメカニズムを実装しています。ユーザーは、新バージョンが展開される28日前に通知を受け、それが気に入らない場合は退出できます。

ただし、資金凍結されている場合は除きます。

猶予期間終了後に、凍結資金を指定された相手に預ける新たなコントラクトロジックを導入する事ができていしまう。残念ながら、これに影響を受けたユーザーが対処できる事は何もありません。

また、アップグレードの通知期間自体が、変更に同意しない全てのユーザーが退出するのに十分ではないかもしれないという懸念も生じます(いわゆる「大量退出」シナリオ)しかし、この問題は一般的なコントラクトのアップグレード性の問題であり、Validiumに限ったことではありません。

Update 2020–07–06: Justin DrakeがValidiumへの暗号経済学的な攻撃について説明しました

それはデータ利用委員会の定足数の署名鍵が漏洩した場合、攻撃者はValidiumを彼らだけが知る状態に移行させることで全ての資産を凍結させ、解除の為に身代金を要求することができる。

理論的には、コントラクトアップグレードメカニズムがこの攻撃を軽減するはずです。Validiumのオペレーターは、28日間のアップグレード通知期間の後に、最後に認知されていた状態に戻した新バージョンの展開が可能です。この場合、1ヶ月間は資金がロック状態になりますが、DACが交渉を拒否した場合、攻撃者は1ペニーも得られません。

しかし、攻撃者がオペレーターに対して、全てを失うか、攻撃者に二重支出をさせるかのどちらかを決断させる方法がある事が解りました。これは次のような例で説明できます。

ATMをハッキングして、引き出し後に銀行のデータベースをすべて消去する事ができるとします。自分の口座からしか引き出せませんが、データベースが無くなるとオペレーションの詳細が失われてしまいます。銀行職員は、複雑な作業を経て1ヶ月でデータベースを復元する事ができます。しかし、誰が引き出しを行ったのかは把握できないので、最後のチェックポイントに戻すことで、あなたの口座の残高も復元されます。つまり、あなたが引き出した残高も復元されるのです。

この二重支出は、攻撃者が自分のアカウントに用意できる金額に制限されます。しかし、トラストレス・コントラクトを構築し、ダークネット上の邪悪なクジラから必要な資本を借りるのは容易です。この問題は読者の皆様にお任せします。

この攻撃は、ValidiumのセキュリティモデルがPoAネットワークのものと比較的似ていることを示しています。実際、20ノードで51%の署名閾値を持つPoAネットワークの方が、8ノードで100%の署名閾値を持つValidiumよりも安全かもしれません。

zkRollupのデータ可用性は、ユーザー資金を検閲やハッキングから保護する代償としてスループットが多少低下します

Rollupの状態は、少なくとも1つのEthereumフルノードがオンラインである限り、zkRollupのユーザーが利用できます。

仕組み:zkRollupブロックごとに、状態の変化を再構築するために必要な情報をEthereumトランザクションのコールデータとして提出する必要があります — そうでない場合、zkRollupスマートコントラクトは状態の移行を拒否します。zkRollupsの状態変更には、トランザクションごとに小さなガスコストが発生し、これはトランザクションの数に応じて直線的に増加します。

手元にあるMerkle treeデータにより、検閲を受けているユーザーは常に、メインネット上のzkRollupコントラクトから直接資金を請求できます。彼らが必要とするのは、自分のアカウントに所有権を証明するMerkleを提供する事のみです。このように、オンチェーンデータの可用性は、誰もユーザー資金を凍結したり捕捉したりできない事を保証する役割を果たします。

zkRollupsは、今日のEthereum上で2kトランザクション/秒(TPS)という上限を持っていますが、StarkEx Validiumは9k以上のTPSを主張しています。この違いは、両技術の応用分野やユースケースを決定する上で重要な役割を果たすでしょう。例えば、zkRollupは、非中央集権的な暗号決済(VISAはグローバルで平均2k TPS)や、トラストレスの要件が厳しい不変的なスマートコントラクトのスケーリングに適しています。一方、Validiumは、トラストレスの前提が低い従来の高頻度取引やゲームに適している可能性があります。

まとめ

zkRollupとValidium (StarkEx)の仕組みは比較的似ていますが、主な違いはデータがオンチェーンで利用できるか、オフチェーンで利用できるかという点であり、これらを理解し、どう利用するかが重要であることを示しました。この違いは、zkRollupが完全にトラストレスな分散型スケーリングプロトコルであるのに対し、Validiumはセキュリティが大幅に改善されているにもかかわらず、処理能力とリスクプロファイルの両方において、管理型PoAシステムの特性をより多く示している事を意味します。

信頼への依存部分を減らし、ユーザーが自分の資産をよりコントロールできるようにする技術開発は、個人のエンパワーメントへの一歩となります。前進するためには、常にトレードオフが必要です。

しかし、暗号コミュニティでは、テクノロジーは Don’t be evilの段階を過ぎてCan’t be evilの時期に到達しているというコンセンサスが高まっています。その為には自己管理や検閲抵抗、プライバシー、単一障害点の排除などが必要となります。これらのアイデアは、私たちが構築しようとしているシステムの基礎的な価値を形成します。

完全に信頼できるスケーラビリティの時代が到来し、Matter Labsの大きな発表に向けてカウントダウンが始まっています。今後にご期待ください!


Matter Labsは、パブリック・ブロックチェーンの大量導入を加速することをその使命としています。現在、イーサリアム用の安全で高速なスケーラビリティエンジンであるzkSyncを構築しています。

Matter Labsのチームとはメールhello@matter-labs.ioで連絡を取ることができます。

zkSyncは、検証 ツールではなく 、数学に依存する

zkSyncは、セキュリティへの妥協なく イーサリアムのスケーラビリティを 解決していきます。楽しいゲームや貢献することなく何かが得られるようなイベントなどは一切ありませんが、DYORが得意で、トークンよりもプロジェクトに興味をお持ちであるという方は、下記リンクより各コンテンツをご覧になり、フォローすることをお勧めします。

WebsiteTwitterDiscordTelegramGitter|Medium(Matter Labs)

日本版 TwitterMedium|Telegram