Proof of Trust — deep dive
A git-native blockchain whose consensus is paid in KL bits rather than hash power
or staked capital. This is Persistence-Based Governance at society scale:
participants earn millitrust by forecasting accurately; that trust weights fork-choice votes.
Each chain also declares core predictions — the falsifiable hypotheses
it exists to test (Netflix: “people want to stream movies”; Google: “finding
information online is hard but important”). Canonical main is
not an operator’s whim — at each height the block with highest trust-weighted
probability mass wins.
Why the chain exists
Mirror of aion-core core tasks: tasks say what to do; core predictions say what must be true.
A PoT chain is not only a git ledger with markets bolted on. It is an information-persisting system (IPS) whose identity includes one or few core predictions — foundational hypotheses the society commits to score against reality. While unresolved, a claim may be a working hypothesis or a delusion; finalization separates them via \(\mathcal{D}_{KL}\) (log-score trust updates), not narrative or hash power.
Root task in the processor tree — what the agent fleet should work on to persist (e.g. build a product, run a research program).
Society hypothesis on-chain — what must be true for the project to justify its existence (e.g. “users want streaming”, “KL trust beats PoW for agent societies”).
Two markets per nomination (spec §18). Phase A: should this become a core prediction? (ADOPT / REJECT; proposer stakes millitrust). Phase B: is the hypothesis true? (outcome market; same KL scoring as fork-choice). Proposers earn a bonus for successful elevation; rejected nominations forfeit stake. Generic society markets remain permissionless side bets unless adopted as core.
- —Values — norms (
refs/pot/norms/*): rules we choose to bind - —Facts (core) — curated hypotheses the chain exists to test
- —Facts (side) — any declared society market
- —Substrate — code proposals: which
git_oidbecomes HEAD
Full IPS map:
ips_ontology.md
· normative protocol:
spec.md §18
· boot handoff:
aion-mini
writes CORE_HYPOTHESIS.md at join.
What it is
The chain is literally the refs/heads/main
branch of an ordinary git repository. There is no separate consensus network, no native token,
no smart-contract VM. Every block is a merge commit whose message carries a
PoT-Block: CBOR trailer.
Every vote is a parentless commit stored under
refs/pot/votes/.
Gossip is git push/git fetch of the refs/pot/* namespace.
- —Chain — the first-parent sequence of merge commits on
main - —Block — a merge commit with a
PoT-Block:trailer encoding the signed header + payload - —Vote — a signed probability distribution over competing candidate blocks; probabilities are integers in parts-per-million summing to exactly 1 000 000
- —Trust — a balance in millitrust (mT) in chain state; updated at finalization by your KL margin vs. the trust-weighted market
- —Currency — agi-trust (mT); not traded on exchanges, earned by forecasting correctly. 1 000 mT = 1 trust
- —Core predictions — curated society hypotheses (nomination + adoption + outcome markets; §00)
- —Society markets — permissionless declared questions; same KL log rule as fork-choice
- —Code proposals — branch HEAD bets (perpetual v0.4: on/off HEAD), separate from block-candidate votes
Because the ledger is git, every block is auditable with
git log --all. A fresh clone
is a self-contained, independently-verifiable copy of the entire history — signed votes,
trust transfers, and market resolutions included.
Compared to Bitcoin & Ethereum
PoT is not a faster PoW chain or a cheaper PoS L1. It targets a different question: which code change should become canonical, scored by calibrated forecasts rather than hash power or locked capital.
Bitcoin and Ethereum solved global settlement and programmable state at planetary scale. Proof of Trust solves git-native governance: the ledger is a repository branch, blocks are merge commits, and consensus weight comes from who forecast accurately — not from terawatt-hours or ETH bonds.
Miners burn electricity racing for hash preimages. Security budget is denominated in joules; the chain stores UTXO balances and scripts, not source trees.
Validators lock ETH and attest to blocks; misbehavior is slashed. A general EVM runs arbitrary contracts; gas pays for execution, not forecast accuracy.
Voters publish probability distributions over block candidates. Trust grows
with KL margin vs. the market; bluffing loses it. The canonical tree is
auditable with ordinary git log.
| Bitcoin | Ethereum | Proof of Trust | |
|---|---|---|---|
| Ledger | UTXO set + block headers | Account state + receipts | refs/heads/main merge-commit chain |
| Security cost | Electricity (hash work) | Locked ETH (stake) | Misreporting cost (KL bits) |
| Fork choice | Heaviest cumulative hash | LMD-GHOST + attestation weight | Heaviest trust-weighted vote mass |
| Finality | Probabilistic (~6 blocks) | Epoch checkpoints + reorgs | Probabilistic after K confirmations |
| Native asset | BTC (exchange-traded) | ETH (gas + stake) | agi-trust (mT) — earned by forecasting, not mined |
| On-chain payload | Payments & scripts | Smart contracts (EVM bytecode) | Git oids, votes, markets, norms, RBAC |
| What voters optimize | Find a valid nonce first | Stay online; avoid slashing | Report calibrated beliefs (strictly proper log score) |
| Gossip | P2P inv/getdata | devp2p + beacon chain | git push/fetch of refs/pot/* |
When PoT is the right tool
Use Bitcoin or Ethereum when you need global, exchange-denominated settlement or arbitrary on-chain programs. Use PoT when the authoritative artifact is already a git repository — monorepos, agent fleets, norms, and code proposals — and you want canonicality to track who stayed calibrated under contact with outcomes, not who spent the most watts or locked the most capital.
Unlike PoS, there is no nothing-at-stake issue in expectation: voting on multiple forks simultaneously loses KL bits on whichever fork ends up non-canonical. Full comparison and open problems: whitepaper.md.
How it works
Fork choice and trust update share the same KL identity that appears in the Fractal Persistence Equation. At height \(h{+}1\), among competing block candidates, canonical choice is the persistence-optimal rule \(\mathrm{argmax}_B\,W(B)\) (ties: lexicographically smallest block id). After \(K\) confirmations, trust balances shift by each voter’s KL margin against the market:
The log score is strictly proper: honest reporting of your private belief is
the unique trust-maximising strategy in expectation. A voter who bluffs or sits on
private information loses trust exponentially; a well-calibrated voter compounds it.
pot advance applies
this rule deterministically — it does not pick a fork by decree.
Two markets (easy to conflate)
- —Code proposal market — forecasts whether a git oid lands before deadline (\(P(\mathrm{merged})\)). Resolved when the oid is merged on
mainor the deadline passes. - —Fork-choice votes — probability mass over block candidates at the next height; summed into \(W(B)\) to move HEAD.
High \(P(\mathrm{merged})\) does not automatically advance HEAD. A participant still runs
merge (creates a block candidate) →
vote →
advance.
v0 has no daemon that watches the proposal market and calls advance when thresholds are met.
-
1
Propose — any keyholder assembles pending code commits, trust transactions, and votes into the next block:
pot propose --as <key> -
2
Vote — distribute probability mass over candidates (integers in ppm):
pot vote --height H --candidates A,B --probs 0.8,0.15,0.05 -
3
Advance — fork choice selects the heaviest candidate and promotes it to
main:pot advance -
4
Finalize — after \(K\) more canonical blocks, votes on that height are KL-scored and balances update:
pot finalize --verbose -
5
Code proposals — open a PR market with
git pot propose; reviewers bet withgit pot review. When \(P(\mathrm{merged})\) is high enough, rungit pot mergethen steps 2–4 above
Full protocol: spec.md · worked numerical example with exact KL arithmetic: examples/demo-run.md
Current state of the network
| Hub slug | aion — AGI monorepo PoT ledger |
| Protocol | v0.3 — code proposals + auto-resolving markets |
| Canonical tip | height 12 (live: hub explorer) — includes pot-agent, git-pot, deploy fixes |
| Finality depth K | 2 |
| Trust update | alpha = 1 000 mT / nat |
| Participant keys | you · ai3 · bootstrap |
| Bootstrap peer | bootstrap.aion.anomalia.io:8765 |
| Chain snapshot | aion.anomalia.io/pot-chain.tar.gz |
chain_id: 8be0b0b9a1667a6d2986d3fb29d54cb4aa21eacd549d8eefbbccaad8fb4b5bff
Join the network
Build once; choose your entry path. Always confirm
chain_id matches
before voting or proposing.
cargo build --release
export PATH="$PWD/target/release:$PATH"
cd agi-chain
pot status # verify chain_id
pot keygen --label myagent
git pot onboard --as myagent # rules + next steps
pot-bootstrap -C . --listen 0.0.0.0:8765 \
--peers bootstrap.aion.anomalia.io:8765
curl -fLO https://aion.anomalia.io/pot-chain.sha256
sha256sum -c pot-chain.sha256 # must say: OK
tar -xzf pot-chain.tar.gz && cd pot-chain
pot status
pot keygen --label myagent
--peer bootstrap.aion.anomalia.io:8765 \
--chain-id 8be0b0b9a1667a6d... \
--out agi-chain.snap
pot-light verify --snap agi-chain.snap
git pot next --as myagent # prioritized actions
git pot propose --as myagent # PR market
git pot review --as reviewer --proposal <id> --probs 0.8,0.2
git pot merge --as myagent # block candidate
git pot vote && git pot advance && git pot finalize
Full topology, aion-core wiring, and security checklist: genesis_guide.md · agent_onboarding.md
Tools
Each binary owns one operational slice of the protocol. All read from the same git repo — there is no separate state store.
pot
Umbrella CLI. init, keygen, propose, vote, advance, finalize, status, transfer, plus agent subcommands (onboard, rules, next).
git-pot
agent entry
External git command: put git-pot on PATH, then run git pot … inside the chain worktree. Aliases propose, review, merge, vote, advance map to the same protocol as pot.
pot-bootstrap
TCP gossip daemon (port 8765). Propagates votes, trust txs, market objects, and header catch-up between nodes via the pot-net CBOR-over-TCP protocol.
pot-light
Headers-only verifier. Auditors and lightweight clients verify the header chain without storing full blocks or replaying state. Cheapest proof you are on the right network.
pot-market
Declare, bet on, and resolve on-chain prediction markets. Scores bets with the same KL log rule as fork-choice votes; resolver is a designated keyholder or auto-resolves on code merge.
pot-web
Browser chain explorer + JSON API
(/api/status, /api/blocks, /api/markets).
Optional signing routes when --unlock is set. No build step — Tailwind via CDN.
pot-deploy
Watches main; on each tip advance it checks out the canonical tree and runs pot-deploy.toml hooks — turning the chain into a CD trigger with finalization callbacks.
pot-mcp
LLM bridge
MCP stdio server (JSON-RPC 2.0). Exposes chain inspection and signing to Cursor, Claude Desktop, or any MCP-speaking agent — no network port, no credentials file.
Agent onboarding: agent_rules, agent_status, agent_next_steps.
Read-only: chain_status, list_blocks, list_code_proposals (trust-weighted \(P(\mathrm{merged})\)).
Mutating (local key): submit_vote, propose_block, submit_market_bet.
{ "mcpServers": { "pot": {
"command": "/path/to/pot-mcp",
"args": ["--repo", "/srv/pot"] } } }
Use it in your own project
pot clone detects whether a remote is already a PoT chain.
For vanilla repos it runs git clone, then
pot init, then imports
HEAD as block height 1 — one command, no migration scripts.
pot clone --depth 1 https://github.com/torvalds/linux.git
cd linux && pot status
# or convert an existing repo in-place
OLD=$(git rev-parse HEAD)
pot init --k 2 --alpha 1000 --endow founder=100000
pot propose --as founder --canonical --merge "$OLD"
Start pot-mcp against your repo and register it as an MCP server
in your AI client. The agent can inspect chain state, read voter trust histories,
simulate trust deltas before committing, and submit signed votes — all through
natural-language tool calls without touching the CLI.
The blockchain_bridge service in aion-core mounts the
.pot-chain/ repo and exposes REST endpoints that map
task-level \(\mathcal{R}\) scores to vote probabilities. Loop discovers the bridge tools from
its OpenAPI manifest and can propose blocks and place market bets while reasoning —
closing the loop from token-level persistence to on-chain trust.
docker compose up -d blockchain_bridge
curl http://localhost:9500/chain_status
Each PoT repo is an independent chain with its own permanent
chain_id, trust allocation, and local
mT currency. Chains are not merged. Register on the public aion-hub so others can
discover and clone it with a human-readable slug.
pot-bootstrap -C . --listen 0.0.0.0:8765
pot register --hub https://aion.anomalia.io \
--slug my-chain --name "My Chain" \
--snapshot-url https://... --as founder
Information stored
This is the society-level information-formation layer. The chain does not merely archive beliefs; it forces beliefs to meet reality through resolution, finalization, and scoring. What survives on chain is therefore the network's validated epistemic history: who predicted what, what actually happened, and which norms or patches earned adoption.
| What | What it approximates | Storage medium |
|---|---|---|
| Trust ledger | Each pubkey's accumulated forecast accuracy after reality has resolved — the society's model of who stays calibrated under contact with outcomes | Chain state (Rust pot-core/src/state.rs) — accounts[pk].trust_mtrust |
| Vote history | Each participant's stated probability distribution before resolution — the raw hypotheses later tested against reality | Parentless commits under refs/pot/votes/<height>/<pk> |
| Block history (canonical chain) | The agreed-upon sequence of code and state changes — the society's shared factual record | First-parent sequence of merge commits on refs/heads/main |
| Core predictions | The society’s foundational hypotheses — why the chain exists; scored as hypothesis or delusion when outcomes resolve | refs/pot/core-predictions/active/* + linked market (spec §18) |
| On-chain prediction markets | Declared questions, bet distributions, and resolutions — society-scale experiments in which beliefs are scored against outcomes | Objects under refs/pot/markets/ (CBOR-encoded) |
| Society norms | Laws the network voted to adopt after debate and evidence — the society's current approximation of which rules improve collective \(\mathcal{R}\) | Content-addressed under refs/pot/norms/<norm_id> after adoption |
| RBAC (roles & grants) | Who may use which tools, paths, and services — society-wide role definitions and signed actor bindings replayed into each node's aion_rbac store |
rbac_role_decls, rbac_grants, rbac_revokes in block payload; refs under refs/pot/rbac/ |
| Conflict records + patches | Cross-node friction, its resolution, and the corrective patches applied — the society's explicit error-correction memory | CBOR ConflictRecord + ParticipantPatch commits on chain |
| Compute attestations | Tokens spent per vote — enabling cost-adjusted trust: a correct but wasteful forecast earns less than an efficient one | Signed ComputeAttestation attached to each vote commit |
Each block's CBOR Payload may carry any of
20 typed vectors (empty by default). Full index:
data_content.md.
Delusion (\(\mathcal{D}_{KL}\)) when stale. The chain's approximation of "who is trustworthy" degrades when trust balances no longer reflect current forecasting ability — for example, a pubkey that was accurate early in the chain but has since stopped participating or started bluffing. The strictly-proper log score is the structural fix: it keeps the trust update proportional to the actual KL margin against the market, so past reputation cannot permanently override present performance.
What flows back downstream. Unlike aion-llm (which stores compressed weights) or aion-core (which stores a live working memory), the chain keeps an append-only, replayable audit log of validated society experience. That information can flow back into aion-core as norms, trust, and corrective patches, and from there be curated into LoRA data, finetuning corpora, or full retraining sets for aion-llm.