Simple idea to prevent spam and increase proposal quality


Purpose

The purpose of this idea is to increase the quality of proposals, prevent spam attacks against the NNS, and encourage high quality proposals while avoiding punishing those who submit them.


Summary

  1. Increase proposal stake substantially, tethered to value in XDR. For example: 200 XDR, or ~21 ICP at current prices. Can be increased as necessary if there’s a time with lots of spam, and decreased after. It could even automatically scale based on the volume of proposals within a certain timeframe.
  2. Add a “Bad/Spam” button when voting. Proposals where over 50% of the voting power that voted on them decides that they are Bad/Spam have their stake burned.
  3. Don’t burn the stake of proposals that are rejected, but not decided to be Bad/Spam.

Argument

First and foremost, the idea of keeping the fee for rejected proposals low is to make it so that the NNS is open and accessible to the common, everyday user. I think this idea is misguided and needs to be reevaluated.

In the future, the NNS will primarily be driven by traditional organizations and DAOs that represent hundreds, thousands, or even millions of individuals. The organizations will naturally have access to large amounts of money which can be used to do things like submitting proposals. The idea of protecting the rights of lone individuals to submit any proposals they want is NOBLE, sure, but logically there’s no reason to give individuals preferential treatment by keeping the financial risk so low. And if an individual does want to submit a proposal themselves without going through an organization, they should be willing to take on a substantial financial risk in order to bring their proposal to the attention of the global stage, or use crowdfunding to secure the necessary funds. After all, proposals demand close attention and consideration from all NNS participants. Close attention and consideration has a cost, and the fee needs to reflect that.

However, it’s important to avoid discouraging the submission of high quality proposals because of the financial risk of them being rejected. Therefore, rejection alone should not be the reason for having one’s stake burned. Only rejection of low quality/spam proposals should be burned.

To make this work, a third button needs to be added along with Accept and Reject. Call it, for example, the “Bad/Spam” button. This button will act like a Reject, but also add the neuron’s voting power (and the power of its followers) to the “Spam Pool” for that proposal. When voting is closed, if the “Spam Pool” is over 50% of the total voting power that participated in that proposal, the stake is burned. Otherwise, if the proposal is rejected but the “Spam Pool” is LESS than 50%, the stake is returned.

Clicking the button should prompt the user with a message detailing the guidelines, which also says that the user should only use this option if the proposal violates the guidelines for a good proposal, and to vote Reject otherwise. The user then has to click again to Confirm.

It’s up to the community to decide what exactly the guidelines will be, but here are some preliminary ideas:


Proposals should

Be Specific - Any numerical values should be decided ahead of time, and details of implementation should be specific enough to be immediately actionable.

  • BAD - “Proposal to increase rejection cost of proposals” (doesn’t specify how much)
  • BAD - “Proposal to implement some new feature” (doesn’t give details of how it would be implemented)

Be Meaningful - Proposals should make sense in the context of the network and be able to be meaningfully implemented in the software. Off-topic and nonsense should be considered Bad/Spam. The same goes for miscategorized proposals.

  • BAD - “Proposal to increase my staking rewards by abusing the weighting system”
  • BAD - “Proposal to annoy everyone with offensive pornographic images”

Be Well-written and Complete - Proposals should be well-written and formatted to make them easily understandable in and of themselves, without needing too much background knowledge or referring to other sources. In cases where other sources need to be referenced, links should be provided. Links to relevant discussion threads on various forums should also be provided. Proposal should make use of charts/graphs/other images if needed.

4 Likes

I for sure agree with #2 and #3 (although would rather suggest the checkbox - might be easier to implement for CLI).

2 Likes

I like this idea a lot. It would disincentivize spam, but allow good proposals to surface even if they have a risk of rejection. The penalty of a spam proposal falls directly on the proposer, not on the voters, because you are not trying to nullify the proposal result or change voting rewards. I could see implementing a very high spam fee. I agree that designating a proposal as spam should require a little more effort such as confirmation of that selection.

The burden of the spam penalty is squarely on the proposer. There is no loss of voting rewards for the voter. The proposal is not cancelled and it is not hidden. There is no incentive for the voter to vote yes in order to get rewards. There is only a large spam fee for the proposer.

I think it also addresses concerns about high proposal reject costs…especially for people who think high proposal reject fee is a violation of freedom of speech. A rejected proposal could have a very low proposal reject fee because this idea introduces a new spam fee. Hence, those great ideas that come from community members who are not whales and don’t want to crowdfund their proposal can still surface without having to worry about the risk of a rejected proposal that is still a quality proposal that meets community defined standards.

I don’t agree with a lot of the details in the Proposals Should section though. I don’t think we should expect Governance proposal to rise to the level of implementable code. I fully agree that Governance proposals should be specific, actionable, and well reasoned, but full details of implementation don’t need to be worked out at the time of the initial Governance proposal. For example, I think Dfinity had a reasonable use case for the 25 Long Term R&D proposals back in Dec 2021 where they were specific about the scope and asked the community to approve the plan. That seems like a reasonable use of the governance system that isn’t about code changes.

2 Likes

Imagine that someday someone suddenly has a crazy genius idea that might be adopted but finally has to give up because of the high rejection cost or the fear of being considered to be Spam by the community.

It seems that everyone now wants the NNS to be perfect, not to be strong.

Really miss the old days when anyone can submit a proposal as long as he has 1 ICP.

3 Likes

hahahahahahahaha funny

1 Like

OP, your premise that large companies will be more willing to take on extra financial burden on the nns ‘just because’ is flawed. if anything they would be deterred from ICP because of that crap.

1 Like

Well, I think we already saw crowdfunding to resolve this and actually you’ll end up with same problem once ICP costs $$ 1200…

I agree that it won’t solve current spam, but it’s for sure the right path to go with proposals - there’s no reason to ‘punish’ anyone for a good-faith proposal (which might get rejected by 50.0001% majority)

Yes, you’re definitely right.

It just seems so hilarious that the Twitter, as a web2.0 app, wants more freedom of speech, while the NNS, as a web3.0 app, wants less freedom of speech.

It makes me a little sad, as a free speech absolutist.

2 Likes

If the idea is so good that it’s likely to pass, then it shouldn’t be hard to convince an organization/DAO to draft a formal proposal and submit it on one’s behalf. Or to secure enough funds from community crowdfunding to submit it oneself. If no organization will touch it, and nobody will donate to the proposal stake pool, then it’s unlikely that the idea would have passed an NNS vote anyway had it been submitted immediately.

I fail to see how the concept of freedom of speech comes into play here. If my idea were to propose banning certain topics from being submitted, then I could see the issue. Any ideas can still be discussed on forums and submitted for a vote. Increasing the financial risk is meant to limit users from cheaply spamming the NNS with useless proposals by making the very costly to do so. It doesn’t prevent legitimate proposals from being submitted because, as expressed in the OP, proposals that are rejected, but not voted to be poor quality or spam, will not incur a cost on the proposer.

If nothing is done to prevent low-quality spam proposals from flooding the NNS, then the NNS will become practically unusable in the future if someone, or a group of people, deliberately launches an attack against the network. The only sure-fire way of guarding against such an attack is to make it too costly to be worth doing. My idea avoids that outcome while also preventing legitimate users from being punished. Automated detection systems, or randomly selected human arbiters, can also work to prevent this, but a dedicated enough spammer will always manage to find a way around such systems.

2 Likes

Not companies, but organizations and DAOs, specifically those dedicated to the ICP network and its advancement. Already there is Dfinity, the ICA, as well as smaller DAOs. The NNS with its liquid democracy model seems to be deliberately designed to encourage the formation of these organizations. It’s likely that within the next 5-10 years, the NNS will almost entirely be driven by 2 to 3 dozen organizations and DAOs (and hopefully not fewer). These are non-profit organizations that don’t operate based on a profit motive, but are motivated to improve the network as a whole. An organization, especially a DAO, submitting a proposal would naturally gather funds via crowdsourcing from its members and supporters to add to the proposal stake. The proposal stake being the minimum amount necessary to submit a proposal, the funds being locked for the duration of the proposal, and either unlocked or burned depending if the proposal is voted to be spam.

Furthermore, these organizations would almost certainly put in the time and effort to draft high-quality proposals which, even if rejected, would not be voted as spam, and therefore there would be no cost for the rejection. The funds could even be returned to the donators automatically via secure smart contracts, so there would be no real cost and no risk of someone running off with the funds.

1 Like

Would you mind clarifying if and when you plan to submit this as an NNS motion proposal?

It seems like the Proposals Should section might take longer to develop and get input from the community, but the NNS dApp functional part is so simple and effective that it seems like you don’t need a multiweek deliberation. It would be nice if these are separate proposals and the first is submitted within the next week.

It is not that a good idea is likely to pass; it is that an adopted idea is good. There is a difference here.

Community crowdfunding might be dangerous; see the ICproposal Rug Pull.

Many tech geniuses are lone wolves, and some of them may come from the third world and may never join in this forum.

It is indeed about freedom of speech here; it is just you not fully understanding the essence of freedom of speech here.

Words can never hurt you without your permission. That is why I am a free speech absolutist.
That is, low-quality spam proposals can never hurt anyone as long as they are rejected. Of course, it may hurt your feelings, but that is not a real hurt; it is just your feelings.
It is hard to imagine that in a place like the NNS where everyone is actually anonymous there is any necessity that we should restrict freedom of speech.

Decentralization means that everyone can freely make any speech, whether it is good or bad. If there is no absolute freedom of speech, web3.0 will be meaningless.

I can repeat it here: No one can give a precise definition about what is good or bad; if a proposal is adopted, then it is good; if a proposal is rejected, then it is bad. Before the voting result comes out, we can never decide.

If one can submit spam proposals to flood the NNS at the cost of 1 ICP for each proposal, it does not mean that free speech is dangerous; it just means that ICP is so cheap that even burning very much ICP everyday is not enough anymore.

You should never try to prevent someone from submitting “bad” proposals in the NNS; you just should reject them.

3 Likes

We can see what side of the camp you are on and you will not prevail. It’s not about you and what you want but how we would like things. Instead of your ramming in down our throats why not try listening and understanding others point

Ok, you can say that. :rofl: :rofl: :rofl:
I just want to freely express myself, but I am not very interested in changing anything, and that is all. :rofl: :rofl: :rofl:
Of course, the community can shut me up if they want. I am from China, you know, so I already get used to that. :joy: :joy: :joy:

1 Like

Your a person and I would prefer to be a mate, I don’t want to send you anywhere.

Originally I wasn’t planning on submitting a proposal myself, simply sharing the idea, but since there’s interest, I’ll work on drafting a formal proposal in the near future. There’s still some details to work out, especially in regards to the guidelines. I agree with your feedback from previously regarding how detailed proposals need to be. Requiring implementable code and complicated technical details to be worked out is going a bit too far, especially for highly complex and long-term features like those on Dfinity’s roadmap, so there needs to be a balance between “vague idea with no supporting details” and “ready to immediately implement.” I’ll think on it and do do some research to see if I can come up with better guidelines. Any feedback or ideas are appreciated.

2 Likes

I’m an advocate for freedom of speech and against censorship as well, which is why I see so much potential with the Internet Computer to protect the rights of people to speak freely and openly without fear.

However, when it comes to freedom of speech, one needs to consider the issue of venue. A public discussion forum is a great place to allow anyone to discuss and express any sort of ideas they want. Although even then there are generally going to be some guidelines in place to prevent illegal content. And perhaps even guidelines to prevent low-quality spam. On a traditional website, that’s up to the site owners to decide, and on Web 3.0 it’s up to the DAO that controls the service to decide. In general, I’m in favor of very minimal moderation, but not a total lack of it. But I’m getting off-topic, back to the point.

The NNS is not and was never intended to be a public discussion forum. The venue is completely different. It is a governance platform. As I stated in the OP, good governance demands close attention and consideration form all governors, in this case, NNS voters. That is impossible if there’s a flood of low-quality proposals to wade through, because after a certain point there’s simply not enough time to go through all of them and the rewards aren’t high enough to justify the effort.

Imagine this hypothetical:

The U.S. Congress suddenly opens up the floor to the public, so that any American citizen can digitally submit any proposal for the low price of $10 that the house and/or senate are, by law, required to read and vote on. How soon would the legislative branch cease to function due to complete overload? A month, a week, a day? Most likely, within hours.

The NNS is the legislature of the Internet Computer. Do you see the parallel? The system will grind to a halt and cease to function properly if something is not done to address the imminent threat of low-quality spam proposals.

You’re correct that it’s not possible to give a precise definition of what’s considered “good” or “bad,” but a precise definition is not needed when a generally accepted definition is good enough, as is the case with guidelines everywhere.

1 Like

The U.S. Congress example is not very appropriate, since the NNS should be infinitely designed like the Internet Computer, i.e., infinitely scalable. The blockchain world is a digital world, and thus many concerns in the real world do not matter anymore; as for now, I don’t see any real problems of absolute freedom of speech in the NNS.

I think that in the end every proposal should be just a piece of code so that every proposal can be implemented automatically as soon as it is adopted. That is, everything should be precisely defined so that it can be realized or implemented in code.

Guidelines for submitting good proposals are definitely necessary, but it is better to put those guidelines in the Internet Computer Wiki or some other official websites. The Dfinity or the community leaders should educate people on many things, but should not force people to do anything.

I presented a simple idea to deal with the Spam proposal issue yesterday that you might be interested in:

If a listed followee finds a “Spam” proposal, then she can immediately fold this proposal so that her followers will not automatically see it. If a follower wants to see what she folds, then he can just click some button to see the folded; if he think she always folds proposals maliciously, then he can unfollow her or even submit a proposal to unlist her.

I think this idea can cause minimal distortion of the voting market. It is so simple that someone must have already recommended it elsewhere.

1 Like

You may be interested in this response from @diegop at Dfinity regarding what they are looking for in a proposal. I think it is a really good list of expectations as an alternative to your Proposals Should section.

1 Like