2

Can someone explain the context of what Nakamoto exactly meant with: "To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system..."? I don't quite get the importance of the time aspect, since the timestamp header field seems not to be very important. Maybe someone can clearly outline, with real use cases and thought experiments, which exact problems we want to avoid to run into. Solana's proposed proof of history method (with Verifiable Delay functions) tries to exactly solve that problem. What I don't get: why is the passing of time the only thing we really want to prove? Concise problem descriptions are essential to understand the solution and caveats associated with it.

1 Answer 1

4

To put it simply: digital things are infinitely reproducible with very little cost, and so if we are attempting to create a digital money system, we need to make sure that users cannot simply copy & paste their money, to create (infinitely) more money. Functionally, this means that we need to solve the double-spend problem, and to do that, what we ultimately need is a way to give all transactions an explicit ordering. If we can reliably determine the order of transactions, then we can keep track of the network's state, and ensure that no user is allowed to spend their funds more than once.

With centralized systems, this is easy: you just trust the network admin to decide what the order is, and all other participants must follow suit.

But with a decentralized system... how do you create this ordering, in a way that all participants will reliably agree upon? The solution to this problem, as provided by Satoshi Nakamoto, is the bitcoin blockchain. It is a clock, with each block being the next 'tick' forward in the network's ongoing history.

This is the crucial point that allows the network to prevent users from double-spending their funds.

I don't quite get the importance of the time aspect, since the timestamp header field seems not to be very important.

The timestamp in the block header is more or less a sanity check, and it is used to help calculate network difficulty. More info can be found here.

This timestamp is not used to order transactions though, the blockchain itself is the 'clock' that provides that functionality.

4
  • Great answer. But: why do we need 10 minutes to get that ordering done? And let's suppose someone (Alice) tries to game the system by sending several double-spending transactions. Let's also assume that we have two mining groups A and B which in total represent the network except clients. If Alice now tries to spend one of her coins several times, this could easily be detected by the nodes involved in the system, just by checking if it has been spent before. If one now says: well, but what if A receives one of the messages and B another transaction? Since bitcoin is probabilistic... Mar 8, 2021 at 10:21
  • one chain in the end should be the longest; furthermore, A & B at some time know of all the transactions Alice tried to include. So it would be easy to implement to detect that behaviour and several of her transactions will thus not be included in the end. What am I missing here? EDIT: I get the need for ordering, but isn't that implicitly constructed by selfish behaviour and one blockchain winning in the end? Mar 8, 2021 at 10:22
  • re: " why do we need 10 minutes to get that ordering done? ": the length of time isn't really important in that regard. The blocktime could be different, but changing it comes with certain trade-offs, you could search this site for some posts with more info on the topic. re: "I get the need for ordering, but isn't that implicitly constructed by selfish behaviour and one blockchain winning in the end?" yes, bitcoin miners are incentivized to create the blockchain, which provides the secure ordering of transactions for the network.
    – chytrik
    Mar 9, 2021 at 7:29
  • Good answer. So does that mean that all transactions in a block have effectively occurred at the same time? Presumably also that means that two transactions in the same block that both send the same coins is not possible/invalid.. because you can't determine which is first? Jan 5, 2022 at 6:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.