Product Brief: Dash Core Release v0.14.0 (now on testnet!)
What is Dash?
Dash is a global payments network with its own cryptocurrency offering businesses and individuals instant payments for less than a cent per transaction. Our goal is to provide users with a better way to pay and get paid. Dash Core Group is in the process of rolling out a series of upgrades to our system dubbed “Evolution” to make Dash the most user-friendly blockchain-based payment network in the world.
Dash Core v0.14 Features
Dash Core v0.14, recently introduced to testnet, is the next major delivery milestone for the Dash Core protocol. This release includes the following major features:
- Long Living Masternode Quorums (“LLMQs”), which will increase scalability through improved consensus and expand the universe of potential use cases of the network;
- LLMQ-based ChainLocks, which leverage LLMQs to improve network security by mitigating 51% mining attacks; and
- LLMQ-based InstantSend, using LLMQs to reduce the messages propagated on the network for InstantSend transactions, which increases the scalability of InstantSend on the network. (Note: LLMQ-based InstantSend may be released to mainnet in a minor release, after the first two features have been introduced.)
This release also includes some Bitcoin backports, legacy cleanup, and general optimizations. Full release notes will be available closer to the mainnet release.
Dash uses quorums of masternodes to come to an agreement on an event, such as whether a transaction is valid or not. Basically, masternodes “vote” on whether an event is valid, and the result is determined based on the majority of votes.
In today’s system, these votes are sent via messages on the network — one message per vote. A quorum can generate a significant number of messages depending on how many events require a vote, as well as how large the quorum is. These messages can generate significant network overhead as well as place substantial load on node hardware as each node on the network must verify the messages and keep them in-memory until the transaction is mined and confirmed by multiple blocks. This both hinders network scalability and limits the potential use cases for Dash.
LLMQs are quorums that remain “live” for a long period of time, and can be quite large depending on the level of security needed for a given use case. Rather than creating a fresh quorum on-demand, they are built before they are actually needed and reused for a fixed period of time. LLMQs will bring greater scalability to the network by only requiring the members of the quorum to perform the propagation and validation of individual votes. Nodes on the network will no longer have to verify and store all votes, reducing the load on their hardware. The load will also remain well distributed amongst masternodes as multiple LLMQs can be active at once. The final outcome of the quorum will be propagated using a single message signed by the quorum instead of the multiple messages required today (1 per masternode in the quorum).
LLMQs will also expand the set of potential use cases of the network. Multiple quorum sizes will be allowed based on the level of security required by a particular use case. The single signature used for the final quorum decision is deterministic and unique, making it possible to implement planned features like Blockchain Users more securely. Quorum decisions can be verified forever, so SPV clients will benefit from reduced bandwidth requirements and the ability to securely gather the on-chain information needed to verify signatures.
Read more about LLMQs in this blog post by Dash Core Developer Alexander Block.
A few cryptocurrency projects have made headlines recently due to threats of 51% mining attacks. In a 51% attack, a mining entity that controls a majority of hash power can secretly mine a separate chain that is longer than the public one, then publish it — causing a reorganization and orphaning previous blocks on the original chain. This can result in users of the network losing money as transactions in the invalidated blocks are also invalidated.
ChainLocks will significantly reduce the risk of a 51% attack occurring on the Dash network. A Long Living Masternode Quorum is selected, and each member signs the first block it sees — extending the active chain at the current height. When enough members see that block, they will propagate a message to all nodes in the network. When this message is received by a node, it rejects all blocks at that height that do not match the block specified by this message. This not only makes reaching consensus quick and unambiguous, it makes chain reorganizations below this block impossible.
This means that transactions can be considered fully confirmed after the first on-chain confirmation inside a block protected by ChainLocks, and there is no need to wait for more confirmations until a received transaction is considered secure. This feature also removes all incentives for miners to cause chain reorganizations by mining in secret, because a failure to publish blocks immediately could give an honest miner the opportunity to publish a block that would be locked by a LLMQ, and thus made irreversible. This would result in the secret chain being ignored when the malicious miner attempted to publish it.
Read more about Chain Locks in this blog post by Dash Core Developer Alexander Block.
Dash is currently able to offer users instant transactions through the use of quorums. When a user wants to send an instant transaction to another user, a quorum of 10 masternodes per transaction input is selected. Each member of the quorum then votes on whether the input is valid. If 6 of the 10 members vote that the input is valid, the rest of the network can safely accept it as valid.
However, as described above, these quorums require significant network overhead. When a masternode votes on an input of an instant transaction, a message is propagated to the entire network. Since the quorum is made up of 10 masternodes, each input generates 10 messages. This means that InstantSend requires at least 10 times as many messages on the network as a normal transaction. Additionally, each node on the network needs to verify these messages and keep them in-memory until the transaction is mined on the chain and confirmed by multiple blocks. As more and more people use Dash, the load on both the network itself as well as node hardware would rapidly increase, and the latency caused by this additional load would place risks on network security. It would also preclude new use cases requiring higher levels of security, which in turn require the use of larger quorums.
LLMQ-based InstantSend will leverage the new LLMQ functionality to solve these issues. Only one message per transaction will be propagated to the network, and once a node observes this message for a transaction, it can consider that transaction InstantSend confirmed. This will provide for much greater scalability of InstantSend.
In combination with ChainLocks, LLMQ-based InstantSend is able to lift most of the limitations found in the old InstantSend implementation. In the old system, 6+ on-chain confirmations were a strong requirement for funds to be sent instantly. This limitation is now lifted if funds are already confirmed through ChainLocks or received through LLMQ-based InstantSend, which means that in most cases received funds can be re-spent immediately via InstantSend.
LLMQ-based InstantSend is currently only targeted for testnet, and may not be enabled on mainnet at the same time as LLMQs and ChainLocks. There is still some large-scale testing required to make sure that everything works well. Depending on the testing results, we might also need to make changes to LLMQ-based InstantSend, which means that a minor release may be required to roll out this feature.
Testing instructions for the current release candidate can be found on Dash Forum here.
Current Rollout Plan (DRAFT)
Below is a diagram explaining our current upgrade plan for Dash Core v0.14. Please note this is subject to change based on any new information discovered between now and when we release to mainnet.
Dash Core v0.14 and DCG Roadmap
Dash Core v0.14 builds upon the features introduced to mainnet in Dash Core v0.13 on January 14. Dash Core v0.13 included a variety of updates to improve consensus methods on the network. Highlights of this release included:
- Automatic InstantSend, which improved the speed of most transactions at no additional cost;
- The deterministic masternode list, which provided a single source of truth for clients validating transactions;
- Three masternode keys: owner, operator, and voting;
- Special transactions to accommodate non-financial transactions on the blockchain; and
- Several improvements to private transactions, including speeding up of the mixing process and a denomination of .001 Dash.
Unless further required foundational work is identified in the meantime, the team plans for the next major network upgrade to be the long awaited first official release of Dash Evolution: Dash Core v1.0.