Post
Topic
Board Altcoin Discussion
Re: DECENTRALIZED crypto currency (including Bitcoin) is a delusion (any solutions?)
by
enet
on 18/01/2016, 10:20:44 UTC
Blockchains doesn't mean that all nodes agree on a total order of events. It means consensus on partial order of events.

And if you allowed only one transaction per block?

edit: The partial ordering can only be within one single block, and the total ordering is of all blocks, so if you have only one transaction per block, doesn't it follow that you have a total ordering of transactions?

Blockchains allow for partial order and eventual consistency. Not all nodes agree on everything. In particular in Bitcoin they don't agree whether transaction A happened before transaction B (total order of events). Double spend problem means one can order transaction in packages called blocks. Blockchains implement partial order of events. That's also why script is Turing non complete.

More formally, one can sort transactions (or events or messages) by time the way Lamport did. So its mathematically a partially ordered set, i.e. a relation of a set of events (transactions are events or messages). The relation can deliver an answer for 2 events A and B and determine whether event A happened strictly before, strictly after, or roughly at the same time (in one block). What makes it even more complicated is that Bitcoin has a statistical distribution. The longer in the past A and B the more sure one is, since more nodes have confirmed it.

To have a total order of events, I think nobody has even an approximation. Two nodes will always disagree on total order, the same way two people in the same room will always see something different if they are in different locations. But they might agree enough.

I don't think one transaction per block would solve that problem. I believe its impossible to implement total order or anything like it, without a actually distributed timestamp mechanism. One can imagine a system where all computers connected to the Internet at the carrier level also have a timestamp protocol. If carriers are trustworthy (a very big ask), then everyone could look up the timestamp for a message. TCP/IP packets are not timestamped on top level and no entity on the Internet holds a history of events on the protocol level (everything refers to only the current state).

A good reference for these things is also the work of Carl Hewitt: https://en.wikipedia.org/wiki/Carl_Hewitt . He invented messaging with actors and wrote about eventual consistency.