This question borders along the line of cryptography and distributed systems, but I guess I have a strong chance of getting an answer if asked here. So here goes:
I understand that the blockchain is in essence a distributed ledger, and nodes taking part in both validation and just performing transaction do this based on their own copy of the distributed ledger.
Since this is distributed I assumed at any given point in time, not all node would have exactly the same data, as it takes some time for changes to propagate throughout the whole network.
Given this characteristics of distributed systems, the question then is, how does systems implemented using blockchains prevent erroneous transaction based on their outdated, and not yet up to date view of the network?
How does this problem get resolved?