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
Thresholddistinct keys from the currentDAOKeyset. - 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 |
Related pages¶
- Governance -- DAO keyset, multisig validation, chain mechanics
- Operations -- set/delete operations and the KV store
- Sync -- state chain synchronisation between peers