"Instant finality"... snakeoil debunk of the day🤣
Many blockchains now boast of "instant finality," which means, essentially, that a tx becomes final the moment it is included in a block.
By popular request, let's go over this nonsense, point by point:
1) Finality occurs when multiple parties reach an irreversible agreement (i.e. consensus) on a result, such as that a block of tx should be appended to a chain of blocks
2) To reach agreement, the multiple parties must communicate with each other, or in distributed computing parlance, "exchange messages."
3) These messages must be transmitted over the internet (since as of yet, quantum entanglement networks don't exist!!)
4) The fastest networks available use fibre optic cabling (i.e. they transmit data encoded in light, which beamed down a glass wire)
5) Light travels at 2/3 the speed inside glass than it does in a vaccum ~200,000km/s
6) Let's say there's a blockchain node in London, and another in Tokyo. The distance is about 10,000km, so clearly if data were transmitted down a single uninterrupted fibre cable, it would take 50ms to travel the distance, and 50ms to return = 100ms round trip
7) In reality, in the real world, the internet does not draw a straight line between London and Tokyo, and moreover, data routes (e.g. between a server in a London data center and a server in a Tokyo data center) comprises lots of individual links, which are stitched togehter using network routing devices
8) My guess is that in the real world a pair of well-connected nodes in London and Tokyo might communicate with round trip latencies between 250-400ms
9) When a block-producing node wishes to finalize a block, they must distribute the block in order that other nodes may add their vote (in whatever form). Meanwhile, a block cannot be transmitted with minimum theoretical latency because of its size... let's say it might take 0.8-1s just to send to Tokyo
10) Now votes need to be collected, but since they are smaller (e.g. signatures, or signature shares) they can be transmitted back at nearer to max theoretical speed
11) It is necessary to receive positive votes from ⅔ 1 of the nodes to finalize a block. Being kind, clearly, if the distribution takes 0.8-1s, and then it takes another 150ms to collect necessary signatures... we see a optimal finalization time being around a second (what the Internet Computer achieves, yay!)
Note 1: obviously, as network routers/switches improve, latency will fall, and we maybe eventually this might shave a few ms off the time
Note 2: the time to finality can be reduced by geographically concentrating the nodes, albeit by reducing decentralization...
Note 3: the time to finality can be really really reduced by running most of the nodes on Amazon Web Services, thereby ensuring they are mostly in the same data center, and, hilariously, this is what many blockchains do – such that Amazon could literally switch them off overnight, or meddle in their consensus, such that Uncle Jeff can decide what they decide.
In trying to defend "instant finality" claims, some blockchains will no doubt protest that they use a random beacon (or other method) to choose a leader, and therefore, whatever that leader produces, is final (!!)
They might even say that the leader uses a ZK proof that allows any recipient of the block to know that it is valid instantaneously, such that it doesn't need to be checked by other nodes (haven't seen this implementation or heard that argument yet but sure it's coming).
However, every protocol must allow for failover, in case "the leader" fails to produce a block. This means that until such time that signatures/approvals have been received from ⅔ 1 other nodes (this limit derives from non-negotiable laws of mathematics that everyone with a background in distributed computing is aware of), a block is *not* finalized.
Furthermore, all the foregoing is really assuming an optimal situation. In practice, there are many other factors adding delay to getting a tx finalized, including the time taken to get it into a block, the time taken to process the computations the tx involves (e.g. smart contract function invocations, ledger token transfers...), the latency involved in retrieving the tx result, and so on.
End-to-end latency is what matters, which is what the Internet Computer focuses on without snakeoil. But anyway, to summarize....
Whenever you hear projects talking about "instant finality," you know that they come from the land of Snakeoil Central
Let me know if there are any other debunks worth doing :)