Vitalik: 中央集権型取引所はどのようにして資金証明を提供するのでしょうか?

Vitalik: 中央集権型取引所はどのようにして資金証明を提供するのでしょうか?
将来的には、ユーザーの資金がバリディウムのようなスマート コントラクトで保持される、暗号的に「制約された」CEX も登場する可能性があります。

ヴィタリック・ブテリン

編集者: Dong Yiming、ChainCatcher

主要な中央集権型取引所がクラッシュするたびに、暗号化を使用して問題を解決できるかどうかという共通の疑問が生じます。取引所は、政府によるライセンス、監査、企業統治の精査、取引所を運営する個人の経歴などの「法定通貨」方式だけに頼るのではなく、オンチェーンで保有する資金がユーザーに対する債務をカバーするのに十分であることを暗号的に証明することができます。

取引所は、預金者の同意なしに預金者の資金を引き出すことができないシステムを構築する可能性がある。潜在的には、「悪ではない」善玉の CEX を目指すことと、「悪ではない」が現在は非効率でプライバシーを侵害しているオンチェーン DEX の間の全範囲を探索することができます。この投稿では、トランザクションを信頼性のない状態に 1 歩または 2 歩近づけるための歴史的な試み、それらの技術の限界、および ZK-SNARK やその他の高度な技術に依存するいくつかの新しい強力なアイデアについて詳しく説明します。

バランスシートとマークルツリー: 昔ながらの支払能力の証明

取引所は長い間、ユーザーを騙していないことを証明するために暗号化手法を使用しようとしてきました。 2011年、当時最大のビットコイン取引所であったMtGoxは、424,242 BTCを事前に公開されたアドレスに送金する取引を送信することで、資金があることを証明しました。 2013年、問題のもう一方の側面、つまり顧客預金の総額を証明する方法についての議論が始まりました。顧客の預金がXに等しいことを証明し(「責任の証明」)、Xコインの秘密鍵の所有権を証明すれば(「資産の証明」)、支払い能力の証明となり、取引所がすべての預金者に返済する資金を持っていることを証明したことになります。

入金を証明する最も簡単な方法は、(ユーザー名、残高)ペアのリストを公開することです。各ユーザーは自分の残高がリストに含まれているかどうかを確認でき、誰でも完全なリストをチェックして、(i) すべての残高が負でないこと、および (ii) 合計金額が請求額であることを確認できます。もちろん、これではプライバシーが侵害されるため、スキームを少し変更して、(ハッシュ(ユーザー名、ソルト)、残高) ペアのリストを公開し、各ユーザーにソルト値を非公開で送信することができます。しかし、これによってもバランスと、バランスがどのように変化するかのパターンが明らかになります。プライバシーを保護したいという願いが、次の発明であるマークルツリー技術を生み出しました。

緑: チャーリー ノード。青: David のノード。Charlie が証明の一部として受け取るノードです。黄色: ルートノード、誰でも閲覧可能

マークルツリー技術は、顧客のバランスシートをマークルサムツリーに組み込むことです。マークル和ツリーでは、各ノードは (バランス、ハッシュ) ペアです。最下層のリーフノードは、個々の顧客の残高とソルト付きユーザー名ハッシュを表します。各上位ノードでは、残高は下位の 2 つの残高の合計であり、ハッシュは下位の 2 つのノードのハッシュです。マークル和証明は、マークル証明と同様に、リーフからルートまでのパス上の姉妹ノードで構成されるツリーの「ブランチ」です。

取引所は各ユーザーに残高を証明するために、残高のマークルサム証明を送信します。ユーザーは、自分の残高が合計金額に正しく含まれていることを保証されます。簡単なコード例はここにあります。

この設計におけるプライバシー漏洩は、完全に公開されたリストよりもはるかに低く、ルートがリリースされるたびにブランチをシャッフルすることでさらに削減できますが、プライバシー漏洩は依然として存在します。チャーリーは、あるユーザーの残高が 164 ETH であること、2 人のユーザーの残高を合計すると 70 ETH であることなどを知ることができます。多くのアカウントを制御できる攻撃者は、取引所のユーザーに関する多くの情報を入手できる可能性があります。

このスキームの重要な微妙な点は、マイナス残高の可能性です。取引所の顧客残高が 1390ETH であるのに、準備金が 890ETH しかない場合、ツリー内の偽のアカウントに -500ETH の残高を追加して差額を補おうとするとどうなるでしょうか。この可能性によってスキームが破壊されることはないことが判明しましたが、これが通常の Merkle ツリーではなく Merkle サム ツリーが特に必要な理由です。ヘンリーは取引所が管理する偽のアカウントであり、取引所がそこに -500ETH を置いたと仮定します。

グレタの証明検証は失敗します。取引所はヘンリーの -500 ETH ノードをグレタに渡す必要がありますが、グレタはそれを無効として拒否します。イブとフレッドの検証も失敗します。ヘンリーの中間ノードの ETH の合計量が -230 であるため、これも無効です。盗難を免れるためには、取引所はツリーの右半分の誰も残高証明をチェックしないことを願わなければならないだろう。

取引所が、500 ETH 相当の ETH を保有し、証拠の確認を怠ったり、証拠を受け取っていないと苦情を言っても信じてもらえないと思われるユーザーを特定できれば、取引所は窃盗を逃れられると確信できる。ただし、取引所はこれらのユーザーをツリーから除外して、同じ効果を達成することもできます。

したがって、唯一の目標が負債証明を達成することである場合、Merkle ツリー技術は基本的に負債証明と同じくらい優れています。しかし、そのプライバシー特性はまだ理想的ではありません。各 satoshi または wei を別々のリーフにするなど、より巧妙な方法で Merkle ツリーを使用することでこれを実現できますが、最終的には、より現代的なテクノロジーを使用することで、これを行うより良い方法があります。

ZK-SNARK によるプライバシーと堅牢性の向上

ZK-SNARK は強力なテクノロジーです。 ZK-SNARK は、Transformer が AI にもたらした効果と同じ効果を暗号化にもたらす可能性があります。つまり、数十年前に開発されたアプリケーション固有のテクノロジのさまざまな問題を完全に解決できるほど強力な汎用テクノロジです。したがって、もちろん、ZK-SNARK を使用すると、Proof of Accountability プロトコルのプライバシーを大幅に簡素化し、向上させることができます。

最も簡単なのは、すべてのユーザーの預金を Merkle ツリー (または、もっと簡単に言えば、KZG コミットメント) に入れて、ZK-SNARK を使用して、そのツリー内のすべての残高が負ではなく、主張されている値に加算されることを証明することです。プライバシー保護のためにハッシュのレイヤーを追加すると、各ユーザーに提供される Merkle ブランチ (または KZG 証明) によって他のユーザーの残高が明らかになることはありません。

KZG コミットメントを使用することは、証拠として「姉妹ノード」を提供する必要がないため、プライバシー漏洩を回避する 1 つの方法であり、単純な ZK-SNARK を使用して残高の合計と各残高が負でないことを証明できます。

上記の KZG の残高の合計と非負性を証明するには、特殊な ZK-SNARK を使用できます。まさにそれを実行する簡単な例を次に示します。ここでは、補助多項式 を導入します。これは、「残高の各ビットを構築する」もので(例として、残高は であると仮定します)、16 の位置ごとにオフセットを使用して実行中の合計を追跡し、実際の合計が宣言された合計と一致する場合にのみ合計がゼロになるようにします。 z が -128 乗の 1 の累乗根である場合、次の式を証明できます。

有効な設定の最初の値は 0 0 0 0 0 0 0 0 0 0 1 2 5 10 20 -165 0 0 0 0 0 0 0 0 1 3 6 12 25 50 -300 ... です。

このような方程式を多項式チェックに変換し、さらに ZK-SNARK に変換する方法の詳細については、私の ZK-SNARK の記事を参照してください。これは最適なプロトコルではありませんが、この種の暗号化証明は今日ではそれほど奇妙なものではないことを示しています。

数式をいくつか追加するだけで、このような制約システムをより複雑な環境に適応させることができます。たとえば、レバレッジ取引システムでは、個々のユーザーの残高がマイナスになることは許容されますが、それは担保証拠金資金の一部をカバーできるだけの十分な他の資産がある場合に限られます。 SNARK を使用すると、このより複雑な制約を証明でき、取引所が暗黙的に他のユーザーをルールから免除することでユーザーの資金を危険にさらすことはないという安心感をユーザーに与えることができます。

長期的には、この ZK 債務証明は、取引所での顧客預金だけでなく、より広範な貸付にも使用される可能性があります。誰かがローンを組むと、そのローンを網羅する多項式またはツリーに記録が保存され、その構造のルートがチェーン上で公開されます。これにより、融資を希望する人は誰でも、他の融資をあまり受けていないという ZK 証明を貸し手に提供できるようになります。最終的には、法改正により、このように担保に供されたローンは、そうでないローンよりも優先順位が高くなる可能性もある。これは、「分散型社会: Web3 の魂を見つける」で議論されたアイデアとまったく同じ方向、つまり、何らかの形の「ソウルバウンド トークン」を通じてチェーン上で否定的な評判や担保を構築するという概念につながります。

資産証明

資産証明の最もシンプルなバージョンは、上で見たプロトコルです。X 枚のコインを保有していることを証明するには、事前に合意した時間に、またはデータ フィールドに「これらの資金は Binance に属します」と記載されたトランザクションで、X 枚のコインを移動するだけです。取引手数料の支払いを避けるには、代わりにオフチェーン メッセージに署名することができます。 Bitcoin と Ethereum はどちらも、オフチェーンでメッセージに署名するための標準を持っています。

この単純な資産証明手法には、実際上の問題が 2 つあります。

  • 冷蔵処理

  • 担保の二重利用

セキュリティ上の理由から、ほとんどの取引所は顧客の資金の大部分を「コールドストレージ」、つまり取引を手動で署名してインターネットに転送する必要があるオフラインのコンピューターに保管しています。私がかつて個人使用のために設定したコールド ストレージには、携帯電話でスキャンできる署名済みトランザクションを含む QR コードを生成する、永久にオフラインのコンピューターが含まれていました。現代の交換プロトコルはさらに複雑で、多くの場合、複数のデバイス間でのマルチパーティ計算が必要になります。この設定では、アドレスの制御を証明するための追加情報が 1 つでも、コストのかかる操作になります。

トランザクションは次のパスをたどることができます。

長期使用のために複数のパブリックアドレスを保持します。取引所は複数のアドレスを生成し、所有権を証明するために各アドレスに対して一度証明を発行し、それらのアドレスを再利用します。これはこれまでで最も単純なオプションですが、セキュリティとプライバシーを保護する方法にいくつかの制限が追加されます。

多数のアドレスを設定し、ランダムにいくつかを証明します。取引所には多くのアドレスがあり、おそらく各アドレスは一度だけ使用され、1 回のトランザクション後に廃止されるでしょう。この場合、取引所には、所有権を証明するために「開く」必要があるアドレスを定期的にランダムに選択するプロトコルがある可能性があります。一部の取引所ではすでに監査人による同様の取り組みを行っていますが、原理的にはこの手法は完全に自動化されたプロセスに変えることができます。

より複雑な ZKP オプション。たとえば、取引所はすべてのアドレスを 1/2 マルチシグとして設定できます。この場合、各アドレスのキーは異なり、もう 1 つは、12/16 マルチシグのような複雑ですが非常にセキュリティの高い方法で保存された「大きな」緊急バックアップ キーのブラインド バージョンです。プライバシーを保護し、アドレスセット全体の公開を回避するために、取引所はブロックチェーン上でゼロ知識証明を実行し、この形式を持つチェーン上のすべてのアドレスの合計残高を証明することもできます。

もう一つの大きな問題は、担保の二重使用を防ぐことです。取引所は準備金の証明のために担保を相互に簡単に送り合うことができ、それによって、実際には支払い能力がないにもかかわらず支払い能力があるかのように装うことができるようになる。理想的には、支払い能力の証明はリアルタイムで行われ、各ブロックの後に証明が更新されます。これが現実的でない場合、次善の策は、異なる取引所間で固定スケジュールを調整することです。たとえば、毎週火曜日の 14:00 UTC に準備金を認証するなどです。

最後の質問は、資産証明は法定通貨で行うことができるかということです。取引所は暗号通貨を保有するだけでなく、銀行システム内で法定通貨も保有しています。ここでの答えは「はい」ですが、そのようなプログラムは必然的に「不換紙幣」の信頼モデルに依存することになります。つまり、銀行自体が残高を証明でき、監査人が貸借対照表を証明できる、といった具合です。法定通貨は暗号的に検証できないため、これがこのフレームワーク内で実行できる最善の方法ですが、それでも実行する価値はあります。

もう 1 つのアプローチは、取引所を運営し、USDC のような資産担保型ステーブルコインを扱う 1 つのエンティティと、暗号通貨と従来の銀行システム (USDC 自体) の間で移動する現金の入出金プロセスを扱う別のエンティティを明確に分離することです。 USDC の「負債」はチェーン上の ERC20 トークンにすぎないため、負債の証明は「無料」で、資産の証明のみが必要です。

プラズマとバリディウム: CEX を自由にすることは可能か?

さらに一歩進んで、取引所がユーザーに返済する資金を持っていることを証明するだけでは不十分だとします。代わりに、私たちは取引所がユーザーの資金を盗むことを完全に防ぎたいと考えています。

これに対する最初の大きな試みは、2017 年と 2018 年に Ethereum 研究界で人気を博したスケーリング ソリューションである Plasma でした。Plasma は、残高を一連の個別の「コイン」に分割することによって機能します。各コインにはインデックスが割り当てられ、Plasma ブロックの Merkle ツリーの特定の位置に存在します。コインを有効に転送するには、ルートがオンチェーンで公開されているツリー内の正しい位置にトランザクションを配置する必要があります。

Plasma の 1 つのバージョンを簡略化した図。コインはスマートコントラクトに保存され、引き出し時にプラズマプロトコルのルールが適用されます。

OmiseGo はこのプロトコル上に分散型取引所を作ろうとしましたが、その後他のアイデアに移行しました。実際、Plasma Group 自体も他のアイデアに移行しており、現在は楽観的な EVM ロールアップ プロジェクト Optimism となっています。

2018 年に想定された Plasma の技術的な制限 (例: コインの証明の断片化) は検討する価値がありません。 2018 年に Plasma の議論がピークを迎えて以来、ZK-SNARK はスケーリングに関連するユースケースでより実行可能になり、上で述べたように、ZK-SNARK はすべてを変えます。

Plasma のアイデアのより現代的なバージョンは、Starkware が validium と呼んでいるものです。これは、データがオフチェーンで保持されることを除けば、基本的に ZK ロールアップと同じです。この構造は多くのユースケースに使用できます。集中型サーバーが何らかのコードを実行し、コードが正しく実行されたことを証明する必要があるあらゆる状況を想像できます。バリディウム内では、オペレーターが資金を盗む方法はありませんが、実装の詳細によっては、オペレーターがいなくなった場合に一定量のユーザー資金が滞留する可能性があります。

これはすべて本当に良いことです。CEX と DEX は二元対立ではなく、効率性などの利点が得られながらも、中央集権型オペレーターがほとんどの形態の不正行為に関与するのを防ぐ多くの暗号ガードレールを備えたさまざまな形態のハイブリッド中央集権化を含む、さまざまなオプションがあることがわかります。

ただし、この設計空間の右半分では、最も基本的な問題であるユーザー エラーの処理についてまだ議論する必要があります。これまでで最も重要なエラーの種類は、ユーザーがパスワードを忘れたり、デバイスを紛失したり、ハッキングされたり、その他の理由でアカウントにアクセスできなくなったりした場合です。

取引所はこの問題を解決できます。まず、電子メールによる回復を行い、それでも失敗した場合は、KYC によるより複雑な形式の回復を行います。しかし、このような問題を解決するには、取引所が実際にコインを管理する必要があります。正当な理由でユーザーのアカウントに資金を復元する能力を持つためには、取引所は、不正な理由でユーザーのアカウントから資金を盗むためにも使用できる権限を持っている必要があります。これは避けられないトレードオフです。

理想的な長期的解決策は、自己管理に依存し、マルチシグやソーシャルリカバリウォレットなどのテクノロジーを補完して、ユーザーが緊急事態に対処できるようにすることです。しかし、短期的には、明らかにコストとメリットが異なる 2 つの選択肢があります。

結論: 将来的にはより良い取引所

短期的には、取引所にはカストディ取引所と非カストディ取引所という 2 つの異なる「カテゴリ」があります。現在、後者のカテゴリは Uniswap のような DEX だけであり、将来的には、ユーザーの資金が validium スマート コントラクトのようなもので保持される、暗号的に「制約された」CEX も登場する可能性があります。また、暗号通貨ではなく法定通貨を預けるセミカストディアル取引所も登場するかもしれません。

どちらのタイプの取引所も存在し続けるでしょうが、保管取引所のセキュリティを向上させる最も単純な下位互換性のある方法は、準備金証明を追加することです。これには、資産の証明と負債の証明の組み合わせが含まれます。両方のための優れたプロトコルを開発するには技術的な課題がありますが、すべての取引所が恩恵を受けられるように、両方の面で可能な限り進歩を遂げ、ソフトウェアとプロセスを可能な限りオープンソース化する必要があります。

長期的には、少なくとも暗号通貨に関しては、すべての取引所が非管理型に近づくことを期待しています。ウォレットの回復機能は存在しますが、少額を扱う新規ユーザーや、法的な理由でそのような取り決めを必要とする機関にとっては、高度に集中化された回復オプションが必要になる可能性がありますが、これは取引所自体ではなくウォレット レベルで実行できます。 magic.link が Polymarket のようなプラットフォームと対話する方法は、このアプローチの一例です。法定通貨側では、従来の銀行システムと暗号通貨エコシステム間のフローは、USDC のような資産担保型ステーブルコインを介したネイティブの入出金プロセスを通じて実現できます。しかし、この目標に完全に到達するまでには、まだしばらく時間がかかるでしょう。

議論にご協力いただいた Balaji Srinivasan 氏、および Coinbase、Kraken、Binance の皆さんに特に感謝します。

<<:  セキュリティ会社Zellic LianchuangはWETHに軽微で無害なバグを発見し報告した。

>>:  GBTC のマイナスプレミアムが過去最高に上昇、新たな暴落が来るのか?

推薦する

米国のブロックチェーンスタートアップが大麻業界の銀行問題の解決を目指す

クレイジーな解説: 米国のいくつかの州ではマリファナを合法化する法律があるものの、現実には銀行業界は...

ビットコインATMマシンの金採掘の秘密:月間収益は3万ドルに達し、手数料は最大20%

通貨市場が冬を迎える中、ビットコインATMの数は逆風に逆らって急増している。ビットコインATM統計ウ...

SWIFT、世界の資本流動性を最適化するブロックチェーンアプリケーションを構築

クレイジーな解説:SWIFTは世界中に顧客を持ち、その取引量は膨大です。したがって、技術的な利点は非...

KPMG幹部:ビットコインのハッシュレートは投資の可能性がある商品になりつつある

ビットコインの経済設計により、マイナーは4年ごとに半減期を迎えるストレステスト中にコストを最小限に抑...

ビットコインの価格が58,000ドルを超え、24時間以内に9万人が43億ドルのポジションを失いました。巨大なバブルはいつかは弾けるのか?

ビットコインの価格は2月22日以来初めて1コインあたり5万8000ドルを超え、先月記録した最高値に近...

ビットコインは歌う:もっと高く飛びたい、もっと高く飛びたい

一部のオンラインビジネスはすでにビットコインを採用し始めており、スタートラインで競合他社に先んじよう...

HSBCはブロックチェーンを使用して物理的な金のトークン化システムを作成し、金取引ゲームのルールを変えます

世界有数の銀行であるHSBCホールディングスは、ロンドンの金市場における従来の手作業によるプロセスを...

ある男が0.22ビットコインを盗んだ罪で懲役1年3ヶ月の判決を受けた。これは武漢で初めてのビットコイン盗難事件だ。

長江日報は2月10日(梁爽記者、牛騰洲特派員)、「ビットコインは財産的属性も交換価値もない仮想財産で...

コインベース、SECが融資商品をめぐって訴訟を警告

ブライアン・アームストロング氏はツイッターで、何カ月にもわたる協議にもかかわらず、米証券取引委員会は...

Huobi:「ビットコインを稼ぐ」の検索量が過去最高を記録、米国、インド、フィリピンがトップ

Huobi Blockchain Research Centerがまとめたデータによると、ここ数年で...

レイヤー 2 トークンと ETH: どちらに投資すれば儲かりやすいでしょうか?

イーサリアムのレイヤー 2 は、ここ数年で大きな進歩を遂げました。現在、ETH L2 の TVL は...

ビットコインは本当に2030年までの準備通貨になれるのか?

2015年にマジスター・アドバイザーズが発表した調査レポートによると、ビットコインは2030年まで...

ビットコインを準備資産として利用する上場企業は総供給量の2.85%を購入している。

上場企業のマイクロストラテジー社は過去2か月間で4億2500万ドル相当のビットコインを購入したが、こ...

ブロックチェーンスタートアップのデジタルアセットホールディングスが従業員を誘拐、SWIFTも摘発される

ブロックチェーンのスタートアップ企業であるデジタル・アセット・ホールディングスは、ソフトウェアメーカ...