TroyDASH
Well-known member
In light of some of the recent discussions surrounding the budget system and DASH's "identity", one topic that I think deserves to be thoroughly discussed (again!) is the DASH governance model. A few months ago when the masternodes voted on the block size increase, the network demonstrated that it can resolve the sort of damaging governance stalemates that continue to plague the Bitcoin network. Efficient and effective governance is one of the most exciting and revolutionary aspects of the DASH project.
However, just because we have had some successes, does not mean we should assume that our governance model is well-defined and poised for long term sustainability. I would especially like to explore the relationship between the masternodes and the core development team. Obviously, masternodes control where the budget payments go. And as we have seen, budget proposals have also been used to help determine the network consensus on proposed protocol changes. However, ultimately, is DASH a system where the core-devs are servants to the masternode authority? Or is the masternode collective more of a council to offer guidelines to the developers who have autonomous control without obligation to the masternodes?
Should protocol updates need to be approved by the masternode network before the devs roll out? What would happen if the majority of masternodes decide not to update to the latest version? Do the devs have the power to make the dissenting masternodes get left out of future budget payments even though the majority does not agree? I remember during the series of initial version 12 updates that happened in quick succession, the impression I got from the core team was that if a masternode does not update then they won't get paid, but would that still be true if the majority of masternodes refuse to update? If that is the case, then this could be an issue with our governance model.
I think that the power structure needs to be clearly defined, and then "clung to" as the credibility of DASH's system will eventually be tested. Without a clearly defined model, we could end up with a civil war reminiscent of Bitcoin's. DASH's governance for distributing block rewards right now is well defined, even though budgets may need improvement. However the governance for decision-making with regard to core development is implicitly defined at best.
A few case studies for this:
The budget prioritization thread: https://dashtalk.org/threads/prioritization-of-fiat-gateways.8457/
In this thread, the core devs have announced that all budgets will be reset in v12.1, essentially in order to make it easier for the core team to shuffle their budget funds and to maintain continuity of payments while doing so. Technically, even though I am sure many do agree that this might be the *easiest* way to get to what we want in this one instance, performing this unilateral action could be considered a violation of our governance. When DASH was in its infancy, unilateral actions by the devs are more understandable, but as DASH grows for the long term and has the masternode system, how much of this kind of thing should we allow? What will happen when a true test comes - will the devs attempt to railroad some things through even if they are controversial or not supported by the masternodes? Or conversely, if the masternodes vote for a certain course of action, what happens if the core devs don't agree?
The budget changes for v12.1 adding support for immutable contracts:
https://dashtalk.org/threads/budget-system-v2-transform-pr.7991/
And related discussion: https://dashtalk.org/threads/should-budgets-allow-for-irrevocable-contracts.8498/
In this instance, after the failure of the Terpin contract, Evan saw that this was a problem and proposed a fix by adding the capability to establish irrevocable multi-month contracts to the budget system. A budget proposal was voted on in favor, but rolled into the proposal was also a non-controversial reimbursement for Evan's previous budget submissions. I am curious why Evan would even ask for such a small reimbursement when he is already likely one of DASH's largest holders and there is already a core team budget. Regardless, since this was the only fix on the table at the time, and it was coming from Evan, and it was rolled in with a non-controversial reimbursement payment, it is no surprise that the proposal passed, and this was taken by the devs as confirmation that the masternode network approves of implementing irrevocable contracts. Although, reading through the threads it is clear that this is actually very controversial, and to my knowledge the devs have not been participating much in the discussions. It appears that unless we raise a big stink (which I have been trying to do), we are on track to have 12.1 released with this new functionality without really any further discussion with the core team.
"The spork" - from https://www.dash.org/spork/
Who holds the power of the spork? Technically this is something I do not understand myself (how it is implemented), but I can see where other coins would use this to claim that Evan holds supreme control. If he is the only one who can "spork", then I think it should be discussed at least.
These are the kinds of questions that need to be asked, decided and declared earlier rather than later, as a preventative measure so that the sh*t does not hit the fan at some point in the future. When it comes down to it, how much control does the dev team really have over decision-making in the network right now, and is this going to change as the DASH network grows? Regardless of what the answers to these questions are, if we don't ask them and establish the answers, then we risk a future power struggle.
I posted the poll to get the conversation moving, but the scope of this subject I think is even more broad than that. And, this is not meant to be a negative post at all. This is DASH, and being on the cutting edge of decentralized governance is our home turf. Let's take another step back, look at the whole picture and make sure our governance system is better than any other crypto could hope to achieve.
Thanks for reading --
However, just because we have had some successes, does not mean we should assume that our governance model is well-defined and poised for long term sustainability. I would especially like to explore the relationship between the masternodes and the core development team. Obviously, masternodes control where the budget payments go. And as we have seen, budget proposals have also been used to help determine the network consensus on proposed protocol changes. However, ultimately, is DASH a system where the core-devs are servants to the masternode authority? Or is the masternode collective more of a council to offer guidelines to the developers who have autonomous control without obligation to the masternodes?
Should protocol updates need to be approved by the masternode network before the devs roll out? What would happen if the majority of masternodes decide not to update to the latest version? Do the devs have the power to make the dissenting masternodes get left out of future budget payments even though the majority does not agree? I remember during the series of initial version 12 updates that happened in quick succession, the impression I got from the core team was that if a masternode does not update then they won't get paid, but would that still be true if the majority of masternodes refuse to update? If that is the case, then this could be an issue with our governance model.
I think that the power structure needs to be clearly defined, and then "clung to" as the credibility of DASH's system will eventually be tested. Without a clearly defined model, we could end up with a civil war reminiscent of Bitcoin's. DASH's governance for distributing block rewards right now is well defined, even though budgets may need improvement. However the governance for decision-making with regard to core development is implicitly defined at best.
A few case studies for this:
The budget prioritization thread: https://dashtalk.org/threads/prioritization-of-fiat-gateways.8457/
In this thread, the core devs have announced that all budgets will be reset in v12.1, essentially in order to make it easier for the core team to shuffle their budget funds and to maintain continuity of payments while doing so. Technically, even though I am sure many do agree that this might be the *easiest* way to get to what we want in this one instance, performing this unilateral action could be considered a violation of our governance. When DASH was in its infancy, unilateral actions by the devs are more understandable, but as DASH grows for the long term and has the masternode system, how much of this kind of thing should we allow? What will happen when a true test comes - will the devs attempt to railroad some things through even if they are controversial or not supported by the masternodes? Or conversely, if the masternodes vote for a certain course of action, what happens if the core devs don't agree?
The budget changes for v12.1 adding support for immutable contracts:
https://dashtalk.org/threads/budget-system-v2-transform-pr.7991/
And related discussion: https://dashtalk.org/threads/should-budgets-allow-for-irrevocable-contracts.8498/
In this instance, after the failure of the Terpin contract, Evan saw that this was a problem and proposed a fix by adding the capability to establish irrevocable multi-month contracts to the budget system. A budget proposal was voted on in favor, but rolled into the proposal was also a non-controversial reimbursement for Evan's previous budget submissions. I am curious why Evan would even ask for such a small reimbursement when he is already likely one of DASH's largest holders and there is already a core team budget. Regardless, since this was the only fix on the table at the time, and it was coming from Evan, and it was rolled in with a non-controversial reimbursement payment, it is no surprise that the proposal passed, and this was taken by the devs as confirmation that the masternode network approves of implementing irrevocable contracts. Although, reading through the threads it is clear that this is actually very controversial, and to my knowledge the devs have not been participating much in the discussions. It appears that unless we raise a big stink (which I have been trying to do), we are on track to have 12.1 released with this new functionality without really any further discussion with the core team.
"The spork" - from https://www.dash.org/spork/
In response to unforeseen issues with the rollout of RC3, the Dash development team created a mechanism by which updated code is released to the network, but not immediately made active (or “enforced”).
Communication is sent out to users informing them of the change and the need for them to update their clients. Those who update their clients run the new code, but in the event of errors occurring with that new code, the client’s blocks are not rejected by the network and unintended forks are avoided. Data about the error can then be collected and forwarded to the development team. Once the development team is satisfied with the new code’s stability in the mainnet environment – and once acceptable network consensus is attained – enforcement of the updated code can be activated remotely. Should problems arise, the code can be deactivated in the same manner, without the need for a network-wide rollback or client update.
Who holds the power of the spork? Technically this is something I do not understand myself (how it is implemented), but I can see where other coins would use this to claim that Evan holds supreme control. If he is the only one who can "spork", then I think it should be discussed at least.
These are the kinds of questions that need to be asked, decided and declared earlier rather than later, as a preventative measure so that the sh*t does not hit the fan at some point in the future. When it comes down to it, how much control does the dev team really have over decision-making in the network right now, and is this going to change as the DASH network grows? Regardless of what the answers to these questions are, if we don't ask them and establish the answers, then we risk a future power struggle.
I posted the poll to get the conversation moving, but the scope of this subject I think is even more broad than that. And, this is not meant to be a negative post at all. This is DASH, and being on the cutting edge of decentralized governance is our home turf. Let's take another step back, look at the whole picture and make sure our governance system is better than any other crypto could hope to achieve.
Thanks for reading --