Moonlight vs Phoenix: Two Transaction Models.
One of the most interesting choices in Dusk is that privacy is not treated as an all or nothing decision.
Instead Dusk provides two transaction models with different purposes: Moonlight and Phoenix.
Moonlight is Dusk’s public account based model Each account is associated with a public key and the network maintains its balance and transaction nonce. Transactions are authorized through digital signatures while account state remains transparent to the network.
Phoenix takes a fundamentally different approach. It is a shielded UTXO based model where UTXOs are represented as notes in a Merkle tree. When a note is spent a nullifier prevents double spending without revealing which specific note was consumed. Phoenix transactions use zero knowledge proofs so the network can verify that the transaction follows protocol rules without directly exposing the underlying transaction details.
That distinction matters because different financial activities can require different levels of visibility.
A public account can provide straightforward transparency, while Phoenix can provide stronger transaction privacy. Dusk’s documentation describes these as complementary models rather than competing systems.
For @Dusk the deeper architectural idea is flexibility users do not have to choose between an entirely transparent blockchain and an entirely private one.
$DUSK #dusk
Could giving users both transparent and shielded transaction models become an important requirement for serious on chain financial infrastructure?