A <i>hashchain</i> (a proper name for a blockchain) is a linked list composed out of hashpointers.<p>A <i>hashpointer</i> is like a regular in-memory pointer, but instead of using an address of the memory word where the value is stored, it uses a hash of the value it's pointing to. Unlike the regular pointers, changing the value will invalidate the hashpointer as the hash of the value will change.<p>As the hashchain may have an infinite number of <i>heads</i>, there need to be a consensus on what is considered a correct head. Unfortunately this problem is unsolvable.<p>The "Crypto" community proposed many <i>consensus</i> methods, but most of them are just Rube Goldberg machines. <i>Nakamoto-style consensus</i> algorithms are just <i>leader election</i> based on the <i>out-of-band externalities</i>, such as assigning a <i>speculative value</i> to hashpointers (or derived datastructures).