Key Management
Our Approach:
Phase 1 (Current): Launch with Hybrid model
Optimized for Stacks/Clarity
Fast iteration, proven UX
Escrow contracts mitigate delivery/dispute risk
Phase 2 (Planned): Add Fully On-Chain options
Fully on-chain re-encryption proofs on networks that support them
Backwards-compatible at the asset level: existing NFTs can keep their identifiers within a given chain/contract, while adding a new verification/reveal layer.
Optional: users choose Hybrid (cheaper) or Fully On-Chain (trustless)
Design principle: Build modular from day one so migration doesn't break existing assets.
Key Management:
Wallet-derived keys (recommended):
Encryption key derived from wallet seed via BIP-32 path
No extra seed phrases to manage
Import wallet → encryption key auto-restored
Path example:
m/44'/5757'/0'/0'/1'(Stacks coin type 5757)
Key server (convenience mode):
Third-party holds encryption keys
Authenticated via wallet signature
User signs challenge → server decrypts → returns plaintext
Trust trade-off for convenience
Client-side (maximum security):
Generate encryption keypair locally
Store in browser secure storage or hardware wallet
Full control, but key loss = cannot decrypt
Security Model:
Threats:
Server compromise (Hybrid model)
Front-running (transfer races)
Seller withholding re-encryption / key transfer (fully on-chain variants): mitigated via atomic transfer + proof-verified key switch, or escrow with deadlines/refunds.
Buyer claiming "secret was wrong" post-purchase
Mitigations:
Hybrid: Escrow smart contract (seller must provide valid ciphertext or payment refunded)
Fully On-Chain: ZK proofs eliminate trust (contract verifies consistency)
Front-running: Time-locked commits (commit txn, reveal after block confirmation)
Disputes: Hash(secret) published at mint, verifiable post-decrypt
Disclosure by choice: Players can share secrets voluntarily. This is intentional:
Teams can pool information
Markets emerge for "leaked" secrets
Social dynamics (who do you trust?) become part of gameplay
Not a bug, a feature: Information markets require voluntary disclosure.
Why This Matters:
eNFTs are the first practical way to run honest incomplete-information games on-chain. Prior attempts:
Dark Forest (zk-SNARKs) → bot wars, too complex
Traditional NFTs with "hidden traits" → revealed on-chain, not truly hidden
Off-chain game servers → not verifiable, requires trust
Confidentiality boundary: commitments guarantee integrity; confidentiality depends on encryption + key delivery. Treat all URIs and off-chain payloads as untrusted inputs; wallets should sandbox previews and warn on external links.
Last updated