At CheckSig, we believe in a provably-honest transparent custody. At least monthly, CheckSig executes a Proof-of-Reserves transaction, i.e., provides a proof that all bitcoins in custody are available and safely under our control. This might seem so obvious to be redundant but, as a matter of fact, most crypto companies do not prove their reserves; woefully, they might be concealing losses to be discovered later on!
The public blockchain transaction
The Proof-of-Reserves is provided as a transaction, publicly verifiable on the Bitcoin blockchain.
Such a transaction:
- includes (i.e., in tech jargon, spends as TxIn) the amount under custody consolidated in the previous Proof-of-Reserves;
- collects (i.e., spends as TxIn) all deposits CheckSig has received since the previous Proof-of-Reserves;
- pays the transaction fees;
- withdraws (i.e., creates a TxOut for) the amount required to satisfy our clients’ withdrawal requests, if any;
- consolidates all remaining bitcoins as a single new amount (i.e., creates one change TxOut) at the consolidation address.
This new consolidated amount represents all bitcoins under custody at the transaction date.
Please note that spending the previous consolidated amount reveals the (pre-image of the P2WSH) locking-script that protects the bitcoins under custody, making CheckSig custody completely transparent.
Finally, the Proof-of-Reserves spends from and to the consolidation address in the same transaction to proves the control of the consolidated amount at the transaction date. While address reuse is bad for privacy, it is fine in our case because the Proof-of-Reserves must be public. Moreover, residual security concerns (e.g., nonce exfiltration) are solved by our custody protocol. In fact, we rely on a multi-level multi-signature scheme using hardware wallets (Hardware Security Modules) from different vendors. To learn more about our security, read about CheckSig .
Reserves, solvency, and off-chain external auditors
Anyway, proving our reserves does not prove them to be enough to cover the obligations we have towards our clients. To achieve a proof-of-solvency, the proof-of-reserves should be combined with a proof-of-liabilities. Unfortunately, a reliable cryptographic proof-of-liabilities is complex, always partial, hardly verifiable by clients and auditors. All known privacy preserving approaches do not provide easy independent verification for non-technical users (see here).
Therefore, to ensure maximum transparency and accountability, the proof-of-liabilities is better delegated to external auditors. Indeed, our (internal controllers and) external auditors independently verify that the proved reserves exceed our liabilities. This verification is part of the SOC attestations we receive from Deloitte.
Furthermore, even the blockchain Proof-of-Reserves could be the result of a manipulation. As example, bitcoins could have been borrowed from a third party to temporarily cover losses. Only an off-chain external auditor can detect this kind of shenanigans.
Le prove di riserve
Finally, check out below our proof-of-reserves transactions and explore them on-chain. The total bitcoin amount in custody can be verified at the current consolidation address bc1qqst9un5sz8576fy2nnqkpm4rpfh0weveqwtt8zxgjp02g2mx5q7s2vresu.
|Transaction||Deposits (₿)||Fees (₿)||Withdrawals (₿)||Asset under Custody (₿)|
|Mar 30, 2023||25.92374635||0.00016008||8.00000000||570.67493171|
|Mar 3, 2023||0.01119078||0.00002516||5.00000000||552.75134544|
|Feb 28, 2023||16.62947373||0.00086856||0.00000000||557.74017982|
|Feb 9, 2023||11.03447299||0.00020804||0.00000000||541.11157465|
|Gen 20, 2023||10.69454563||0.00010402||0.00000000||530.07730970|
|Dic 23, 2022||7.66376412||0.00006329||0.00000000||519.38286809|
|Dic 2, 2022||34.11648757||0.00029334||5.00000000||511.71916726|
|Nov 3, 2022||12.54438499||0.00008004||5.00000000||482.60297303|
|Ott 4, 2022||7.9461708||0.00011877||0.00000000||475.05866808|
|Set 3, 2022||11.43284996||0.00001651||0.00000000||467.11261605|
|Ago 2, 2022||14.23876819||0.00005788||0.00000000||455.6797826|
|Lug 6, 2022||32.62741757||0.00020804||0.00000000||441.44107229|
|Giu 6, 2022||4.95127001||0.00002238||0.00000000||408.81386276|
|May 17, 2022||13.92010123||0.00006018||0.00000000||403.86261513|
|Mag 3, 2022||14.26250604||0.00006552||0.00000000||389.94257408|
|Apr 1, 2022||28.10778268||0.00009213||0.00000000||375.68013356|
|Mar 4, 2022||8.32775921||0.00013104||0.00000000||347.57244301|
|Feb 2, 2022||14.29410966||0.00014470||0.00000000||339.24481484|
|Gen 05, 2022||13.84709331||0.00006018||0.00000000||324.95084988|
|Dic 22, 2021||21.32797471||0.00013071||10.09516878||311.10381675|
|Nov 29, 2021||26.51869064||0.00014667||8.12112682||299.87114153|
|Ott 29, 2021||90.43568346||0.00018396||6.65512106||281.47372438|
|Set 30, 2021||11.65154583||0.00016460||6.80705070||197.69334594|
|Set 1, 2021||13.90389341||0.00007370||0.00000000||192.84901541|
|Ago 2, 2021||4.97480450||0.00016214||0.00000000||178.94519570|
|Lug 2, 2021||32.06748252||0.00051181||0.00000000||173.97055334|
|Giu 2, 2021||8.95164489||0.00027216||0.00000000||141.90358263|
|Mag 1, 2021||7.24822810||0.00030954||0.00000000||132.95220990|
|Apr 1, 2021||21.21598524||0.00057939||1.00000000||125.70429134|
|Mar 1, 2021||22.78825901||0.00051181||0.00000000||105.48888549|
|Feb 2, 2021||0.00000000||0.00004851||0.00000000||82.70113829|
|Gen 31, 2021||32.07315051||0.00031248||0.00000000||82.70118680|
|Gen 1, 2021||18.03542688||0.00051181||0.00000000||50.62834877|
|Dic 2, 2020||12.71367043||0.00073700||0.00000000||32.59343370|
|Nov 3, 2020||0.00000000||0.00006930||0.00000000||19.88050027|
|Ott 12, 2020||19.88127787||0.00070830||0.00000000||19.88056957|
Ethereum does not support native multi-sig and is managed using multi-party computation instead. Because of that, we only provides our addresses whose balances can be verified: