各ユーザーは、ハッシュ化されたユーザーIDと残高を使用して、自分の口座がマークルのリーフノードに含まれているかどうかを検証することができます。そこに口座が含まれていることが確認され、表示された残高が正確であれば、データが改ざんされておらず、プラットフォームがユーザーの資産を全額預かっていることを証明することができます。 スナップショットで残高の詳細を表示
監査機関 | スナップショットタイム | 通貨 | 報告書 | ウェブサイト | 状況 |
---|---|---|---|---|---|
2020年5月4日00:00(UTC) | ビットコイン | Gate.io プルーフオブリザーブ評価報告BTC2020年5月25日 | Trust Explorer - Proof of Reservers (May-25-2020) | 発行済み | |
2022年10月19日00:00(UTC) | ビットコイン、イーサリアム | Gate.io プルーフオブリザーブ評価報告BTCÐ2022年10月28日 | Trust Explorer - Proof of Reservers (Oct-28-2022) | 発行済み |
暗号理論やコンピュータサイエンスにおいて、ハッシュツリーまたはマークルツリーは、全てのリーフノードがデータブロックの暗号化ハッシュでラベル付けされているツリーです。非リーフノードには、その子ノードのラベルのハッシュが付けられています。ハッシュツリーは、大規模なデータ構造の内容を効率的かつ安全に検証することができます。
まず、Gateのデータベースからハッシュ化されたユーザID (UID)とユーザ残高がエクスポートされます。ハッシュ化されたUIDとユーザー残高の各ペアはそれぞれハッシュ化され、連結されて基礎となるデータブロックが形成されます。各データブロックには、同じハッシュ関数が適用され、マークルツリーのリーフノードが生成されます。このようにして得られたハッシュ化されたデータは、次にペアとしてハッシュ化され、リーフノードの親ノードが作成されます。このプロセスは、マークルルートと呼ばれる単一のハッシュが得られるまで続けられます。下図を参照してください。マークルツリーの構築に成功すると、リーフノードがプレーンテキストファイルにエクスポートされ、監査人によりマークルルートのハッシュとともに公開されます。
K'を未知データセットAのハッシュ値とハッシュ化すると、A'K'となり、H(A' + K')
A'K'をC'D'とハッシュ化するとH(A'K' + C'D')というルートになります。
H(A'K' + C'D')の値を公開されているマークルルートハッシュと比較します。
したがって、他の顧客のユーザーIDや残高を明らかにすることなく、ユーザーの入力データ(ハッシュ化されたUID、ユーザー残高)が我々のマークルツリーに存在するかどうかを証明することができます。
詳細