Dash Core Group (DCG) is excited to announce the release of Dash Platform v0.17 for testnet. After a successful deployment to testnet, a new version of the DashPay wallet for Android and iOS will also be released to DashPay Alpha Program users in the following days. This flagship application demonstrates the power of Dash Platform to facilitate industry-leading user experiences for cryptocurrency applications, ones that are visually indistinguishable from centralized offerings. These user experiences are facilitated by decentralized application data storage, an alternative to Amazon Web Services or Google Cloud Platform, where user data is secure and not monetized for advertising profit.
Testnet is the Dash network’s most formal testing environment, a critical stop on the path to mainnet. Releasing to testnet is important because the environment is almost 5x larger than Evonet, which provides a better opportunity to test the platform at scale. This is the biggest deployment of Dash Platform, and consequently, this release marks the most significant milestone in the realization of Dash’s long term vision for mainstream adoption. This release was made possible by the tireless efforts of DCG developers and volunteers from the community who provided a crucial feedback loop to improve on core functionality and ideate on potential use cases. In spite of a global pandemic disrupting work operations for many organizations, the various DCG teams supporting this release were able to press forward and deliver the biggest update in the history of the Dash network.
At the time of publishing, Evonet has not been updated to Dash Platform v0.17, so developers won’t need to save data in advance of any network data wipe. DCG has no plans to immediately update Evonet to v0.17. This is so we can better focus on delivering the remaining features required for a mainnet release. Plans regarding the future of Evonet will be made in another blog post.
Included below are descriptions of the most important functionality included in the v0.17 release. In addition to the work regarding code integration and deployment, these descriptions represent the majority of our efforts since the v0.16 release. Significant progress has also been made on the work described in the Upcoming Release section, which can be read further down the page.
- Core Height Consensus on Platform Chain: A crucial component of the platform is the ability to synchronize the Core chain block height among network nodes. Dash Platform is dependent on Core for its operation and uses it actively during the platform block execution process. It’s also important to mention that the platform and Core chains operate asynchronously. Because of this, core height consensus guarantees that all nodes use the same Core state at any point in time, thereby ensuring determinism in the block execution process. For example, validating an identity create state transition requires InstantSend lock verification by Core. Without synchronization between the platform and Core, nodes could obtain different results from the verification, which would result in nondeterminism in the block execution processing and a platform chain halt.
- Identity Funding with InstantSend: Platform users will now be able to securely fund their network identities by leveraging the speed of InstantSend. This functionality makes it quick and easy to convert Dash to credits for spending on data storage. It also removes a known vulnerability whereby users could infinitely mint credits. Obviously, resolving this vulnerability was a hard requirement for the platform to reach testnet, which now provides the foundational user experience that users can expect on the release of platform for mainnet.
- Refactored Platform State into Merkle Trees: As part of our work to provide server-side support for light clients, the global state of platform data (i.e. platform state) has been refactored so that data is now structured into a key-value store with a built-in Merkle tree. This was done in order to provide cryptographic proofs of data integrity for light clients. Completing this work represents an important step in providing full light client support, which will be delivered in the upcoming v18 release.
- Updates to the Platform Distribution Package: The distribution package has been significantly updated in order to improve user experience and accommodate the new platform components. Masternode owners (MNOs) will eventually be required to install Dash Platform in order to continue receiving payments as enforced by Proof-of-Service (PoSe). DCG has attempted to streamline installation through the use of the distribution package, thereby MNOs should have a frictionless experience upgrading their nodes to the latest versions of Core and Dash Platform.
Trade-offs & Known Issues
In order to deliver this release in line with our timing commitment, DCG management deprioritized various features and allowed noncritical bugs to remain. In the coming weeks, we will be resolving bugs and working on the remaining functionality required for mainnet. Here are some of the more notable trade-offs and known issues that testnet users might encounter:
- Hardcoded Validator Set: Validator sets are a common component of proof-of-stake blockchains, and they are used, as their name suggests, to validate incoming transactions to the network. In Dash Platform, validator sets are used to validate incoming state transitions, ideally with threshold signing using LLMQ’s (described in more detail in the Upcoming Release section). Due to time constraints, the platform chain validator set will be temporarily hardcoded on testnet, similar to how it operated on Evonet. This means that only DCG nodes will provide consensus on the platform chain. Full validator set rotation will be implemented as part of the v0.18 release, thus ensuring the complete decentralization and security of the platform.
- Identity Funding with ChainLocks: In order to fund an identity, proof of the asset lock transaction needs to be received by the platform. This proof can come in two forms: a transaction that is locked by either InstantSend or ChainLocks. As of now, the platform only checks for the InstantSend proof. The consequence of this is that identity create and topup transitions on testnet might fail in rare instances. ChainLock proofs for asset lock transactions will be added in the v0.18 release of Dash Platform, thereby ensuring that all identity funding transactions are immediate and guaranteed for mainnet.
- No Cryptographic Proofs for Verifying Data on Light Clients: No cryptographic proofs are sent to light clients, and consequently, light clients can not verify the authenticity of information that arrives from the platform. Adding this functionality will be the focus of the v0.18 release. While light clients can still make requests to the platform, this currently assumes a trusted relationship with a hardcoded set of nodes. If users are interested in querying platform data securely, then they should set up a local full node and send requests there.
client.getWalletAccount()) is called. This results in wait times of around ~5 minutes, which represents an obvious user experience flaw. In the coming month, we will be working on a fix for this that allows for persistent storage.
Once Dash Platform v0.17 has been deployed to testnet, the immediate next steps are to follow up with another release (v0.18) that contains support for the cryptographic verification of data being exchanged between light clients and Dash Platform. This functionality will provide some of the most crucial remaining pieces for Android and iOS applications to securely work with the platform. Specifically, this includes the work related to server side light client support, validator set rotation, and threshold signing with LLMQ’s. This work is already close to completion, so we are confident that another release will occur somewhere in late January or February 2021.
- Server-Side Support (i.e. Cryptographic Proofs) for Light Clients: Sharing data with light clients (i.e., mobile and web applications) presents the same challenges that cryptocurrency networks faced when trying to verify transaction data. In order to prove that transaction data hadn’t been tampered with, simplified payment verification (SPV) was introduced. Similar server-side functionality for Dash Platform will be introduced in order for light clients, most notably DashPay, to guarantee the validity and trustworthiness of user data being stored and retrieved on the platform.
- Threshold Signing using LLMQs: Platform leverages Core’s long living masternode quorums (LLMQs) in order to verify the state of any data being submitted to the platform. For those unfamiliar with LLMQs, these quorums were a scalability enhancement for the Dash network introduced in September 2018. A group of masternodes acting as a quorum will vote on the validity of data entering the network using BLS M-of-N threshold signing. Upon voting completion, a single BLS signature will be added to the state transition being stored on the platform, thus ensuring the validity of the data in question.
- Validator Set Rotation: Currently, the platform chain validator set is hardcoded on testnet, which presents a security vulnerability that is intolerable for mainnet. If the validator set remains static, then malicious actors could target the nodes comprising the validator set and tamper with the validation process, thereby casting doubt on the validity of data being submitted to the platform. Consequently, we developed a means to rotate validator sets based on quorums changing in Core, thereby ensuring critical security protection.
In the coming month, DCG will follow up with detailed plans for the roadmap to mainnet, as well as release schedule information around the time of the Q4 2020 Quarterly Call. In these communications, we will discuss the remaining work necessary for mainnet and our best estimates for when we think this work will be accomplished. Everyone within the organization is excited for the next several months. We believe that the technology we’re building represents an important step forward in realizing our mission. In time, Dash Platform will enable developers and businesses to deliver financial solutions that are secure, reliable, decentralized, and usable for all.
In closing, I’d like to provide an earnest thank you to the DCG developers who put in extra hours over the last month to accomplish this release. Drawing the line over what should and should not be included in any given release is a daunting task, one that requires extensive negotiation over quality, scope, and expectations. I can say with confidence that DCG developers kept user experience and security at top of mind during our planning and execution, and it is my privilege to represent their hard work. After taking some well-deserved rest to observe New Years and Orthodox Christmas, we will continue delivering new functionality with the same commitment to quality, transparency, and user experience that has defined our work for the past year. As always, DCG welcomes and appreciates any feedback, and we wish all readers a happy new year.
- Drive v0.17
- Dash Platform Protocol v0.17
- DAPI v0.17
- DAPI Client v0.17
- DAPI gRPC v0.17
- Dash Network Deploy Tool v0.17
- Platform Test Suite v0.17
- Dash SDK (JS) v3.17.0
- Wallet-lib v7.17.0
- JS Tenderdash ABCI v0.17