Proposal: A governance inhibition system for dealing with spam proposals


Non-actionable/non-deliberated (spam) proposals can be created that diminish the governance system, either with toxic content or impaired usability, and/or lead to unfair voting reward distribution.


Provide a solution that:

  • efficiently and effectively detects and removes such proposals.
  • is decentralised, scalable and has a clear route for implementation.
  • minimises additional network complexity, traffic, and risk.

The problem with reviewing everything

Attempting to remove spam by reviewing every proposal means that everything is suspected of being spam until it is shown to be ‘ham’. Conversely, spam proposals are seen as part of the signal until they are classified otherwise. Both of these come at the cost of increased network traffic and a step toward centralisation by reducing the population size that may have access to a proposal.

Another way to view spam

This proposal aims to reframe spam proposals as a kind of malfunction, or disease, within the system, as they offer no benefit to the network and only act for individual reward or interest.

To efficiently detect this malfunction, every neuron must be able to flag its presence, with the goal of removing it as quickly as possible. Since the infection can be local or systemic, thresholds that trigger a response could be based on the overall number of reports of spam as well as their frequency. In this way, both sudden spikes and steady growth (of spam reports) can indicate that an infection is present.


I suggest creating a separate, parallel pathway that acts to inhibit governance in situations where it would be undesirable for it to function normally. It is triggered by neurons, via a ‘report spam’ button and, when sufficiently activated, acts to prevent the governance system from passing the proposal, until a review process has been completed.

How does it work?

On creation, each proposal has three elements. Two buttons: ‘Accept’ and ‘Reject’ and a ‘Spam’ toggle. The ‘Spam’ button does not vote, but rather flags a proposal as problematic or in need of review. As the number of spam flags rises, or certain conditions are met, the inhibition level rises.

What happens next depends on how many spam reports a proposal has received. If it is the first one, it can trigger some automatic checking for null content, excessive obscenity, or other warning signs.

If the scanning detects something that may be problematic, the proposal is immediately elevated to level 2, which can also happen if it receives more than 10 spam reports (for example). At this level, a group of people (chosen randomly or perhaps named neuron owners) are notified that the proposal may be problematic. This group is invited to perform a quick check of the proposal.

If one or more people in the level 2 group finds an issue, or if the proposal reaches the highest threshold for reporting (say, 100 reports) the proposal is elevated to level 3. At this point the proposal is frozen, its content is blocked and replaced with “under review”, removing it from public view.

Proposals that have been through the review process will have the ‘report spam’ button disabled.


  • It is fully responsive. Even a single spam report can trigger action.
  • Its implementation does not increase the complexity of the governance system.
  • It is only active when triggered by people and can have configurable activation thresholds.


  • There is more work upfront to add this layer, compared to simple tweaking the existing governance system.
  • The system could be exploited by those who report every proposal, regardless of whether they think it is spam. If enough people regularly did this, we end up with a 100% review system. The threshold values for level 2 and 3 can be adjusted to partly mitigate this risk.

Thoughts and implications

There are many, but here are a few that came to mind while writing this:

  • The ‘report spam’ button is only really usable by people who vote manually.
  • Known neurons are a good source of checks in level 2, as they (their members) will have exposure to all proposals and are likely to be paying attention.
  • The separation from the governance system is important, because:
    • Prinicples guiding spam removal do not need to align with those for governance
    • The system can be fine-tuned without needing to modify governance-related code
  • This logic could form the basis for a prototype ‘inhibition neuron’ with broader utility.

For me, this is the best way to fix the issue, but not perfect as well.
Lately, I read some post defining Rejected proposals as Spam.
So how would you define a Spam or Ham?
What if those heavy voters power decide to Spam a proposal they don’t like?
I am interested to learn more


What about an idea that, if there is less then 3 millions votes Yes, it is qualified as spam automatically, no rewards given. The instruction would be given that voters need to vote NO if they see it as a spam.
So a minimum of 3 millions of YES vote is needed to activate the validity of the proposal and his rewards
Does not solve 100% a big whale for manipulating the system but would help short term while keeping it very simple and decentralize to his best.

Certainly the spam/ham distinction is important. One advantage is that a universal definition is not needed as it is up to the individual neuron owner to make that call. This is not true, however, of the review process, where there would need to be some structured, open criteria on how to reliably classify spam. My (somewhat circular) definition of spam is a proposal that provides no benefit to the network. I would also make a clear distinction between those proposals that are about governance and those that are for governance.

Thanks for bringing up voting power. Since neuron voting activity is weighted, it makes sense that the inhibitory signals (spam reports) are also weighted. This would mean that fewer large neurons would be needed to hit each of the inhibition levels. In this system, that maximum effect that any single neuron could have would be to put the neuron to a review, temporarily blocking the content.

It is important to note that this can only happen once; after passing a review, the spam button would be disabled/removed.

To prevent an oligarchy from forming, the reviews could then be conducted with the confidence levels put forward by Dominic, assigning a random set of neurons to the task of review in a 1-neuron, 1-vote manner. This system does not oppose that, instead it proposes a different way to reach the review process.

Though this could work as a separate change, focused on the governance system, I would oppose bringing such a threshold in to this system for two reasons:

  • because it conflates the concepts of voting (excitatory activity) with spam removal (inhibitory activity). One aim of this proposal is to decouple the two systems, as I think they work differently and are motivated by different things. Separating these concerns can also support transparency, as it is easier for the majority to see how each part works.

  • because it means that there is a default level of neural inhibition, which, like reviewing all proposal, makes the entire network less responsive. Fundamentally, I think the network should only do extra work when there is something to do, and that the question should instead be about how to tune the sensitivity of the network so it can reliably determine when there is something to do.

There are several points made in other discussions that might be relevant here. If you have a Spam button, then:

  1. will people push the spam button if the voting rewards are less than if they push the yes or no buttons?
  2. will people push the spam button because they are on the losing side of a proposal and they want to stall or nullify the proposal.

How do you deal with the fact that some people own a lot of neurons and others own few neurons. Hence, what counts as a single spam report? My guess is that it is not based on the number of neurons or principal IDs that submit the reports because there will potentially be many from the same person.

1 Like

Hi @wpb, thanks for the questions.

  1. Yes, some people will. As @justmythoughts pointed out, there are quite a number of people who act not according to financial reward but because they have the interest of the network in mind. It is true that in this system there is no financial incentive (or disincentive) for pressing the spam button, but I don’t think this would make it useless. Would you press it, even if there was no financial reward?

More broadly, I would also add that, if we reduce every decision to “how much will I get paid in comparison to another course of action”, the world takes on a rather gloomy colour. I am aware that we are frequently taught to think of ourselves as purely rational economic actors, but this has been debunked many times over.

  1. This is more tricky as there is a route for exploitation - this is mentioned in the ‘disadvantages’ section - where people would only act to delay a proposal. In this system, the maximum effect a spam report can have is to send a proposal to review, so “nullifying” it is not an option.

Expanding on my reply to @coteclaude, I think the strength of the spam reporting signal should be based on voting power as well. This way it incorporates the same long-term incentives that voting has. It has been pointed out many times that 8-year neurons are in it for network benefit, because they could make much more profit on their ICP elsewhere. This is the root of the lock-up multiplier and should, imo, benefit a spam reporting system to the same degree. I do not have an issue with more powerful neurons having more influence in reporting spam; while malicious whales could disrupt the process, philanthropic whales would bring a natural benefit. We often think of the negative consequences of those with lots of money acting against us, less so about how those same people may use their wealth to bring additional benefits. In this case, the spam reporting would be expedited by entities with large neurons.

Another possibility, if the negatives outweigh the positives, is to determine spam reporting weight with (voting_power / neuron_size), which would leave you with a weighting based on lock-up period and neuron age (in the range 1-2).

I have tried to avoid saying how a review should be conducted to try and limit the scope of the proposal. Instead I am suggesting a route to review that is more reponsive and does not mix up the concepts of ‘earning reward for governance’ with ‘flagging bad or useless content’, which I see as very different worlds, with different motivations, outcomes and mitigation needs. Rather that try to adapt a single system to handle both, I would separate the concerns, making the impact easier to deal with. “If you chase two rabbits, you lose them both”.

Dropped, nice graph though

1 Like

…with a worst-case scenario where all proposals are reviewed, and that only means being checked for validity. Maybe proposals that have already reached a certain level of participation could be ‘uninhibitable’ - meaning they could no longer be escalated or blocked. This is quite similar to what @coteclaude suggested earlier.

In practice this could involve adding an initial condition, before the first process (“count spam report”), called “count number of votes cast”. Once a certain level of participation is reached, no action can be taken to inhibit the governance proposal.

This upper cutoff has the additional benefit of preventing unnecessary review on proposals that are broadly voted on (i.e. have been seen by a lots of people, very few of which considered it spam).

Would only need to set a low level threshold (like 10%) of voting power is needed for the proposal to activate. If not, the proposal die by itself. So if Dfinity and the majority of voters abstain, the proposal would die by itself.
The downside (always one) is that a valid proposal may be abstain by Dfinity and ICPMN in order to reject. It would not be 100% proof and would be base on trust again, something we all want to avoid.

But 1 thing is sure 100%. Dfinity have to make it simple in order to have mass adoption. To me, it is already too complicated for the everyday user, all others then us, the fanatics. I don’t have a single friend who would get in this kind of staking. Not safe enough (no 2Fa, etc), complicated and the rule change frequently. The GUI is ugly and buggy (I regularly have lagging and error message).
Unless we want keep it between us only?

Yes, I think this is simplest & actionable way to counter spams, requires very little change in code and can be quite effective. @wpb also mentioned something similar in his previous post.

I can’t see how this would help. If everyone is voting ‘no’, then the spam proposal still has full visibility, so doesn’t deal with advertising proposals. The reward exploit, where large neurons get more profit by generating large volumes of empty proposals, also is not solved.

Only the fee burning (cost of making the proposal) depends on the outcome. Neurons are rewarded for voting, regardless of their choice.

Its on the shoulders of the community leaders to abstain. And if they are really “leader” who care about long term viability of the platform, they will.

Also, if you go through the voting history, you can already see that who voted “YES” on the spam proposals are really in the minority. So if community leaders can exercise their own judgement to abstain, instead of voting “NO”, then spam will happen less and less, since their two objectives:

  1. Get more reward from motion proposal
  2. Get public attention

will not be achieved, unless more than 3% manually vote YES. Then maybe at that stage it is not spam after all?

I think there may well be a case for including an ‘abstain’ option, as well as having a minimum vote threshold. I would encourage you to make a new topic and lay out your thoughts on this, summarising the benefits to the system and any challenges you see in implementing this. This way, the community can focus on your idea and you can get more constructive feedback.

The proposal in this topic does not really include either feature at the moment. How do you see these ideas fitting into the structure I show above?

A review system? Doesn’t sound decentralized.


How else can you reliably make an assessment of whether or not something is spam?

We could just ask the president / prime minister / supreme leader / cleric / guru / life coach / emotional support animal, but that leads to all sorts of problems. Instead we try to distribute the decision making to more people, reducing bias and power. Seems pretty decentralised to me.

Honestly, the fact that spam proposals are such a problem just shows there’s a bigger problem.

I was probably the first to call out ICPMN’s proposals as spam when they first started on Telegram. Thought they were unnecessary. Though the goal was to increase voter participation, it opened a can of worms, people wanting to game the system for their own gain, greed. Clearly we have that now.

Although they’re spam, what’s really the issue? Are people to lazy to vote? Are we worried about the big neurons that don’t vote not getting their share? Is it really to hard to just go and reject the proposals, even if the person doesn’t care if they’re rejected?

Ever since these spam proposals came about (starting with icpmn), I’ve definitely been more active with voting. Yeah, it’d be nice to not be spammed, but what are we going to do about it that won’t make the governance look centralized? I’d rather keep it the way it is and keep rejecting them. If the reward system is that easily manipulated, need to be fixed in a way that won’t make things look centralized. Maybe putting an end to this crap “vote to earn” system. Stake your icp in a neuron and earn, whether you vote or not.


You make a good point, we should look at why we’re in this situation in the first place. It is because of the weighted governance rewards that were recently introduced, or rather the externality created by them.

I think the original posts by ICPMN were informational rather than governmental. If it was up to me, they wouldn’t have been eligible for the higher reward band, but that would have not served their purpose.

I am all for a light-touch approach, which is why I made this proposal, which is more about giving people a route to identify problematic content and a method for dealing with that content.

I was thinking along the same way. Simply put:

  1. In addition to “Yes” and “No”, introduce a “Spam” flag. When some threshold is reached, this should be automatically used to temporarily quarantine the neuron. Banning completely I think is too harsh, but enough to “send a message”.
  2. Some amount of ICP is required to post a proposal. This is retrieved back when the proposal was not marked as spam. This should make spamming too costly.