The case for Governor Alpha

Rafael Solari
Tally
Published in
5 min readMar 16, 2021

--

A simple and extensible on-chain governance lego

2023 update: we recommend OpenZeppelin Governor instead of Governor Alpha, which is deprecated. OZ Governor is actively maintained. The case for Governor is even stronger today than when this post was published.

At Tally, we’ve thought a lot about governance in DeFi. So far, we’ve integrated only with protocols that run on Governor Alpha, a contract built by Compound Finance last year. We’re betting on this contract as an emerging governance standard, and I wanted to share why we’re so bullish on it.

For one thing, it’s working today. Governor Alpha manages protocols like Compound, Uniswap, Indexed Finance, and more. These teams picked it because it aligns with crypto values of decentralization and immutability. We picked it as a platform to build on because it aligns with open-source software values of simplicity and modularity. We expect it will only get better, as teams like us build more tooling and integrations around it.

It’s Decentralized

By “decentralized”, I mean that Governor Alpha runs on-chain — so that it gets the censorship resistance of Ethereum — and doesn’t privilege an admin. People commonly use multisigs — with or without off-chain advisory votes — as simple governance setups, but they aren’t particularly decentralized. That setup gives a small group of (hopefully!) trustworthy key holders control over the protocol. In contrast, Governor Alpha gives no way for an admin change parameters without an on-chain vote.

There’s also a securities-law case for on-chain votes. I’m not an expert at the legal details — so check with a lawyer — but the high-level idea is that a protocol run with token holder votes has a stronger case to pass the Howey Test about whether the asset is considered a security. On-chain proposals don’t cause the asset to increase in value through other people’s efforts, because there are no other people, just the token holders.

It’s simple

As a developer, one reason I like Governor Alpha is its simplicity. The unix philosophy suggests that a good building block should be simple. I think that idea carries over into DeFi. If we’re building money legos — or governance legos — they should be easy for others to understand.

Compound put together great documentation (tk what about our docs), but I’ll briefly outline the methods of governor alpha here:

  • propose() — anyone with enough votes (e.g. 1% of outstanding tokens) can propose a change to the protocol. The proposal includes a description of the proposal and contract calls that execute the change.
  • castVote() — any token holder can cast a token-weighted vote on a proposal that’s up for vote.
  • delegate() on the ERC20 contract — holders can assign their vote to anyone.
  • cancel() — anyone can cancel a proposal if the proposer stops having enough votes
  • queue() — anyone can queue a proposal after it passes. Queueing starts the timelock delay until proposal execution
  • execute() — anyone can execute a queued proposal after the timelock delay.
Proposal lifecycle

It’s extensible

We talk about DeFi money legos because pieces fitting together is important. The unix philosophy echoes this focus on modularity. Turns out a lot of the hard-earned wisdom from writing open-source software in the 80s still applies! Luckily for us, Governor Alpha is a particularly flexible lego because it can call other contracts and other contracts can create and vote on its proposals.

Notably, any smart contract with a token balance — not just user addresses — can vote. For example, smaller holders can pooled votes in so-called autonomous proposals. That way, they can pool their votes to hit the threshold to make a proposal, like this one that proposed the Uniswap Grants Program.

We’ve also seen contracts voting from meta-governance. Index funds hold governance tokens as part of their asset basket. The tokens in their basket, of course, have the ability to vote. But how should they decide what to vote for? If the index fund has a governance token of its own, it can decide with a meta-vote! The meta-vote happens in the fund’s governance token. For example, DPI holders voted with their DPI tokens to decide how the COMP tokens in their fund should vote on a particular Compound Proposal.

We get even more modularity from delegation. The simplest delegation is the self-delegation, where holders delegate their tokens to themselves, so that they are eligible to vote. They can also delegate to a different address that they control. That way they can keep the tokens in a cold wallet, but vote with a hot wallet.

We’ve also seen public figures gathering delegated votes from other holders. Governance experts with a following on twitter and student groups like Blockchain at Berkeley have gathered votes from holders who trust their opinions.

Because contracts can vote, holders can delegate to a contract. Eventually, this kind of delegation can be a good way to move to Layer 2 to save gas. Maybe users will delegate their votes to a contract on Layer 1 that they control from Layer 2.

Next steps for on-chain governance

I hope that you found this explainer helpful. I wanted to share why we’re so excited about Governor Alpha at Tally! We expect to see more DeFi governances move on-chain. It’s already more decentralized and secure than trusting an admin or a multisig of admins, and the user experience will keep getting better. Teams like Tally will build out the missing pieces around the core of smart contracts, because they are simple and modular.

The core contracts will get an upgrade soon, too. The new version, called Governor Bravo, will be ready in the next few weeks. It keeps the main features from Governor Alpha. Plus, it makes future upgrades safer, allows custom voting parameters, and adds a few UX improvements like more metadata about votes. We’ll share more about how it works once we’ve had a chance to play with it and test it out.

Reach out to us on our Discord or Twitter if you’re curious about on-chain governance, have ideas about where it could go, or are building on it! We’d love to talk.

--

--