<p>From <a href="https://bitcoin.org/bitcoin.pdf" rel="nofollow noreferrer">Satoshi's whitepaper</a>:</p>

<blockquote>
  <p><strong>3.Timestamp Server</strong></p>
  
  <p>The solution we propose begins with a timestamp server.  A timestamp
  server works by taking a hash   of   a   block   of   items   to   be 
  timestamped   and   widely   publishing   the   hash,   such   as   in
  a newspaper or Usenet post [2-5].   The timestamp proves that the data
  must have existed at the time, obviously, in order to get into the
  hash.  Each timestamp includes the previous timestamp in its hash,
  forming a chain, with each additional timestamp reinforcing the ones
  before it.</p>
  
  <p><strong>4.Proof-of-Work</strong></p>
  
  <p>To implement a distributed timestamp server on a peer-to-peer basis,
  we will need to use a proof-of-work system similar to Adam Back’s
  Hashcash ...</p>
</blockquote>

CC BY-SA 3.0
2018-02-14T02:02:39.160Z
Thank you, marking this as the right answer. I'm a tad embarrassed that I thought I knew the paper better than I did, but gratified I worked it out on my own. Interestingly the first source code (Nov 2008) frequently mentions "timechain" in the comments (main.h in http://satoshi.nakamotoinstitute.org/code/).
grisha
CC BY-SA 3.0
2018-02-13T21:43:25.273Z
2018-02-13T21:43:25.273Z
skang404
<p>Yes, PoW is a decentralized clock not just for tying information to a specific time (a timestamp can do this perfectly fine) but to prevent spam attacks on the blockchain itself.</p>

<p>The question comes up, how can you add data to everyone's ledger all at once continuously and efficiently? If there is a single tx at a time queue system then things will be unbearably slow.</p>

<p>If the ledger is open for everyone to add verified transactions then what's to stop someone from just adding transactions on transactions and filling up everyone's node? </p>

<p>PoW exists to solve this problem by creating something like a flood gate that allows only a set amount of transactions per time. The difficulty aspect of PoW exists to adapt to the changing nature of computing power against the network.</p>

<blockquote>
  <p>The clock has an interesting property - you can tie data to its ticks, simply by making the data the input to the SHA. A solved block is nothing more than simply an event that happened exactly at the tick of this clock.</p>
</blockquote>

<p>This is so an attacker can't just use the same verified data to add blocks and blocks of transactions. Think of a block mined by the miner as a one time use token that let's the block be added. </p>

<blockquote>
  <p>An analogy might be looking for the largest known prime. You don't need to tell anyone you decided to find one, you only announce when and if you actually find one. Your participation makes finding a solution a possibility, whereas if no one ever looks for the largest prime, it will never be found.</p>
</blockquote>

<p>This portion isn't entirely correct. For you to test if a block you've mined is correct (because mining is entirely a guessing game) you need to ask the network if the block is valid. More than likely the node you just asked will say no and you begin the search again. </p>

<p>Although I should note <a href="https://bitcoin.stackexchange.com/questions/5838/how-is-difficulty-calculated">that the amount of failed attempts is not factored by the difficulty algorithm</a></p>

CC BY-SA 3.0
2018-02-13T18:28:42.120Z
"a timestamp can do this perfectly fine" - I don't see how, what is the source of it, how can it be trusted? My point is the PoW _is_ the timestamp-providing functionality. It's not about attackers, it is that the block happened exactly (not approximately) at the tick.
grisha
CC BY-SA 3.0
2018-02-13T18:33:24.060Z
Also not sure what you mean by a block being correct. You need to start out with a correct candidate block or you'd be wasting your resources. You don't need to "ask" the network anything other than the hash of the previous block. Also failed attempts _are_ factored, the hashrate is nearly all failed attempts except for the one winner once every 10min.
grisha
CC BY-SA 3.0
2018-02-13T18:33:55.203Z
PoW falls short for pure time tracking. If the hash rate were to suddenly drop 50% (as it would during a fork) sometime between difficulty adjustment, the network would slow down by approximately 50% and blocks would be mined twice as slow. It should also be noted that blocks are mined _roughly_ every 10 minutes and not every 10 minutes on the dot. It's why predicting forks at a block height is hard.

It can be trusted just like it is in DASH/Hyperledger. By being linked to a previous transaction and validated by the network. PoW does not accomplish validation. That is done by the full nodes
arshbot
CC BY-SA 3.0
2018-02-13T18:37:12.897Z
@GregoryTrubetskoy take a look at the link I posted above and [this link here from the wiki](https://en.bitcoin.it/wiki/Difficulty). 

Failed attempts are not factored
arshbot
CC BY-SA 3.0
2018-02-13T18:40:43.650Z
May be I've not done a good job of explaining it, but your comments seem besides the point I am making. I've written up about this explanation here in many more words, perhaps this explains it better: https://grisha.org/blog/2018/01/23/explaining-proof-of-work/
grisha
CC BY-SA 3.0
2018-02-13T18:53:09.787Z
You'd have to define what you mean by "failed attempt". The only role the network plays is in deciding the next block at a chain split, everything else is known. If by "failed attempt" you mean an orphaned block, then these are statistically insignificant, chain splits are common but rare. You cannot mine without a full node, BTW.
grisha
CC BY-SA 3.0
2018-02-13T18:19:24.757Z
2018-02-13T18:19:24.757Z
arshbot
<p>I have not seen anyone explain Proof-Of-Work this way, so I thought
I'd share it here, I'd be curious to know if I'm completely off.</p>

<p>It seems to me that PoW is simply a distributed decentralized source of
ticks, a clock, to which data can be "tied"?</p>

<p>The challenge of Proof-Of-Work is a singleton problem (for lack of a
better term), i.e. there is only one instance of it in the universe. This means that it is known to every participant, and anyone working on it is affecting the outcome. </p>

<p>Most importantly even if one is participating in <em>complete secrecy</em> until a solution is found, it still affects the outcome.</p>

<p>An analogy might be looking for the largest known prime. You
don't need to tell anyone you decided to find one, you only announce
when and if you actually find one. Your participation makes finding a
solution a possibility, whereas if no one ever looks for the largest
prime, it will never be found.</p>

<p>The difficulty algorithm adjusts in such a way that a solution is
found on average every 10 minutes. It's a distributed decentralized
clock which ticks on average once every 10 minutes. The miners make it
possible through their participation, and curiously, miners do not
need to tell anyone they are participating, they only need to
communicate with others if and when a solution is found.</p>

<p>The clock has an interesting property - you can tie data to its ticks,
simply by making the data the input to the SHA. A solved block is
nothing more than simply an event that happened exactly at the tick of
this clock. </p>

<p>And essentially this is all that Proof-Of-Work does for
the blockchain: it provides ticks of a clock, to which events can be
tied. Everything else is an "add-on" to this "feature", e.g. using the Merkle tree we can cryptographically record the ordering of the ticks. But without the "PoW clock" none of it would be possible. </p>

<p>Edit: these ticks do come at irregular intervals, so one wouldn't set their watch to it. But that doesn't matter for as long as it is approximately 10 minutes, which it is.</p>

<p>Edit: here is a much more detailed explanation: <a href="https://grisha.org/blog/2018/01/23/explaining-proof-of-work/" rel="nofollow noreferrer">https://grisha.org/blog/2018/01/23/explaining-proof-of-work/</a></p>

<proof-of-work>
Is Proof-Of-Work simply a decentralized clock?
grisha
# Is Proof-Of-Work simply a decentralized clock?

(Asked by: username_0 on 2018-02-13)

I have not seen anyone explain Proof-Of-Work this way, so I thought
I'd share it here, I'd be curious to know if I'm completely off.

It seems to me that PoW is simply a distributed decentralized source of
ticks, a clock, to which data can be "tied"?

The challenge of Proof-Of-Work is a singleton problem (for lack of a
better term), i.e. there is only one instance of it in the universe. This means that it is known to every participant, and anyone working on it is affecting the outcome.

Most importantly even if one is participating in *complete secrecy* until a solution is found, it still affects the outcome.

An analogy might be looking for the largest known prime. You
don't need to tell anyone you decided to find one, you only announce
when and if you actually find one. Your participation makes finding a
solution a possibility, whereas if no one ever looks for the largest
prime, it will never be found.

The difficulty algorithm adjusts in such a way that a solution is
found on average every 10 minutes. It's a distributed decentralized
clock which ticks on average once every 10 minutes. The miners make it
possible through their participation, and curiously, miners do not
need to tell anyone they are participating, they only need to
communicate with others if and when a solution is found.

The clock has an interesting property - you can tie data to its ticks,
simply by making the data the input to the SHA. A solved block is
nothing more than simply an event that happened exactly at the tick of
this clock.

And essentially this is all that Proof-Of-Work does for
the blockchain: it provides ticks of a clock, to which events can be
tied. Everything else is an "add-on" to this "feature", e.g. using the Merkle tree we can cryptographically record the ordering of the ticks. But without the "PoW clock" none of it would be possible.

Edit: these ticks do come at irregular intervals, so one wouldn't set their watch to it. But that doesn't matter for as long as it is approximately 10 minutes, which it is.

Edit: here is a much more detailed explanation: <https://username_0.org/blog/2018/01/23/explaining-proof-of-work/>

**Tags:** proof-of-work


---

## 2 answers

### Answer by username_1 on 2018-02-13. Score: 1 | Accepted answer

From [Satoshi's whitepaper](https://bitcoin.org/bitcoin.pdf):

> **3.Timestamp Server**
>
> The solution we propose begins with a timestamp server. A timestamp
> server works by taking a hash of a block of items to be
> timestamped and widely publishing the hash, such as in
> a newspaper or Usenet post [2-5]. The timestamp proves that the data
> must have existed at the time, obviously, in order to get into the
> hash. Each timestamp includes the previous timestamp in its hash,
> forming a chain, with each additional timestamp reinforcing the ones
> before it.
>
> **4.Proof-of-Work**
>
> To implement a distributed timestamp server on a peer-to-peer basis,
> we will need to use a proof-of-work system similar to Adam Back’s
> Hashcash ...

> **Comments:**
> **username_0**: Thank you, marking this as the right answer. I'm a tad embarrassed that I thought I knew the paper better than I did, but gratified I worked it out on my own. Interestingly the first source code (Nov 2008) frequently mentions "timechain" in the comments (main.h in http://satoshi.nakamotoinstitute.org/code/).  

---

### Answer by username_2 on 2018-02-13. Score: 1

Yes, PoW is a decentralized clock not just for tying information to a specific time (a timestamp can do this perfectly fine) but to prevent spam attacks on the blockchain itself.

The question comes up, how can you add data to everyone's ledger all at once continuously and efficiently? If there is a single tx at a time queue system then things will be unbearably slow.

If the ledger is open for everyone to add verified transactions then what's to stop someone from just adding transactions on transactions and filling up everyone's node?

PoW exists to solve this problem by creating something like a flood gate that allows only a set amount of transactions per time. The difficulty aspect of PoW exists to adapt to the changing nature of computing power against the network.

> The clock has an interesting property - you can tie data to its ticks, simply by making the data the input to the SHA. A solved block is nothing more than simply an event that happened exactly at the tick of this clock.

This is so an attacker can't just use the same verified data to add blocks and blocks of transactions. Think of a block mined by the miner as a one time use token that let's the block be added.

> An analogy might be looking for the largest known prime. You don't need to tell anyone you decided to find one, you only announce when and if you actually find one. Your participation makes finding a solution a possibility, whereas if no one ever looks for the largest prime, it will never be found.

This portion isn't entirely correct. For you to test if a block you've mined is correct (because mining is entirely a guessing game) you need to ask the network if the block is valid. More than likely the node you just asked will say no and you begin the search again.

Although I should note [that the amount of failed attempts is not factored by the difficulty algorithm](https://bitcoin.stackexchange.com/questions/5838/how-is-difficulty-calculated)

> **Comments:**
> **username_0**: "a timestamp can do this perfectly fine" - I don't see how, what is the source of it, how can it be trusted? My point is the PoW _is_ the timestamp-providing functionality. It's not about attackers, it is that the block happened exactly (not approximately) at the tick.  
> **username_0**: Also not sure what you mean by a block being correct. You need to start out with a correct candidate block or you'd be wasting your resources. You don't need to "ask" the network anything other than the hash of the previous block. Also failed attempts _are_ factored, the hashrate is nearly all failed attempts except for the one winner once every 10min.  
> **username_2**: PoW falls short for pure time tracking. If the hash rate were to suddenly drop 50% (as it would during a fork) sometime between difficulty adjustment, the network would slow down by approximately 50% and blocks would be mined twice as slow. It should also be noted that blocks are mined _roughly_ every 10 minutes and not every 10 minutes on the dot. It's why predicting forks at a block height is hard.  It can be trusted just like it is in DASH/Hyperledger. By being linked to a previous transaction and validated by the network. PoW does not accomplish validation. That is done by the full nodes  
> **username_2**: @GregoryTrubetskoy take a look at the link I posted above and [this link here from the wiki](https://en.bitcoin.it/wiki/Difficulty).   Failed attempts are not factored  
> **username_0**: May be I've not done a good job of explaining it, but your comments seem besides the point I am making. I've written up about this explanation here in many more words, perhaps this explains it better: https://username_0.org/blog/2018/01/23/explaining-proof-of-work/  
> **username_0**: You'd have to define what you mean by "failed attempt". The only role the network plays is in deciding the next block at a chain split, everything else is known. If by "failed attempt" you mean an orphaned block, then these are statistically insignificant, chain splits are common but rare. You cannot mine without a full node, BTW.  

---

