Today there is probably no one left who does not know anything about bitcoins and cryptocurrencies. However, while Bitcoin is a great example of decentralized peer-to-peer cash, when it comes to privacy, it no longer has much to offer. Beyond the openness of transactions, the time and cost of confirmation is so high that bitcoins, like gold, are impractical to use for day-to-day needs.
If you look at this chart, you may find that if you pay the lowest possible fee, you have to wait for at least 13 minutes for the payment to go through. Evan Duffield realized this was a problem and came up with a solution.
- 1 What is Dash and what are the benefits of this cryptocurrency?
- 2 Controversial instant mining
- 3 Dash feature #1: masternodes
- 4 What are masternodes?
- 5 Question: why do you need to invest so much in a masternode?
- 6 Masternode reward system.
- 7 Addressing masternodes
- 8 How proof-of-service works
- 9 Feature #2: PrivateSend
- 10 What is CoinJoin?
- 11 Weakness #1: transaction merging
- 12 Weakness #2: end linking
- 13 Weakness #3: end-to-end binding
- 14 How does PrivateSend work in Dash?
- 15 Feature #3: InstantSend
- 16 What is double-spending?
- 17 Conclusion: what is Dash cryptocurrency?
Evan Duffield came across Bitcoin in 2010 and was very impressed with the technology. However, the slow transaction speed and lack of privacy did not impress him much. He offered a lot of ideas to the Bitcoin community on how to improve the core of the system, but no one even listened, because nobody wants to change the source code of Bitcoin.
So he decided to take Bitcoin Core as a basis and make his own cryptocurrency. On January 18, 2014, Dash was born. At first it was called Xcoin, later DarkCoin. Finally, it was renamed to «Dash», short for Digital Cash.
This is the Dash team:
In the first two days of the launch, 1.9 million coins were mined (about 10% of the total stock that will ever be). Evan Duffield said it was because of a bug that appeared when the Litecoin code was forked when Dash was created. Duffield suggested a solution: restart the coin or do an airdrop (giveaway) to make the original distribution wider.
The community, however, reacted equally poorly to both proposals. Most of the mined coins were distributed later on exchanges at very low prices.
Before we dive into Dash research and find out what the beauty of this cryptocurrency is, let’s learn the basics.
The hard cap of Dash is 18 million coins. That is, there will be a total of 18 million Dash. As of this writing, there are about 7.85 million coins in circulation.
Each coin is worth about $700 and the total capitalization is $5.4 billion. Average block mining time is 2.5 minutes, which is four times faster than Bitcoin (10 minutes to find a block when mining).
Dash also has a variable reward per block, which decreases by 7.1% per year.
Now let’s take a look at the unique features of Dash.
Nodes are servers running a P2P network that allows peer-to-peer nodes to receive updates from each other about network events. It is obvious that nodes require maintenance and care. For this reason, the number of full nodes does not grow as fast as one might assume. Because of this, block distribution time increases significantly.
Ideally, miners would like their detected blocks to spread through the network as quickly as possible. Every second of delay increases the chances that another miner will win the block race and add their blocks to the network before anyone else.
And to increase the number of nodes, you need something to attract their owners. That’s why the Dash whitepaper suggests the following:
“Such nodes are extremely important to the health of the network. They provide clients with the ability to synchronize and transmit messages quickly across the network. We suggest adding a secondary network, the Dash Masternode. These nodes will always be available and provide the necessary level of service to the network, in exchange for participation in the Masternode Rewards Program.”
Masternodes are like full nodes in the Bitcoin network (i.e., a fully loaded and synchronized, separately stored Bitcoin Core wallet, with a full history of all transactions). Furthermore, masternodes must provide the network with certain services and MUST have a serious investment in the system. To run a masternode, you need to invest 1000 DASH.
In exchange for the provided service, the masternode will pay a dividend on the investment. This is actually the best way to attract people to masternodes and benefit the ecosystem. Dash was the first cryptocurrency to imbed the masternode model into the protocol.
Masternodes create a second-tier network, following the proof-of-service algorithm, and exist on top of the regular network of miners. This two-tier system creates a synergy between proof-of-service and proof-of-work in the Dash network.
Once a masternode is activated, it begins to perform certain functions, like InstantSend and PrivateSend. It can also participate in voting. Since there is a cost to running a masternode, to reward node operators, they need to be rewarded. The reward is usually 45% of the block reward. But there are nuances.
Because the number of active MasterNodes in the Dash system varies, the reward also fluctuates according to this formula:
- n – the number of masternodes under the operator’s control;
- t – the total number of Dashboards;
- r – current reward per block (right now it is 3.6 DASH);
- b – number of blocks on average per day (usually it is 576);
- a – average payout to masternode (45% of block)
The ROI (return on investment) of a masternode can be calculated as:
((n/t)*r * b*a*365) / 1000
Masternodes can be used to solve important tasks quickly and safely. To increase speed, several pseudo-random masternodes can be selected from the network to perform a task. These masternodes can essentially perform the task without the need for the entire network to be involved. This is a significant difference from Bitcoin, where each node participates in consensus creation.
Pseudo-random selection is performed using the following algorithm:
As you have already understood, masternodes have a huge impact on the system. Therefore, you need to make them as fault-tolerant as possible. This means that the system should run smoothly, even if some of the masternodes fall out of the overall scheme.
A masternode can be underperforming for several reasons. Either it is run by a bad operator or an intruder. Either way, it can be dangerous to the ecosystem if the masternodes are not online or are operating at the wrong block height. To ensure that the masternodes work as they should Dash employs a proof-of-service protocol.
To negate the impact that attackers’ masternodes can have on the system, the nodes must ping the rest of the network to ensure that they remain active. The masternode network enforces this by selecting two quorums in each block.
Quorum A checks the service of quorum B block by block.
Quorum A is the nodes closest to the current block hash, and quorum B is the nodes farthest from the hash.
- Masternode A (1) checks Masternode B (rank 2300)
- Masternode A (2) checks masternode B (rank 2299)
- Masternode A (3) checks Masternode B (rank 2298)
Approximately 1% of the network is checked by each block, which means that the entire network is checked 6 times a day. Nodes are chosen randomly by the quorum system so that the system can be trusted. Each node is allowed to make only six violations, then it is deactivated.
So, let’s imagine Alice as an intruder who wants to desecrate the Dash ecosystem. She needs to be selected six times in a row to successfully breach the system. If not, the system will undo all previous violations. The only way to be selected six times in a row is to run more masternodes. Although, as we’ve already figured out, she would have to put her money (1,000 Dashes per Masternode) on the line to do that.
Let’s imagine that she did manage to save up some money. What’s next?
In the table above:
- n – total number of nodes controlled by the attacker
- t – total number of master nodes in the network
- r – circuit depth
The table shows that if Alice invests 1 million Dash in the system and creates 1,000 masternodes, she will have a 0.6755% chance of success. The odds are quite low. The DASH network can be considered secure from a Sibylla attack.
How else can she fool the system?
To answer that question, we need to conduct a mental experiment.
At the time of writing, 1 Dash is worth approximately $700. 1,500 masternodes in the Dash network are worth about $1,000,000,000. Suppose someone actually decided to invest a billion dollars of their own money in the system. What can he do now? Go up against the system and guarantee to lose part of his fortune? If the attack is successful, the cryptocurrency will devalue, that’s as good as it gets.
Or you can do everything you can to make the value of your share increase. There is a high probability that the latter option will be the most preferable.
In short, PrivateSend supports fungibility by exchanging coins among users to break the tracked coin history.
Now let’s break it down in more detail.
Before we start to understand how PrivateSend works, we need to understand the concept of CoinJoin.
CoinJoin is an anonymizing method proposed for bitcoin transactions by Gregory Maxwell. It is based on the following idea: “When you want to make a payment, find someone else who wants to make a payment and make a joint payment”.
This is what a schematic representation of CoinJoin looks like:
As you can see, in a joint payment, you can’t tie an input to an output in a single transaction. This ensures that once the payment is made, no third parties will know anything about it. CoinJoin was supposed to solve one of the most fundamental problems of bitcoin transactions: the lack of interchangeability. That is, the substitutability of an asset or commodity for an asset or commodity of the same type.
Let’s say you borrowed 20 bucks from a friend. If you write him other bill for $20, that will be perfect. You can also write one $10 bill and two $5 bills. Also good. Dollars are fungible (but not always).
However, if you borrow someone’s car for the weekend and return another car to them on Monday, that someone will smash your face. Cars are not interchangeable. What about cryptocurrencies?
Let’s take a look at the example of Bitcoin. Bitcoin prides itself on having an open, distributed ledger and transaction ledger that anyone can look into at any time. That is, anyone can see all transactions that occur at any time. Having Bitcoin, which has ever been used to buy drugs, for example, you will carry its illegal cargo with it. Your bitcoin will be comropmised.
For some bitcoin service providers and exchanges, these “tainted” coins will never be worth the same as “clean” ones. This kills fungibility and becomes a reason for criticism of Bitcoin. After all, why do you have suffer if one of the previous owners of your bitcoin used it to make illegal purchases?
While CoinJoin is a brilliant solution to the fungibility issue, it has many weaknesses.
One of the most common ways to implement CoinJoin is through regular transaction merging:
The problem of this approach is that it leads to a lot of opportunities to trace the user’s coins through these merged transactions.
In this example, 0.5 BTC was sent through a merge.
To determine the source of the transaction, you simply have to add up the values, on the right, until they match the values on the left.
The more users are added to the mixer, the harder it becomes to trace them. But the risk of de-anonymization remains.
In other CoinJoin implementations, a user can anonymize their transactions and then send the change to an exchange or somewhere else where the user’s identity is known. The recipient can then simply take the data received to link it to the user, who is waiting to receive his or her transaction. This weakness is called “end linking.”
Let’s look at what happens in the diagram above.
- Alice applies CoinJoin to enter 1.2 BTC, which results in a split of 1 and 0.2 BTC.
- Alice spends 0.7 BTC of her outgoing 1 BTC, resulting in a change of 0.3 BTC.
- The 0.3 BTC change is then sent to a known source, which is the exchange.
And using that 0.3 BTC, the source can easily trace the transaction and break the anonymity.
Consider the diagram below:
How do we identify the sender of our anonymous transaction?
Just start with “exchange transaction” and scroll all the way back to the point where Alice anonymously sends 0.7 BTC. This completely violates anonymity. This kind of attack is called end-to-end linking.
Back to the diagram:
- Alice buys 1.2 BTC on Coinbase.
- She then anonymizes them into an output of 1 BTC and gets change of 0.3 BTC.
- She then connects the 0.3 BTC change to the previous 0.2 BTC change.
- By combining the anonymous change with the change she received on Coinbase, Alice compromises her anonymity.
- Anyone can track the movement of 0.2 BTC through Coinbase and find out the full transaction history.
Despite the weaknesses, Dash sees value in making coins fungible, so it is introducing PrivateSend.
PrivateSend is a coin mixing service based on CoinJoin with modifications.
- Use of masternodes.
- Stirring using multiple masternodes.
- Stirring limit by designated divisions (e.g. 0.01 DASH, 0.1 DASH, 1 DASH or 10 DASH). The maximum is 1,000 DASH.
- Use of passive nodes.
PrivateSend adds privacy to transactions by adding multiple identical inputs from multiple users and sending them to multiple outputs. Since the flow of transactions cannot be tracked, the privacy of the transaction remains unchanged.
The Dash white paper states:
“PrivateSend takes advantage of the fact that a transaction can be generated by multiple parties and transmitted to multiple parties in order to merge funds together in such a way that they cannot subsequently be broken up. Given that all PrivateSend transactions are set up so that users pay themselves, the system is completely safe from theft and users’ coins remain safe. Currently, mixing using PrivateSend requires at least three participants.”
In the image above, three users have provided their impersonal funds for shuffling. They then receive their funds back from the new outputs, which are randomly shuffled. As you can see, depersonalizing transactions is necessary for shuffling. You can anonymize currency in multiples of 0.01, 0.1, 1, 10, 100, and 1000 DASH.
Similar denominations are then shuffled to ensure anonymity. PrivateSend is limited to 1000 DASH per session. This means that several sessions will be required if the amount increases significantly. PrivateSend runs in a passive node to ensure that temporary attacks are difficult to execute and users have no problems. Up to three clients participate in each session, which means each user has a 1 in 3 chance to conduct a transaction. To increase anonymity, a chain approach is where funds are sent through multiple masternodes, one after the other.
One of the most interesting features of DASH, along with anonymity, is transaction speed.
As we mentioned at the beginning of this review, the transaction speed of the Bitcoin network is very low. So low, in fact, that Bitcoin is being abandoned as a means of payment.
InstantSend solves this problem through almost instant transactions.
Again, how do transactions work on the Bitcoin network?
- Alice wants to send 1 BTC to Bob and creates a transaction.
- The transaction is essentially a message to the miners, who establish her intention to make the transaction.
- The miners then confirm the transaction and put the details into blocks that seal the transaction.
- Bob gets 1 BTC.
The reason why it’s important for miners to go through the approval process is twofold. For one thing, they need to make sure that it is Alice who initiates the transaction. That is, so that there is no double spending.
Double spending essentially means spending the same coin in multiple transactions at the same time. The problem stems from the principles of mining. In blockchain, transactions only take place when miners put transactions into mined blocks.
Now let’s say Alice sends 1 bitcoin to Bob, and then the same bitcoin to Charlie. The miners put one transaction into a block and then, in the process, overwrite the other, preventing double spending.
How does Dash solve the double-spending problem by using almost instant transactions?
Let’s walk through the steps of InstantSend:
Every time a block is mined in Dash, the miner sends a hash of the block. The block hash is used to select a quorum of masternodes. 10 masternodes = 1 quorum.
For the time before the next block is mined (2.5 minutes), the quorum becomes the “InstantSend authority” in the Dash network. So, suppose Alice wants to send 1 Dash to Bob via InstantSend, the chosen quorum will block the transaction input and broadcast the input data.
The blocking will ensure that there is no double spending. If Alice wants to send the same input to Charlie and spend twice because the inputs have already been broadcast, the network will reject the new transaction.
The sender and recipient will receive 5 confirmations of the transaction within a second and it will be clear that the transaction has passed.
There doesn’t seem to be anything we’ve forgotten to mention.
These three features make Dash a unique cryptocurrency.
This is what the Dash growth chart looks like:
Many major service providers have started accepting Digital Cash as payment.
Singapore’s TenX Wallet has even created a mobile app and debit card that can convert Dash into fiat currencies. The app has been successfully tested at McDonald’s.
To summarize, Dash has strong potential to become a popular cryptocurrency.