Association policy & governance

The protocol enforces the policy. People choose it.

ra:st makes an association policy cryptographically enforceable and publicly auditable — but it does not decide what belongs on a blocklist. That is a governance question, and this page is how we answer it in the open.

01 · The boundary

What lives inside the circuit, and what doesn’t

The cryptography guarantees that a withdrawal descends from a set. Which deposits belong in that set is decided outside the circuit, by a public policy anyone can reproduce.

An association set 𝒜 is the subset of pool deposits that a policy predicate ok() certifies as non-illicit. The withdrawal proof binds your note to a published root rt𝒜 of this set — so an excluded deposit has no valid path and cannot exit.

The critical property is reproducibility: the predicate and every input it reads are public. Any auditor can re-run ok() over the on-chain deposit history, rebuild the association tree, and confirm their root matches the curator’s. Nothing about membership is taken on trust.

policy predicate · ok(cm)● public · reproducible
# evaluated over public deposit provenance
def ok(cm, provenance):
    if provenance.source in SANCTIONED_LIST:   # public, versioned
        return False
    if provenance.traces_to(KNOWN_THEFT):    # public incident set
        return False
    return True                             # included in 𝒜

The lists SANCTIONED_LIST and KNOWN_THEFT are published and versioned. When they change, a new rt𝒜 is issued and the diff is inspectable — no silent edits.

02 · Lifecycle

How a policy becomes a root

Four public steps turn a predicate into the rt𝒜 your withdrawal proves against.

01

Publish predicate

The curator publishes ok() and its input lists, versioned and diffable.

curator · on-chain
02

Evaluate deposits

Every deposit is scored by the predicate against public provenance data.

anyone can reproduce
03

Build & publish root

Certified leaves form the association tree; its root rt𝒜 is posted per epoch.

curator · per epoch
04

Audit

Auditors rebuild the tree from public data and confirm the root matches.

auditor · independent
03 · Curation models

Who holds the pen

Curation is a design axis, not a fixed choice. A pool can adopt any of these — the protocol enforces whichever root the auditor community accepts.

ModelHow it worksCensorship riskOverhead
Single curator One entity publishes rt𝒜. Simple, fast, fully auditable. higher low
Attester set A quorum of independent attesters must agree on inclusion. medium medium
Stake-weighted vote Root ratified by stake-weighted governance; slashing for bad policy. lower high
Competing roots Multiple curators publish in parallel; withdrawers pick any accepted root. lowest medium
04 · The curator’s reach

What a curator can and cannot do

This is the heart of the trust model. A curator’s only real power is inclusion — and even that is contestable.

▸ can
  • Decide which deposits enter 𝒜 under the published policy
  • Publish and update rt𝒜 each epoch
  • Refuse to include a deposit — a liveness and fairness concern
  • Version the predicate, with every change publicly diffable
▸ cannot
  • Hold, move, or freeze any user funds
  • Learn a spending key or deanonymize a withdrawal
  • Forge membership — a fake path is a hash collision
  • Edit the policy silently — inputs are public and versioned

A malicious curator’s worst move is to exclude an honest deposit. It cannot steal, freeze, or unmask anyone — and a competing curator can include what it wrongly left out.

05 · Wrongful exclusion

If your deposit is left out

Exclusion is not final. Because association is permissionless at the root level, an honest deposit has a public path back in.

step 01 · detect

See the gap

Your deposit is public. If it’s absent from the current rt𝒜, that absence is visible to you and everyone else.

→ absence is on-chain
step 02 · contest

Show provenance

Submit the public provenance that satisfies ok(). Since the predicate is reproducible, a correct claim is verifiable by anyone.

→ verifiable, not discretionary
step 03 · route around

Use another root

Prove against any competing association root that includes you and that your counterparty’s auditor accepts.

→ no single gatekeeper

Enforceable by math. Accountable to people.

The full governance treatment — permissioning, transparency, and appealability — is developed in the whitepaper.