Skip to content

DuskEVM

DuskEVM is an EVM-equivalent execution environment within the modular Dusk stack, delivering scalable smart contract execution while inheriting security, consensus, and settlement guarantees from DuskDS.

DuskEVM enables developers to deploy smart contracts using standard EVM tooling while benefiting from a modular architecture designed to support regulatory compliance and meet the needs of financial institutions.

Dusk’s Modular Stack

With the introduction of DuskEVM, Dusk has expanded into a modular stack, providing a clean separation between settlement and execution environments:

LayerDescription
DuskDSSettlement and data availability layer.
DuskEVMEVM execution environment
DuskVMExecution environment using Phoenix

DuskDS provides consensus, data availability, and settlement for the disintermediate trading of securities and other regulated assets.

Execution environments like DuskEVM operate at the application layer, where disintermediation logic is executed. These environments can incorporate advanced cryptographic techniques, such as ZK and FHE, to enable privacy-preserving and compliant computations.

How DuskEVM works

The Ethereum Virtual Machine (EVM) is a general-purpose, stack-based, stateless execution environment that processes smart contract logic. As the EVM is independent of consensus and data availability, it can be instantiated independently.

DuskEVM leverages the OP Stack and supports EIP-4844 (Proto-Danksharding)

While DuskEVM uses the OP Stack architecture, it settles directly using DuskDS rather than Ethereum. This required no modification to Optimism core components and it has been implemented by adding additional services.

DuskEVM leverages DuskDS to store blobs, enabling developers to use EVM tooling while relying on DuskDS for settlement and data availability.

Architecture

The diagram below illustrates Dusk’s evolution from a monolithic design to a modular architecture, where DuskDS acts as the foundational consensus and data availability layer, and multiple execution environments operate independently at the application layer:

Dusk's modular architecture

DuskEVM leverages DuskDS to store all data, such as aggregated transaction data and output roots. This enables developers to use EVM tooling while relying on DuskDS for settlement and data availability. :::

Architecture

The diagram below illustrates Dusk’s evolution from a monolithic design to a modular architecture, where DuskDS acts as the foundational consensus, settlement and data availability layer, and multiple execution environments operate independently at the application layer:

Dusk's modular architecture

Specifications

Parameters

FeatureSuperchain
Parent chainDuskDS
Throughput32.5M gas/s
Gas limitTBA
BlocktimesTBA
Data availability supportDuskDS
Gas token supportDUSK
EVM compatibilityEquivalent

Opcodes

OpcodeSolidity EquivalentBehavior
COINBASEblock.coinbaseReturns the address of the current Sequencer’s fee wallet. Effectively the same as Ethereum, but typically does not change from block to block.
PREVRANDAOblock.prevrandaoReturns the PREVRANDAO (the most recent RANDAO) value of DuskDS at the current DuskDS origin block.
ORIGINtx.originIf the tx is a DuskDS ⇒ DuskEVM tx from a DuskDS smart contract, tx.origin is set to the aliased address of the originator. Else b

Transactions Flow

The process for a rollup transaction has two requirements: The transaction needs to be written to DuskDS, tipically by the op-batcher.

The transaction needs to be executed to modify the state (by op-geth). Afterwards, op-proposer writes a commitment to the post-transaction state to DuskDS . Note that op-proposer does not need to write a commitment after each transaction to DuskDS; it is OK to commit to the state after a block of transactions.

More information about the batching process can be seen in the OP stack specs.