Genesis Contract Benchmarks, RKYV, and Wasmer in Rusk-VM - Dusk Development Update #36
By Toghrul Maharramov

Nov 05, 2021

A monthly development update series created to embrace the transparency and inclusivity that we strive for at Dusk Network

Dusk Network is developing the privacy blockchain for financial applications. A blockchain-based ecosystem of programmable digital assets that meet industry compliance standards. Companies use Dusk Network to secure capital, trade assets, and access a full spectrum of financial services.

Key takeaways:

  • Adapting to RKYV.
  • Genesis Contract benchmarks.
  • Wasmer in Rusk-VM.
  • VM v2 Specs.

The release of our New Testnet Milestones article has added another layer of developmental transparency to Dusk Network: our GitHub now includes public development milestones, timelines, and more.

For this reason, we’ve decided to alter the format of our Monthly Development Updates, giving specific updates on public milestones in four categories, and providing context for the most noteworthy developments as seen on GitHub.


The UI/UX team has been working on multiple areas. First of all, V4 of the Dusk Network UI Kit has been completed. All Dusk Network applications benefit from the stability improvements and consistency that this release brings.

The Public API service for Dusk Network is still in progress, as we work on making the API compliant to the Open API 3.0 standard. Utility of the API will include overall Portal applications, such as the Block Explorer and Wallet.


The node team has migrated Kadcast to the Rust programming language. This will allow for a Rust-based backend for the web wallet. Documentation of tests and benchmarks have also been published for this development.


The core team worked on the upgrade to V2 of the Rusk Smart Contract platform. As part of this effort, the VM specifications V2 paper was created and the specs have been released.

In addition, we’ve made a benchmark of the V1 Genesis contracts. These Genesis Contracts use the older version (V1) of Rusk. Although completed, a slight modification is needed to separate the Zero-Knowledge Proof performance from the benchmarks, as to enable more accurate benchmarking in the future. These benchmarks will be used as a baseline to compare with V2.

The Dusk Network protocol needs a fast and reliable Smart Contract platform, which the Rusk Virtual Machine provided. However, it was based on a Wasm framework by Parity Technologies called Wasmi, which wasn’t as fast. This is why we’ve now migrated RUSK-VM to Wasmer. Migration to this state-of-the-art Wasm framework is beneficial to the Dusk Network and allows for a significant performance improvement.

We’ve adapted MicroKelvin, Nstack and HAMT to work with RKYV, in order to take advantage of zero-copy deserialization when handling types in Wasm and on the host. This solves gas inefficiencies we encountered in the VM and is critical to the aforementioned V2.


The work on PLONKup has continued. The PLONKup technical paper is nearing completion and will soon be up for publication. Additionally, work has started on Plang: a language representing PLONK circuits. It allows circuits represented in the language to be compiled into their prover key and verifier data, once the circuit has been preprocessed.


In the next two development cycles we’ll be working towards the delivery of not only the Dusk Explorer, but also the Web Wallet front-end and Testnet dashboard. All user-interfacing components will make use of the UI Kit and Boilerplate releases of this month.

Now that we’ve successfully migrated Kadcast to Rust, we are able to integrate BLS12_381 and Kadcast in the Node department. BLS, also known as Boneh–Lynn–Shacham, is a cryptographic signature scheme that allows the authentication of other users, whereas Kadcast enables the structured propagation of data within the Dusk Network protocol.

💡 When the Kadcast specification paper dropped in 2019, the developers at Dusk Network saw an opportunity to minimize network delay and improve the overall performance and stability of the network. This has a positive impact on the reliability, security, and fairness of the blockchain. [Read more on Kadcast vs Gossip Protocol]

With the migration of the Rusk VM to Wasmer, and the adaptation of Microkelvin, NStack, and HAMT to RKYV, the core team is now able to also integrate RKYV in the virtual machine. In addition, the team will start rewriting the Genesis contract on the new VM, and work on improving the gas metering. More specifically, an improvement needs to be made to address the gas that is used during inter-contract calls.

💡 An Inter-contract call should only have access to its own dedicated gas context. As of now, inter-contract calls are allowed to use up all the gas, leaving no remainder for the finalization of the execution, which could potentially hamper the network. By providing a dedicated gas context, we avoid additional code in the global context, a complex and error-prone operation.

Now that we have replaced the hashing algorithm Poseidon with Zelbet (Polish for Reinforced Concrete), we also have to slightly adjust other components like NStack to work with these new trees. Once the Zelbet Trees are fully operational, we can start to refactor the Rusk ABIs that depend on the latest versions of RKYV and Zelbet. You can find a refresher on the Rusk ABIs function here.

A closer look at our development milestones

GitHub now includes milestones & timelines, making it a lot easier to follow our developmental progress in real-time. Rest assured, for those unfamiliar with Github, or simply lacking the time to dive in, there is always the opportunity to catch up in our Monthly Development Update.

Latest articles:

About Dusk Network

Dusk Network is the privacy blockchain for financial applications. A new standard for compliance, control, and collaboration. Our mission is to enable any size enterprise to collaborate at scale, meet compliance requirements and ensure that personal and transaction data remains confidential.

Share this post

Subscribe to our newsletter

Dusk on GitHub Download Whitepaper