VacantAn accountability layer for AIGitHub

Architecture · Architecture / seven-layer overview ·

Architecture

Vacant has seven layers: L0 identity, L1 signed record, L2 accountability layer, L3–L4 executable acceptance, L5 observation, L6 product integration. Four mechanisms answer four kinds of cheating, and each one has a failure condition we measured.

#Positioning

The project's core document puts what Vacant does in one sentence:

It does not make AI trustworthy. It turns "who did what, who checked it, and how carefully they checked" into a record that cannot be changed afterwards, and it makes participants who did bad work get less work.

After September 2026, this positioning became more concrete as an intake point: a delivery without a verifiable receipt is not accepted.

This positioning deliberately avoids two common misreadings:

  • Vacant is not another agent framework. It does not decide for the agent how to reason or which tools to call.
  • Vacant is not an enforcement layer wrapped around the agent that is guaranteed to intercept everything. Saltzer and Schroeder's (1975) principle of complete mediation requires every access to be checked, and the intake point in its default configuration does not satisfy that.

#Seven layers

LayerNameWhoseWhen built
L0Cryptographic identityGateway2026-06
L1Signed record (event chain)Gateway2026-06
L2Accountability layerGateway2026-06 to 08
L3Task bank and sandboxHarnessfrom late 2026-08
L4Executable acceptance gateHarness2026-09-03
L5Observation and displayGateway2026-07 to 09
L6Product integration (vacant run / on / agentlane)Userfrom 2026-09-18

L0–L2 are the accountability layer proper. L3 and L4 were built during the gain experiments, so that "execution instead of opinion" had something to execute. L6 is the product layer, added only after September.

#Four mechanisms, four kinds of cheating

MechanismBehavior it targetsStrength
Signed hash chainChanging the record afterwardsDetects (prevents forgery when key custody holds)
Reputation routingStill getting the next job after doing bad workRaises the cost
Peer review (K=3, no whitelist)"Who is qualified to check" needs someone to grant qualifications, and that someone becomes a party that must be trustedRaises the cost
Deterministic sampling auditReviewers lying collectivelyDetects (with probability equal to the sampling rate)

The defense-axis results for these four mechanisms, together with their own failure conditions, are laid out in full in the defense axis and records and multi-party execution.

#Two end-to-end data flows

#With L2 on (the loop of the accountable ecosystem)

  1. An external agent submits a task and its tests through the MCP tool delegate.
  2. The system first compiles the tests into a verifier.
  3. A worker is chosen by reputation routing.
  4. The worker generates an answer and signs a delivery event on its own chain, advancing the chain head.
  5. Three reviewers each judge it and sign a review envelope bound to the new chain head.
  6. The auditor decides by hash whether to rerun the check.
  7. If there is a provable fault, the delivering party and the reviewers who let it through are penalized.
  8. The reputation update affects who gets the next task.
  9. A credential and a delegation receipt are produced; the downstream controller checks them before starting the next agent.

Every step is written into the event chain, and anyone holding the public key can re-verify it offline.

#The L3/L4 main path (from September 2026)

Compared with the flow above, opinion-based review and reputation routing take a back seat; the referee becomes the customer's own executable acceptance tests:

  • The agent can be any framework, as long as its model channel goes through the proxy server and its output lands inside the workspace.
  • The end of the process is the delivery point. The system runs the visible acceptance tests on a frozen snapshot.
  • On a pass, it is let through; on a fail with budget left, it resamples (CONFORM) or revises (H-MIX), depending on configuration.
  • When the budget runs out, delivery is refused, and a refused delivery counts as a failure.
  • Hidden tests are used only for scoring afterwards.

#Strength labeled by threat model

ThreatDefenseStrength
Tampering with the record afterwardsHash chain + signaturesDetects
ImpersonationEd25519 + published public keysPrevents (condition: key custody)
Replay and reorderingSequence numbers, previous-entry hash, deduplicationDetects
Moving a score onto a different deliveryReviews bound to the chain head; substrate and task family declared by the delivering sidePrevents
Vote stuffing and Sybil attacksEndogenous weights, unproven reviewers 0.1/k, same-origin down-weightingRaises the cost
Laundering by changing identityProbation cap, mandatory audit, credit follows the event streamRaises the cost
Reviewers lying collectivelyDeterministic sampling auditDetects (probability = sampling rate)
Doing bad work and still getting jobsUCB routing, penalties, decayRaises the cost

#Layer details

PageContents
Identity and signed recordEd25519, deriving vacant_id, the eight fields of the event chain, separating the trust store from the capability store
Registry and reputationFour-tuple reputation key, five-dimensional Beta, UCB routing, probation, penalties and permanent exclusion
Peer review and auditK=3, four checks, the endogenous-weight formula, three-tier down-weighting, deterministic sampling and the blind-spot product
Executable acceptance layerVisible/hidden separation, sandbox, SuiteSpec, the full rules of CONFORM and H-MIX
Multi-party executionRun each other's work, don't review it; gauge checks; majority upper bound; named-party voting
Product integration layerThree integration shapes, vacant run, vacant on, the sandbox wall and exits, agentlane

#Theory that current code doesn't match

Several concepts in the May theoretical design — self-replication of agents as the main birth path, a heartbeat in the dormant state as proof of identity custody, and lineage (the parent_id chain) as the subject of "unbounded evolution" — were classified as not load-bearing in the July re-scoping of the main line, and have no corresponding implementation in the current code. This document describes the code as it is (vacant-network 0.9.0, tag v0.9.0, zero-config v3.7); those concepts are recorded only as a design blueprint.

Last updated: · about 4 min read

Shih Hsin UniversityDepartment of Information and Communications, Shih Hsin UniversityVacant

Department of Information and Communications, Shih Hsin University · 2026 capstone project · on-site exhibition