Verifiable share accounting: three-legged reconciliation with attested signers (design) #43
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
vnprc/hashpool#43
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Explore a three-party reconciliation design in which the pool, the mint and each miner publish verifiable records of shares and payouts, so hashrate skimming or silent misaccounting becomes detectable — and attributable — instead of a matter of trusting the operator.
Primary goals:
The three legs
If all three agree, the pool's hashrate accounting is fully reconstructible from primary evidence. If they do not, someone lost data or skimmed value — and the signatures attribute which leg.
Where attested execution earns its keep
Reconciliation alone gives detection. Attested enclaves give attribution and non-repudiation:
enclavia reproduce-style rebuilds make the validation logic itself public.Known residual, by design
The ingress path into a pool enclave (proxy, load balancer) sits outside the TEE boundary. The enclave proves what it accounted; it cannot prove what was dropped before delivery. That is acceptable because drops surface as leg mismatches the miner can prove from its own record — but the design must not claim the proxy is trusted, only observed.
Scope
Exploratory and far out; no implementation is proposed here. This is an audit and attribution layer on top of the existing ehash/epoch payment path (cf. vnprc/hashpool#20 for template gating), not a change to it. Enclavia (beta) is named as one candidate TEE hosting — Nitro attestation, reproducible builds, PCR-pinned egress — any equivalent attestation stack works. Follow-ups would start with a written threat model: who can skim what, in which leg, and which signature proves otherwise.
Prior art, deployed: ArkPool (arkpool.org) runs a Stratum proxy into Braiins and signs per-payout accounting statements — a minimal, production instance of the pool leg, minus attestation and minus the mint leg.
What it does, from their Tor-dashboard client code (no repo published yet; frontend open-sourcing is promised):
/.well-known/payout-receipt-key). Signature covers the exact statement bytes; the browser checks digest, key-id-equals-SHA256(pubkey), and an account commitment.SHA256("arkpool-receipt-account-v1:" + SHA256(ark1 address))inside the signed statement; the lookup API only ever receives the address fingerprint. Same pattern leg 3 needs for privacy.Where it stops, per its own FAQ: the trust root is a webpage, the signature attests the operator's ledger only (no independent proof the payment happened), chain links are not client-verified, and there is no second party to reconcile against. Useful as the strawman leg 1 that the full three-legged design strengthens with a mint leg and attested keys.