FEATURE
June 29, 2016 Vanbex 0
Dash: People and Code Working Together
Even by cryptocurrency standards, “The DAO” received a lion’s share of hype upon its release. Publicized as a truly decentralized autonomous organization, The DAO promised to be the future of smart contracts. However, last week someone exploited a flaw in The DAO’s code, siphoning off over 3.6 million Ether (worth over $60 million at the time of the incident).
Many in the media have been calling this an “attack,” although one could argue that when code equals law, someone who exploits flawed code has done nothing illegal, or even unethical.
Further, even putting aside the morality of the exploit itself, a fierce debate has arisen about how to respond to the incident. Some are calling on the leaders of The DAO and Ethereum to roll back the blockchain so that the absconded Ether can be recovered.
Others, including the founder of Ethereum, Vitalik Buterin, want to institute a soft fork by which miners could invalidate the transactions, preventing the hacker from receiving the funds.
However, each of these proposals engendered significant pushback from the cryptocurrency world, because they call into question the decentralized and autonomous principles of The DAO itself (and cryptocurrency in general).
These transactions were legitimate applications of the code when they occurred. If they can be invalidated by the actions of a small number of individuals (core developers and miners), what is to prevent future transactions from being invalidated when they don’t coincide with the wishes of the majority of developers or users? Or, perhaps even more troubling, the wishes of a government authority? It begs the question: Is The DAO truly decentralized and autonomous?
Code Serves People
The DAO could learn some lessons from another cryptocurrency, Dash, which includes an established decentralized and autonomous organizational system. The key lesson here is that code serves people, not the other way around.
The DAO’s flaw was that it put all the power in the hands of code, without any mechanism for preventing hacks of flawed code. As Daniel Diaz, head of business development at Dash, noted, “Contracts in general need governance. It is rare to find a contract that does not have an arbitration clause, but the Ethereum platform did not include any sort of arbitration method in their protocol and did not establish this method in the contract when it was created.”
So how does Dash maintain a decentralized autonomous system and yet prevent a similar exploit? It does so through its Masternode network and its Budget System.
The Masternode network is a series of “supernodes” which power the Dash network. These nodes are incentivized for their work with payments from the Dash blockchain (similar to how miners are incentivized).
In return, Dash Masternodes are required to be up-to-date with the latest Dash version, meet certain minimum hardware and uptime requirements, and hold a 1,000 Dash collateral in reserve.
A further responsibility of Masternode owners is the ability to vote for proposals in the Dash Budget System, which allocates up to 10% of block rewards for projects related to Dash (as a point of reference, the current monthly budget cycle will allocate approximately $60,000 worth of Dash to proposals).
These projects can be anything from core team salaries to a Dash YouTube channel to funding of marketing material translations. Anyone can make a proposal to the budget system. The Masternode owners then vote for the proposal (one Masternode equals one vote), and proposals that pass are automatically (and programmatically) awarded their requested funds from the block reward.
As Diaz explains, “When a funding proposal or a grant request from a 3rd party project is submitted to the network, the nodes vote on it in a completely decentralized way at the protocol level. Only if the proposal gathers enough votes to become approved would the system pay out and fund this proposal in a coinbase transaction, effectively minting the coins to fund the project.”
So, is such a system decentralized? Is it autonomous? And most important: can it be exploited as The DAO was?
In the Dash Budget System anyone can become a Masternode owner (all you need is 1,000 Dash collateral and a server), and anyone can make a budget proposal (to prevent spam, the fee is 5 Dash per proposal).
However, it is extremely difficult for any one entity to control the Masternode network and thus control the Budget System.
By requiring a 1,000 Dash collateral per Masternode, a person seeking control of the network would need to purchase millions of Dash out of a six million supply to have enough Masternodes to control the vote. Such an attempt is for all practical purposes impossible.
Because it allows participation by anyone but prevents control by an individual or small group, the Dash Budget System is decentralized.
There is no outside organization in control of the Masternode network or Budget System as well.
It acts independently, following the desires of the Masternode owners (note: there are currently over 3,800 active Masternodes).
Further, no one person or group can override the decisions of the Masternode owners. Even the creator of Dash himself, Evan Duffield, cannot override a vote made by the Masternode network. The Dash Budget System is therefore autonomous.
People and Code in Harmony
Dash is not susceptible to the same weakness as The DAO. While code enforces the decisions of the Dash Masternode network, it does not initially approve decisions – the Masternode owners do.
With The DAO, code is both the approver and enforcer of decisions. Thus, if there is a flaw in the code, one can exploit that code to approve and enforce decisions clearly outside the intentions of the project.
And anyone who has coded for any length of time will tell you that it is impossible to completely remove the possibility of flaws in code.
According to Diaz, “I think this incident showed everyone in the space the importance of designing with fault tolerance in mind as things can and will break especially in new areas like smart contracting.”
Whenever code acts as the sole approver and enforcer of a contract, scenarios such as The DAO’s recent crisis are possible.
With Dash, on the other hand, any request for funds from the Budget System depends on the votes of the Masternode owners. Funds from the block reward will only be paid out when a large, decentralized group of individuals have confirmed the proposal and approved it.
If the proposal is approved, then code ensures it is enforced — no small cabal can override the decisions of the Masternode owners. Thus Dash represents the best of both worlds: a truly decentralized autonomous organization which employs human actors to approve decisions, and code to enforce them.
http://dashpaymagazine.com/index.php/2016/06/29/dash-people-code-working-together/