4 ms·
Sorry, but proof of work is not an immutability mechanism. Proof of work is only a way to randomly and incontestably select a participant when participation is
by p4bl0 4y ago
Sorry, but proof of work is not an immutability mechanism.
Proof of work is only a way to randomly and incontestably select a participant when participation is open and no one is trustable, i.e., a consensus mechanism (which, once augmented with other conventions (I'm thinking of choosing the longest chain), will also prevent double spending).
But what makes the blockchain immutable is the Merkle tree structure (each block containing the hash of its parent) and the distribution of the data (which is what guarantees that participants have a comparison point to detect modification). It would work the same without proof of work. A Git repository has the same exact property.
If anything, proof of work makes mutability easier since it is only required to compute partial collisions to have blocks considered valid.
- mmmmpancakes 4y agoConfidently incorrect.
- datadata 4y agoYou almost understand it, but are missing the actual role of proof of work. Merkle tree makes verifying the blockchain datastructure easier, and enables older blocks to be further secured by newer blocks. Proof for work however makes producing an entirely alternive blockchain expensive. When looking at the bitcoin blockchain, you can prove exactly how much energy was used to make it, and know that energy was not used for making any other variant. This means you can be confident the blockchain is not a altered forgery meant to defraud you, as this attack would require spending all of that energy again.
- p4bl0 4y agoYes, proof of work is a consensus mechanism. But modifying a block discreetly would require a full collision on its hash. Even without proof of work. This is what makes a blockchain immutable, and is not a specificity of blockchains, nor of PoW.
- datadata 4y agoI'm not talking about a discreet modification of the blockchain. When you bootstrap a bitcoin client, you need to be use that the blockchain is the real one without having to trust another party, otherwise someone could give you a completely different version. By incorporating proof of work, you can prove that the copy of the blockchain you have needed X amount of energy to create. This is what I sort of agree with you that immutability is not the right technical word for this property, but that is what I was getting at.
- p4bl0 4y agoBootstrapping a client requires the same trust in the source from which you're getting the blockchain history, with or without PoW. PoW doesn't play a role here. But you're right that immutability does. What can give you confidence is that the version of the blockchain that you got is consistent with what others have and can show you (i.e., that you will be able to be a part of the network). This is the "distributed" part of what make immutability. The amount of energy spent until then plays no role here.
- datadata 4y agoNo, you do not have to trust the source when bootstrapping a client. The proof of energy needed to construct the blockchain is what ensures that the copy you receive is likely to be a held as the consensus, since it would be prohibitively expensive to have multiple versions. Without an energy expenditure, the source could fabricate the entire blockchain just to attack you.
- p4bl0 4y agoI never said you had to trust the source, I said that the necessary level of trust is the same (and it is indeed zero). So yes, PoW can give you confidence, but it is unnecessary in practice. Well, let's say it's an additional security measure where something else more trivial is already enough. When you get a copy of the blockchain, verifying if all the Merkle tree structure (without even checking for the PoW) and comparing the last hash (or the few last hashes) with what you see on the network from other sources is enough to be sure that your copy is valid. Because providing you with a fake chain which still has the same last hash would require to have at some point (for the block the attacker –i.e., the source of your copy of the blockchain– wants to modify) found a full collision, which is much more difficult than computing alternative valid PoW. So yeah, here PoW can give you confidence in the copy of the blockchain you get without having to even minimally interact (just looking at a blockchain explorer not controlled by your source for example) with others. But the whole point of the tech is to interact otherwise you don't need to bootstrap a client. So this refinement makes little to no sense.
- chriswarbo 4y agoAlmost. Proof-of-work is an anti-spam mechanism (originally invented for email, as Hashcash). Bitcoin needs this, since it treats the longest chain as "correct". For example, if we used a public-writable git repo to track our cryptocurrency transactions, it would have the Merkle structure required for append-only/immutable-history. However, we could get lots of diverging branches; e.g. +--- Commit sending all my money to Alice | Parent commit --+ | +--- Commit sending all my money to Bob Who gets my money? The consensus mechanism used by Bitcoin will choose the branch with the longest history. In the above case they're equal, so we wait until some more commits appear. If more commits appear on the Alice branch, then that's chosen as the "correct" one. However, Bob can later spam a bunch of commits on top of the other branch (e.g. just sending one coin back-and-forth), until that branch becomes the longest. The consensus will then change, to consider that branch as the "correct" one, and Alice loses all the money (as does anyone she previously sent it to!). Proof-of-work makes this spamming much harder. All miners will be trying to add blocks to the longest branch they're aware of (picking arbitrarily, in case there are multiple), since it's unlikely any shorter chain will be able to overtake it (this is a largely self-fulfilling prediction!).
- p4bl0 4y agoI know all this, thanks. Preventing double spending is a feature of the consensus mechanism indeed, if it is augmented with other rules (longest chain wins), but immutability does not rely on it, as I said in the comment you are replying to. EDIT: I've updated my previous comment to make it clearer that what I'm saying is "PoW is not an immutability mechanism" (to which answering "you are wrong, PoW prevents double spending" makes little sense).