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

Proposal: Adaptive Proposal Fees

I think he means the proposals need to be submitted by anyone and sit on the blockchain.. that requires a full node.. anyone running the core wallet is also running a full node

The proposals need to be submitted by anyone, but voting how much the proposal fee should be is supposed to become a responsibility of the Masternodes. Not everyone should be able to confirm that, but only those who are allowed to cast the vote.
 
Hi @UdjinM6, nice of you to comment. Of course the subtleties of voting in a distributed network makes all this harder. I have to admit I did not consider this. But is it really necessary to wait a business cycle? Can't we try to update this on every block, and update this every blocktime (1m 30s)? After all synchronising values through blocks is the key magic of the blockchain. One thing I can assure you is that the median moves slowly, it is not the average. No one can just vote some crazy numbers and get the median to do what they want. And of course the system would have to keep an histoy of all the previous values in the blockchain. And if something passes the threashold at one time, it is valid even if the threashold changes later.

I asked some of my friends what according to them should have been the politicians revenue. And I extracted the median. You can see the results here: https://www.dropbox.com/s/9fzttnmdomxdzre/MPSalaries.png?dl=0 In particular see how the median reached stability very early. And nearly never changed. And when it did it was for small values. On the other side the average changed every new vote, and mostly it was trying to balance some crazy high votes.

Maybe each masternode would have a value associated with it. And every time they want they can change their value. Which gets sent to the network and processed parallel to the payments informations from the wallets.

Finally, I am a mathematician, a researcher that studies eDemocracy. You can find my work at http://pietrosperoni.it . My speciality is making sure that voting systems are mathematically fair. I have also collaborated with the Italian government and some local initiative. I am very interested to collaborate with the core team. Is there an official channel to propose oneself?

Keeping history in the blockchain requires some "field" and everyone should agree it has "correct" value. Doing this agreement at the end of budget cycle is kind of natural extension of current process where masternodes are voting on few proposed sets of proposals to pick the "right" one. Doing this on every block is not feasible imo because MN list is not perfectly synced on different nodes which can lead to disagreement on results of such voting and never ending forks. Also scanning each block for such "fields" could add unnecessary work, which can be hugely reduced if changes are only supposed to be made every 16616 blocks (i.e. in each suberblock). As you mentioned, it shouldn't change too much/very often anyway.

You can think of 2 types of "values associated with masternode":
1) "static", which are broadcast on masternode start (i.e. IP, collateral pubkey and signing pubkey)
2) "dynamic", or basically votes, which are sent when MN votes either manually (MNO votes for proposals) or automatically (MN votes for proposal set, watchdogs and other automatic objects)
Setting static values requires everyone to completely renew their records about this MN and being a heavy operation it also drops MN to the end of the queue to discourage MNOs from doing this too often and abusing network this way. Changing fee and going to the end of the queue doesn't sound like very interesting idea so I guess we can ignore potential use of static values for this purpose. Dynamic values are not that heavy to update but since there are tons of them and they are not perfectly aligned on different nodes (they are "live" and not written to blockchain), you need a process of achieving some kind of "live" agreement/consensus and casting votes every now and then is not a good idea either imo since for new nodes it becomes really hard to catch up. Coming to an agreement in some predefined intervals can work though, see paragraph above :)

It's nice to have a researcher who is specializing in the field and have real world experience on board, I welcome you to share your ideas in any form you like. You can start by creating your own thread here on forum describing one if you like. I think you can also contact @kot if you'd like to propose a closer collaboration of some type, he kind of qualifies for the "official channel to propose oneself" I guess :)
 
Keeping history in the blockchain requires some "field" and everyone should agree it has "correct" value.

You dont keep the history in the blockchain.
You keep the votes in the blockchain, and from these votes the history appears.
So nobody has to aggre in any "correct" value.
Everyone calculates the correct value, by browsing the votes in the blockchain.
 
Finally, I am a mathematician, a researcher that studies eDemocracy. You can find my work at http://pietrosperoni.it . My speciality is making sure that voting systems are mathematically fair. I have also collaborated with the Italian government and some local initiative. I am very interested to collaborate with the core team. Is there an official channel to propose oneself?

Maybe there should be a proposal to form a Governance and Funding DAO? Two researchers (yourself and one other), two members of dev core and two members of biz core.
  • Research governance (blockchain and traditional)
  • Work with dev core and biz core to agree workable solutions
  • Present reports with recommendation(s) that's universally agreed between all those in said DAO
  • Masternodes vote on the recommendations
 
Don't do it. The core team are a bunch of advertisers and marketers. Better try to collaborate with the coders.

https://github.com/dashpay/dash/graphs/contributors

I probably need to understand better the structure of the actual governance in Dash. Someone above said they voted no to this proposal because they only trust Evan and the core team to take this kind of decision. If this is the case maybe they need a mathematician among them. Also the coders take probably technical decisions, but who decides the structure of the distributed governance? That's the person I need to work with.

I like @GrandMasterDash idea.

Maybe there should be a proposal to form a Governance and Funding DAO? Two researchers (yourself and one other), two members of dev core and two members of biz core.
  • Research governance (blockchain and traditional)
  • Work with dev core and biz core to agree workable solutions
  • Present reports with recommendation(s) that's universally agreed between all those in said DAO
  • Masternodes vote on the recommendations

Sounds more like a study group than a DAO. Also I would change:
"universally agreed" into "consented".
Much more powerful. People consent to things that don't fit their vision, but that they have no objection to. While consensus tend to freeze groups.

Present reports with recommendation(s) that's consented between all those in said group


Keeping history in the blockchain requires some "field" and everyone should agree it has "correct" value. Doing this agreement at the end of budget cycle is kind of natural extension of current process where masternodes are voting on few proposed sets of proposals to pick the "right" one. Doing this on every block is not feasible imo because MN list is not perfectly synced on different nodes which can lead to disagreement on results of such voting and never ending forks.
Let me see. I am very much out of my depth here, but:
I suppose the longest chain wins, and the forks you speak about are just temporary. Ok, so the network is not perfectly synced.So we can just pick the numbers 15 minutes (10 blocks) after they were voted. With a history that's trailing behind. On parallel people submit proposals, and send their coins associated with it. And so all the forks will be temporary. But all the forks will have the older history in common. So the 15 minutes ago median number should be in common. And that what can be used on a rolling base. This would make it very organic, with the community able to respond immediately to spammers. For example I expect the value to keep going down, until some spam will start arriving, and then immediately the first people will raise their value. Basically it's a chicken game and you want the network to be as responsive as possible.

It's nice to have a researcher who is specializing in the field and have real world experience on board, I welcome you to share your ideas in any form you like.
Thanks. I am happy to be here.

You can start by creating your own thread here on forum describing one if you like. I think you can also contact @kot if you'd like to propose a closer collaboration of some type, he kind of qualifies for the "official channel to propose oneself" I guess :)

Sure. Let's first see how this goes. All the other ideas are much more complex than this concept of the median. And if this does not pass, it's pretty impossible the others will. In any case the basic pattern is that different kind of questions should be dealt in different ways. The median works for single peak unidimensional problems. A (human based) genetic algorithm works better when you are exploring a search space of possible solution. If you instead already know what are the possible solutions, and are not single peak, unidimensional, then majority judgment is a good solution that avoids Arrow impossibility theorem. And then you have those far off ideas like futucracy, and so on. Honestly I can't write too much, or I will end up never ending my book. But maybe one idea at a time I can.

(One warning, I promised a friend to work with him in creating a new coin. I don't expect this to have any influence in my actions, but if you consider every other altcoin a competitor, I might not be the right researcher for you)

@Pietro Speroni
Before contacting @kot, ask also @GrandMasterDash to tell you what is his opinion about him.

Oooh, do I get to hear all the juicy gossip :p ? ;)
 
@demo 's cross-post proposal made me think; if dash and pivx can put their pride to one side (and any other dash fork), then there's an opportunity here to create a lightweight cross-platform proposal system. A one platform, one price, proposal submission!
 
...
Let me see. I am very much out of my depth here, but:
I suppose the longest chain wins, and the forks you speak about are just temporary. Ok, so the network is not perfectly synced.So we can just pick the numbers 15 minutes (10 blocks) after they were voted. With a history that's trailing behind. On parallel people submit proposals, and send their coins associated with it. And so all the forks will be temporary. But all the forks will have the older history in common. So the 15 minutes ago median number should be in common. And that what can be used on a rolling base. This would make it very organic, with the community able to respond immediately to spammers. For example I expect the value to keep going down, until some spam will start arriving, and then immediately the first people will raise their value. Basically it's a chicken game and you want the network to be as responsive as possible.
...
No, not really, and there are few issues.

You mentioned history but this history has to be build somehow and voting process is the weak chain here. Due to network propagation issues different nodes can see slightly different results (vote count) when new block is mined/arrived and some of them might not agree that the fee value stored in such block is valid which will cause a permanent fork because such block is now violating consensus rules (from their perspective). You can probably solve this by allowing some arbitrary margins but this is yet another magic number unless there is a clear mathematical model behind that.

And even if you have a common history, there is yet another issue - it's not guaranteed to have your fee-tx included in the very next block because you never know when the new block is going to be mined, so it's quite probable that you'd need to wait for (at least) a block. It can happen so, that the fee was adjusted in that new block and now it turns out that your fee-tx has not enough fees included, so you just lost money for nothing, basically. You can probably solve this too by paying more, again by some margin, plus a higher miner fee to make sure it's included in blockchain as soon as possible but I guess there will be people/wallets trying to minimize the cost especially if min fee is already high. As a result this will cause a lot of issues and complains and I'd prefer to avoid that on protocol level :rolleyes:

Also, I see "you want the network to be as responsive as possible" statement as a false premise because I don't want that actually, at least not on a 15-minute/10 block basis, not at all :) The truth is you can't fight spam with fast reaction because at the moment you start reacting you already lost - if it's economically reasonable I can create spam txes and consume all available resources at enormous rate in no time, by the time you start reacting network is already overwhelmed with spam and/or dead. With this in mind, I actually want network to be pretty conservative to keep its security, ability to provide service to legit users and discourage spam attacks, yet adaptive to allow new possibilities in mid/long term.
 
Sure. Let's first see how this goes. All the other ideas are much more complex than this concept of the median. And if this does not pass, it's pretty impossible the others will. In any case the basic pattern is that different kind of questions should be dealt in different ways. The median works for single peak unidimensional problems. A (human based) genetic algorithm works better when you are exploring a search space of possible solution. If you instead already know what are the possible solutions, and are not single peak, unidimensional, then majority judgment is a good solution that avoids Arrow impossibility theorem. And then you have those far off ideas like futucracy, and so on. Honestly I can't write too much, or I will end up never ending my book. But maybe one idea at a time I can.

I said the same thing, but in my own way, the rude one....
yes of course. The lack of voting with numbers is a single symptom of a much larger problem. You also need to implement a voted decision tree having interdependent polls. But the task of building this voted decision tree is very hard. Hard not only to implement it in code (you need to take advantage of the inherent computer property of reflection which is not implemented in the most common programming languages and only some rare academic projects or some viruses are taking full advantage of it), but also hard for the ignorants to understand the theory behind (the games theory), so that they will be able to vote on it efficiently. Because for a voted decision tree to be able to work efficiently, humans (aka logical beings) must vote on it and not monkeys or sheeps.

On the other hand voting with numbers is easy to implement it and to understand it. Even the monkeys and the sheeps can take a glance on it. Thats is why I am proposing it as the first step. It is an easy task, and the first step in order to educate the monkeys and the sheeps and transform them (slowly) into humans.

:p
 
(One warning, I promised a friend to work with him in creating a new coin. I don't expect this to have any influence in my actions, but if you consider every other altcoin a competitor, I might not be the right researcher for you)

I would like to join your altcoin.
I desperately want to leave from this twitter/facebook/instagram/amanda_ruled silly DASH universe, but unfortunately I haven't find anything better until now.
 
Last edited:
No, not really, and there are few issues.

You mentioned history but this history has to be build somehow and voting process is the weak chain here. Due to network propagation issues different nodes can see slightly different results (vote count) when new block is mined/arrived and some of them might not agree that the fee value stored in such block is valid which will cause a permanent fork because such block is now violating consensus rules (from their perspective). You can probably solve this by allowing some arbitrary margins but this is yet another magic number unless there is a clear mathematical model behind that.

Ok, so you are saying that not all nodes can see all masternodes. And as such they will feel the result at which the rest of the network has arrives is bogus. Interesting. How come this does not happen when the normal proof of work happens, and one node presents a number of transactions and links them all in a block?

Can't we mimic such a system? With change of vote from masternode being equivalent to a transaction. And sometimes those votes are not instantaneous, and might take some time to be stored in the blockchain, but it's no big deal. When the node stores the new block, it also stores the new median, with all the transactions, and all the new votes. If someone cannot see one of the vote, it should be like when someone in the bitcoin network not seeing one of the transactions. I am not sure what happens in that case, but shouldn't be that different.

The only real problem I see is with masternodes going offline. Because that is something that should be istantaneous, while all the change-the-vote is not istantaneous. But maybe we can accept there is a bit of echo.

(If I need to read something like how Dash POS is different from bitcoin POW please let me know and send me the link. As I said I feel I am on uncertain ground, which for a mathematician feels weird. We are used to tautologies ;-) )

And even if you have a common history, there is yet another issue - it's not guaranteed to have you fee-tx included in the very next block because you never know when the new block is going to be mined, so it's quite probable that you'd need to wait for (at least) a block. It can happen so, that the fee was adjusted in that new block and now it turns out that your fee-tx has not enough fees included, so you just lost money for nothing, basically. You can probably solve this too by paying more, again by some margin, plus a higher miner fee to make sure it's included in blockchain as soon as possible but I guess there will be people/wallets trying to minimize the cost especially if min fee is already high. As a result this will cause a lot of issues and complains and I'd prefer to avoid that on protocol level :rolleyes:.

This is how I see it: people present a proposal with some fee. There are two options:
(1) the fees are enough
(2) the fees are not enough
In case one the fees get paid, and any extra is sent back. So you pay 3 Dash, the fee-tx is 2.5, 0.5 is sent back to your address.
In case two the proposal remains suspended. You can retire it in any moment. If you do not retire it, in any moment in which the fee is higher than the fee tx the proposal gets accepted and it goes to point 2. Any proposal that is not accepted after "magic_number" blocks gets rejected and the money goes back.

I don't see any complain with this. Said that an alternative option is that the masternodes when they vote, next to the vote they also insert how much should the tax be for the proposal they are voting for. And again you take the median. In this way the masternodes have the possibility to punish people who keep disturbing them with silly proposals (like ours ;), not sure if I like this idea ).

In a sense right now many people are already inserting as the cost 5 dash, to pay back for the proposal. And if the proposal is not accepted, the next proposal will cost 10 dash. This will take care of it. And the tax becomes really a tax. Maybe masternodes who vote yes will (or should) only vote 0 as tax. Meaning an accepted proposal should cost nothing to the proposer. This is a bit like the Italian legal system where when someone sues someone else, the loser has to pay the cost of the process for both, and the winner pays none.

Also, I see "you want the network to be as responsive as possible" statement as a false premise because I don't want that actually, at least not on a 15-minute/10 block basis, not at all :) The truth is you can't fight spam with fast reaction because at the moment you start reacting you already lost - if it's economically reasonable I can create spam txes and consume all available resources at enormous rate in no time, by the time you start reacting network is already overwhelmed with spam and/or dead. With this in mind, I actually want network to be pretty conservative to keep it's security, ability to provide service to legit users and discourage spam attacks, yet adaptive to allow new possibilities in mid/long term.

You are thinking boolean, open to spam? True/False.

But this is a continuous variable. It is not that at some values you get million attacks and then at another the spam attacks all go away. As the value raises (and the median raises slowly, because every two new vote raising can at maximum raise it by one person) the proposals that go through will diminish more and more. Of course there will be some false positive (spam proposals that pass through) and some false negative (serious proposals that don't make it). But the system will adjust rapidly, and even when the value will be low, it will still be high enough to stop the great majority of spam. Really, you are thinking discrete, this is continuous.

One point, if you are facing a intelligent operator, it might not send any spam for a long time, wait for you to lower your shields, and then send it all at once. In this case the defence is continuous but the attack is discrete. For this we need to rely on the wisdom of the masternode never to lower the fee too much. But this attack could happen exactly the same if people could vote their fee tax every cycle. With the added damage that then they cannot change their vote until the next cycle.

Ok, I hope this helped.
I am looking forward to learn more about how the Dash blockchain works differently from the bitcoin one :).

Cheers,
Pietro
 
@Pietro Speroni yep, dynamic nature of MNs (and thus uncertainty about mn list) is the key thing which was holding us back all this time and is the root issue why some ideas being put on hold. This is smth we are going to try to address in next major release. Or at least there is still a hope that we'll come up with a robust solution for this problem :)
 
@Pietro Speroni yep, dynamic nature of MNs (and thus uncertainty about mn list) is the key thing which was holding us back all this time and is the root issue why some ideas being put on hold. This is smth we are going to try to address in next major release. Or at least there is still a hope that we'll come up with a robust solution for this problem :)

I have already told @Pietro Speroni and @GrandMasterDash that the median average blinks.

The mean average is much more stable and straighforward, you are not afraid of the dynamic nature of the MNs, or to lose one or two votes whenever is calculated. The mean average result remains the same if you dont take into account one or two votes, because the probability those votes to be the extreme votes is very low. In the case of the median average it is different, the result may blink among the bounds of the polarization if you dont take into account (because of the unsychronized nature of the blockchain) one or two votes of Masternodes.

Despite what the median average proponents are doing, I like to take really into account all the extreme votes, thats why I prefer the mean average. Do you think I am mean? :p

It is not by chance that nature and the universe selects the mean average as their prefered selection process. They can do this because the universe (although huge) always remains bounded so the mean average is able to work whithout blinking into the bounded enviroment of the universe. Thanks God, nothing is infinite (except Himself).
 
Last edited:
I might be talking a load of dribble here but... can't we can create a very lightweight side-chain? (secured by the main chain)
  • specifically for proposals, voting and fees
  • long block time; every 12 hours
  • current state is merged with previous block i.e. votes carried forward / updated
 
I have already told @Pietro Speroni and @GrandMasterDash that the median average blinks.

The mean average is much more stable and straighforward, you are not afraid of the dynamic nature of the MNs, or to lose one or two votes whenever is calculated. The mean average result remains the same if you dont take into account one or two votes, because the probability those votes to be the extreme votes is very low. In the case of the median average it is different, the result may blink among the bounds of the polarization if you dont take into account (because of the unsychronized nature of the blockchain) one or two votes of Masternodes.

Despite what the median average proponents are doing, I like to take really into account all the extreme votes, thats why I prefer the mean average. Do you think I am mean? :p

It is not by chance that nature and the universe selects the mean average as their prefered selection process. They can do this because the universe (although huge) always remains bounded so the mean average is able to work whithout blinking into the bounded enviroment of the universe. Thanks God, nothing is infinite (except Himself).
The mean is NOT more stable.

Look at how the median and the mean moved in this experiment among my friends (asking them how much MP should be paid). It takes only one person to move the mean of as much as he wants. Yes, if 51% of the voters are wrong the result is wrong. But what form of voting can sustain 51% of crazy voters? com'on.

And regarding the fact that you want to take into account the extreme, yes, but then it will also take into account the extremists on the other side, and then society becomes a game between you on one side, and the extremists on the other side both polarizing to the extreme, while we all watch and wonder when are you going to get back out of maddness.
 

Attachments

  • MPSalaries.png
    MPSalaries.png
    77.4 KB · Views: 271
The mean is NOT more stable.

Look at how the median and the mean moved in this experiment among my friends (asking them how much MP should be paid). It takes only one person to move the mean of as much as he wants. Yes, if 51% of the voters are wrong the result is wrong. But what form of voting can sustain 51% of crazy voters? com'on.

And regarding the fact that you want to take into account the extreme, yes, but then it will also take into account the extremists on the other side, and then society becomes a game between you on one side, and the extremists on the other side both polarizing to the extreme, while we all watch and wonder when are you going to get back out of maddness.

I really think people such as yourself, who have real world experience and passion for such things, should be given a greater role in dash. MNOs are a diverse bunch but very few of us are experts in governance. As previously said, I don't think it should be in isolation; I think it also requires input from the business side and technical side. Maybe you can participate in the summary call tomorrow (18th) https://www.dash.org/forum/threads/dash-core-team-q1-2017-summary-call.14878/
 
I really think people such as yourself, who have real world experience and passion for such things, should be given a greater role in dash. MNOs are a diverse bunch but very few of us are experts in governance. As previously said, I don't think it should be in isolation; I think it also requires input from the business side and technical side. Maybe you can participate in the summary call tomorrow (18th) https://www.dash.org/forum/threads/dash-core-team-q1-2017-summary-call.14878/
Thanks @GrandMasterDash . I am flattered. I think it would not be very useful for me to participate right now. I would sit in the audience at maximum being able to ask a question. There is no particular question I wish to ask right now. If they want me to participate in some direct way, and discuss governance techniques that could be applied, I am of course available :).
 
The mean is NOT more stable.

Look at how the median and the mean moved in this experiment among my friends (asking them how much MP should be paid). It takes only one person to move the mean of as much as he wants.
I didn't mean the mathematical stability. I meant the network stability. What happens to the mean (or to the median) average, in case some nodes (and their votes) go randomly on-line (so the votes of the nodes count) or off-line (so the votes of the nodes are not taken into account in the average) ? In this case the mean average is more stable (because the probability the off-line votes to be the extreme votes is very low) than the median average (because it blinks within the bounds of polarization).

Yes, if 51% of the voters are wrong the result is wrong. But what form of voting can sustain 51% of crazy voters? com'on..
The mean average can sustain 51% of crazy voters, as long as there are a few voters who keep their vote to the extreme (which is the correct in our case).
 
Last edited:
Back
Top