Dusk Network's zero-knowledge framework. The components that go into Dusk Network's privacy-preserving smart contract platform, powered by Proof of Stake (POS).
As the work continues to deliver the world’s most complete zero-knowledge (ZK) blockchain (Privacy Coin powered by Proof of Stake with Smart Contracts) we wish to share and elaborate on our technical framework. In this article we describe the components that make Dusk Network and provide a simplified framework that helps illustrate how it all ties together.
“Dusk Network is the new blockchain standard for control, compliance and collaboration. Designed for financial markets, technology for securities. An open source and secure blockchain infrastructure that businesses use to tokenize financial instruments and automate costly processes.”
Zero-Knowledge: Everywhere
From a technical point of view, we are implementing zero-knowledge cryptography in all of Dusk’s core processes to guarantee strict data privacy, a requirement for the compliant issuance of Security Tokens.
And when we say all of Dusk’s core processes, we mean it. Proof of Blind Bid uses ZK to achieve privacy Proof of Stake. Phoenix uses ZK to guarantee strict data privacy, even for non-obfuscated outputs such as block rewards and gas fee refunds, and RUSK VM uses ZK to achieve zero-knowledge smart contracts. But there is more..
Dusk Network Technical Framework
The technical framework below is a simplified version well-suited to provide contextual meaning to previous releases, and gives an overview of what goes on behind the curtains.
System Layer
Starting at the bottom, we have the blockchain ‘database’, or the System Layer. It includes the Main Node Process and is where the last program state of the Dusk Smart Contract Platform is recorded on the Chain. KadCast is a very recent (2019) peer-to-peer networking protocol created to bring structure to the distribution of messages in the Network.
What’s unique about Dusk’s Smart Contract Platform is that it leverages PLONK the ZK proof system, the output-based transaction model Phoenix and our in-house developed storage method Kelvin (for modeling optimized data structures). This all culminates into the world’s first zero-knowledge virtual machine (Rusk). ZK Smart contracts are executed in WebAssembly (WASM), and the Rusk VM Host operates as the mediator between the VM and the outside world, offering foreign functions and injecting gas into operations.
Blockchain Layer
In 2019 we released our Proof of Blind Bid consensus mechanism, the world’s first privacy Proof of Stake implementation. During the Blind Bid phase, nodes stake an amount of DUSK through the Blind Bid Contract and Staking Contract in order to participate as Block Generators and Provisioners, respectively.
Transfer & Fee Contract
Gas fee payments are made to the Transfer Contract and Fee Contract. At the end of every round of consensus, a committee of nodes is eligible for the block reward. It would be infeasible to transmit these rewards every time a block has been processed (block times are <15s). Therefore, all the ‘to-be-paid’ compensations are recorded in the Fee Contract and mapped to the respective nodes. They can call their rewards whenever they like, thereby reducing the load on the system.
Business Layer
The business layer is a collegial term that we use to describe the pieces of technology that are most relevant to issuers and other third-parties that use Dusk Network.
In simpler terms, the business layer enables the creation of zero-knowledge smart contracts. These can be decentralised applications (dApps), or Security Tokens based on XSC. XSC is the abbreviation of our Confidential Security Contract, and is a standardized smart contract configuration that enables users to adhere to all relevant aspects for the compliant issuance of security tokens. The XSC standard for security tokens, is what Ethereum’s ERC-20 standard is for utility tokens.
Technically, XSC is made possible by Zedger. Zedger is a configuration on top of the Rusk for smart contracts, and enhances the Phoenix transactional layer to support account-based capabilities - a requirement for smart contracts.
UX layer
Here, the user friendly infrastructure such as wallets (CLI, GUI, Web), block explorers, monitoring tools, benchmarking tools, and nodes (Full Nodes, Light Node, Browser Nodes) are what define the UX layer. This layer is abstracted away from all the code, and technicalities in favor of good user experience (UX).
To support consistency across the various applications, we have created a UI Kit that offers a unified toolkit that is used by designers and developers in their projects. It ensures that all Dusk projects are accessible, have a consistent look and feel, and can be upgraded to a new design style across the board if we ever want to.
Closing Remarks
The world of cryptography, zero-knowledge proof systems and other novel technologies is a team effort, where mutual exchange of knowledge with leading cryptographers from leading blockchain protocols around the world is necessary. We thank each and everyone for their diligence and perseverance in the development of these systems.