Block Lattice

Per-account chains, cross-chain links, and the thirteen block types.


Every account address corresponds to a chain of blocks. Each block's Previous field points to the hash of the preceding block. The first block has Previous set to "0".

Transfers require two blocks:

  1. A send block on the sender's chain debits the sender (creates a pending send)
  2. A receive block on the recipient's chain credits the recipient (consumes the pending send)

The sender and receiver do not need to be online at the same time.

Account chains open with a crediting block — receive, mint, multisig_open, or genesis:

Alice            Bob              Carol
┌─────────┐      ┌────────┐      ┌─────────┐
│ recv    │      │ recv   │      │ recv    │
│ bal: 10 │      │ bal: 5 │      │ bal: 10 │
└───┬─────┘      └───┬────┘      └───┬─────┘
    │                │               │
┌───▼─────┐      ┌───▼────┐      ┌───▼─────┐
│ send    │─────▶│ recv   │      │ send    │
│ to: Bob │      │ src:   │      │ to: Bob │
│ amt: 5  │      │ bal: 10│      │ amt: 3  │
│ bal: 5  │      └───┬────┘      │ bal: 7  │
└─────────┘          │           └─────────┘
                 ┌───▼────┐
                 │ recv   │◀── from Carol
                 │ bal: 13│
                 └────────┘

Properties

  • No contention between accounts (parallel processing)
  • Instant finality for non-conflicting transactions

XE Extensions

  • Dual assets (XE and XUSD)
  • Additional block types (lease, lease_accept, lease_renew, lease_settle, …)
  • State chain for governance
  • blake2b PoW as anti-spam
  • Voting weight from delegated XE balances (XUSD is mintable and confers none)

Block Types

Thirteen block types are defined:

TypeByteAssetDebitsCredits
send0x01XE or XUSDsender—
receive0x02XE or XUSD—recipient
lease0x04XUSDconsumer (escrow)—
lease_accept0x05XUSD— (no stake on the current network)—
lease_settle0x06XE—provider (emission); the XUSD escrow is burnt
genesis0x07XE—treasury (42,000,000 XE)
multisig_open0x08XE or XUSD——
multisig_update0x09XE or XUSD——
lease_cancel0x0AXUSD—consumer (refund)
burn0x0BXEself—
lease_force_settle0x0CXUSD—consumer (refund)
mint0x0DXUSD—minter (new supply)
lease_renew0x0EXUSDconsumer (additional escrow)—

0x03 is a retired, unallocated gap: the permissionless claim type was removed — XUSD now enters circulation only via mint blocks on accounts registered under the state chain's sys.minter key. Genesis is XE-only and its balance must equal GenesisSupply (42,000,000 XE).