Everyone who is anyone is talking about bitcoin and cryptocurrencies. However, while it is true that Bitcoin happens to be a fine example of a decentralized, peer-to-peer currency when it comes to privacy, it doesn’t really match up now does it? Along with privacy, the transaction confirmation times in Bitcoin are SO high that it is extremely impractical for day-to-day transaction purposes.
In fact, according to this graph over here:
Image credit: Business Insider.
If you pay the lowest possible transaction fees, then you will have to wait for a median time of 13 mins for your transaction to go through.Evan Duffield realized that this was extremely problematic and thought of a solution.
Evan Duffield came across Bitcoin in 2010 and was extremely impressed by the technology, However, he was not that enthused about the slow transaction speed and the lack of privacy.
He had numerous ideas on how to make Bitcoin function better but the Bitcoin core members would never allow him to do that since that would mean changing the core’s code.
This is why, he decided to use the Core code and make his own cryptocurrency on January 18, 2014.
Dash was formerly called Xcoin which later on became “DarkCoin”. It was eventually rebranded to Dash which is a portmanteau of “Digital Cash”.
This is the team behind Dash:
Image Credit: Dash website.
The Instamine Controversy.
Within the first two days of their launch, 1.9 million coins were mined, which ~10% of the total supply that will ever be issued. Evan Duffield said that this was because of a bug created when the Litecoin code was forked to create Dash which hampered the difficulty.
The problem was immediately resolved and Duffield proposed to solutions:
To relaunch the coin. An “airdrop” in order to make the initial distribution broader.
The community, however, overwhelmingly disapproved of both these proposals. The majority of the mined coins were distributed later on in exchanges for very low prices.
What is Dash Cryptocurrency? A Crash Course
Before we do a deep dive and see what makes Dash so desirable, we should do a basic overview first.
Dash has a hard cap of 18 million coins, meaning there will only be 18 million Dash ever made. As of writing, there are ~7.85 million coins in circulation.
Each coin costs ~$697 and the total market cap is ~$5.4 billion.The average block mining time is 2.5 mins, which is 4 times faster than bitcoin (~10 mins block mining time).
Dash also has a variable block reward which decreases by 7.1% every year.
Now let’s look at some of the features of Dash that makes it really special.
Feature #1: Masternodes
Full nodes are servers running on a P2P network, that allow peers to use them to receive updates about the events on the network. As one can imagine, these nodes require significant upkeep and care. Because of these reasons, there hasn’t been as significant an increase in the number of full nodes as there should have been. This significantly increases block propagation time.
Miners ideally want their newly found blocks to propagate across the network as quickly as possible. Every second delay increases the chance of some other miner wining the “block race” and getting their blocks added to the chain before theirs.
One way to increase the amount of these full nodes is via the utilization of a better incentive system.
So, this is what the Dash whitepaper suggested:
“These nodes are very important to the health of the network. They provide clients with the ability to synchronize and quick propagation of messages throughout the network. We propose adding a secondary network, known as the Dash Masternode network. These nodes will have high availability and provide a required level of service to the network in order to take part in the Masternode Reward Program.”
What exactly are Masternodes?
Masternodes are like the full nodes in the Bitcoin network, except that they must provide a particular service to the network and MUST have some sort of heavy investment in the system. To run a Masternode, one has to invest 1000 DASH.
So, now the question that one should ask is, why does a Masternode need to make that sort of an investment?
In return for their services, Masternodes get paid back in dividends on their investment. What this, in essence, does is that it incentivizes the Masternodes to work in best interests of the ecosystem. Dash was the first cryptocurrency to implement the Masternode model into its protocol.
The masternodes create a second tier network, following a Proof of service algorithm, and exists on top of the normal first tier network of miners.
This two-tier system creates a synergy between proof of service and proof of work mechanisms in the Dash network.
One a masternode is on, it is in charge of a certain set of functions like InstantSend and PrivateSend. They are also in charge of the governance.
Since running a masternode requires money and effort, in order to incentivize the node operators, they get rewarded for their efforts. The reward is usually 45% of the block reward. However, to get a more concrete answer, we will need to check out some parameters.
Reward System of the Masternodes
Since the number of Masternodes active in the DASH system keeps changing, the reward keeps fluctuating according to this formula:
So, the variables in this equation are as follows:
n is the number of Masternodes an operator controls
t is the total number of Masternodes
r is the current block reward (presently ~3.6 DASH)
b is blocks in an average day. For the Dash network this usually is 576.
a is the average Masternode payment (45% of the average block amount)
Return on investment for running a Masternode can be calculated as:
((n/t)*r * b*a*365) / 1000
Ordering of the Masternodes
Masternodes can be used to take care of important tasks in a fast and trustless way. To emphasise on the speed, one can select N pseudo random Masternodes from the network to perform tasks. These Masternodes can essentially accomplish the task without the whole network having to take part in it. This is a stark contrast from Bitcoin where every node must take part in the consensus.
The pseudo random selection is done by utilizing the following algorithm.
For (mastenode in masternodes)
current_score = masternode.CalculateScore();
if(current_score > best_score)
best_score = current_score;
winning_node = masternode;
pow_hash = GetProofOfWorkHash(nBlockHeight); // get the hash of this block
pow_hash_hash = Hash(pow_hash); //hash the POW hash to increase the entropy
difference =abs(pow_hash_hash - masternode_vin);
How Proof-of-Service Works
As you can guess, the Masternodes have a lot of power and influence in the system. As such, steps must be taken to make them as Byzantine Fault Tolerant as possible. This means that the system should operate smoothly even if some Masternodes perform below par.
A Masternode can run below par for chiefly two reasons. It is either run by negligent actors or it is run by malicious ones. Regardless, it can be disastrous for the ecosystem if the Masternodes aren’t online or there are operating on the wrong block height.
So, to make sure that the Masternodes are working the way they should be, Dash utilizes proof-of-service.
To nullify the impact that malicious masternodes can have on the system, nodes must ping the rest of the network to ensure they remain active. The way the Masternode network goes about this is by selecting 2 quorums per block.
Quorum A checks the service of Quorum B block by block.
Quorum A are the closest nodes to the current block hash, while Quorum B are the furthest nodes from said 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)
~1% of the network is checked each block which means that the entire network is checked 6 times a day. The nodes are selected randomly via the Quorum system in order to keep the system trustless. Each node is allowed six violations before it is deactivated.
So, imagine Alice is a malicious actor and wants to pollute the Dash ecosystem. She will need to be selected six times in a row to successfully violate the system. If not, then the system will cancel out all previous violations. The only way to get selected 6 times in a row is for Alice to get more masternodes, however, we have seen that in order to do that, she will need to stake her own money (1000 Dash per masternode).
Even if she does that, what happens next?
Image Credit: Dash Whitepaper
In the table above:
n is the total number of nodes controlled by the attacker
t is the total number of Masternodes in the network
r is the depth of the chain
According to the table, if Alice has invested 1 million Dash into the system and owns 1000 masternodes, she will only have a 0.6755% probability of success!
Those are some pretty thin odds. This essentially makes DASH Sybill proof.
Now, what if she invests more money and owns more Masternodes?
Can she trick the system then?
To answer that question, let’s do a simple thought experiment.
As of writing, 1 Dash costs ~$550.
If, one were to buy 1500 Masternodes in the Dash network, they will have to invest 1500 * 1000 Dash = 1,500,000 Dash which is $825,000,000.
Suppose someone really does invest $825 million dollars of their money into the system, what would be in their best interests to do?
Act against the interests of the system and make sure that the significant amount of wealth that you have put up as stake drastically drops down in value.
OR, do everything that you can to make sure that the value of your stake increases.
Chances are, you would go with the latter choice.
Feature #2: PrivateSend
In short, PrivateSend maintains fungibility by swapping coins among users to break the traceable history of the coins.
Now, let’s look at the long version.
Before we begin to understand how “PrivateSend” works, we must understand the concept of “CoinJoin”.
What is CoinJoin?
CoinJoin is an anonymization method proposed for bitcoin transactions by Gregory Maxwell. It is based on this idea: “When you want to make a payment, find someone else who also wants to make a payment and make a joint payment together.”
This is a pictorial representation of CoinJoin:
Image Credit: Wikipedia
As you can see, in a joint payment you can’t relate input and the output output in one bitcoin transaction. This makes sure that the exact flow of the transaction is not known to any third parties.
CoinJoin was devised to solve one of the most fundamental problems of Bitcoin transactions, the lack of fungibility.
Investopedia defines fungibility as follows:
“Fungibility is a good or asset’s interchangeability with other individual goods or assets of the same type.”
So, what is fungible and what is non-fungible?
Suppose you borrowed $20 from a friend. If you return the money to him with ANOTHER $20 bill, then it is perfectly fine. In fact, you can even return the money to them in the form of 1 $10 bill and 2 $5 bills. It is still fine. The dollar has fungible properties (not all the time though).
However, if you were to borrow someone’s car for the weekend and come back and give them some other car in return, then that person will probably punch on the face. In fact, if you went away with a red Impala and came back with another red Impala then even that is not a done deal. Cars, in this example, are a non-fungible asset.
So, what is the deal with fungibility when it comes to cryptocurrency?
Let’s look at bitcoin for example. Bitcoin prides itself in being an open ledger and an open book. But what it also means is that everyone can see the transactions in it and more importantly, everyone can see the trail of that transaction. What this basically means is that suppose you own a bitcoin which once was used in some illegal transaction eg. buying drugs, it would forever be imprinted in the transaction detail. What this in essence does is that it “taints” your bitcoin.
In certain bitcoin service providers and exchanges, these “tainted” coins will never be worth as much as “clean” coins. This kills fungibility and is one of the most often-usecriticismssm against bitcoin. After all, why should you suffer if one of the previous owners of your bitcoin used it to make some illegal purchases?
While CoinJoin is a brilliant solution to the fungibility question, it does have lots of weaknesses.
Weakness #1: Merging Transactions
One of the more common ways of implementing CoinJoin is through simple transaction merging like so:
Image Credit: Dash Whitepaper
(Following data taken from the Dash Whitepaper)
However, this exposes the users to various methods of following the the user’s coins through these joined transactions.
In this example 0.5 BTC was sent through the merge.
But, to simply identify the source, one has to just add up the values on the right till they match ones of the values of the left
This gets exponentially more difficult as more users are added to the mixer. However, the de-anonymization risk still remains.
Weakness #2: Forward Linking
In other implementations of CoinJoin, it is possible for a user to anonymize their transaction and then send the change to an exchange or some other entity who knows the user’s identity.
After that, the entity can use the change and simply track back to the user whilst taking note of all the transactions that happened in between
This weakness is called “Forward Linking”.
Image Credit: Dash Whitepaper
Let’s walk through what is happening in the diagram above.
Alice uses CoinJoin on her 1.2 BTC input which leads to the 1 BTC and 0.2 BTC output.
Alice spends 0.7 BTC of her 1 BTC output getting back 0.3 BTC change.
The 0.3 BTC change then goes to a known source eg. an exchange.
However, using the 0.3 BTC the source can simply trace back on her transactions and break anonymity.
Weakness #3: Through Linking
Another interesting weakness is Through Linking.
Consider the diagram below:
Image Credit: Dash Whitepaper
How are we going to identify the sender of our anonymous transaction from here?
Just start at the “exchange transaction” and work your way backwards until you get to the part where Alice sends 0.7 BTC anonymously. This completely breaks the anonymity.
This kind of attack is called “Through Linking”.
Going back to the diagram:
Alice buys 1.2 BTC from coinbase.
She then anonymizes it into a 1 BTC output and receives a 0.3 BTC change.
She then combines the 0.3 BTC change with her earlier 0.2 BTC change.
By combining this anonymous change to the change that she received from coinbase, her entire anonymity is compromised.
Anyone can simply follow the 0.2 BTC through coinbase and get to know her entire transaction history.
Despite the weaknesses, Dash saw the value in making their money fungible and hence implemented “PrivateSend”.
PrivateSend is a coin mixing service based on CoinJoin with modifications.
The modifications include:
Chaining by mixing with multiple masternodes.
Restricting the mix to only accept fixed denominations (like 0.01 DASH, 0.1 DASH, 1 DASH, and 10 DASH, etc.). The maximum denomination allowed is 1000 DASH. Using a passive node.
How does PrivateSend Operate?
PrivateSend adds privacy to transactions by adding multiple identical inputs from a lot of users and then sending them to multiple outputs. Since the transaction flow cannot be traced, the privacy of the transaction is maintained.
The Dash Whitepaper states:
“PrivateSend uses the fact that a transaction can be formed by multiple parties and made out to multiple parties to merge funds together in a way where they cannot be uncoupled thereafter. Given that all PrivateSend transactions are setup for users to pay themselves, the system is highly secure against theft and users coins always remain safe. Currently to mix using PrivateSend requires at least three participants.”
Image Credit: Dash Whitepaper
In the image above, 3 users have submitting their denominated funds for mixing. The users then proceed to pay themselves back using new outputs that are randomly ordered.
As you can see, these denominations are critical for the mixing purposes. As stated before the allowed denominations are 0.01 DASH, 0.1 DASH, 1 DASH, 10 DASH, 100 DASH, AND 1000 DASH.
The common denominations then proceed to mix together to ensure anonymity.
PrivateSend is limited to 1000 DASH per session. This means that when significantly large amounts of money is involved, multiple sessions are required. PrivateSend runs in a passive node to ensure that timing attacks are difficult and user experience is easy.
Each PrivateSend session is limited to three clients which means that each user has 1 in 3 chance of following a transaction. To increase the anonymity even more, a chaining approach is utilized in which funds are sent through multiple Masternodes one after the another.
Feature #3: InstantSend
One of the most alluring features of DASH, along with the privacy, is the speed of the transaction.
As mentioned in the beginning of this guide, Bitcoin transaction time are usually really long. In fact, the transaction time is such a problem in Bitcoin that it was recently dropped by stripe as a mode of payment.
InstantSend solves this problem via near instant transactions.
Alice wants to send 1 BTC to Bob and creates a transaction.
A transaction is basically a message to the miners which states her intention to go through the transaction.
The miners then validate the transaction and puts the details in the blocks which completes it.
Bob gets the 1 BTC.
The reason why it is important for miners to do the validation process is two-fold:
Firstly, to make sure that it is indeed Alice who initiated the transaction.To make sure that there are no double spends.
What is double spending?
Double spending basically means spending the exact same coin on more than one transactions at the same time. This problem is circumnavigated because of miners. In a blockchain, transactions happen only when miners put the transactions in the blocks that they have mined.
Now suppose, Alice was to send 1 bitcoin to Bob and then she sends the same coin to Charlie, the miners would put in one transaction inside the block and, in the process, overwrite the other one, preventing double spending in the process.
So, how does Dash circumnavigate the double spending problem while sending near instant transactions?
Let’s go through the steps of the InstantSend:
Everytime a block is mined in Dash, the miner sends the hash of the block. The hash of the block is used to select a quorum of masternodes. 10 masternodes are in one quorum.
The quorum, between now and the time that the next block is mined (~2.5 mins), becomes the “InstantSend authority” of the Dash Network. So, suppose Alice wants to send Bob 1 DASH via InstantSend, the selected quorum will lock in the inputs of the transaction and broadcast the input details.
This locking ensures that double spending is prevented. Suppose Alice wants to send the same input to Charlie and initiates a double spend, since the inputs have already been broadcasted, the network will reject the new transaction.
Both the sender and the receiver then receive 5 confirmations of the transaction within a second which ensures that the transaction has gone through
Conclusion: What is Dash Cryptocurrency? A Crash Course
So, there you have it.
The three features of Dash which makes it unique.
As of writing, this is what the Dash chart looks like:
Image Credit: Coinmarket Cap
Dash is being branded as “Digital Cash” and a lot of legitimate merchants have started accepting it.
Singapore based wallet TenX have actually created a mobile app and debit card that can convert Dash into fiat currencies. They have even tested out the app in outlets such as Mcdonald’s successfully.
It looks like Dash has a genuine potential of being accepted by the mainstream.