VacantAn accountability layer for AIGitHub

Architecture · L2 / routing and penalties ·

Registry and reputation

Reputation is recorded on a four-tuple (event stream, branch, model substrate, task family), using a five-dimensional Beta distribution plus UCB routing. Newcomers have a probation cap. The side effect of a penalty is permanent exclusion — of 368 seeds, 0 came back.

#The accounting unit of reputation

Reputation is not recorded on "an agent." It is recorded on a four-tuple:

(stream, branch, substrate, family)
ComponentWhy it is in the key
stream event streamCredit follows memory, not body. If the same key wipes its memory and starts a new genesis event, it gets a new stream, and its credit naturally resets to zero.
branch branchParallel branches of the same event are counted separately
substrate model substrateStops "credit built up on model A being used to cover for deliveries from model B"
family task familySeparates "this participant is reliable overall" from "this participant is good at this kind of task"

Task family was added on 2026-08-07, corresponding to the "who knows what" distinction in research on transactive memory systems.

#Five-dimensional Beta

Every reputation cell has one Beta(α, β) distribution in each of five dimensions, with prior Beta(1, 1):

DimensionWhat it measures
FactualityStatements agree with verifiable facts
LogicWhether the reasoning holds
RelevanceWhether it answered the question asked
HonestyWhether anything was hidden or misleading
AdoptionWhether others actually use its output

A rating with score s ∈ [0,1] and weight w makes:

α += w · s
β += w · (1 − s)

The reputation score is the mean of the five dimensions' posterior means.

#Decay

Reputation regresses toward the prior with a half-life of 200 events:

f  = 0.5 ^ (age / 200)
α′ = 1 + (α − 1) · f
β′ = 1 + (β − 1) · f

#Routing: upper confidence bound

UCB = rep_score + c · √( ln(N + 1) / n )      c = 0.3

N is the total observation count, and n is the candidate's effective observation count.

A new candidate with no observations gets a very large exploration bonus, so it is always tried once. When the accountability layer is off, routing switches to a deterministic random choice decided by the task hash — the two modes differ by a single boolean switch, with the same interface.

#Probation

A newcomer is on probation for its first m = 2 deliveries:

  • When non-probationary candidates are present, a probationer's UCB score is capped at 0.55.
  • One in every 10 routings is reserved for probationers, so that probationers are not left forever unpicked and mandatory audits do not forever fail to happen.
  • Deliveries during probation are always audited.
  • The probation decision considers both an external flag and the candidate's own effective observations.

Probation has a clear ancestor in the literature: Friedman and Resnick (2001) proved that in repeated games where identities can be changed cheaply, no equilibrium can do significantly better than the one in which newcomers "pay their dues." Vacant's probation is the engineering implementation of that equilibrium.

#Penalties

When a provable fault occurs, the consequences are asymmetric:

PartyTreatment
The delivering partyAll five dimensions × 0.5
Reviewers who voted "pass"All five dimensions × 0.5
Reviewers who voted "fail" but whose audit passedOnly the honesty dimension × 0.8

Wrongly letting work through is penalized more heavily than wrongly stopping it, because the former is the dangerous error.

It is implemented by injecting negative evidence:

β += (α + β) · (1/f − 1)      α unchanged

This form has three properties: positive evidence already accumulated is not erased, the mean decreases monotonically, and the effective observation count rises, so the exploration bonus falls.

#Permanent exclusion: a known and deliberately kept side effect

The corrected penalty has a side effect: an identity penalized once is, in practice, permanently excluded from routing.

Three reasons hold at the same time:

  1. A penalty doubles the observation count, and the observation count is the exponential coefficient of recovery time.
  2. An excluded identity is not routed, so it produces no events; its per-stream clock stops, and its reputation no longer decays back to the prior.
  3. UCB exploration only looks after "the untried," not "the downgraded."

Measured (on 368 simulated seeds that were actually penalized):

ParametersReturned to routing
Current (f = 0.5, λ = 1)0 / 368
Change only the mean, not the observation count (λ = 0)214 / 368 (58.2%)
f = 0.7, λ = 0308 / 368
f = 0.9, λ = 1308 / 368

slash halves the mean and doubles n at the same time — and n is the exponential coefficient

#How effective routing is: being seen works better than being caught

The strongest positive result on the defense axis is not "it catches them" but "it starves them":

  • 215 seeds that were never caught got 7–24 jobs in total over 9,600 rounds.
  • The control group that never violated anything got 1,290 jobs.
  • In other words, bad actors who were never caught got only 0.57%–1.84% of an honest participant's workload.

A paired experiment on a real model: the trust switch showed no discernible difference

The conclusion in one sentence: what stops attackers is "being seen," not "being caught." Reputation routing alone is enough to starve them.

#Next

Last updated: · about 3 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