Standard to expose verifiable TVL of assets secured by ICP (Chain Fusion)

Hi,

I am following up here on my original post which you can find here: Bitcoin Layers Review of ckBTC - #13 by marc0olo

First, I was only thinking about exposing the TVL of BTC secured through ICP via Chain Fusion only. But this discussion should be broader as Chain Fusion can be used to secure different assets across multiple chains.

For that reason I think it would be great to define a standard how we can allow developers to let their Canisters verifiably expose the TVL they hold.

I am not sure about the best approach to achieve this. But I think it is worth a discussion as the TVL secured via Chain Fusion is a great indicator for the general trust in our technology. This information could then also be consumed and displayed by 3rd party analytic tools.

I think it would be too much overhead to keep track of the holdings of all addresses managed through canisters. It might already be sufficient to introduce a registry where canisters can submit the addresses they manage including respective proofs. In the end it should be as easy as possible for 3rd parties to consume the total TVL secured via ICP.

Just a sidenote:

  • the TVL of ckBTC, ckETH, … can already be tracked, but the scope of this discussion is broader. any canister can control many addresses across different chains

Happy to hear more opinions about that and ideally also some proposals how to achieve that :slight_smile:

Marco

2 Likes

I just made a simple illustration of the scenario to make it more tangible what we should be able to achieve.

this is just an example for Bitcoin, but it would be good to have a common standard for addresses of any other chain, too.

in the simple illustrated example we have Canister A managing 2 addresses that hold a total amount of 170 BTC and Canister B managing one address holding 30 BTC. the goal would be to make this verifiable and consumable in an efficient way.

I did not include an example for the ckBTC minter canister here which is a special case as its TVL can currently already be checked by calling the icrc1_total_supply function of the ckBTC Ledger canister. of course the ckBTC minter also manages many different BTC addresses, but maybe it’s even good to trace the TVL of ckBTC independent of the TVL managed through other canisters.

Possible Solution → “Registry Canister”

we could introduce a dedicated “registry canister” which stores data we think is valuable for 3rd parties to track TVL on ICP, e.g.:

  • BTC address
  • the canister which manages the address
  • a proof provided by the canister that manages the address

this canister could expose a function that can be called by any other canister to provide the address and a proof. the registry canister could then provide a function for 3rd parties to get the desired (verifiable) information.

the question here is how the canisters would proof to the registry canister that they really manage a specific BTC address. it should not be possible to cheat and provide an external proof to the registry canister.

of course there could be other solutions. just some additional thoughts about that form my side in case you want to discuss that tomorrow in the BTC on ICP working group (cc: @domwoe)

unfortunately I won’t be able to attend to the meeting tomorrow :frowning: