|
|
0154191bd4
|
#000016 parked: ZK frontier-proof bench plan + wire protocol
Two arborist-side artifacts close the v7 § 16.1 hand-wave without
violating the language constraint (arborist stays pure-Python; ZK
toolchain lives in sibling repo arborist-zk-bench).
docs/zk-frontier-bench.md — bench plan + parked verdict
========================================================
Bench plan covers Plonky3 (or equivalent) circuit at three sizes
(256/1024/4096 affine), measurement targets (prover ms, proof
bytes, verify ms, peak memory), platform pair (Apple M3 + Linux
x86), acceptance thresholds (≤30s prover at 4096; ≤100KB proof;
≤100ms verify; ≤16GB peak).
Preliminary projection from published Plonky3/Halo2 numbers:
size 256: 0.5–2 s prove / 30–80 KB / 5–30 ms verify
size 1024: 5–30 s prove / 50–120 KB / 10–50 ms verify
size 4096: 60–600 s prove / 100–300 KB / 30–200 ms verify
↑ likely UNAFFORDABLE at frontier scale
Most-likely outcome: VIABLE at small scales (256/1024 — useful for
distillation models); UNAFFORDABLE at LLaMA-class hidden width
(4096).
Decision tree from real measurement:
VIABLE → commission ZK as v8 capability;
follow-up tickets for arborist [zk] extra,
governance_policy.frontier_proof_mode field,
hermes-side activation export.
UNAFFORDABLE → park ZK; v7-Local stays v7's terminal
contribution; answer→model binding stays
out of scope.
docs/zk-wire-protocol.md — consumer-side schema
================================================
Specifies the wire format arborist consumes WHEN/IF ZK proofs
become available. The sibling repo emits proofs; arborist
validates schema + signature + delegates ZK verification to a
sibling-repo verifier binary. arborist itself NEVER runs the
prover or verifier — that's the language-constraint contract.
- Artifact: arborist-zk-proof-v1 JSON with schema_version,
proof_system, circuit_id, frontier_node, public_inputs,
public_outputs, proof_bytes_b64, verifier_setup_id, issued_at,
issuer_pubkey_ed25519, issuer_signature_ed25519.
- Trigger: governance_policy.frontier_proof_mode ∈
{"reveal" (default), "zk"}.
- Binding: model_weights_zk_root + frontier_proof_circuit_id
columns added to providence_cache (schema migration deferred
to integration ticket).
- Validation pipeline: schema check → recompute commitment
sanity → Ed25519 signature check → delegate to sibling
verifier → bind to audit chain.
- Threat model: compromised prover, wire-format injection,
proof replay, issuer-key compromise — each with its own
mitigation.
Status closure
==============
Ticket flipped from "open · awaiting go/no-go" to "parked ·
bench-plan + wire-protocol landed 2026-05-09 (sibling-repo
measurement pending)." This is honest: arborist's side is done.
Sibling repo `arborist-zk-bench` (not yet built) produces the
real numbers; doc updates roll back here when measurements
arrive.
Result: the v7 § 16.1 hand-wave is replaced with explicit
thresholds + preliminary projection + ready consumer schema.
The hand-wave is closed even though the bench-question is
parked.
|
2026-05-09 15:05:08 -04:00 |
|