Recently FTX’s bankrupt shocked the whole industry. Almost all top exchanges have announced their 100% proof of reserve. Different exchanges chose different approaches. Some chose Merkle Tree, some published their wallet address, while some chose the independent audit. So you must be curious about what is Merkle Tree.
Pionex 100% Reserve Plan
Pionex has been operating for more than 3 years, and keeping 100% reserve as our responsibility. We promise that we will never embezzle users' funds and users can withdraw their coins at any time. This time Pionex has chose the appraoch of Merkle Tree + independent audit to prove our 100% reserve.
Explanation of Merkle Tree
Merkle Tree was invented by Ralph Merkle in 1979, which has been more than 40 years since it’s born. It’s a kind of algorithm based on zero-knowledge to let every single node to be able to verify if the whole data is trustable.
Before learning Merkle Tree, we need to understand what is the Hash algorithm. Hash algorithm is a mathematical function that garbles data and makes it unreadable. Hashing algorithms are one-way programs, so the text can't be unscrambled and decoded by anyone else. Cryptocurrencies like Bitcoin also utilize hash algorithm. For example, you don’t know the private key if you know one’s Bitcoin address, while you can generate your address if you have the private key.
2.Generate Merkle Tree
After understanding hash algorithm, we can start to generate a Merkle Tree now. First of all, we need to generate a “leaf“ for every single user. These leaves contain the ID and assets data snapshot at a specific time. Pionex uses the userid, the coins a user owns, and the balance of these coins as the basic data. According to these data, we calculate every basic data into a hashed value. Every user will have a hashed value, like Hash1, Hash2, Hash3, Hash4. Here we have the first layer of “branch“.
Then let’s generate the second layer of branch. Let’s combine the hash 1 and hash 2 together, and calculate the Hash12 for Hash1+Hash2. And also we will have Hash34 using the same method. That’s how we have the 2nd layer of branch.
If we keeps combining the hash values of the second branch, we will have a new layer of branch, with the new hash values like Hash1234.
At last, we will have only one hash value in the end. We call that value the “Hash Root“.
Here’s how we get a Merkle Tree from scratch.
You might be curious why the Merkle Tree can help to prove if an exchange has 100% reserve.
If I were a user, I should know clearly my ID and how much balance I have. Then I can calculate my hash value with Hashing algorithm. With the help of the opened source database, I can get other users' hash values without knowing their private ID and balance data. So I can calculate the Hash Root with the same method that Pionex utilize according to the open-source code. If my result is the same as what Pionex publishes, it proves that Pionex is not cheating.
What’s interesting is that once a user who stands out to claim the evidence that the exchange is cheating by giving the different hash value from what the exchange provides, the exchange will lose trust from its users. So the Merkle tree empowers every single user to monitor the platform. It’s similar to some zero-knowledge layer-2 applications on Ethereum.
However, there comes another question. The Merkle Tree can only prove the ledger is correct, but how to prove the platform owns enough funds for users to withdraw? This needs the independent audit.
It’s common to let the independent auditing firms to guarantee the compliance of a company. Pionex also has signed with an independent auditing firm to verify if Pionex has more funds than what we owe users.
The report will be published in several weeks after they have completed auditing.
If you have any more questions, please contact the online support or join our communities to ask.