A monthly development update series created to embrace the transparency and inclusivity that we strive for at Dusk Network
Last week we released version 0.3.0 of dusk-blockchain code on Github. It is release number three of the dusk-blockchain codebase, and includes a well-organized repository structure, which groups all relevant code together in the cmd folder, along with an improved makefile. The release comes with increased documentation and ushers stability improvements.
In April we shared some of our progress in two PLONK demos introducing the zero-knowledge proof system, detailing the benchmarks, and actually showing how easy it is to build PLONK circuits with the help of our TurboComposer. In the past couple of weeks, we have been implementing Elliptic curve cryptography (ECC) as a feature in our PLONK composer.
Many implementations and standardised cryptographic operations rely upon the properties of elliptic curves, as they are considered amongst the best primitives where the discrete logarithm problem (DLP) is hard. By incorporating these into our PLONK circuit, we are providing the tools to convert many computer operations, which use elliptic curves, and perform them in zero knowledge.
At the moment, we are nearing the end of our scalar multiplication gate. As a quick refresher - scalar multiplication is multiplying an elliptic curve point, P, by a chosen ‘scalar’, n, which gives a new point on the curve Q. So n*P = Q In terms of cryptography, ‘n’ is the secret input (i.e. *private key*) and ‘Q’ is the public output (i.e. *public key*). The aforementioned hard DLP is just a way of saying that if you are given Q and P, there is no way to figure out n.
The repository can be found here: https://github.com/dusk-network/plonk
The Dusk-PLONK crate can be found here: https://crates.io/crates/dusk-plonk
We also polished existing contracts during internal review sessions, and made it a lot easier to write smart contracts. In fact, writing a smart contract on Dusk Network is a piece of Cake! “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. In the meantime, genesis contracts like our Transfer Contract have been also updated with Cake!
The research arm of the Dusk Network team has dedicated the past month to tightening the security of the protocol. From formal descriptions of smart contract specifications to research into mitigation techniques against Miner-extractable Value (MEV), the team has been working hard on potential security improvements to the protocol.
MEV, originally posited by Daian et al, describes scenarios in which entities responsible for transaction ordering (in our case, Generators) accrue additional value from their role by selectively prioritizing their own transactions when additional profits can be extracted. An example of MEV can be a transaction calling a Decentralized Exchange (DEX) contract utilizing a constant product market formula which produces deterministic price slippage dependent on the trade size, being out prioritized by a miner transaction emulating the aforementioned transaction. Similar value can also be extracted by non-miners, who can engage in so-called priority gas auctions to outbid a previously propagated transaction in order to gain the priority during transaction ordering. Enforcement of transaction order-fairness mitigates the ability of miners and non-miners alike to extract value. A recently published paper on Order-Fairness for Byzantine Consensus proposes a novel technique achieving transaction order-fairness, which can be integrated into existing consensus protocols.
We have propagated the first draft of the Dusk Network Economic Paper for a review. The Economic Paper outlines the incentive model utilized within the protocol and the concrete parameters (including staking thresholds, reward distribution functions, token emission schedules, etc.) to be deployed once the network goes public. Additionally, we have started work on the Dusk Network Whitepaper 3.0, which will feature the detailed specification of our latest version of the protocol that has undergone drastic changes since Whitepaper 2.0 has been published last summer.
On April 16th we released our very first Dusk Network Business Report. At Dusk we always strive for transparency, and that is why we will continue to share quarterly insights into our technical development, commercial strategies, and financial disclosure. In the first quarter of 2020 we have seen demand grow for privacy-respecting technology, and provide clarity on our current asset position, which enables us to be developing at full steam well into 2023.
In the past weeks we have shared another set of demo releases with our community. So far we have shown the dynamics of three of our genesis contracts, and explained our zero-knowledge proof system PLONK. We also demonstrate how to create your own zero-knowledge proofs with the help of our TurboComposer. A complete list of our demos can be found below;
- Genesis contract - Transfer contract
- Genesis contract - Fee contract
- Genesis contract - Staking contract
- Zero-knowledge - PLONK (1)
- Zero-knowledge - PLONK (2)
Other happenings this month include our DeversiFi listing and team expansions. With great pleasure we introduced experienced developer Thomas Modeneis and business controller Stijn Lucieer. In addition, we have already received many applications for our Rust developer position, and are always happy to connect with talented people.