Each user can use the encrypted UID and balance to verify whether his account is included in the Merkle leaf node. If the account is verified to be included there and the balance displayed is accurate, it proves that the data has not been tampered with and the platform has kept the user's assets in full. View balance details in the snapshot
Hashed User ID :
BTC Balance :
ETH Balance :
|Audit agency||Snapshot Time||Currency||Report||Website||Status|
|May 04, 2020, 00:00 UTC||Bitcoin||Gate.io Proof of Reserve Evaluation Report [BTC] [May 25, 2020]||Trust Explorer - Proof of Reservers (May-25-2020)||Issued|
|Oct 19, 2022, 00:00 UTC||Bitcoin, Ethereum||Gate.io Proof of Reserve Evaluation Report [BTCÐ] [Oct 28, 2022]||Trust Explorer - Proof of Reservers (Oct-28-2022)||Issued|
In cryptography and computer science, a hash tree or Merkle tree is a tree in which every leaf node is labeled with the cryptographic hash of a data block. Every non-leaf node is labeled with the hash of the labels of its child nodes. Hash trees allow efficient and secure verification of the contents of large data structures.
The hashed user id (UID) and user balances are first exported from Gate's database. Each pair of hashed UID and user balances will be hashed respectively and then concatenated to form the underlying data block . For each data block, the same hash function will be applied to generate the leaf nodes of the Merkle tree. The resulting hashed data are subsequently hashed together in pairs to create the parent nodes of the leaf nodes. This process continues until it results in a single hash known as the merkle root. Please refer to the diagram below for illustration. After the merkle tree is successfully built, the leaf nodes will be exported into a plain text file, which will be published together with the merkle root hash by the auditor.
K' when hashed with the hash of the unknown dataset A, yields A'K', which is H(A' + K')
A'K' hashed with C'D' leads to the root, H(A'K' + C'D')
Compare the value of H(A'K' + C'D') with the published merkle root hash
Hence, we can prove whether the user input data (hashed UID, user balance) is present or not in our merkle tree, without having to reveal any other customer's user id or balance.