The problem
- Transparent bidding causes bid shading. A visible bid can be beaten by one tick, so rational bidders under-reveal and the seller clears below true demand.
- It rewards speed over value. Visible order flow goes to whoever reacts fastest to someone else’s bid.
- It profiles bidders permanently. An address that bid is linked to that interest forever, which keeps treasuries, funds and competitors out.
- Off-chain sealed bids move all the trust to the operator. The operator sees every bid, and participants can’t check the result.
Why Zcash
Compared with other designs
Structural comparison. No vendor-specific claims.Verticals
Before mainnet caps are lifted, any auction is bounded by the per-auction cap (a mainnet gate whose value isn’t set yet, 5).Revenue models
Every model here isSpecified. None is in the code. The payout today sends the whole remaining escrow balance, minus ZIP 317 fees, to the organiser (EscrowWallet::build_sweep, crates/sealforge-chain/src/spend.rs).
Unit economics
Measured: escrow cost per auction (testnet)
Derived from those rows: about 8,400 zat (
KE5DFF4PDA) and 7,500 zat (K7GHHBC4GP) of escrow fees per refund note, all-in, with the payout transaction included. The per-transaction fee follows ZIP 317 and depends on the number of logical actions (each refund note is at least one output). These pages don’t restate the ZIP 317 parameters. The refund policy caps a batch at 20 outputs (2.7), which bounds per-transaction size.
Measured: bidder cost
From the per-wallet table in evidence/testnet-genesis.md: a sealed-reveal bidder paid 0.0002 TAZ in network fees (deposit plus reveal); a bidder who didn’t reveal paid 0.0001. The 0.0001 reveal payment itself is refunded when the reveal counts. A deposit-mode bidder pays one transaction fee.Model: revenue from a take rate
Note counts assume about 3 refund notes per bidder, as measured in
K7GHHBC4GP (73 notes for 25 bidders). The linkability simulation, with larger and more varied bids, averages 6.8 notes per refund (evidence/linkability.md), which would roughly double the fee column. The fee column scales the measured per-note figure linearly. That’s an assumption: real fees depend on note counts per bid and batch packing.
Cost base for trustee as a service
Not measured. Inputs to estimate: an always-available signing host per trustee (batches stall without a second signer, and reset after 30 minutes, 2.2), secure storage for one key share per auction, operator time to compare DKG fingerprints, and, once D1 ships, PCZT verification before each signature.Ecosystem effects
- Shielded activity. Every bid, reveal, refund note and payout is an Ironwood transaction (3).
- ShieldRamp (
Specified): a cross-chain bidder would swap into shielded ZEC to bid, with a Linkability Score shown before signing (scoreTested,packages/shieldramp/src/score.ts). Each such bid would be inflow into the shielded pool. Not built. - Reusable public goods:
sealforge-escrow(FROST custody of Ironwood notes via PCZT),sealforge-scan(UIVK auditing in Rust or WASM),sealforge-wallet(in-tab Ironwood wallet) (8).
Defensibility
- The auditor is the trust anchor. A result that is a pure function of on-chain shielded data, reproducible with a published key, makes the privacy and fairness claims checkable.
- Byte-identical Rust, TypeScript and WASM, enforced by a shared vector file in CI.
- The evidence trail: testnet runs, a measured linkability figure with its harness, and generated test inventories.