Every account its own chain: inside the block lattice
Traditional blockchains put every transaction in one line. XE gives every account its own chain instead. Here's how the lattice works and why it's fast.
The block lattice is the data structure at the heart of XE. Most blockchains order every transaction into a single global chain: one shared queue, and every wallet waits its turn. The lattice gives every account its own chain instead.
Account chains#
Every address has a chain of blocks. Each block's Previous field points to the hash of the block before it on the same chain. The first block, the open block, has Previous set to "0".
Because an account only ever appends to its own chain, it never waits for anyone else. A thousand accounts can each add a block at the same moment, in parallel.
Moving value takes two blocks#
- A send block on the sender's chain debits the sender and names the destination and amount. This creates a pending send.
- A receive block on the recipient's chain credits them. Its
Sourcefield references the send block's hash, consuming the pending send.
Those cross-chain references are what tie the independent chains into one structure: a directed acyclic graph, the lattice.
Validation without a global vote#
A block is checked locally: its signature (ed25519), the balance change, and a small proof-of-work (blake2b) that makes spam expensive. None of that needs the rest of the network to agree first, which is why normal operation doesn't use consensus at all.
Consensus only runs when an account tries to publish two different blocks at the same position in its chain. That's the next post: consensus only when something goes wrong.