epic: wormhole, shielded balance and exits #9

Open
opened 2026-09-15 12:36:00 +00:00 by grenade · 1 comment
Owner

Goal

Miners can see the rewards sitting behind their wormhole address and move them to a transparent account from the wallet, with the Plonky2 proof generated locally. Without this the wallet is useless to the people who hold most of the newly minted QTC.

Facts the design rests on

  • Mining rewards are paid to a wormhole address derived from the same seed (derive_wormhole_from_mnemonic, its own coin-type constant). The preimage is public; spending needs a proof of knowledge of the secret.
  • The prover is qp-wormhole-prover and friends (Plonky2). It needs circuit binaries fetched once (ensure_circuit_binaries in the Flutter SDK's Rust core), and proving is minutes of CPU. The Flutter SDK's api/wormhole.rs and quantus-cli's wormhole_lib.rs are the reference implementations.
  • Proofs can be aggregated to claim several transfers at once.
  • The WormholeProofRecorderExtension is on every extrinsic; it contributes no signed bytes.

Operator-owned decisions

  • Where circuit binaries are hosted (our infra, with a pinned hash) and whether the wallet downloads them on first use or the package ships them. Default: download on first use from our infra, hash-pinned.

Definition of done

A miner restores their mining mnemonic, sees a shielded balance that matches what blackbeard.observer attributes to their preimage, generates a proof with a progress indicator, and sees the amount arrive in a transparent account on mainnet.

## Goal Miners can see the rewards sitting behind their wormhole address and move them to a transparent account from the wallet, with the Plonky2 proof generated locally. Without this the wallet is useless to the people who hold most of the newly minted QTC. ## Facts the design rests on - Mining rewards are paid to a wormhole address derived from the same seed (`derive_wormhole_from_mnemonic`, its own coin-type constant). The preimage is public; spending needs a proof of knowledge of the secret. - The prover is `qp-wormhole-prover` and friends (Plonky2). It needs circuit binaries fetched once (`ensure_circuit_binaries` in the Flutter SDK's Rust core), and proving is minutes of CPU. The Flutter SDK's `api/wormhole.rs` and quantus-cli's `wormhole_lib.rs` are the reference implementations. - Proofs can be aggregated to claim several transfers at once. - The `WormholeProofRecorderExtension` is on every extrinsic; it contributes no signed bytes. ## Operator-owned decisions - Where circuit binaries are hosted (our infra, with a pinned hash) and whether the wallet downloads them on first use or the package ships them. **Default: download on first use from our infra, hash-pinned.** ## Definition of done A miner restores their mining mnemonic, sees a shielded balance that matches what blackbeard.observer attributes to their preimage, generates a proof with a progress indicator, and sees the amount arrive in a transparent account on mainnet.
grenade added the epic label 2026-09-15 12:38:49 +00:00
Author
Owner

Children, in dependency order: #45 (wormhole derivation and shielded balance) → #46 (proof generation, circuit binaries) → #47 (exit). #46 needs the circuit-binary host decided.

Children, in dependency order: #45 (wormhole derivation and shielded balance) → #46 (proof generation, circuit binaries) → #47 (exit). #46 needs the circuit-binary host decided.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blackbeard/wallet#9