Proposal: Adaptive Proposal Fees

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Well, every proposal has fee-tx associated with it and each fee-tx is validated by each node at the time this node sees this proposal for the first time. So if there is a multi-months proposal which was created when proposal fee was lower and fee was bumped to a higher value later, this proposal will suddenly become invalid for new nodes if you can't 1) get "old" (low) fee value from somewhere and 2) verify that it was indeed the real proposal fee at some specific budget cycle (i.e when this proposal was submitted).
You just need to implement some kind of timestamp and keep the vote history. That way you always know whether someone was legitimate at whatever time.

The proposer accepts the proposal fee at the time of the proposal submission, and the rest masternodes validate this by watching the "proposal fee" vote history.

So when we keep the vote history, we preserve the consistency of the decisions of the community. And also, whithin the examined time frame, we can say whether someone's actions were against the will of the community or not.
 
Last edited:

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
By the way, the unreasonable behavior of the MNOs continue. Have a look.

@nudfelsyoshy said:
nudfelsyoshy said:
"Can someone please tell me why they are voting no. Because I cannot hear a single reason why this would not be a wonderful solution.
Can someone please say: "I voted no, and I did it because...""
And their response to this question? Silence and downvote.

https://dashvotetracker.com/history.php?ProposalID=271

It is the stupids and the spies again. We already know them.:(:cool:
 
Last edited:

UdjinM6

Official Dash Dev
Dash Core Team
Moderator
May 20, 2014
3,638
3,538
1,183
You just need to implement some kind of timestamp and keep the vote history. That way you always know whether someone was legitimate at whatever time.
...
Yep, timestamping means that current proposal fee should be written in blockchain as a part of budget finalization process - an OP_RETURN output of superblock's coinbase would be the most straightforward solution. This can break p2pool however (it uses coinbase OP_RETURN for its internal operations), need to investigate this further but should be solvable. Like I said, my post doesn't mean voting can't be implemented, it just might be that manual adjustment is not the best way to solve the issue.
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Yep, timestamping means that current proposal fee should be written in blockchain as a part of budget finalization process - an OP_RETURN output of superblock's coinbase would be the most straightforward solution. This can break p2pool however (it uses coinbase OP_RETURN for its internal operations), need to investigate this further but should be solvable. Like I said, my post doesn't mean voting can't be implemented, it just might be that manual adjustment is not the best way to solve the issue.
Of course writing in the blockchain is the best solution, but the blockchain is not the only database you have.
As a quick and dirty fix, you have also the sentinel database, and you may want to keep there the vote history, until a better solution is coded.
 
Last edited:

UdjinM6

Official Dash Dev
Dash Core Team
Moderator
May 20, 2014
3,638
3,538
1,183
Of course writing in the blockchain is the best solution, but the blockchain is not the only database you have.
As a quick and dirty fix, you have also the sentinel database, and you may want to keep there the vote history, until a better solution is coded.
No, sentinel is not enough - every full node must verify proposals/superblocks, not only MNs.
 

dashly

Member
Mar 5, 2017
110
44
78
I am against the notion that the budget system should be a tool to change the code as if it's some kind of democracy. I'm invested in dash because i trust core to build a kick ass crypto. Why should i trust MNO with that? They have no experience in creating or coding a currency. They are savvy investors. They could convince me only by creating a better coin. I'll jump ship and inform them of my errors in judgement.
The Core team works for us... not the other way around. I'm pretty sure everyone here realizes governance questions are not something to be toyed with. That's why we've had very few in the history of the proposals. Projects and most functionality should be handled by Core, however, there always going to be questions that pop up which would require a code change that should be asked to the community, regardless of where they come from. I believe this to be one of them.
 
Apr 24, 2017
132
29
78
50
Italy
pietrosperoni.it
Dash Address
XsSU7489b1N3F2JCiJ6guBCk1cYuxAEhBQ
Chiming in to confirm that the topic is very interesting and is not ignored :) I'm following all ideas about fee adjustments closely (you can see my comments in previous proposals) and I like the idea of this one too (which I see as a step in "give MNs power to directly adjust some network params" direction) but I have few concerns. Changing proposal fees on the fly is a bit tricky - you can't do this in some random period of time as this could invalidate old proposals for example. It should be at least synchronized with budget cycles. You could then try to store a history of such adjustments somehow (locally and sync among nodes or in some new data structure on the blockchain) but that's another moving part and this can become way to complex and fragile very quickly if you try to follow that path further imo. Having deterministic way of calculating smth using data we already have buried in the blockchain is much more robust and requires no deep changes, that's why I personally prefer smth closer to diff adjustment as I mentioned earlier. This does NOT mean that voting for fees can't be implemented, I just think that there is probably an algoritmical solution to this issue which removes the burden of manual adjustments.
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?
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
No, sentinel is not enough - every full node must verify proposals/superblocks, not only MNs.
Well in that case a quick and dirty fix is to ignore the full nodes. After all, how many full nodes do you have in the Dash network? One? Two? Ten? The big majority of the network are the MNs, the full nodes are a tiny minority. This requires of course for the code to recognise whether someone is a full node or a masternode. I think you can easily recognise this by watching the sentinel version.

And after all, all this has to do about voting! So why let the full nodes to confirm something that is not relevant to them? Leting the full nodes verify something accosiated to the votes, is a bad idea in the very first place. This may lead to a bug. I subscribe a lot of full nodes, and I deliberately not verify the votes, thus I disturb the network that way. Think about it.
 
Last edited:

GrandMasterDash

Well-known Member
Masternode Owner/Operator
Jul 12, 2015
2,740
979
183
Well in that case a quick and dirty fix is to ignore the full nodes. After all, how many full nodes do you have in the Dash network? One? Two? Ten? The big majority of the network are the MNs, the full nodes are a tiny minority. This requires of course for the code to recognise whether someone is a full node or a masternode. I think you can easily recognise this by watching the sentinel version.

And after all, all this has to do about voting! So why let the full nodes to confirm something that is not relevant to them? Leting the full nodes verify something accosiated to the votes, is a bad idea in the very first place. This may lead to a bug. I subscribe a lot of full nodes, and I deliberately not verify the votes, thus I disturb the network that way. Think about it.
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
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
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.
 

UdjinM6

Official Dash Dev
Dash Core Team
Moderator
May 20, 2014
3,638
3,538
1,183
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 :)
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
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.
 

GrandMasterDash

Well-known Member
Masternode Owner/Operator
Jul 12, 2015
2,740
979
183
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
 
Apr 24, 2017
132
29
78
50
Italy
pietrosperoni.it
Dash Address
XsSU7489b1N3F2JCiJ6guBCk1cYuxAEhBQ
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 ? ;)
 

GrandMasterDash

Well-known Member
Masternode Owner/Operator
Jul 12, 2015
2,740
979
183
@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!
 
  • Like
Reactions: Pietro Speroni

UdjinM6

Official Dash Dev
Dash Core Team
Moderator
May 20, 2014
3,638
3,538
1,183
...
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.
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
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
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
(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:
Apr 24, 2017
132
29
78
50
Italy
pietrosperoni.it
Dash Address
XsSU7489b1N3F2JCiJ6guBCk1cYuxAEhBQ
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
 

UdjinM6

Official Dash Dev
Dash Core Team
Moderator
May 20, 2014
3,638
3,538
1,183
@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 :)
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
@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:

GrandMasterDash

Well-known Member
Masternode Owner/Operator
Jul 12, 2015
2,740
979
183
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
 
Apr 24, 2017
132
29
78
50
Italy
pietrosperoni.it
Dash Address
XsSU7489b1N3F2JCiJ6guBCk1cYuxAEhBQ
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

  • Like
Reactions: GrandMasterDash

GrandMasterDash

Well-known Member
Masternode Owner/Operator
Jul 12, 2015
2,740
979
183
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/
 
Apr 24, 2017
132
29
78
50
Italy
pietrosperoni.it
Dash Address
XsSU7489b1N3F2JCiJ6guBCk1cYuxAEhBQ
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 :).
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
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: