I know that ICP currently only achieves consensus among 13 nodes in a subnet, and its security has been controversial since its launch. Even the mainstream media never regards ICP as a public chain.
My question is, is there a way to achieve full network or cross-subnet consensus? This full network consensus is very meaningful for extremely high security requirements, such as issuing native stablecoins.
You could deploy several copies of your canister to several random subnets. Each of this canisters would be able to receive a transaction and propagate it to its copies from other canisters. Once the transaction is executed, they could exchange the results of the execution and if at least 2/3 of those results are the same, this result could be considered “globally accepted” and somehow marked.
So basically, you could implement a simplified consensus logic in your canisters. This is possible. But it would be quite expensive and slow.
You could speed up the process with the help of your users (who are motivated to make the transaction go faster through the process). By replacing inter-canister calls with users manually retrieving certified messages and distributing them among other canisters.
Or you could speed up the process by creating a L2 network of fast delivery nodes on top, which would essentially do the same thing as users above, but better. Such a network would probably need some kind of an incentive to work, like a token or something.
But you can do this right now without any change on the protocol side.
To achieve a full network consensus, you would probably need a functionality that allows deploying canisters to a subnet of choice. Idk if its ready, there were some talks about it years ago.
This way you could deploy a copy of your canister to each subnet manually and then do the protocol this way.
I think it is necessary to reach the consensus on the entire network. Imagine that Tether issues native stablecoins USDT. He cannot issue it on the sub -network with only 13 nodes, and he will not consider DAO’s SNS at all.
I am not optimistic about ckUSDC. It seems to be a funnel. It is completely separated from the ICP ecosystem of most native stablecoins, and only a few of them come in.
Looking forward to the response of the Dfinity team.
I know that ICP currently only achieves consensus among 13 nodes in a subnet
No, different subnets have different numbers of nodes: Subnets - ICP Dashboard. For example NNS has 40, the SNS subnet has 34, the fiduciary subnet has 28, etc.
Even the mainstream media never regards ICP as a public chain.
“Public” and “secure” are orthogonal concepts, IMO.
My question is, is there a way to achieve full network or cross-subnet consensus?
If you are asking if it’s technically feasible, then yes. The devil is in the tradeoffs.