How does the Merkle Tree work for Bitso?

Modified on:

Any balance you hold in your account at Bitso is Bitso’s liability for a given asset to you, meaning that it’s the total amount we owe you. Conversely, the total amount of assets under custody in Bitso’s holdings represents our reserves. Therefore, we must be able to show that the reserves are greater than or equal to our liabilities in order to provide proof of solvency.

To achieve this, Bitso allows you to obtain your own “leaf” hash representing Bitso’s liabilities. Using this hash, you can verify that your balances were indeed included in Bitso’s Merkle Tree Root hash, which means the entirety of Bitso’s liabilities.

This is done by encoding each client's balance at Bitso into a hash, then gathering all individual hashes and assembling them into a Merkle Tree structure with a single ‘Merkle Root’ hash, which is a unique fixed-size digest that represents the entire Merkle Tree containing all user balances.

It's also possible to recreate your balances hash based on the currencies and amounts you hold at a given time. This allows you to confirm that your hash was included in creating the unique Merkle Root hash. Any change made to the content being hashed changes the output value entirely. In other words, if anything changes in any leaf of the Merkle Tree (which also translates to changes in any user balance), then the resultant Merkle Root hash changes as well. This allows us to establish the total amount of Bitso’s liabilities at a moment in time, as well as for you to confirm that your balance is part of our total liabilities.


Other articles you may like to read:

For informational purposes only, this is not investment advice. When buying, selling, trading or using cryptocurrencies you are subject to certain risks including price volatility and loss of capital, for more information please visit the following link.

Was this useful?