mirror of
https://github.com/zoo-apps/papers.git
synced 2026-11-02 17:38:34 +00:00
The execution-proof slice the paper marked "designed, not built" is now built and tested; update the paper to reflect the verified reality and add the Zoo L3 settlement / DeSci framing the paper was missing. Grounded in code read + tests run for this paper: - Rust engine (hanzo-engine poi_*): 27 unit + 11 adversarial = 38 passing (poi.rs 7, poi_transcript.rs 8, poi_forward.rs 3 ProvableLinear, poi_graph.rs 9 GraphTrace incl. a training step). Cross-language golden vector pins Go parity. - Go verifier (luxfi/crypto/poi): 23 passing (TestDeriveChallengesGolden parity). - Solidity (luxfi/standard contracts/ai/thinking): 87 passing across the 8 PoAI suites (ComputeWitnessLib 5, OptimisticEvidence 18, AICoinMiner 12, ComputeProofEnforcement 19, AICoin 11, AIComputeRegistry 6, MinerStakeRegistry 8, L3Registry 8). AICoinMiner mint gate fails closed (ProofGateUnavailable). - Confidentiality primitives: crypto/promptseal (X-Wing) 6, crypto/attestation 9. Changes: - New section 18 (24-zoo-l3-settlement): the Zoo L3 consumes the one canonical PoAI contract surface; L3Registry directory; trustless ML-DSA validator-quorum root relay (AChainRootOracle); fail-closed mint + global no-double-mint; and proven inference/embedding/training as the DeSci reproducibility substrate. - Rewrote status-summary (00) and implementation-status (23) as a verified ledger with real passing counts; flipped the stale "designed, not built" framing. - Abstract/intro/conclusion/future-work updated to the built reality; residual honestly scoped to the RepOps fp tier + chaining/long-tail emission. - Reconciled stale "0% / no caller / once emission exists / roadmap" passages in sections 11, 16, 17, 18, 19, 20, 21, 22; experimental numbers marked as illustrative projections (not measured), with the measured asymmetry cited. - Cite the zoo/proofs soundness + emission companions. LaTeX compiles clean: pdflatex x3, 52 pages, 0 undefined refs/citations.
138 lines
8.2 KiB
TeX
138 lines
8.2 KiB
TeX
\section{The Tier Matrix: One Gate, Migrating Backends}
|
|
\label{sec:tiers}
|
|
|
|
The execution proof of Section~\ref{sec:freivalds} is one of several proof systems a
|
|
deployment can require, trading off trust assumptions, cost, and hardware. This
|
|
section specifies the menu and the single gate that selects from it. The discipline
|
|
is the one used for post-quantum migration elsewhere in the stack: the policy ``what
|
|
proof does a task at this tier require?'' lives in \emph{exactly one place}, every
|
|
consumer reads it the same way, and the proof backends are interchangeable behind a
|
|
common binding so that the menu can change without touching the binding or the
|
|
callers.
|
|
|
|
\subsection{The proof backends}
|
|
|
|
A proof system is identified by a $\mathsf{proofType}$ and registered as a backend
|
|
that attests to a $\mathsf{reportData}$ (Section~\ref{sec:binding}). The deployed
|
|
registry recognizes four:
|
|
\begin{equation}
|
|
\mathsf{proofType} \in \{\,
|
|
\underbrace{1}_{\text{CC-TEE}},\
|
|
\underbrace{2}_{\text{zkML}},\
|
|
\underbrace{3}_{\text{optimistic-Freivalds}},\
|
|
\underbrace{4}_{M\text{-of-}N\ \text{TEE}}
|
|
\,\}.
|
|
\end{equation}
|
|
Each backend exposes the same interface---``does this witness attest to this
|
|
$\mathsf{reportData}$?''---and the verifier dispatches on $\mathsf{proofType}$,
|
|
failing \emph{closed} on any unregistered type. The optimistic-Freivalds backend
|
|
(type $3$) is the software-only path of this paper: a prover escrows a bond and
|
|
commits $(\mathsf{reportData}, \mathsf{activationTraceRoot}, \mathsf{modelWeightsRoot})$;
|
|
within a challenge window any party may dispute by supplying a Freivalds response (or,
|
|
on dispute, by driving the bisection of Section~\ref{sec:freivalds}); an
|
|
unchallenged commitment finalizes and the bond is reclaimable, while a proven fraud
|
|
slashes the bond to the challenger. The heavy check runs off-chain in the inference engine
|
|
(a watcher re-executes the committed trace and opens any discrepant matmul); the chain runs
|
|
the economic state machine the check's verdict drives, and---when the dispute is
|
|
submitted---re-runs the Freivalds check itself on-chain so the verdict is not a watcher's
|
|
say-so. Both halves are built and tested (Section~\ref{sec:impl-status}): the off-chain
|
|
re-executor and challenger (\texttt{poi\_transcript.rs} in Rust, \texttt{crypto/poi} in Go)
|
|
open a transcript and produce the dispute, and the on-chain state machine
|
|
(\texttt{OptimisticEvidence.sol}, $18/18$) records the bonded commitment, verifies the
|
|
exhibited fraud via \texttt{ComputeWitnessLib.provesFraud}, and slashes only on a verified
|
|
discrepancy. The optimistic backend's economic soundness---a liar is strictly unprofitable
|
|
once watched, an honest prover is never slashable---is therefore a live deterrent: a
|
|
fabricated matmul is provable except with probability $\le 2^{-122}$, and the bond pays the
|
|
challenger that proves it.
|
|
|
|
\subsection{The tiers}
|
|
|
|
Tiers map a task's value and trust requirement to a required proof strength.
|
|
|
|
\begin{table}[t]
|
|
\centering
|
|
\caption{Tier $\to$ proof matrix. One profile gate
|
|
(Section~\ref{sec:profile-gate}) maps a tier to its required $\mathsf{proofType}$;
|
|
where a tier is opted in, no valid proof of that type means no mint and no settlement.
|
|
The gate is built but defaults to permissive ($\mathsf{requiredProofType}=0$), and the
|
|
software-only backend (T2/T3) awaits the emission and challenger of
|
|
Section~\ref{sec:impl-status}; the matrix is thus the configured policy surface, live
|
|
enforcement following the build.}
|
|
\label{tab:tiers}
|
|
\small
|
|
\begin{tabular}{@{}p{0.7cm}p{3.3cm}p{4.1cm}p{4.0cm}@{}}
|
|
\toprule
|
|
Tier & Proof system & Trust assumption & Use \\
|
|
\midrule
|
|
T0 & zkML (type 2) & none beyond the SNARK's & tiny models; trustless, on-chain succinct verification \\
|
|
T1 & $M$-of-$N$ heterogeneous CC-TEE (type 4) & no single TEE vendor; $M$ of $N$ enclaves agree & high-value tasks; defense in depth across NVIDIA CC $+$ Intel TDX $+$ AMD SEV-SNP \\
|
|
T2 & single-vendor CC-TEE (type 1) \emph{or} optimistic-Freivalds (type 3) & one TEE vendor, \emph{or} one honest challenger $+$ a bond & the workhorse tier; software-only Freivalds is the intended egalitarian default (pending emission $+$ challenger) \\
|
|
T3 & redundancy $+$ plurality $+$ slash & honest plurality among bonded operators & liveness-first; CPU-only providers; the weakest proof, fastest path \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
The matrix is read top-down by trust and bottom-up by accessibility. T0 (zkML)
|
|
assumes nothing beyond the soundness of the proof system but is limited to small
|
|
models by proving cost. T1 ($M$-of-$N$ heterogeneous confidential compute) tolerates
|
|
the compromise of any single TEE vendor by requiring agreement across enclaves from
|
|
\emph{different} hardware roots---NVIDIA confidential computing, Intel
|
|
TDX~\cite{inteltdx}, AMD SEV-SNP~\cite{amdsevsnp}---so that a break of one vendor's
|
|
attestation does not forge a proof. T2 is the workhorse: a single-vendor TEE for
|
|
those who have the hardware, \emph{or} the optimistic-Freivalds path of this paper for
|
|
those who do not, which assumes only that at least one honest party will challenge a
|
|
fraud within the window and that the prover's bond exceeds the gain from cheating. T3
|
|
falls back to the redundancy-and-plurality settlement of
|
|
Section~\ref{sec:guess-to-mint}, retained only where liveness dominates and the value
|
|
at stake is low enough that honest-plurality is acceptable---and, crucially,
|
|
\emph{even T3 can now require a sampled execution proof} from the plurality operators,
|
|
closing Proposition~\ref{prop:gap} at that tier too.
|
|
|
|
\subsection{The profile gate: one place}
|
|
\label{sec:profile-gate}
|
|
|
|
The mapping from tier to required proof is a single function in a single contract,
|
|
the on-chain analogue of the \texttt{RefuseUnderStrictPQ} gate used for post-quantum
|
|
policy. It exposes one read,
|
|
\begin{equation}
|
|
\mathsf{requiredProofType}(\mathsf{tier}) \;\to\; \mathsf{proofType},
|
|
\end{equation}
|
|
returning $0$ (permissive) for any tier governance has not explicitly opted in, and
|
|
otherwise the mandatory $\mathsf{proofType}$. The settlement path consults this single
|
|
oracle and enforces the invariant directly:
|
|
|
|
\begin{quote}\itshape
|
|
No valid compute proof of the required type $\Rightarrow$ no mint, no settlement.
|
|
\end{quote}
|
|
|
|
This is the constructive answer to Section~\ref{sec:guess-to-mint}: the verifier's
|
|
three-step gate---(1) the proof's $\mathsf{reportData}$ equals the task binding,
|
|
(2) the runtime is governance-accepted, (3) the registered backend attests---runs
|
|
\emph{before} any reward is paid, and fails closed at every step \emph{on any tier that
|
|
has been opted in}. Where the gate is engaged, reward is bound to
|
|
proof, not to signature and not to plurality; where it is not (the default), settlement
|
|
remains the authorship-plus-agreement rule of Section~\ref{sec:guess-to-mint}, and---until
|
|
the execution backend's emission and challenger are built---the only proof type a gate can
|
|
actually enforce is an attestation envelope, not the activation-trace execution proof.
|
|
Because the policy lives in one place,
|
|
there is exactly one way to ask ``what does this tier require?'', and changing a
|
|
tier's requirement is a single governed write rather than a scattered edit.
|
|
|
|
\subsection{Migration without rebinding}
|
|
|
|
The tiers are not static. The decisive structural property of this design is that
|
|
\emph{the binding does not depend on the proof system}: $\mathsf{reportData}$
|
|
(Section~\ref{sec:binding}) commits the task, model, input, output, and runtime, and
|
|
says nothing about how that commitment is believed. Consequently, as zkML proving cost
|
|
falls and larger models become trustlessly provable, tasks migrate from T2/T3 up to
|
|
T0 by a governance change to $\mathsf{requiredProofType}$ alone---\emph{zero change to
|
|
the binding, zero change to the receipts, zero change to the callers}. The same holds
|
|
in reverse: a deployment that gains confidential-compute hardware can move tasks from
|
|
software-only T2 to TEE-backed T1 without touching the proof artifacts that earlier
|
|
tasks emitted. The proof backends are orthogonal slots behind a stable binding; the
|
|
menu evolves, the interface does not. This is the property \emph{designed} to let a
|
|
permissionless network start egalitarian (software-only Freivalds for everyone, once
|
|
that backend's emission and challenger are built) and strengthen
|
|
task-by-task as trustless proving matures, without ever stranding the proofs it has
|
|
already minted against.
|