Byzantine Generals Problem
The Byzantine Generals Problem describes the difficulty decentralized parties have in arriving at consensus in a game theoretically safe manner. To solve this problem, all parties must agree on a method of trustlessly determining truth.
The game analogy used is that several generals are besieging Byzantium. They have surrounded the city, but they must collectively decide when to attack. If all generals attack at the same time, they win, but if they attack at different times, they lose. The generals have no secure communication channels with one another because any messages they send or receive may have been intercepted or sent by Byzantium’s defenders.
Bitcoin solves the Byzantine Generals Problem by implementing a Proof-of-Work mechanism. Blocks are deemed valid by all members of the network only if they contain a valid Proof-of-Work in the form of a valid hash. This allows decentralized nodes to agree on a specific blockchain in a trustless manner. This hash does not prove anything about a block other than the fact that work was expended to produce it. However, the work required to produce a block discourages miners from producing invalid or empty blocks, which would spam the network. Miners are additionally incentivized to create valid blocks by the block reward—the new bitcoin they are allowed to mint and the transaction fees they collect.