Skip to content

State Chain

The state chain is a deterministic replicated state machine for DAO governance and network configuration. It is separate from the block lattice -- while the lattice is an account-per-chain DAG, the state chain is a single linear chain of blocks containing key-value operations signed by a quorum of DAO members.

Purpose

The block lattice handles asset transfers and compute leasing. The state chain handles everything else:

  • DAO keyset management -- which public keys can sign governance decisions, and how many are needed (quorum threshold).
  • Timekeeper configuration -- which nodes are trusted to attest timestamps for lease operations.
  • Network parameters -- emission rates, difficulty targets, and other protocol settings.
  • Governance decisions -- any key-value data the DAO needs to publish to the network.

Architecture

┌───────────────────────────────────────────────┐
│                  State Chain                   │
├───────┬───────┬───────┬───────┬───────┬───────┤
│ Block │ Block │ Block │ Block │ Block │ Block │
│   0   │   1   │   2   │   3   │   4   │   5   │
│genesis│       │       │       │       │  tip  │
└───────┴───────┴───────┴───────┴───────┴───────┘
    │       │       │       │       │       │
    ▼       ▼       ▼       ▼       ▼       ▼
┌───────────────────────────────────────────────┐
│              In-Memory KV Store               │
│  sys.dao_keyset → {keys:[...], threshold:2}   │
│  sys.timekeepers → {keys:[...], threshold:1}  │
│  config.param_x → "value"                     │
└───────────────────────────────────────────────┘

Each block contains one or more operations (set or delete) that modify the KV store. When a block is applied, its ops update the in-memory state. The KV store is rebuilt on startup by replaying all blocks from genesis.

Key properties

  • Linear. One chain, one tip. No forks under normal operation (forks trigger a callback for alerting).
  • Multisig. Every block must be signed by at least Threshold distinct keys from the current DAOKeyset.
  • Self-referential. The DAO keyset is itself stored in the KV store under sys.dao_keyset. The keyset can be updated by the keyset -- governance evolves itself.
  • Deterministic. Every node replays the same blocks and arrives at the same KV state. No non-deterministic inputs.
  • Separate storage. State chain blocks are stored independently from lattice blocks in the backing store.

Comparison with the block lattice

Property Block Lattice State Chain
Structure DAG (account-per-chain) Linear chain
Signers Individual account holders DAO quorum (multisig)
Content Asset transfers, leases Key-value operations
Consensus Delegation + voting Threshold signatures
Forks Conflict detection + resolution Fork detection + alert
  • Governance -- DAO keyset, multisig validation, chain mechanics
  • Operations -- set/delete operations and the KV store
  • Sync -- state chain synchronisation between peers