Governance, our taste on the matter

DerFredy
4 min readMay 25, 2022

--

I love starting things with a story… That’s a Tendermint OG one!

My first act of gobernance on blockchain happened during Game of Stakes. It was not a hackathon, it was The HackATOM of all of the hackathons. Believe me.

During the pre-launch testnet there was a validator that performed a coarse gross sybil attack. Other validators detected it and, in private, developed a plan. The plan was simple, we had to fork out those bad actors. A new genesis was built from last state and sybil attackers were simply wiped out. We stopped the chain, changed the genesis and said bye bye to them.
Yes, that was an act of governance, in its raw and cruel byzantine form. We submited no proposals, we treated it in private and we did what it was best for the chain to counter attact the risks of one single entity taking control of the network. With all the fun and excitement of the pre-launch of the first Tendermint MainNet, the CosmosHub.
It worth to mention that the attacker expressed his apologizes and shamed conveniently, and we agree to give them a single seat on mainnet. Nothing else to comment about.

Having that said, you may understand that this kind of episodes mark you for life. We take very seriously governance on blockchain, indeed we do. And with the time we had the chance of learning from many good proposal submitters. We love the style of some of them. The goal of this article is to enumerate what we consider a list of good practice at the time of enact chains governance. At the time of writing this, we realized that there is also a great and in deep article by Evmos that you should read soon or later:

https://docs.evmos.org/validators/governance/best_practices.html

Let’s go straight from here with our taste on this matter:

  1. First and most important thing is to have a good idea. If not just keep with your daily task and give your feedback to the ideas of others.
    This may sound stupid and obvious, but what it results even more stupid is you submiting a proposal without a clear idea. I have seen that many times.
  2. Before anything else, comment your idea with the core team. Depending on how confident or how tight is your friendship with the core you could treat it on private instead of jumping directly to the arena.
    This is my best advice here: Never Ever, Ever go against core team.
    They know better than anyone what is good or bad for their creature. And they will incorporate your ideas and they will consider them as theirs ones if they are good enough and timely exposed.
  3. Once the idea have a good mood from core team, go ahead and make an extra prudence step. Share it with some validators friends and get their feedback. This way you will add their 2 cents to the idea and you will have more support when you expose it publicly. This is also a good way to make alliances. Something very important that could be treated in a separate article.
  4. Time to disclose!
    On your first attemp, try to be short and direct. Comment about the motivations and the solutions that your idea brings. Publicly thank to any one that helped during your previous phases and start engagement of a broad community. Stay online and fast to solve any doubt and help others to understand your idea. Ping community members that you reached before, from core or other validators. Try to keep a little live conversation with some of them.
  5. Release your Work In Progress proposal text on the tools that the chain use for governance discussion (for example https://commonwealth.im). This will give chance for a formal and calm discussion out of the instant message channels, where your idea will sink soon. You will need to be patient at this phase. People just don’t have time to read everything. If your idea is good enough, most likely core team will make an announcement on their common channels to gain attraction.
  6. Once the discussion cold down, try to Pre-announce your proposal submission date. This will help people willing to participate to avoid missing it.
  7. Submit your proposal!!
    This is a very important moment for the entire network, not only for you. Share your excitement and announce it in both, common and your own media.
    Do not full fill the deposit by your own. This is not respectful with your other fellow validators that may have helped you along your way. This also give more days of visibility of your proposal. If time passes and no one else want to put their skin in the game, feel free to fill your deposit. Remember that this deposit represents your conviction degree, and if your proposal does not pass, your tokens will be burned.
  8. Alea jacta est
    If you have proceeded with caution and respect to the community following a similar path that what we tried to express here, you have a lot of chances that your proposal will succeed. The final result will be an improvement in the chain and in your reputation. This will count for sure in your next one.

That could have been the whole process. There are still a couple of important advices to add. If your proposal includes chain parameter changes, please use your TestNet. It is there for that purpose. It is very easy to have a fatal mistake and change a parameter with unexpected results.
For this kind of proposals you will need to use a json file with specific format

--

--