Consensus protocol
OmbraChain combines three independent reward mechanisms that together form the consensus:
| Mechanism | Reward subject | Trigger | Section |
|---|---|---|---|
| PoATU | Miner that produced AI inference | TASK_REWARD per task | PoATU |
| PoTU | Block proposer | Every block (burn-based) | PoTU |
| Validator Attestation | Validators that signed last block | Fixed reward at proposal | Attestation |
Plus universal rules:
- All txs are Ed25519-signed and canonically hashed
- Block production is deterministic per proposer slot
- Fee splits and burn rates depend on fork height (see Forks)
Flow per block
1. Mempool collects signed txs
↓
2. Proposer slot opens (round-robin via attestation list)
↓
3. Proposer assembles block:
- Selects pending txs ordered by fee desc, then arrival
- Computes block hash = sha256(canonicalJson(blockHeader))
- Signs block with Ed25519
↓
4. Validators receive block, verify:
- Block hash matches re-computed hash
- Proposer signature valid
- Every tx signature valid
- Every tx state-transition valid
↓
5. Validators broadcast ATTESTATION (signed block hash)
↓
6. Once attestation quorum reached, block is final
↓
7. Rewards applied:
- TASK_REWARD txs in block → PoATU to miners
- Proposer earns block burn floor (PoTU)
- Validators that attested → ATTESTATION_REWARD
Comparison
| Feature | PoW (Bitcoin) | PoS (Ethereum) | PoATU (OmbraChain) |
|---|---|---|---|
| Energy use | High (hash brute force) | Low (stake-weighted) | Medium (AI inference) |
| Work outcome | Discarded hashes | None — pure attestation | Usable AI output (chat, images, code) |
| Reward source | Coinbase + fees | Fees + issuance | Task fees + thinking tokens |
| Hardware lock-in | ASIC-friendly | Any node | GPU-friendly (LLM inference) |
| Sybil resistance | Hash power cost | Stake size | Provable AI work + attestation |
Determinism
Two independent nodes that replay the same block sequence MUST reach byte-identical state. This requires:
- Canonical JSON — insertion-order serialization, no whitespace, BigInteger fields stringified
- Sorted iteration — any map iteration in state transitions uses sorted keys
- No system time — txs carry their own timestamps, never use
Date.now()in apply logic - Bounded numeric — all amounts in
BigIntmicro-OMBRA, never floats
Cross-language SDKs (TS, Python, Java, C#, C++, Rust, Go) all produce bit-exact tx hashes from the same input.
Next: PoATU →