6 ms·
You are right that PoW does not establish order. The PoW "ticks" have a temporal order, but the way it is represented in the blockchain is cryptographically usi
by gtrubetskoy 9y ago
You are right that PoW does not establish order. The PoW "ticks" have a temporal order, but the way it is represented in the blockchain is cryptographically using a Merkle tree, and there is no "rule" that the real life appearance of "ticks" must match the blockchain order.
Note that the paper says "_also_ solves", implying that the "representation in majority decision" part is secondary. If you think about it, the winning miner does not really get to decide anything at all, since the block has to exist before the winning SHA is found since it is the input to the SHA.
- danbruc 9y agoI would argue the »also« is misplaced, that is really the only thing thing that the proof of work does. If you read the chapter, there is only an explanation how it works before the »also« but nothing else that is solved by the proof of work. And the miner does get to decide which transactions get included in the block, it creates the block, the block does not exist before.
- gtrubetskoy 9y agoThink of it this way: the block is the input to SHA. When the puzzle is solved, that block happens exactly at the time the puzzle is solved, and no one cannot dispute it. There is no other way (or at least none that I can think of) to link a pile of data to a point in time. The only way you'd get this level of accuracy with a traditional clock is if you could measure/record Planck Time, which isn't possible and might never be. And if we could have Planck Time accuracy clocks, such a timestamp wouldn't come with a cryptographic proof like the PoW timestamp. Everything else is secondary, an add on. The ordering is determined be the longest chain, recorded as a Merkle tree, transactions are tied by the strength of Elliptic Curve crytpography, miners motivated by rewards, etc. But without that timestamp, none of it would work.
- danbruc 9y agoNope. 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.
- gtrubetskoy 9y agoThe 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.
- danbruc 9y agoThe 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.
- gtrubetskoy 9y agoMay 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.
- danbruc 9y agoAt 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/0000000000000000001f6d740116db21368fa94b47984662635de5bcd8988ea8 https://blockchain.info/block/0000000000000000001f6d740116db... [2] https://blockchain.info/block/0000000000000000001a1c88ce0b577a03316b615ab1f6bf55f6ca498461d107 https://blockchain.info/block/0000000000000000001a1c88ce0b57...