ERGO
Privacy & Sigma Protocols
Intermediate
2-4 hours

Privacy-Friendly One-Time Receive Pattern

Generate one-time addresses/boxes for better transaction graph privacy

GitHub

Problema

Reusing addresses links all your transactions together, reducing privacy. Anyone can see your full transaction history.

Solução

Generate unique one-time addresses for each receive. Using Diffie-Hellman key exchange, sender creates a box only the receiver can spend, without revealing the receiver's main address.

Como funciona

  1. 1Receiver publishes a public key (or derives from main address)
  2. 2Sender generates ephemeral keypair for this transaction
  3. 3Sender computes shared secret via ECDH
  4. 4Sender creates box spendable by derived one-time key
  5. 5Receiver scans blockchain for boxes they can spend
  6. 6Receiver derives private key from shared secret to spend

Exemplos de código

{
  // One-time receive box
  // R4: Ephemeral public key (sender's temporary key)
  // R5: Encrypted memo (optional)
  
  // The box is spendable by the one-time key derived from:
  // oneTimePrivKey = receiverPrivKey * hash(sharedSecret)
  // sharedSecret = ECDH(ephemeralPriv, receiverPub)
  //              = ECDH(receiverPriv, ephemeralPub)
  
  val ephemeralPubKey = SELF.R4[GroupElement].get
  
  // The proposition is a standard proveDlog
  // but the public key is the one-time derived key
  // Receiver computes: oneTimePub = receiverPub * hash(sharedSecret)
  
  proveDlog(oneTimePubKey)
}

One-time receive box. The spending key is derived from shared secret, only computable by the intended receiver.

Casos de uso

  • Private donations
  • Salary payments
  • Merchant payments
  • Anonymous tips
  • Privacy-preserving invoices

Considerações de segurança

  • !Store receiver private key securely
  • !Scan regularly for incoming payments
  • !Consider timing attacks when spending
  • !Use with mixing for enhanced privacy
  • !Ephemeral keys must be truly random

Implementações reais

ErgoMixer

Privacy-focused wallet features

Recursos

Considerações de taxas

Standard transaction fees. Scanning requires indexing or full node access.

Aprimore suas habilidades em ErgoScript

Receba notificações sobre novos padrões, tutoriais e recursos para desenvolvedores.

Follow for daily updates