Thread
[1/9] BitMEX’s New Privacy Preserving Proof Of Liability System Explained

Under the classic 2014 Maxwell scheme, liabilities can be arranged into a Merkle tree, with individual user account hashes as leaves. User balances are also provided in the tree & sum up to the total
[2/9] Users can then only be provided with the minimum necessary information needed to get from their own balance to the Merkle Root. That way some leaves are hidden and privacy is partially preserved. Although you still get to see your neighbour’s balance
[3/9] Another problem with this scheme is fraud could occur in the tree in the hidden areas. For example a false summation, resulting in the understatement of liabilities
[4/9] Another example is negative balances could be tucked away in hidden areas of the tree.

Enough users need to check their paths to the root in order to detect any shenanigans
[5/9] One option to resolve these issues is to publish the entire tree. However, this would expose all user balances to the public. Accounts could be tracked over time and user privacy expectations would be violated
[6/9] BitMEX has developed a relatively simple solution to this. User balances are randomly split into multiple leaves
[7/9] A new larger Merkle tree is constructed and published in full. This full publication prevents any fraud or shenanigans from occurring in the tree, as there are no hidden areas.

One cannot track user balances, since they are randomly split into multiple shards
[8/9] Users are each provided a secret nonce

A user can then scan across the entire bottom row of the tree, looking for hash collisions. If the hashes match, they know that the leaf belongs to them. The balances of these leaves can be added up & compared to the expected balance
[9/9] Read more about the privacy preserving Proof Of Liability scheme here:

blog.bitmex.com/addressing-the-privacy-gap-in-proof-of-liability-protocols/
Mentions
See All