#dusk $DUSK @Dusk
Dusk's entire stack is built modularly. DuskDS is the settlement and data-availability layer — it runs Succinct Attestation consensus, handles staking, and holds the base DUSK asset. DuskEVM is a separate Solidity-compatible execution layer, built on the OP Stack (a sequencer running op-geth, plus a batcher that posts transaction data back to DuskDS as blobs), and it settles back into DuskDS rather than relying on its own independent security. DuskVM is a further, still-emerging native execution environment for Rust/WASM contracts, meant for applications that need native privacy or protocol-level integration. Piecrust is the WASM runtime (built on Wasmer) that was originally embedded in DuskDS and is now being extracted into DuskVM. Networking runs on Kadcast — a structured, Kademlia-style broadcast protocol instead of random gossip.
The logic behind this architecture is that "one execution environment for everything" doesn't work for a chain trying to serve both DeFi-style composability and regulated asset issuance at once. Rather than forcing Solidity developers onto a native Rust/WASM environment, or forcing native privacy applications into EVM constraints, settlement and consensus sit on a shared base layer while execution environments specialize above it. Kadcast fits the same logic — structured broadcast means more predictable bandwidth and latency, which matters more for a chain claiming deterministic finality than for one that treats finality probabilistically.
Splitting execution from settlement also means DuskEVM's guarantees are only as strong as the bridge and batching mechanism connecting it back to DuskDS. As DuskVM matures alongside DuskEVM, the network ends up running three execution surfaces against one settlement layer. Does that split genuinely reduce integration friction for developers, or does it just move the complexity from "which VM do I use" to "which layer actually holds my guarantee"?
Dusk's entire stack is built modularly. DuskDS is the settlement and data-availability layer — it runs Succinct Attestation consensus, handles staking, and holds the base DUSK asset. DuskEVM is a separate Solidity-compatible execution layer, built on the OP Stack (a sequencer running op-geth, plus a batcher that posts transaction data back to DuskDS as blobs), and it settles back into DuskDS rather than relying on its own independent security. DuskVM is a further, still-emerging native execution environment for Rust/WASM contracts, meant for applications that need native privacy or protocol-level integration. Piecrust is the WASM runtime (built on Wasmer) that was originally embedded in DuskDS and is now being extracted into DuskVM. Networking runs on Kadcast — a structured, Kademlia-style broadcast protocol instead of random gossip.
The logic behind this architecture is that "one execution environment for everything" doesn't work for a chain trying to serve both DeFi-style composability and regulated asset issuance at once. Rather than forcing Solidity developers onto a native Rust/WASM environment, or forcing native privacy applications into EVM constraints, settlement and consensus sit on a shared base layer while execution environments specialize above it. Kadcast fits the same logic — structured broadcast means more predictable bandwidth and latency, which matters more for a chain claiming deterministic finality than for one that treats finality probabilistically.
Splitting execution from settlement also means DuskEVM's guarantees are only as strong as the bridge and batching mechanism connecting it back to DuskDS. As DuskVM matures alongside DuskEVM, the network ends up running three execution surfaces against one settlement layer. Does that split genuinely reduce integration friction for developers, or does it just move the complexity from "which VM do I use" to "which layer actually holds my guarantee"?