July 24, 2024 10:48 pm

Introducing Dash Evolution

We’re releasing the biggest release in Dash’s history, the Evolution platform. What started as a simple vision for blockchain-level usernames and contact lists back in 2015 has evolved into a much more ambitious project. In order to properly fill in all the missing gaps around decentralized money, we had to dive into decentralized data as well. Now, after many years, we’re finally releasing the first great step in fulfilling this vision: the Genesis release.
So what is Dash Evolution? Evolution is a first-of-its-kind decentralized application platform that lets you build apps on fast, easy and reliable access to decentralized data. More specifically, Evolution is a platform for executing data contracts. These write data to indexed and queryable decentralized storage. A sidechain run by the same nodes as run the main chain processes data transactions, while the network’s decentralized API allows anyone to access that data on demand. It’s ideal for any app where you want to store data in a decentralized way, and quickly search and access exactly the piece of data you need. Some of these might include accounting software, merchant maps, social media, really anything where you need to store data in a decentralized, censorship-resistant way, and where you can easily call up exactly the data you need, exactly when you need it.
This is a very ambitious project. This isn’t just adding a new feature set to Dash, but rather is launching an entirely new and radically different blockchain network that interfaces with the legacy Dash network.
 

Structure

Let’s break down the structure of the Evolution platform.
Evolution is run by validator nodes called Evolution Masternodes (EvoNodes), a special kind of masternode that runs both Core (the regular Dash payments chain) and Platform (Evolution). It’s comprised of four major elements:
  • Platform chain
  • Data contracts
  • Data storage
  • DAPI

Platform Chain

The Platform Chain is a sidechain that, as mentioned above, is run by EvoNodes, which also secure the legacy Dash chain. It uses the account-based model (single addresses have balances), as opposed to the UTXO model (multiple addresses hold coins, or UTXOs) of the Core chain. It uses a heavily-modified derivative of Tendermint (Cosmos) consensus called

The main differences between Tenderdash and Tendermint are that Dash’s version has same-block execution, meaning you don’t have to wait for the next block after writing new data in order to query it. It also uses a rotating quorum, or subset, of validators (Scalable Byzantine Fault Tolerance or sBFT) instead of using all the validators concurrently (Practical Byzantine Fault Tolerance or pBFT). Users register identities on Platform in order to use the chain, which are then associated with their private keys on the Core chain. They use these to receive and use Credits, which are Dash equivalents on the Platform chain. Credits are minted when they’re bridged from the main Dash chain. The Dash is locked via an asset lock in order to mint the equivalent amount of Credits, and then burned when the Dash on the main chain is redeemed. The chain is validated by EvoNodes, with quorum signatures being written to the Core chain, thereby benefiting from the security of the Core chain as well. Users use credits to pay fees to process state transitions, as well as store data.

Data Contracts

Evolution executes data contracts to the network. A data contract is a database schema which specifies how data is written to the Evolution platform. Data contracts are associated with owner identities, and state transitions on the Platform chain execute them to write documents, which are stored in Dash’s storage mechanism. A developer registers the data contract via state transition, and users then access and in turn use state transitions to write their own resulting documents. Contracts can be modified by the owner in certain backwards-compatible ways such as adding new documents and optional properties, adding non-unique indices, and so on. They can optionally include a contract revision history. Documents can be created, replaced, and deleted from storage by their owner.

Data Storage

Evolution stores decentralized data from data contracts in a multi-layered, indexed, and highly-queryable database system, mainly:

Drive essentially tells the network to insert/store a given document, while GroveDB sorts it into a particular reference/subtree/etc., and RocksDB stores the key-value mapping (i.e. “name = evan”). It’s a much more thoroughly-developed data storage solution than many alternatives, and is optimized to be indexed and able to be quickly queried in a decentralized and provable way. This is an abbreviated version, and more in-depth information on the subject can be found in the developer documentation.

DAPI

DAPI, or the Decentralized API, is how users and developers communicate with the Dash blockchain. It allows users to interface with both the Core and Platform chains, directly with the network itself, without having to run a full node. This significantly cuts down on infrastructure costs for interfacing with the decentralized network, and also cuts out the need for a trusted third-party service to run nodes on the user’s behalf.

What Can You Do With Dash Evolution?

As mentioned above, Evolution is a platform of executing data contracts to write to, and access from, decentralized storage. But what is it actually good for? Why did we build it in the first place? There are endless use cases for Evolution; however, the initial, foundational two applications/data contracts are DPNS and Dashpay.

DPNS

DPNS, or the Dash Platform Name Service, is a naming service for identities. Essentially, it allows users to associate certain human-readable usernames with their identities for easy lookup and display. This is the foundation for other contracts such as DashPay which facilitate interactions and payments between users. A username is registered and associated with an identity, which can then be interacted with via username.

DashPay

DashPay is a payment app contract which allows users to easily exchange payments. It interfaces with DPNS for username lookup, then allows identities to form connections with each other. Once a connection is formed, encrypted extended public keys are shared between the new contacts, so that payment information can be exchanged in a fully-private and encrypted way without exposing public keys. The relationship between the contacts is tracked internally so that each has a record of payments to and from the other. If a user device is lost, via recovery phrase they may recover not only their funds, but their username, contacts, and history with their contacts. This re-creates the modern payment experience in a fully decentralized and trust-minimized way, and without exposing sensitive payment details to the public blockchain.

Why Use Dash Evolution?

A user will want to use Dash because they are able to enjoy a much easier and more intuitive payment experience thanks to DPNS and DashPay, all privately and without trusting a centralized third party such as a company which could lose or sell their data, or which could be shut down or censor them. Users will also want to use apps built on Dash because they can truly own their own data: when interacting with data contracts, their resulting data stored by the Dash network will be owned by them. Their data stays with them, even if the application they were using shuts down. We believe this is a major incentive to use apps built on Dash over legacy apps. Each new app built adds more utility to a user registering an identity and owning their own data. We eventually envision a single “login with Dash” function where users are able to completely wean themselves off of trusting their data and credentials to legacy centralized companies, and can simply tap into a unified decentralized network instead.
A developer will want to develop on Dash because they can easily build a legacy Web2-style app in familiar languages such as JavaScript, easily read write data to the network without needing to run a node or pay for an infrastructure provider, and pay as they go for data storage on an immutable network that can’t be shut down, and that they can modify if need be. Their data can be easily queried and accessed on-demand. They essentially can build on the familiarity, performance, and ease of use of legacy systems, combined with the immutability, decentralization, and universal access of blockchain.

The Genesis release includes all of the above-mentioned functionality, plus non-fungible token (NFT) support. Immediately after release we will be focusing on improving network stability and launching DPNS and DashPay, after which we will focus on enabling credit withdrawals for EvoNodes, fungible token support, and throughput improvements. We’re incredibly excited about this release, nine years in the making since its initial conception, and can’t wait to see developers and users building the decentralized futures on Dash. The Evolution of money and data is here. If you would like to start building on Evolution, please fill out this questionnaire.


About the author


Marina Siradegyan

Communications and marketing at DCG. Huge fan of Dash. And cats.