Halo: Recursive Proofs & Trustless Setup - Dusk Development Update #27
By Toghrul Maharramov

Feb 08, 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:

  • The performance of the Rusk VM recursion system has been improved by implementing an allocator to handle all requests for allocation of memory in recursive contract calls.
  • To augment our vision of absolute security, the R&D team is exploring the Halo methods to provide a trustless setup.
  • In the next few weeks the R&D team will be working on a composer abstraction layer, allowing the Dusk-PLONK system to be forward compatible, should new composers be added to the network.

Research & Development

In the latest tech sprint, the performance of the Rusk VM recursion system has been improved by implementing an allocator to handle all requests for allocation and deallocation of memory in recursive contract calls. Recursion is used to efficiently perform inter-contract calls (i.e. when a smart contract interacts with another contract).

Since every single contract call goes through the Transfer Contract, the performance improvements are most noticeable here. Other examples that will extensively use inter-contract calls are upgradeable contracts (with one contract handling storage, and another logic), and composable applications such as DeFi 'money legos'.

💡 So what does the Transfer Contract do?

The Transfer Contract is a way to transfer DUSK through the means of a smart contract. The Transfer Contract makes sure that we only have to manage one global state. Without it, we’d have two concurrent states. One located outside of the 'smart contract realm', and the other within the 'smart contract realm'.

Note: This is different from other smart contract blockchains such as Ethereum, where Ether balances are stored in the leaves of the Merkle-Patricia Trie acting as accounts representations. You can read more about it here.

Recursive Proofs

During the past few weeks, the R&D team confirmed our recent direction towards the Halo proving methods. By taking advantage of the interoperability in cutting edge recursive proof systems, we are modularising the Halo protocol, which was originally intended to work with a Bulletproof-style argument, to work with our KZG10 commitments and provide highly efficient batching techniques.

This is beneficial for Dusk Network as it enables us to verify many proofs in one, which increases the scalability of the Dusk Network protocol significantly. Additionally, the research has been guided towards Halo Infinite. With Halo Infinite, it is possible to generalise our recursive PLONK to work for multiple commitment schemes, making it viable to incorporate more use cases into the spectrum.

R&D Trustless Setup

To augment our vision of absolute security, the R&D team is exploring the Halo methods to provide a trustless setup. This is beneficial for Dusk Network because it removes the need for a trusted setup, which would require a complex ceremony to destroy the so-called ‘toxic waste’. The end-goal is for PLONK to become the universal and trustless zero-knowledge proof engine for Dusk Network.

Storage / Sparse Merkle Segment Tries

The team has begun the implementation of the Sparse Merkle-Segment Trie, which is utilized to confidentially represent user balances in the most recent iteration of Zedger. Sparse Merkle-Segment Trie is a novel cryptographic structure that merges the features of a Sparse Merkle Tree and a Segment Tree to create a structure capable of efficiently and securely facilitating the requirements of the XSC standard, forming the basis for our transaction model called Zedger.

Whitepaper V3

The research team has been working on the drafts for both the Whitepaper 3.0 and Confidential Security Contract (XSC) 2.0 Standard paper. It is important to update the Whitepaper because there have been many improvements to our tech stack since the last version, and thus the latest publicly available iteration of the Whitepaper does not reflect on the current state of our technological stack. The Whitepaper 3.0 will define the latest state of the protocol and will closely follow the technical specifications of the protocol at the time of the Mainnet release.

XSC Paper V2

XSC 2.0 is an iterative upgrade on the existing XSC paper and outlines the latest specification of the standard, which has gone through numerous amendments since the publication of the original XSC paper.

Eagle Eye View - Roadmap

Our latest progress has been incorporated into the Eagle Eye Roadmap image on our Roadmap webpage to reflect current best estimates.

[Please click the image to enlarge]

UX/Node System

Deployment System & Notification

The past few weeks, the UX/Node team has completely automated the deployment system that is used for our Developer and Test-Networks. We can now launch multiple new nodes in mere seconds, and better test how new nodes deal with catching up to blockchain, and how the network behaves when flocks of them go offline. In addition, all of its behaviour and performance is now monitored through our developer notification system.

Block Explorer

The UI/UX team has upgraded the block explorer with the latest Dusk UI Kit components, and the block explorer has been directly integrated with our internal TestNet API. Over the next couple of weeks, we will be fine-tuning the user experience for our first release and ensuring the app passes our stress tests.


In the next few weeks, the R&D team will also be working on a composer abstraction layer, allowing Dusk Network (and other applications that depend on our PLONK reference implementation) to switch between composers (e.g. TurboComposer, PLOOKUP, etc). By implementing a composer agnostic set-up, PLONK becomes forward compatible, which means that we can add more composers later and quickly make them available to Dusk Network.

💡 Circuits & Composers

Note: As a quick refresher, PLONK circuits are the building blocks of the PLONK zero-knowledge proof system and we can use composers to hugely reduce the number of gates in the circuit, making them more efficient, and thus supercharge the PLONK protocol.

In the next 2-week sprint, our VM engineers are improving how the Rusk Virtual Machine interacts with the binaries that it relies on, such as PLONK and Poseidon. The goal is to create flexibility between the many components that RUSK uses. This flexibility is created by the so-called ABIs. ABI stands for Application Binary Interface (conceptually it is similar to an API) and provides a communication layer between the functions inside RUSK VM and the aforementioned binaries.

These are exciting developments and part of our design for modularity. In the case of the Rusk VM, modularity means that we can expose a gateway to the libraries, and in the future we can update these libraries without running into problems. Once we have the ABI-layer, we will have replaced any hardcoded functions inside the contracts.

For the future, this means that we can easily upgrade individual modules, without breaking contracts that rely on them. This, too, increases Dusk Network’s forward compatibility.

Other topics on the agenda are Gas-metering & instrumentation, and various other items.


Last month, we announced that we will be pioneering our technology to also serve as a privacy layer for Elrond Network. In addition, we shared our Eagle Eye View of the Ecosystem Roadmap, and later provided a time-based roadmap towards the 9th of April, when we will launch the E2E Release Candidate of the world’s first privacy blockchain for RegDeFi applications.

About Dusk Network

Dusk Network is an open-source and privacy-oriented blockchain based on years of academic research. You can use Dusk Network to create smart contracts that control digital assets and securities.

Share this post

Subscribe to our newsletter

Dusk on GitHub Download Whitepaper