Dusk Network Development Update - September 2020
By Toghrul Maharramov

Oct 06, 2020

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

Dusk Network is developing a privacy blockchain for financial applications on which users can deploy zero-knowledge smart contracts.


Development

Canonical
We are nearing the release of our canonical repository and, with it, the final contract storage stack. Canonical has been under development for a while now; its development required us to tap into very low-level mechanisms of WebAssembly itself, which proved time-consuming. In short, Canonical expands on our work on Kelvin.

For those unfamiliar, Kelvin is created by Dusk Network, and has been an indispensable tool for modeling truly blockchain-optimized data-structures that are used by the transaction model and the smart contract engine.


By adding Canonical to our blockchain stack and adapting Kelvin to work with it, we have discovered a way to allow confidential smart contracts to access each other's storage, enabling them to interact with one another. In essence, thanks to Canonical, not only binary data is stored into the blockchain storage, but also a scalar representation of that data - which is kept consistent at all times. The scalar representation is used for proving things, while the binary representation is used for regular software interactions.

This is unprecedented in the blockchain world and of paramount importance for a zero-knowledge VM (Rusk). In practice, these libraries enable our zero-knowledge smart contracts to efficiently use Rusk host operations directly (think PLONK proof system and Poseidon (hashing) libraries).

Poseidon
For those unfamiliar, Poseidon is a hash function designed to minimize prover and verifier complexities when zero-knowledge proofs are generated and validated.

Poseidon is used all across the Dusk Network blockchain stack. We managed to drastically reduce the number of gates produced during the proving part of the (Poseidon) Merkle Tree opening. The Merkle Tree opening proof is of vital importance for us, since most of the operations performed by users require them to prove the inclusion of data in a Merkle tree and knowing the path (without ever leaking any data). For example, if a Block Generator wants to prove that his bid was included in the winning bid transaction, or if a user wants to prove that he is part of a whitelist, et cetera, a Merkle Tree opening proof is required.

To be specific, the reduction was achieved by bringing back the number of gates of the ARC+S-Box permutation down to 3. Such optimization trickles down to the Rusk stack, where Poseidon is among the most utilized components, leading to spectacular results across all our zero-knowledge operations. For instance, the number of gates to produce a Merkle Tree opening proof has been cut down from 31808 gates to a jaw-dropping 16559 gates, making it the fastest Merkle Tree opening proof currently achievable (with full 128 bits of security) by far.

Build System
In order to ship the fastest ZK stack, a lot of circuits are pre-processed and compiled for the end-user. By pre-computing circuits, we make sure that proving times are efficient. While beneficial to the creators of ZK smart contracts, the process is disadvantageous for Dusk Network developers that need to withstand lengthy compilations. This is why we have been working on a build system with the capability to cache gigs of pre-processed circuits and avoid library compilation times of >1h.

Cake! X Canonical/Kelvin
For those unfamiliar, ‘Cake!’ is a sugared syntax way to write Rusk Smart Contract using the Rust Language, and will be evolved into a complete Domain Specific Language (DSL) in due time.

Cake! now supports Canonical/Kelvin, making the use of the storage efficiently quite a breeze. This will be even easier once the new cryptographic Domain Specific Language (DSL, think: Solidity for Ethereum) is released and adopted, allowing for the development of ZK smart contracts with ease, without needing to know cryptography.

Node overhaul
The code of Dusk Network nodes has been overhauled in preparation for our updated consensus algorithm SBA3.0, which is set to speed up consensus by at least 20%.

By removing the asynchronism of the consensus steps, we’ve eliminated inefficiencies resultant from lock contentions and the overhead given due to the need of coordinating the components. These improvements drastically simplify the algorithm.

Once implemented, SBA3.0 will substantially reduce the time required for block finalization by removing the need to selectively reward active committee members.

Circuit integration
The circuits for all genesis contracts are now complete. This is a huge milestone for the whole Rusk team and, apart from integrating Canonical in the contract storage, is the last step before wiring the updated consensus to the PLONK-based VM.


Research


Economic Model Paper
We have completed the work on the Dusk Network Economic Paper. The paper is currently undergoing minor cosmetic changes and proof-reads before the publication. The paper will include an in-depth analysis of ROIs under different scenarios alongside the projected emission schedule, staking requirements, etc.


Paving the road for Light Wallets
For the past month, our team has been extensively researching the possibility of decoupling secret key knowledge proofs from proof generation. The main goal behind the research effort is to enable the creation of so-called light wallets, which will not be required to store the entire blockchain history or include the proof generation primitives with the accompanying circuits. Instead of computing the proof on the device responsible for the storage of the secret key, the device would prove the knowledge of the secret key and delegate the proof computation to a server, enabling Metamask-like applications for Dusk Network to become a reality as well as paving a way for possible integration with hardware wallets.


Community

With Provisioner staking having launched this month, we’ve once again witnessed the Dusk community answer the call: over 90 Provisioner stakers are currently live, locking in a cumulative ~9M DUSK. Alongside the over 300 Block Generators currently running, ~14,4% of the total circulating supply of Dusk is locked. You can sign up to become a staker through our dedicated staking portal: https://staking.dusk.network/

One of this month’s most promising developments is Next Generation Capital (NGC) selecting the Dusk Network blockchain for their tokenization efforts and Security Token infrastructure. This partnership connects Dusk with a group of diverse financial actors, all looking to innovate the financial market. Examples of relevant players in the working group include large global banks like Rabobank and ABN-AMRO, infrastructure players like Euroclear, and leading academic institutions such as the Erasmus University Rotterdam.

In terms of community content, we’ve ramped up the creation of technological demonstrations and articles, touching on the topics of Decentralized Finance, Smart Contract technology, and a closer look at our staking mechanics. In fact, you can find our most recent Dusk Demonstrations and articles in the section below.

Dusk Demos
Dusk Network continues to put out valuable technology demonstrations and explanations through video content and articles.


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