Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Nope. You find a good hash at a specific point in time, but that is nothing special, every event happens by its very definition at a specific point in time. Committing a database transaction, potentially including finical transaction records, occurs at a specific point in time.

But that is all without consequences, nobody will know about this event until you broadcast and they receive your block. And the message about the new block will arrive at different nodes at different times. End if you are really inclined to pull physics into this - which in my opinion hardly makes any sense - you have to face the fact that simultaneity is relative.

So you are really not tying the discovery of the new block to any specific point in time. Everything anybody can really say is that it happened before they received the block and after the block that is referenced by the previous block hash was mined which itself may have happened any time before they first received that block.

The previous block hash establishes a happened before relation between the events of creating the blocks in the chain and including a transaction in a block establishes a happened before relation between the creation of the transaction and the creation of the block. But nothing ties anything to any specific point in time. And proof of work plays no role here at all, you can simply calculate a single hash of a block and send it to me and that proofs that the block existed before I received that hash, no need to work hard to find a fancy hash with many leading zeros.



The valid sha ties this block to the exact point in time at which the solution was found. We can't know exactly what time in hh:mm:ss that was, but we do know the chain height, and the height is how "blockchain time" is told.

The fact that the block time (i.e. height) is when the conforming SHA was found is indisputable. Also that no other block happened at this same point in time.


The valid sha ties this block to the exact point in time at which the solution was found.

It does not, it just sets a lower bound on the time. I can totally mine a block linking directly to the genesis block today. All it proofs is that it happened after the previous block was created. And so does SHA(<GenesisBlock>) without any mining.

Also that no other block happened at this same point in time.

Also not true, I can totally mine several blocks all linking back to the same block. And with some luck that might also happen at the exact same point in time.


May be to understand it better consider the blockchain (i.e. how ticks are recorded) vs the actual ticks as they happen in "real life".

At the risk of sounding like a broken record: when the SHA puzzle is solved is the exact point at which the block which is the input to the SHA is mined. I sounds almost "duh - what other time could it be?", but upon some reflection, this is quite remarkable, because a point in time is tied to a block of data.

The rest of it, e.g. what block that block points to as a parent, is secondary and not that interesting.


At the risk of sounding like a broken record: when the SHA puzzle is solved is the exact point at which the block which is the input to the SHA is mined. [...] because a point in time is tied to a block of data.

I don't get it, so let's try once again. You mine a block, say this [1] one. How is it tied to any particular point in time? It includes a time stamp but that is not the time the block was mined, the block may have been mined before or after that point in time, no way I can tell just from looking at the block.

There is also the hash of the previous block [2] in there but that does not tell my at which point in time the block was mined either. The only thing I can conclude is that the block was mined after the block referenced by the previous block hash but there is no indication of how much time passed in between. And looking at the previous block does not help either because there is nothing in there indicating any point in time.

Or even better, let's do a thought experiment. With a fast enough computer I could have performed all the calculations of the last ten years that led to the Bitcoin block chain as of today within the first hour after the genesis block was mined on January 3rd 2009. Identical to the very last bit. But none of the blocks would have been mined at the same point in time as they were in the actual Bitcoin block chain. I obviously would not have known any of the transactions that would occur over the next ten years but I could of course have guessed them.

Or let's not be that wild and mine the entire Bitcoin block chain within one hour, let's just imagine all the blocks were mined one second earlier than they actually were. This hypothetical Bitcoin block chain could also be identical to the very last bit to the actual one but again none of the corresponding blocks would have been mined at the same point in time. And the fact that two bit-identical block chains could exist but where no two corresponding blocks were mined at the exact same point in time proves that nothing in there ties any block to a specific point in time.

[1] https://blockchain.info/block/0000000000000000001f6d740116db...

[2] https://blockchain.info/block/0000000000000000001a1c88ce0b57...


OK, at the time the solution was found, and the miner went "hooray I solved a block!". That's exactly when the the blockchain clock ticked and on that tick the block was mined.

You can't know precisely what "human" time it was in hh:mm:ss, nor does it matter (because the blockchain operates in its own clock). But you do know the "blockchain time" (which is the parent height + 1).

Your first example block was mined exactly at blockchain time known as "height 518807" the second at 518806.

Note that the (first) block happened exactly, not a femtosecond before or after, but exactly at "height 518807". Such precision is not possible with our "human time".


Okay, now I understand what we are talking about but I still don't find it remarkable in any way. I can come up with an endless number of similar processes. For example the FTP clock. I have a public FTP server and at some point in time I create a directory named 1. Then I open that directory and create a subdirectory named 2. Then 3 another level deeper. And 4. And... I don't see what is special about such a process.

Also note that this is not precise in any meaningful sense, neither in the case of Bitcoin nor in the case of my FTP clock, we are just labeling random points in time with names like »the point in time I found block 12345.« or »the point in time I created the subdirectory 42«. I could throw a plate against a wall at label that as »the point in time that plate hit the wall«.

This labeling does not establish any regular interval, it does not help identifying what this point in time was or what else happened at this point in time. It's a trivial tautology, every event happens at exactly the point in time it happens. And every clock is as precise - in your sense - as Bitcoin, the exact point in time this clocked switched from 11:59:59 to 12:00:00 is not different at all from the exact point in time you minded block 12345.

Maybe that clock was actually 5 minutes fast and it was really only 11:55:00 but that is inconsequential for the way you use »price«, every tick of that clock still labels a precise point in time. But an actual good clock is useful because it assigns labels like »2018-04-18 19:49:17« at regular intervals with some precision depending on the nature of the clock. Bitcoin, the FTP clock, and the plate hitting the wall are useless in that sense because the relation between points in time and the assigned label are to a large extend random. You could use Bitcoin as a crude clock with an time resolution of about ten minutes but that is not a good clock.

Finally note that the Bitcoin clock does not even really tick at the point in time you mined a block because that block might get orphaned or simply rejected for whatever reasons. Only in hindsight can you say that it ticked when this or that block was mined, once there are enough blocks on top of it that it becomes reasonably unlikely that another chain might become the longest one.

Wait, finally finally. What is the point in time you mined block 12345 exactly? There are zillions of subatomic particles moving around in you mining hardware, how would you ever be able to pin down precisely when you mined a block? Did you mine it now or do you have to wait until this electron over there also passes through that transistor here and increase the charge on the capacitor to the left another tiny bit? When you really think about it, the point in time you mined block 12345 becomes quite a fuzzy concept at the microscale. And so even before you start thinking about the uncertainty principle or relativity.


> What is the point in time you mined block 12345 exactly?

It is precisely this problem that Proof-of-Work (they way it's used in Bitcoin) solves.

OK, I think I'm beat trying to explain this :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: