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?
Again my prior response applies. The longest chain of PoW is an arbitrary perspective on the plurality of possible orderings. A consistent global ordering doesn't exist in our universe, but for as long as we can force agreement on an arbitrary ordering, then have a Consistent block chain.
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.
True, but you failed to address his point. Even if there was only 1 transaction per block (block size limit), the ordering of transactions is still an arbitrarily chosen perspective from amongst a plurality of perspectives of the ordering. This arbitrary choice is consistent with the meaning of a partial ordering (because globally consistent ordering is undefined in our universe), as well partial ordering can also apply to the notion of grouping transactions with a block and the transactions having no relative ordering within a block.
It is true that scripts can't be Turing complete because transaction ordering is arbitrary and thus various alternatives are not commutative. This is one of
my criticisms of Ethereum upthread.
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 are you trying to say here?
We have no global timestamp in decentralized, trustless designs.
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.
An arbitrary perspective in a decentralized, trustless system must be probabilistic. More complicated because we don't want a centralized system or system that relies on trust.
But note this is not an endorsement of Iota's probabilistic modeling, because the distinction is that in Bitcoin every participant is forced to follow the mathematical model whereas in Iota there is no way to force 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.
And no one ever will have an approximation because total order can't exist in our Universe.
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.
Incorrect. A distributed timestamp mechanism can't make the speed-of-light infinite, thus the timestamps will at best disagree by the propagation delay and thus it still won't provide a total ordering.
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).
Not with a distributed timestamp protocol per what I wrote above. With a centralized, trusted timestamp server (thus all transactions standing in line in a queue), you could have a total ordering, But then nothing can happen simultaneously any more.
Yeah but helps more to explain things in a way that people can grasp quickly without needing to dive into all that technobabble research. That being said, I appreciate your input but please try to cite the upthread discussion so we are respectful of what others have already explained.