5 ms·
I just looked into the paper [1] for the first time but it says exactly what I wrote. Hashes in the blocks linking to previous blocks establish the ordering of
by danbruc 9y ago
I just looked into the paper [1] for the first time but it says exactly what I wrote. Hashes in the blocks linking to previous blocks establish the ordering of transactions, proof of work limits the voting power of participants. The terminology could be somewhat more precise in distinguishing between the different components and their roles but it is still rather unambiguous about what does what.
Chapter 3 - 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.
Chapter 4 - Proof-of-Work
The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority
decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains.
[1] https://bitcoin.org/bitcoin.pdf https://bitcoin.org/bitcoin.pdf
- gtrubetskoy 9y agoYou 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.