Skip to content

Comp and Governor Alpha [Release Candidate 2]

Pre-release
Pre-release
Compare
Choose a tag to compare
@hayesgm hayesgm released this 26 Feb 06:40

Note: this is a pre-release version available exclusively for testing and evaluation. A protocol specification is attached. For information on security audits and to report issues, please visit the Compound Security page.

This patch adds the Comp Token and Governor Alpha contracts. The Comp token represents the administrative rights of the protocol, divided into 10,000,000 fungible tokens. These tokens have governance rights in the Governor contract, which in turn will become the admin of the Compound Timelock that administers the Compound Comptroller and cToken contracts.

The Comp Token is a basic Erc-20 with an ability to delegate to third parties. The goal of delegation is that an account could delegate his/her voting rights in the Governor to a hot-wallet or trusted third-party which is paying closer attention to governance proposals.

The Governor Alpha system is a simple vote-based governor which allows Comp Token holders to propose and ratify specific Ethereum actions. For instance, a user with sufficient tokens could propose supporting a new market in the Compound Comptroller. All Comp Token delegees will then have the ability over some period to vote on that proposal, and if its ratified, it can be automatically executed (through the Compound Timelock).

Delegation is unique in the fact it's tracked by block, forever, for each account. This allows us to say "how many delegated votes existed for X account at block Y." We then say that your votes for a given proposal are the amount of votes you had delegated at the time the proposal was created. In this way, we prevent sybil attacks without forcing users to lock tokens before voting.

Patch Notes 1:

  • Reduced storage typing to prevent potentially unsafe downcasts. These sizes are enforced due to the limited total number of Comp tokens (10MM tokens with 18 decimal precision).
  • A proposal cannot be queued if an identical action already exists in the Timelock. This will prevent two proposals with identical actions from conflicting and explicitly make it impossible to ever enqueue a proposal that itself has two identical proposals.
  • We add more scenarios and formal analysis tests.

Patch Notes 2:

This patch builds our official release candidates for the Comp and Governor Alpha systems. We make a number of minor changes from the 2.5 Alpha 2 version, including:

  • Change proposal and quorum thresholds to 1% and 4% respectively
  • Make a number of cosmetic changes and updates to events
  • Add test-net deployments [Ropsten, Goerli]
  • Add additional unit tests, scenarios and formal verification
  • Upgrade saddle to include saddle console
  • Upgrade Docker for newest version

Patch Notes 3:

This patch includes minor updates:

  • Bump to Solidity 0.5.16
  • Increase coverage of formal verification
  • Add updated Ropsten deployment
  • Add tBTC token
  • Rename Comp token to simply "Compound"