1,300万人以上のユーザーを抱える Gate.io は、ファンドセキュリティの重要性を十分に理解しており、効果的な対策を講じることで業界を開拓してきました。 Gate.io は、準備金の証明(PoR)をいち早く実施した取引所の1つであり、2020年5月には早くもPoRを明らかにしました。 FTXが2022年にユーザー資産を不正に流用し、流動性危機とその後の破産に至って初めて、準備金の証明はユーザー資金の安全性を確保し、プラットフォームの信頼性を高めるためのソリューションとして広く認識されるようになりました。
FTXの事件後、Gate.io はすぐに 2回目の準備金の証明を公開しました。 イーサリアムの創設者であるヴィタリック・ブテリン氏は、リリース後まもなく、「安全なCEXを持つ:ソルベンシーの証明とその先」というタイトルの記事を発表し、取引所がソルベンシーをより適切に実証する方法について議論しました。 この記事では、従来の埋蔵量の証明に加えて、zk-SNARKのような高度な技術を統合して、より公開され、透明性が高く、本物のPoRを確保することを提案しています。 Gate.io は、この記事で言及されている新しいテクノロジーを使用して、準備金の証明をアップグレードし、ユーザーに強化されたプライバシーと真の資産セキュリティを提供する予定です。
プルーフ・オブ・リザーブ(PoR)とは、仮想通貨取引所やその他の金融機関が保有する残高を確認し、会社が記録した資産額が実際に保有している資産と一致しているかどうかを確認することです。 準備金の資産額が利用者の預託資産額を上回る場合、すなわち担保比率が100%を超える場合、利用者の資金が実物資産に1:1で裏付けられていることを証明します。
PoRが登場する前は、取引所に十分な資金があることを示すために、資産移転や負債証明の提案もありました。
2011年、当時最大のビットコイン取引所であるMtGoxは、424,242BTCを以前に発表されたアドレスに移動する取引を実行することにより、特定の資金を保持していることを証明しました。 この方法では、資産を検証することしかできず、取引所の負債を証明することはできませんでした。
取引所の負債は、ユーザーが預けた資産です。 ユーザーの資産を証明する最も簡単な方法は、ユーザーアカウントと残高を含むリストを公開することです。 すべてのユーザーはこのリストにアクセスして、アカウントに対する残高が正しいかどうかを確認できます。 ただし、この方法には明らかな欠点があります。
取引所が提供するリストが本物であるという保証はありません。
その過程で、ユーザーのアカウント情報と残高の両方が開示されます。
この方法では、Merkleのようなデータ構造を使用してユーザー情報の露出を最小限に抑えることもでき、現在のPoRの概念につながります。
図に示すように、マークルツリーはツリーのようなデータ構造です。 最下層のデータを「リーフノード」と呼び、中間層を「中間ノード」と呼ぶことができます。 2 つのリーフ ノードは、ハッシュ (特定の値を取得するために任意の入力値を処理) を実行して、中間ノードの値を生成できます。 次に、2 つの中間ノードがハッシュされ、次のレベルのノードの一意の出力値が取得されます。 連続した処理レイヤーの後、最終的にマークルツリーのルートノード(ルート)が取得されます。 この値は一意であり、リーフ ノードを変更すると、ルート ノードも変更されます。
マークルの木のリザーブプルーフ(出典: Vitalik)
この方法では、取引所がユーザーに代わって保有する総資産は、層ごとに値を蓄積することによって決定されます。 ただし、ユーザーアカウントと残高データの両方をリーフノードに直接挿入した後でも、情報漏洩のリスクはわずかに残ります。 図を例にとると、緑色でマークされたユーザー(Charlie)は、Davidの部分的な情報と、左側のAliceとBobの残高にアクセスできます。 その結果、リーフノードに技術的な改善が加えられました。
図に示すように、ユーザー アカウント ID は特定の値でハッシュされます。
ユーザーの残高は分散されています。 例えば、チャーリーの10ETHを2つの5ETHに分割し、2つの異なるリーフノードに配置することができます。
ユーザーIDと残高は別々にハッシュ化され、結果の値はもう一度ハッシュ化されます。 Gate.ioの積立金証明は、この方法を使用しています。
リーフノードレベルでのこれらの進歩にもかかわらず、1つの問題は未解決のままです:負の残高です。 実際には、ユーザーは暗号通貨を預けた後、レバレッジ取引や永久契約などの取引所商品に関与します。 損失が発生した場合、最大損失額は元本の100%、つまりユーザーの口座残高は常にゼロ以上である必要があります。
通常、マイナス残高は悪意のある取引所によって開始されます。 例えば、取引所が500ETHを不正に流用した場合、標準的な計算では、取引所が実際に保有する資産は必要な担保よりも少なく、場合によっては100%を下回る可能性があり、不正流用が明らかになります。 しかし、取引所は、マークルツリーの総資産価値を不正流用後に取引所が保有する資産と同等またはそれ以下にするために、指定された図の残高が-500ETHのHenryという名前の口座を作成し、それによって担保率が100%を超えるという錯覚を捏造する可能性があります。
マークルツリーのイラストに対するマイナス値のアカウントの影響(出典: Vitalik)
この問題に対処するために、Gate.io のような取引所は、zk-SNARKゼロ知識証明技術を使用してリザーブプルーフを強化し始めています。
ゼロ知識証明とは、一方の当事者が機密情報を漏らさずに他方の当事者に何かを証明できる手法です。 この概念を簡単な例で説明すると、ユーザーAがユーザーBの電話番号を知っていて、ユーザーCがユーザーAが知っているかどうかを問い合わせた場合、ユーザーAは実際の番号をユーザーCに開示することなく、その場でBの番号をダイヤルして、実際に知っていることを確認できます。 ユーザーのプライバシーを守りながら知識を確認するこのプロセスは、「ゼロ知識証明」の仕組みを例示しています。
暗号通貨の領域では、ゼロ知識証明により、ユーザーは鍵自体や電子署名を公開することなく、秘密鍵の所有権を証明できます。 暗号通貨取引プラットフォームは、個々の口座残高などの機密性の高いユーザー情報を開示することなく、準備金のステータスを検証することを望んでいます。
zk-SNARKは、簡潔で非対話的なゼロ知識証明技術の略です。 「初期信頼設定」を経て、すべての証明者が直接アクセスできる共通参照文字列(CRS)を生成します。 これは、zk-SNARKが正解を直接アップロードする試験採点システムに似ています。 受験者は、質問に対する解答をバックエンドシステムに送信し、正解または不正解の結果を即座に提供することで、回答を検証できるため、プロセスが非常に効率的になります。
zk-SNARKを使用すると、ユーザーは、その値の実際の内容を明らかにすることなく、ハッシュ化された元の値を知っていることを証明できます。 特定の金額、金額、住所を開示することなく、ユーザーは取引の有効性を確認することもできます。 これは、プライベートトランザクションで一般的に使用されます。 リザーブプルーフの設計において、zk-SNARKは制約を事前に定義し、ゼロ以外のアカウントを排除し、ユーザーのプライバシーを確保することができます。
Gate.io は、zk-SNARKテクノロジーとマークルツリーを統合して、より透明性が高く、プライバシー保護され、改ざん防止された予備プルーフを作成します。
実装プロセス
コールドウォレット認証
すべてのコールドウォレットとホットウォレットは、所有権を確認するために監査法人が指定したアドレスに特定のランダムな金額を送金します。 次に、監査法人はこれらのアドレスからの残高を要約して、取引所が管理する合計金額(ユーザーファンドと自己資金の両方を含む)を決定します。
ユーザー残高スナップショット
特定の瞬間に、プラットフォーム上のユーザーの残高のスナップショットが取得されます。 実績口座の資本は、未払いの注文、借入金額、未払い利息、未実現損益などのデータを使用して計算されます。
残高のエクスポート
暗号化されたUIDとすべてのユーザーの残高は、ユーザー資産の集計とマークル番号の公開を目的として監査法人に提供されます。
ユーザー資産のバッチ処理
取引所の純資産は、各ユーザーの純資産の合計であることが確認されています。 そして、ユーザーの純資産をもとに、マークルツリーを構築します。
(バッチ処理の主な理由は、Gate.io に 1,300 万人のユーザーがいることです。 すべてのユーザー データを一度に処理すると、ハードウェアとソフトウェアに極端な要求が課せられます。 バッチ処理は、セキュリティやデータのプライバシーを損なうことなく、時間とコスト効率が向上します。
回路制約の実装
(1) ユーザーの純資産がマークルツリーに挿入される前は、そのユーザーのIDに対応するノードは空です。
(2)ユーザーの資産リストと各資産の価格に基づいて、ユーザーの総資産/負債を計算します。 総資産は常に総負債を上回らなければなりません。
(3) ユーザーの資産/負債を取引所の資産/負債に追加します。
(4) ユーザーID、総資産・負債、資産リストを用いて、ユーザーステータスハッシュを算出します。 ユーザーのステータスをマークルツリーに挿入して、新しいマークルルートを取得します。
(5) 1 人のユーザーの操作を作成する前に、ツリーのルートハッシュ値が、後続のユーザーの操作を作成した後のルートノードのハッシュ値と一致する必要があります。
(制約 (1) は、不正なノード データを防ぎ、(2) 負の値を持つアカウントを防止し、(5) 操作の前後にユーザー データが変更されないようにします。
リザーブプルーフの生成
zk-SNARK回路を使用して、ユーザー資産の数を決定し、予備プルーフレポートを発行します。
埋蔵量の計算プロセスとコードの実装の詳細については、 ここをクリックしてください。
パフォーマンス
32 コアと 128 GB の RAM を搭載したマシンでは、1,000 万人のユーザーのアセット証明を計算するのに 15 日かかります。 予備証明の計算は並列化できます。したがって、10台のマシンでは、1.5日しかかかりません。
zk-SNARKの導入は、Gate.ioの 証明を予約し、ユーザー資産を保護するための重要なステップです。 この優れた安全性とプライバシー保護は、ユーザーの信頼を高め、暗号通貨業界の新しい基準を設定します。 業界のリーダーとして、Gate.io は、より透明で安全な業界の発展を促進するために、コードを オープンソース化 しました。 今後も、Gate.io はイノベーションの精神を継続し、ユーザーとともに、より安全で包括的なプライバシー保護された暗号化の未来を探求し、開拓していきます。
参照
1,300万人以上のユーザーを抱える Gate.io は、ファンドセキュリティの重要性を十分に理解しており、効果的な対策を講じることで業界を開拓してきました。 Gate.io は、準備金の証明(PoR)をいち早く実施した取引所の1つであり、2020年5月には早くもPoRを明らかにしました。 FTXが2022年にユーザー資産を不正に流用し、流動性危機とその後の破産に至って初めて、準備金の証明はユーザー資金の安全性を確保し、プラットフォームの信頼性を高めるためのソリューションとして広く認識されるようになりました。
FTXの事件後、Gate.io はすぐに 2回目の準備金の証明を公開しました。 イーサリアムの創設者であるヴィタリック・ブテリン氏は、リリース後まもなく、「安全なCEXを持つ:ソルベンシーの証明とその先」というタイトルの記事を発表し、取引所がソルベンシーをより適切に実証する方法について議論しました。 この記事では、従来の埋蔵量の証明に加えて、zk-SNARKのような高度な技術を統合して、より公開され、透明性が高く、本物のPoRを確保することを提案しています。 Gate.io は、この記事で言及されている新しいテクノロジーを使用して、準備金の証明をアップグレードし、ユーザーに強化されたプライバシーと真の資産セキュリティを提供する予定です。
プルーフ・オブ・リザーブ(PoR)とは、仮想通貨取引所やその他の金融機関が保有する残高を確認し、会社が記録した資産額が実際に保有している資産と一致しているかどうかを確認することです。 準備金の資産額が利用者の預託資産額を上回る場合、すなわち担保比率が100%を超える場合、利用者の資金が実物資産に1:1で裏付けられていることを証明します。
PoRが登場する前は、取引所に十分な資金があることを示すために、資産移転や負債証明の提案もありました。
2011年、当時最大のビットコイン取引所であるMtGoxは、424,242BTCを以前に発表されたアドレスに移動する取引を実行することにより、特定の資金を保持していることを証明しました。 この方法では、資産を検証することしかできず、取引所の負債を証明することはできませんでした。
取引所の負債は、ユーザーが預けた資産です。 ユーザーの資産を証明する最も簡単な方法は、ユーザーアカウントと残高を含むリストを公開することです。 すべてのユーザーはこのリストにアクセスして、アカウントに対する残高が正しいかどうかを確認できます。 ただし、この方法には明らかな欠点があります。
取引所が提供するリストが本物であるという保証はありません。
その過程で、ユーザーのアカウント情報と残高の両方が開示されます。
この方法では、Merkleのようなデータ構造を使用してユーザー情報の露出を最小限に抑えることもでき、現在のPoRの概念につながります。
図に示すように、マークルツリーはツリーのようなデータ構造です。 最下層のデータを「リーフノード」と呼び、中間層を「中間ノード」と呼ぶことができます。 2 つのリーフ ノードは、ハッシュ (特定の値を取得するために任意の入力値を処理) を実行して、中間ノードの値を生成できます。 次に、2 つの中間ノードがハッシュされ、次のレベルのノードの一意の出力値が取得されます。 連続した処理レイヤーの後、最終的にマークルツリーのルートノード(ルート)が取得されます。 この値は一意であり、リーフ ノードを変更すると、ルート ノードも変更されます。
マークルの木のリザーブプルーフ(出典: Vitalik)
この方法では、取引所がユーザーに代わって保有する総資産は、層ごとに値を蓄積することによって決定されます。 ただし、ユーザーアカウントと残高データの両方をリーフノードに直接挿入した後でも、情報漏洩のリスクはわずかに残ります。 図を例にとると、緑色でマークされたユーザー(Charlie)は、Davidの部分的な情報と、左側のAliceとBobの残高にアクセスできます。 その結果、リーフノードに技術的な改善が加えられました。
図に示すように、ユーザー アカウント ID は特定の値でハッシュされます。
ユーザーの残高は分散されています。 例えば、チャーリーの10ETHを2つの5ETHに分割し、2つの異なるリーフノードに配置することができます。
ユーザーIDと残高は別々にハッシュ化され、結果の値はもう一度ハッシュ化されます。 Gate.ioの積立金証明は、この方法を使用しています。
リーフノードレベルでのこれらの進歩にもかかわらず、1つの問題は未解決のままです:負の残高です。 実際には、ユーザーは暗号通貨を預けた後、レバレッジ取引や永久契約などの取引所商品に関与します。 損失が発生した場合、最大損失額は元本の100%、つまりユーザーの口座残高は常にゼロ以上である必要があります。
通常、マイナス残高は悪意のある取引所によって開始されます。 例えば、取引所が500ETHを不正に流用した場合、標準的な計算では、取引所が実際に保有する資産は必要な担保よりも少なく、場合によっては100%を下回る可能性があり、不正流用が明らかになります。 しかし、取引所は、マークルツリーの総資産価値を不正流用後に取引所が保有する資産と同等またはそれ以下にするために、指定された図の残高が-500ETHのHenryという名前の口座を作成し、それによって担保率が100%を超えるという錯覚を捏造する可能性があります。
マークルツリーのイラストに対するマイナス値のアカウントの影響(出典: Vitalik)
この問題に対処するために、Gate.io のような取引所は、zk-SNARKゼロ知識証明技術を使用してリザーブプルーフを強化し始めています。
ゼロ知識証明とは、一方の当事者が機密情報を漏らさずに他方の当事者に何かを証明できる手法です。 この概念を簡単な例で説明すると、ユーザーAがユーザーBの電話番号を知っていて、ユーザーCがユーザーAが知っているかどうかを問い合わせた場合、ユーザーAは実際の番号をユーザーCに開示することなく、その場でBの番号をダイヤルして、実際に知っていることを確認できます。 ユーザーのプライバシーを守りながら知識を確認するこのプロセスは、「ゼロ知識証明」の仕組みを例示しています。
暗号通貨の領域では、ゼロ知識証明により、ユーザーは鍵自体や電子署名を公開することなく、秘密鍵の所有権を証明できます。 暗号通貨取引プラットフォームは、個々の口座残高などの機密性の高いユーザー情報を開示することなく、準備金のステータスを検証することを望んでいます。
zk-SNARKは、簡潔で非対話的なゼロ知識証明技術の略です。 「初期信頼設定」を経て、すべての証明者が直接アクセスできる共通参照文字列(CRS)を生成します。 これは、zk-SNARKが正解を直接アップロードする試験採点システムに似ています。 受験者は、質問に対する解答をバックエンドシステムに送信し、正解または不正解の結果を即座に提供することで、回答を検証できるため、プロセスが非常に効率的になります。
zk-SNARKを使用すると、ユーザーは、その値の実際の内容を明らかにすることなく、ハッシュ化された元の値を知っていることを証明できます。 特定の金額、金額、住所を開示することなく、ユーザーは取引の有効性を確認することもできます。 これは、プライベートトランザクションで一般的に使用されます。 リザーブプルーフの設計において、zk-SNARKは制約を事前に定義し、ゼロ以外のアカウントを排除し、ユーザーのプライバシーを確保することができます。
Gate.io は、zk-SNARKテクノロジーとマークルツリーを統合して、より透明性が高く、プライバシー保護され、改ざん防止された予備プルーフを作成します。
実装プロセス
コールドウォレット認証
すべてのコールドウォレットとホットウォレットは、所有権を確認するために監査法人が指定したアドレスに特定のランダムな金額を送金します。 次に、監査法人はこれらのアドレスからの残高を要約して、取引所が管理する合計金額(ユーザーファンドと自己資金の両方を含む)を決定します。
ユーザー残高スナップショット
特定の瞬間に、プラットフォーム上のユーザーの残高のスナップショットが取得されます。 実績口座の資本は、未払いの注文、借入金額、未払い利息、未実現損益などのデータを使用して計算されます。
残高のエクスポート
暗号化されたUIDとすべてのユーザーの残高は、ユーザー資産の集計とマークル番号の公開を目的として監査法人に提供されます。
ユーザー資産のバッチ処理
取引所の純資産は、各ユーザーの純資産の合計であることが確認されています。 そして、ユーザーの純資産をもとに、マークルツリーを構築します。
(バッチ処理の主な理由は、Gate.io に 1,300 万人のユーザーがいることです。 すべてのユーザー データを一度に処理すると、ハードウェアとソフトウェアに極端な要求が課せられます。 バッチ処理は、セキュリティやデータのプライバシーを損なうことなく、時間とコスト効率が向上します。
回路制約の実装
(1) ユーザーの純資産がマークルツリーに挿入される前は、そのユーザーのIDに対応するノードは空です。
(2)ユーザーの資産リストと各資産の価格に基づいて、ユーザーの総資産/負債を計算します。 総資産は常に総負債を上回らなければなりません。
(3) ユーザーの資産/負債を取引所の資産/負債に追加します。
(4) ユーザーID、総資産・負債、資産リストを用いて、ユーザーステータスハッシュを算出します。 ユーザーのステータスをマークルツリーに挿入して、新しいマークルルートを取得します。
(5) 1 人のユーザーの操作を作成する前に、ツリーのルートハッシュ値が、後続のユーザーの操作を作成した後のルートノードのハッシュ値と一致する必要があります。
(制約 (1) は、不正なノード データを防ぎ、(2) 負の値を持つアカウントを防止し、(5) 操作の前後にユーザー データが変更されないようにします。
リザーブプルーフの生成
zk-SNARK回路を使用して、ユーザー資産の数を決定し、予備プルーフレポートを発行します。
埋蔵量の計算プロセスとコードの実装の詳細については、 ここをクリックしてください。
パフォーマンス
32 コアと 128 GB の RAM を搭載したマシンでは、1,000 万人のユーザーのアセット証明を計算するのに 15 日かかります。 予備証明の計算は並列化できます。したがって、10台のマシンでは、1.5日しかかかりません。
zk-SNARKの導入は、Gate.ioの 証明を予約し、ユーザー資産を保護するための重要なステップです。 この優れた安全性とプライバシー保護は、ユーザーの信頼を高め、暗号通貨業界の新しい基準を設定します。 業界のリーダーとして、Gate.io は、より透明で安全な業界の発展を促進するために、コードを オープンソース化 しました。 今後も、Gate.io はイノベーションの精神を継続し、ユーザーとともに、より安全で包括的なプライバシー保護された暗号化の未来を探求し、開拓していきます。
参照