Dash Core Group Release Announcement: Dash Platform v0.20 on Testnet
- Validator Set Rotation To archive consensus on the Platform blockchain, a specific set of masternodes, called validators, verifies and signs blocks. Up until version 0.19, the validator set was static and hosted on nodes controlled by DCG. With version 0.20, Long-living Masternode Quorums (LLMQ) are used to dynamically distribute and rotate the validator set among all masternodes. This approach evenly distributes the load and makes the network much more secure and reliable.
- Dash Core Signing In previous versions validators would use hard coded public/private key pairs where the public key would be known by the entirety of the network and the private key would be in an insecured file on disk. In this version Dash Core provides signing for individual members of the active validator set quorum making it so keys never leave the proven security of the Dash Core system.
- Cryptographic Proofs Previously, clients needed to use trusted full nodes to ensure the validity and integrity of data retrieved from the platform network. In this version, DAPI provides efficient cryptographic proofs alongside the platform data, which enables light clients (e.g. mobile wallets) to securely interact with Dash Platform. These proofs involve merkle-ized trees proving any returned data is in the state and then a signature of the state by known quorums. While Platform does provide these proofs in 0.20, we plan on having further improvements in v0.21 before the verification of these proofs in client libraries, as we noticed some additional work was needed to make them fully verifiable.
- Platform State Threshold Signing Validators previously used EdDSA signatures of the platform state cryptographic digest in order to provide cryptographic proofs and guarantee network consensus. The number and overall size of these signatures made proofs resource-intensive for light clients to use. In version 0.20, the BLS threshold signing mechanism is used to produce only one signature, which mobile wallets and other light clients can easily verify.
- Peer-to-Peer Layer Optimization Previously, full nodes as well as validators relied on and verified all types of P2P messages. This meant that full nodes also received network traffic containing messages only relevant to validators for achieving consensus. In the new version, full nodes no longer receive intermediate consensus messages produced by validators. Instead, validators produce only one message with a BLS threshold signature to propagate the resulting consensus decision to the remainder of the network. This heavily reduces network load as many messages no longer need to be propagated to full nodes, resulting in orders of magnitude less bandwidth usage.
- Platform Metadata Dash Platform now attaches additional metadata to DAPI responses, such as the current platform blockchain height, as well as the synchronized core blockchain height observed and agreed upon by all nodes participating in network consensus. Since the platform and core blockchains are asynchronous, Platform uses this core height to ensure all platform nodes have a deterministic view of the core network state.
- Strict and Secure Data Contract Validation The new version of Dash Platform Protocol updates the JSON Schema specification used to define data contracts to the most recent 2020–12 version, and employs strict validation rules to prevent potential user errors in data contracts submitted to the network. A special regular expression engine is also employed to mitigate ReDoS attacks.
- Robust JS Wallet Synchronization Previous versions of the JS Wallet library did not always receive all requested transactions and instantlock messages from DAPI during synchronization. This has been resolved in version 0.20.
- Dashmate Improvements The latest version of Dashmate contains 20 fixes and improvements. The most significant of these were designed to make setting up local development networks more convenient and reliable, as well as performance improvements and Windows support.
DCG development teams will continue to work diligently to increase stability and to deliver innovative features for Dash Platform. Whilst the features associated with an MVP version of the DashPay wallets continues to be one of our main priorities, future versions of Dash Platform should bring greater stability and new features for community developers as well.
We have already begun work on the next release which is expected to include a new error code framework to allow clients to handle Platform errors better, an upgrade process that will avoid the need to wipe L2 data allowing for safe transition between protocol versions, non-inclusion proofs and another cool feature; the ability to update existing data contract schemas to support these new features. Alongside this development, a new more robust, and secure state tree design will be defined and we will continue to further refine our most critical work needed for the first mainnet release. We would like to thank our community of developers once again for their continued patience as we work to release better and more stable versions of our software going forward.
As with this release we are expecting a data wipe to occur during our next release of v0.21 as well. Observers can expect the next platform release to occur roughly 6 weeks from now in the beginning of September.
Follow the Dash blog and social media channels for more releases and updates, and as usual, your thoughts, feedback, and pull requests are greatly appreciated.
- Drive v0.20
- Dash Platform Protocol v0.20
- DAPI v0.20
- DAPI Client v0.20
- DAPI gRPC v0.20
- Dashmate v0.20
- Dash Network Deploy Tool v0.20
- Platform Test Suite v0.20
- Dash SDK (JS) v3.20.0
- Wallet lib v7.20.0