As a quick intro post I thought I’d write about the basics of proof-of-work (PoW), why it’s important in achieving decentralization, what PoW is not, and list some downsides that various altcoins have cited in their efforts to switch over to alternative models of achieving consensus.
Importance for decentralization
A peer-to-peer network of participants, or nodes, working towards consensus must have some way to agree on how to proceed in building some set of data that consensus is being formed around. That data, or the blockchain, must be added to in a way that avoids corresponding with some central source (a server, for instance) but allows individual nodes to take turns deciding how to append to the data.
Remember that blockchains are read-only.
One of the most fundamental requirements the digital consensus space is the existence of some resource that is hard to come by. Otherwise the network would be vulnerable to Sybil attacks and allow a single node in the network to create many pseudonymous identities, allowing them to gain a disproportionately large influence in the network’s overall goals.
In PoW, the resource is computational power. Essentially, in order to append a new data block that a node is proposing, a node must search a very large space of “nonces” in order to find one that satisfies a set of conditions.
For some node to append a new block B, identified by hash(B), the node must also find and broadcast some nonce n such that:
hash(hash(B) + n) < D
where D is the currently agreed-upon difficulty of the system.
By broadcasting an appropriate nonce along with a proposed block, a node has proven that it has used a certain expected amount of some resource (computational power) that cannot be duplicated and reused on another node.
What PoW is not
I thought this concept belonged in a section of its own, as it’s important to understand that PoW and block mining only explains a part of the security of a blockchain ecosystem, that is, why PoW makes a network resistant to Sybil attacks.
It doesn’t ensure that a rogue node won’t appear on the network and try to manipulate or restrict transactions.
A few notable downsides to PoW are: