Premise
I have been invited directly by @jacobgadikian to add my thughts here, after reporting them on a Twitter thread.
Introducution
I have the previous answers carefuly, and althought I find thwy could work, I also think there might be another way to solve the problem of spam proposals. Instead of setting a per-chain minimum deposit, we could try solving this problem from a social perspective instead of an economic one.
If we were to set a minimum economic requirement, we might inadvertiley block good proposals from ever being created ue to the fact that people might not have that (large) amount of money.
Also, I strongly believe the power of the community and the ability to combine on-line data is far more stronger than an economic disincentive in order to prevent spam proposals.
For this reason I would like to propose the usage of the Desmos profiles features to build a score system that help determine whether a governance proposal was created by a good or bad actor.
Solution description
What is a Desmos profile
A Desmos profile is simply an extension of Cosmos SDK Account
interface, that adds some social features. Users having a Desmos profile can link it to other chains (any chain type is supported - Cosmos, EVM, Solana, etc), or to external applications (e.g. Twitter, GitHub, etc) in a completely decentralized and permissionless way.
Building a score system using the Desmos profile
Thank to its ability to be linked to other chains and external apps, the Desmos profile is the perfect feature that could be used to build a user score system.
How this system could work is by simply querying the external chain addresses and applications linked to a profile and then giving each profile a score.
Suppose Alice has a Desmos Profile and has connected to it the following things:
- a Cosmos Hub address
- an Osmosis address
- a Twitter account
Then, the scoring system could assign her the following scores:
- Cosmos Hub account that has voted to
N
past governance proposals: N * 10
- an Osmosis account that has deposited
K
kind of tokens: K * 5
- a Twitter account with more than 1000 followers:
100
So the overall score would be (N * 10) + (K * 5) + 100
Note
Obviously these things are just examples. The math formula used to determine the score based on various data should be much more thought through.
Advantages
By building this score system, we could solve the spam proposal problem not only within the Cosmos Hub, but within the entire IBC world. Since the score is determined using external factors and multiple chain addresses and activities, itâs easy to understand how it can be used by all wallets and explorers very easily.
In order to make it even easier without having wallets and explorers computing this each time, there could also be a kind of API that provides the score for a requested user. Obviously this is not mandatory: since links are stored on the Desmos chain, and anyone can query them, anyone can implement they own scoring system and easily determine whethere a user is malicious or not based on their requirements.
Disadvantages
Since this is someone that is done partially off-chain (computing the score of each user), it should be adopted by all wallets and explorers. If a proposal is made by a user with a too-low score, then it should be hidden by explorers and wallets. Also, users depositing (or voting) a proposal that was made by another user with a too-low score should be warned about the potential risks.
Another risk of this system is censorship of new users: if someone does not have any particular activity on another chains or external social networks, then they might be censored for this. Itâs important to take this into consideration when definind the math formula for the user score.
Conclusion
Overall, I think a system like this could help multiple chains to solve the spam proposals quickly and efficiently. It could also be adopted by wallets and explorers quite easily (it would just be some queries and computations).
We at Desmos have a set of tools that are ready to implement all of this, so if anyone is interested in working on this, just DM me on Twitter (@ricmontagnin). I donât come here often, but I will reply quite quickly there.