Ever Wonder How Crypto Platforms Show They're Solvent?

cover
7 Oct 2024

Authors:

(1) Hamid Bateni, Nobitex Labs (hamid@europe.com);

(2) Keyvan Kambakhsh, Nobitex Labs (keyvankambakhsh@gmail.com).

Abstract and 1 Introduction

2 Proof of Liability and 2.1 Commitment

2.2 Merkle Tree

2.3 Leaves Structure

2.4 Proof Statement

3 Proof of Reserve

3.1 Ethereum

3.2 Bitcoin

4 Proof of Solvency

5 Future Works and References

4 Proof of Solvency

Proof of Solvency is a method by which a cryptocurrency platform can demonstrate that it has sufficient funds (assets) to cover its obligations (liabilities), without revealing sensitive details about its customers or its own operations. This provides a level of transparency and trust for the platform’s users, while maintaining privacy. [3]

Proof of solvency constitutes a crucial aspect of trust in digital asset platforms. It consists of two main components: Proof of Liabilities and Proof of Reserves. Proof of Liabilities asserts the total obligations a business has to its customers, while Proof of Reserves confirms the total assets the business holds. We have discussed various approaches to achieve private proofs for both components, and now, we aim to combine these to achieve a Private Proof of Solvency.

Let’s explore the whole picture for achieving private Proof of Solvency:

Initially, a business commits to its liabilities. This involves creating a Merkle tree of all customer balances and publishing the root of this tree. the business creates a Zero-Knowledge Proof (ZKP) that attests to the correctness of the liabilities tree. The business also provides an infrastructure that allows users to verify that their liabilities have been correctly included in the tree.

In the next step the business proves its reserves using one of the methods we introduced earlier. This involves creating a proof for each of the business’s addresses.

Lastly, the business integrates these proofs in a ZKP circuit to show that the total reserves are at least equal to the total liabilities. This involves comparing the total balance of specific addresses with the balance of the last right leaf in the liabilities tree. These inputs are kept private in the circuit, with the only public data being the block root and the root of the liabilities tree.

By successfully completing this process, the business achieves a private Proof of Solvency. This demonstrates that the business has sufficient reserves to cover all its liabilities without revealing any sensitive information, such as individual customer balances or business addresses. This approach not only enhances the privacy of customers and the business but also bolsters trust in the platform by providing a verifiable proof of solvency.

This paper is available on arxiv under CC BY-NC-ND 4.0 DEED license.