A protocol for verifying cryptocurrency transactions. Nodes use their computing power to prove themselves sufficiently trustworthy to be allowed to add new information about transactions to the network.