• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Idea for code governance via multisig MNs

GrandMasterDash

Well-known member
Masternode Owner/Operator
MNOs can vote on individual budget proposals but they can not approve or prevent fundamental changes to the code itself. Thus, it's perfectly possible that features may be modified or introduced against the will of MNOs.

It might be said that the marketplace decides through the buying or selling of dash / MNs, or the forking of code, but this is flawed thinking. It impllies, to keep the original code / functionality, a fork might be required. The forking of ethereum is the prime example of this i.e. the original chain and POW is on the fork, while the new chain and POS gets to use the existing ethereum userbase. That, to me, seems like a fundamental flaw.

So I was thinking, can we host the dash executables directly from the MNs and lock them on a self-adjusting multisig? For example, 3000 of 4000 MNs must approve any upgrade to the binaries. As MNs are added or subtracted, the multisig would be automatically destroyed / re-created.
 
What's the usecase? Currently the masternodes "approve" on new code by installing a new version/binary - what benefit do you expect from additionally hosting the (installed) binary?

The idea is to force fundamental unapproved changes to a fork, not the other way around. Thus demonstrating to everyone, including end users, that developers alone are not in sole control.

Putting binaries on the MNs (or directly on the blockchain) controls distribution in a democratic fashion.
 
TL;DR; It might look from the outside that devs do not care and simply push whatever they want, but that's not the case and there is no need to govern them by MNs.

More:
...It might be said that the marketplace decides through the buying or selling of dash / MNs, or the forking of code, but this is flawed thinking. It impllies, to keep the original code / functionality, a fork might be required. The forking of ethereum is the prime example of this i.e. the original chain and POW is on the fork, while the new chain and POS gets to use the existing ethereum userbase. That, to me, seems like a fundamental flaw.
...

The thing you call "flawed thinking" and "fundamental flaw" is The Consensus actually and Ethereum is a good example how things can go wrong when Consensus was not reached i.e. (this might be confusing but) how Consensus rules actually have worked.


In Dash it's a result of combined decision by Wallets, Miners, Developers, Exchanges, Merchants and Masternodes.

True that Developers, Masternodes and Miners play leading roles in Dash but that's not because these three are evil, that's because they care and three others are weak or do not care:
- Exchanges mostly do not care which fork to follow (they trade all kind of shitcoins and all they care is volume, why would the care too much about one coin even if it's a good one?);
- Merchants are still too small and there are too few of them;
- Most users use Core wallet, so Wallet part doesn't really play a big role in Dash yet (this will change eventually as more and more users shift to light/mobile wallets or services shift to alternative implementations of full node, but we are not there yet).

...
Putting binaries on the MNs (or directly on the blockchain) controls distribution in a democratic fashion.
This might sound disappointing but Dash or any other Consensus based blockchain (Bitcoin included) has nothing to do with democracy.
Speaking of distribution - you get binaries from Developers for free and you are free to either use them or not. You can put them anywhere you want, use torrents for example, but you can't force someone to use them (or not to use them). Also binaries are not some Sacred Products of God, build process is open, documented and can be reproduced by simply following guides step by step https://github.com/dashpay/dash/blob/master/doc/gitian-building.md (linux and macos binaries can be built without gitian even more easily https://github.com/dashpay/dash/blob/master/doc/build-unix.md https://github.com/dashpay/dash/blob/master/doc/build-osx.md).
 
you get binaries from Developers for free and you are free to either use them or not.
Yes - actually providing the "Dash Core" binaries is just a service of convenience for the users, and it's taking me several hours each time to prepare, build, sign and release them.

Btw: I remember a lot of discussion "Why are there no Windows binaries for download, this must be a shitcoin" in the early days :)
 
I think you've missed the point. It's not about limiting free choice or stopping forks. I'm offering a way in which forks that detract from their original goals can indeed be forks.. i.e. not a situation where the rules are changed and carried through to end users bearing the same name. It's like the US government printing more dollars and then saying, "hey, you are free to use other currencies". Well duh, that's exactly why we're here now, because we lost faith in fiat. They shouldn't call them US dolars if they're fundamentally changing how they behave. The new 2-for-1 currency should be forked, bear it's own name and userbase.
 
I think you are missing the point that there is no single entity to decide which fork is the right one. Again, the majority of 6 communities I mentioned above decides which one is the one and "original". You can still mine XCoin with no masternodes or Darkcoin with 20% MN reward if you'd like to. :rolleyes:
 
Right now, it's entirely possible that an upgrade could cause a fork where the majority are on the new fork and the minority get to keep the name and users. It would be better if users had some confidence to understand that fundamental changes would have to go to their own fork and name.

Right now, MNOs vote on individual proposals but they have little say on the overall direction. End users know all this; that the rules might suddenly change. We can say this has nothing to do with democracy but I disagree. End users want to feel they have some skin... not lose control so they are free to go elsewhere.
 
I think you've missed the point. [...] userbase.
You are right: i do not get your point. Why should putting multisigned binaries on the masternodes facilitate forks or prevent them?

The blockchain follows the consensus rules which are coded in the codebase. Any derivation will create a fork in this chain - and there is no higher entity which decides which fork is the "right" one. Only the fittest fork (or even 2, 3 4) survive - whereas noone can define what fitness is in the cryptocurrency context.
 
Right now, it's entirely possible that an upgrade could cause a fork where the majority are on the new fork and the minority get to keep the name and users.
I think we are having different understandings of the term "fork".

I am talking about blockchain database, while you seem to refer to software and/or people.
 
I think we are having different understandings of the term "fork".

I am talking about blockchain database, while you seem to refer to software and/or people.

Yes, fork is generic, it doesn't just mean the blockchain.

Say, for example, dash is "upgraded" to POS, or it wound back to earlier transactions, yet still keeps the name "dash"... the current situation is, "if you don't like it, go away and do your own thing". We didn't like it when the US dollar stopped being backed by gold... and we didn't like it when they printed more dollars. If monopoly money is the new currency, why call them dollars?? If you asked for pancake and you're given cake, you wouldn't call it pancake! This kind of behaviour is called deceit and it angers people.

Think, why has gold lasted so long? Gold has both beauty and technical merit (malleable, conductive and doesn't tarnish). If it's characteristics suddenly changed, you wouldn't call it gold!

Perhaps the solution should also involve miners and MNOs and / or end user wallets. People are saying this shouldn't be about democracy but fundamentally that's exactly what it should be... it's not coincidence that the renminbi is "the people's currency". To be a developer and proclaim that everyone else should fork off is ridiculous.
 
I really don't understand the issue with code changes tbh. If new code clearly delivers more economical value than old code could deliver - "new fork" will eventually "win" users, miners, exchanges, merchants etc, like it or not, if not - "old fork" will "win", again, like it or not. No need to govern this or guard someone from some changes. If for some reason the whole network switched to the fork which then failed to deliver and everyone failed to recognize this and then failed to fix this..... - ok, experiment is most likely over anyway at this time so everyone is finally free to do smth else.

...To be a developer and proclaim that everyone else should fork off is ridiculous.
Read my posts above. That's not how Consensus works and I have no idea how you came to such conclusion.

Tbh, a lot of this is connect to the idea of a Dash Pledge https://www.dash.org/forum/threads/legal-the-dash-pledge.10785/

I can see developers are fighting this but I'm sure end users would really appreciate a stronger and more balanced governance system.
LOL WAT? I'm not fighting this, there is NOTHING to fight. I'm EXPLAINING.

"Stronger and more balanced"? I don't think so. Go ask Exchanges to guarantee stable price to protect users from price volatility. Put control over every masternode vote requiring them to vote only on proposals approved by users. Ask merchants to always return payments without any dispute if user complains about the quality or claims that he never received what he ordered. Demand miners to include every valid transaction in a block they are trying to mine despite the fee or size. That's the same kind of "solution" to a problem that doesn't even exist. Regulate everything. Good luck with that.
 
- you get binaries from Developers for free and you are free to either use them or not. You can put them anywhere you want, use torrents for example, but you can't force someone to use them (or not to use them)..

Of course you can force someone to use binarys, if they are signed and you create a binaries-chain. Means that the previous binary in order to install the next, it needs to test that it is a signed one. So yes, you can force people to use binaries. Because you can force them if they have not installed the first binary, then they are not allowed to get the upgrades.

You cannot force them to use open source of course, or force them to compile open source and make their own binaries.

Also binaries are not some Sacred Products of God, build process is open, documented and can be reproduced by simply following guides step by step https://github.com/dashpay/dash/blob/master/doc/gitian-building.md (linux and macos binaries can be built without gitian even more easily https://github.com/dashpay/dash/blob/master/doc/build-unix.md https://github.com/dashpay/dash/blob/master/doc/build-osx.md).

When building open source, maybe your IP is targeted, and someone may gives you different code than the one it goes to other non targeted IPs. So you have to check also the digital signature of the open source code, and of course get in a safe way the public key of the people who sign the code. The best way is to get their public key outside the network, or if this is imposible then better try to get the public key of the person who sign the code from several random network locations, in order to verify that this public key (and the hash of the open source code of course) is always the same.
 
Last edited:
Perhaps the solution should also involve miners and MNOs and / or end user wallets. People are saying this shouldn't be about democracy but fundamentally that's exactly what it should be... it's not coincidence that the renminbi is "the people's currency". To be a developer and proclaim that everyone else should fork off is ridiculous.

This how democracy evolves. Dash follows the democratic evolution process.
Initially the rich people, Pentacosiomedimni had more votes than the poor ones.
But when democracy evolved, and seisachteia was established, then the "one person one vote" rule was introduced.
 
I really don't understand the issue with code changes tbh. If new code clearly delivers more economical value than old code could deliver - "new fork" will eventually "win" users, miners, exchanges, merchants etc, like it or not, if not - "old fork" will "win", again, like it or not. No need to govern this or guard someone from some changes. If for some reason the whole network switched to the fork which then failed to deliver and everyone failed to recognize this and then failed to fix this..... - ok, experiment is most likely over anyway at this time so everyone is finally free to do smth else.

What you dont undertand is that it is not always a good practice trying to "win" users, miners, exchanges, merchants etc
Because this weakens the community.

The most important thing is to have a robust and numerous community, and this can be achieved sometimes by forcing the community to follow , rather than persuade it.

And how can we force community?
By imposing the majority rule, or any other decision rule that people should be forced to follow, if they wish to preserve their dash coins.
 
"Stronger and more balanced"? I don't think so. Go ask Exchanges to guarantee stable price to protect users from price volatility. Put control over every masternode vote requiring them to vote only on proposals approved by users. Ask merchants to always return payments without any dispute if user complains about the quality or claims that he never received what he ordered. Demand miners to include every valid transaction in a block they are trying to mine despite the fee or size. That's the same kind of "solution" to a problem that doesn't even exist. Regulate everything. Good luck with that.

Thats why not only masternodes, but also miners and merchants should have voting rights regarding the code upgrades.
This is how democracy evolves, and history shows that this will lead to the "one person one vote" rule.

You should regulate everything through the voting procedure.
Because if you dont, and if you set everybody free, then people flee and communtiy weakens.
 
Last edited:
I really don't understand the issue with code changes tbh...

Say, for example, dash switches to POS and a bunch of MNs and miners get together and decide they want to continue with the original POW... can we have the domain dash.org transfered to us, please?
 
There you go, no answer, and that says volumes about how core members and developers think. Clearly we have two problems:
  1. There exists a deep desire from core members and developers to make any fundamental change without proper checks and balances outside of their own bubble, while simultaneously retaining the dash name and userbase.
  2. A situation where Legal proposals to attract investors are okay, yet the core team / dash foundation is completely unwilling to draw up a legal pledge https://www.dash.org/forum/threads/legal-the-dash-pledge.10785/
The core team / dash foundation need to take their responsibilities more seriously and to ensure that dash - as digital cash - meets users expectations and remains relevant.

Of all the cryptos, I feel dash has one of the best ongoing funding mechanisms. HOWEVER, I feel the above two points are so important, I don't want to let these issues disappear into the background and forgotten. Just because you build it, it shouldn't grant unchecked control to the currency's fundamental behaviour.. for if it did, you'd be no better than the bankers you mock.
 
There you go, no answer, and that says volumes about how core members and developers think....
Right.
"Say, for example, Moon falls on Earth can we have domain transferred to us (who?)?"
I'm tired of talking about this nonsense, sorry. I tried my best to explain, but turned out it's a waste of time.

Cheers.
 
Back
Top