⚖️Two-Pool Architecture

Stake transparently. Spend privately. Without the chain ever linking the two.

The PoS-privacy conflict

Proof-of-Stake requires publicly verifiable stake weights — the network must see how much you control to decide whether your block is valid. Privacy chains want amounts and ownership hidden. These goals fight each other.

MaryJaneCoin resolves the conflict by splitting the UTXO set into two pools:

PoolPrivacyCan Stake?Can Spend?
TransparentVisible amounts (P2PKH)✅ Yes❌ No (after activation)
ShieldedStealth + ring mixed❌ No✅ Yes
Activation Two-pool consensus turns on at block 2,000. Before then, both pools coexist but transactions can move freely between them. After activation, plain P2PKH spending transactions are rejected.

How UTXOs are classified

Step-by-step

  1. Check your pool balances

    $ MaryJaneCoind getpoolbalances
    {
      "transparent": 898437511.02,
      "shielded":    1562488.98,
      "total":      900000000.00,
      "two_pool_active": false,
      "activation_height": 2000
    }
  2. Peg-in: move coins to the shielded pool

    This is a stealth send-to-self. Your coins land in the shielded pool, ready to spend privately.

    $ MaryJaneCoind pegin 10000
    "abc123..."   # txid
  3. Peg-out: move coins back to transparent (e.g. to stake)

    $ MaryJaneCoind pegout 5000
    "def456..."   # txid
    # Output carries OP_RETURN "PEGOUT" so consensus reclassifies it as transparent
  4. Verify the kernel only stakes from transparent

    After block 2,000, CreateCoinStake only selects UTXOs from the transparent pool. Your shielded UTXOs are invisible to the staker — and your staking activity is invisible to spenders.

Putting it together: the privacy flow

  1. You stake from the transparent pool — collect fees publicly
  2. You pegin the fees you accumulated — coins enter the shielded pool
  3. You spend from the shielded pool — stealth + ring mixed by force
  4. The chain has no on-chain link between your staking address and your spending output
Why this matters Other PoS privacy chains either give up staking privacy or let stakers self-deanonymize through clumsy spend patterns. The two-pool model makes privacy structural, not behavioral.