This algorithm is simplified in that is assumes the ability to select a random node in a manner that is not vulnerable to Sybil attacks.
- New transactions are broadcast to all nodes.
- Each node collects new transactions into a block.
- In each round, a random node gets to broadcast its block.
- Other nodes accept the block only if all transactions in it are valid (un-spent, valid signatures).
- Nodes express their acceptance of the block by including its hash in the next block they create.
Narayanan, Arvind, et al. (2016). Bitcoin and Cryptocurrency Technologies. United States: Princeton Press