Compound Improvement Proposals (CIP)

Simple Summary

Following our Post-Mortem recommendations to create a Working Group, OpenZeppelin has decided to go further in proposing the creation of a Compound Improvement Proposal system to better capture and coordinate initiatives for the Compound protocol. Following a similar format laid out by other decentralized protocols, we’ve drafted a foundational CIP-1 to define the process for CIPs and the role they can play in the Compound ecosystem going forward.

We will be holding an inaugural Working Group call on Oct 26th at 9:30am PST in the Compound Community Discord to discuss feedback from the wider community and plan next steps.

CIP-1: Purpose and Guidelines

Author: Michael Lewellen
Status: Draft
Type: Meta Process
Created: 2022-10-20

Overview

A Compound Improvement Proposal (CIP) describes standards, processes and enhancements intended to improve the Compound Protocol. They can take the form of governance processes, on-chain enhancements, off-chain tooling or other goals that help Compound achieve objectives as a leading DeFi lending platform.

CIP Rationale

CIPs are intended to be the default mechanism to improve Compound as both on-chain code and off-chain processes.

It’s important to note that CIPs are strictly separate from Compound Governor Proposals and should not be considered a required prerequisite for submitting an on-chain proposal. Instead, CIPs are intended to define better processes for certain types of Governance Proposals in addition to serving as a way to solicit community feedback and acceptance on certain protocol enhancements before they are submitted on-chain.

CIPs also serve as a place to suggest improvements that any community participants can use to find contribution opportunities and even seek funding through grant committees and other support groups.

CIP Types

There are three types of CIP:

  1. Meta Process - describes any process to be adopted or modified to coordinate Compound governance, development, or community efforts
  2. Protocol Enhancement - describes any change to the smart contracts that make up the Compound Protocol and Governor
  3. Tooling & Support - describes any additions or improvements to off-chain infrastructure, tooling, documentation or other components that support the usage of the Compound protocol.

CIP Lifecycle

CIP Authors will start out with an idea, draft that idea into a CIP document, request a peer review and then move through an approval process with the Compound Working Group. Ideas can be filed as issues on a commonly shared GitHub similar to Ethereum PM. CIPs can be drafted as PRs and then request review to be added to the agenda for the biweekly Working Group meetings.

CIP Editors will be selected from among core community contributors that will attend meetings regularly and provide feedback to CIPs. If any objections are raised to a CIP in its first meeting, it must address that feedback and then request another review in a future meeting. In a CIP’s second meeting, if there are no objections OR a majority of Editors are in favor, the CIP is approved and then remains in Last Call for 14 days before the implementation process begins.

Once past the Working Group, a CIP’s implementation path will diverge depending on its type. Meta Process CIPs will be approved by a majority Signal vote by COMP holders with no quorum after which they will become officially adopted as part of the Compound governance process that all COMP holders are expected to uphold. Other CIPs are left to the community to implement which can include funding to be approved by a Grant Committee or any other entity willing to support. Protocol Enhancements will also need to pass through a Compound Governance vote just as any other smart contract change would.

What belongs in a successful CIP?

Each CIP should have the following parts:

  • Preamble - RFC 822 style headers containing metadata about the CIP, including the CIP number, a short descriptive title (limited to a maximum of 44 characters), a description (limited to a maximum of 140 characters), and the author details.
  • Abstract - Abstract is a multi-sentence (short paragraph) technical summary. This should be a very terse and human-readable version of the specification section. Someone should be able to read only the abstract to get the gist of what this specification does.
  • Motivation (optional) - A motivation section is critical for CIPs that want to change the Compound protocol. It should clearly explain why the existing protocol state is inadequate to address the problem that the CIP solves. This section may be omitted if the motivation is evident.
  • Specification/Process - The technical specification should describe the syntax and semantics of any new feature. For Meta Processes, this should explain the processes in detail step-by-step. The specification should be detailed enough to allow for the implementation of either a technical implementation or governance process should the CIP be approved.
  • Rationale - The rationale describes what motivated the CIP and why particular design or process decisions were made. It should describe alternate designs/processes that were considered and related work, e.g. how the feature/process is implemented in other protocols. The rationale should discuss important objections or concerns raised during discussion around the CIP.
  • Security Considerations (optional) - While not always required for “Meta Process” or “Tooling & Support” CIPs, every “Protocol Enhancement” must contain a section that discusses the security implications/considerations relevant to the proposed change.

FAQ

Many similar systems have already been created for protocol governance so it’s important to understand that while CIP may borrow ideas from structures such as EIP, MIP or AIP, it is intended to serve Compound’s specific needs and may therefore differ in several key respects.

  • Do I need to create a CIP and/or get it approved in order to create a Compound Governance Proposal?
    • No! Compound Governor has operated for several years without CIPs and can continue to vote on Proposals independently of them. A CIP involving on-chain improvements could eventually lead to a Governance Proposal but the CIP is still separate and focused more on coordinating off-chain community consensus.
  • Do I need to create a CIP in order to receive funding from Compound?
    • Technically no. Compound funding is provided through either the Compound Governor or a delegated grant committee (there is currently a grant committee proposal pending) that remain independent of CIPs. However, CIPs can provide a pipeline for important ideas to receive community feedback and support that increases the chance of receiving funding.
  • Will the Compound Governor be bound to follow Meta Process CIPs for its governance processes?
    • From a smart contract perspective, COMP token holders will always be the final decision-makers for Compound Governor Proposals. However, COMP Signal Votes will be used to establish support for certain governance processes that voters should abide by. If an On-chain Proposal is submitted in violation of a CIP Process, it will be up to COMP voters to reject the Proposal or effectively deprecate that process. CIP Editors will be responsible for making COMP voters aware if a Proposal has not followed an established CIP Process during the two-day review period.

Next Steps

We ask the community to read through CIP-1 and share their feedback here in the forum and attend the Working Group call on Oct 26th at 9:30am PST in the Compound Community Discord. During the community call, we will push forward to achieve the following:

  1. Address immediate feedback from the community to improve CIP-1
  2. Establish a group of CIP Editors that will shepard the CIP process
  3. Create a GitHub repository to contain CIP drafts and track progress
  4. Move to finalize CIP-1 and hold a COMP Signal Vote to mark its official adoption
  5. Encourage the creation of additional CIPs to capture existing processes and begin working on new improvement ideas. OpenZeppelin will specifically be focused on our security recommendations from the cETH Price Incident Post-mortem.

If you want to share direct feedback or get involved, please free to share your feedback below or reach out directly to me on Discord, Telegram or email:

13 Likes

This makes a lot of sense - a formal way to determine what goes into the protocol (&community) specifications :pray:

1 Like

Great job @cylon. This is much needed. This provides a streamlined process for bringing forth creative ideas / offshoots of Compound protocol and gain community feedback. This can pave the way to think in terms of Compound “ecosystem”, not just the base protocol.

1 Like

Great job putting this together @cylon. The proposed structure of CIP is very well defined, appreciate the efforts. I’d also suggest an optional section on Legal Compliances to be added to the CIP, that might come along with the proposed CIP. This way, we would have a comprehensive CIP.

1 Like

Hi @harsha - Thanks for the suggestion.

Legal Compliance is a tricky topic depending on the subject-matter of a CIP. It’s also important to note that CIPs don’t represent binding decisions beyond a consensus that is left to the community to self-enforce. However, if legal compliance is an important topic for a specific CIP, it could fall under the existing Rationale section as a factor considered in the design/process decisions.

For example, in CIP-1 I explicitly state that CIPs are strictly separate from Compound Governance Proposals in the Rationale section. While not my primary intent, this statement could also help address any legal concerns that a CIP contributor might have about the legal responsibilities behind drafting a CIP as opposed to making a DAO governance proposal.

1 Like

Michael, this is a fantastic idea and the details you’ve laid out here are very promising from my perspective. Thank you for taking initiative on this! I have a question and a comment.

What is a Signal vote? Can you give more details on that?

My comment is that I want to remind you and everyone in the community that the name of the game for the protocol and DeFi generally is decentralization. Getting as many helping hands as we can and as many opinions on how to proceed is best!

Here is a link to the discord event of the working group kick off: Compound

1 Like

@adam Thanks for the support and setting up the Discord call!

The Signal Vote would be a process that allows COMP tokenholders to signal their support or opposition to a CIP through off-chain voting such as Snapshot. CIP-1 specifically states that Meta Process CIPs go through a Signal Vote to indicate that there is support from DAO stakeholders to uphold those processes for certain types of governance proposals. This would also include the adoption of CIP-1 itself.

My reasoning for using Signal Voting is:

  • Compound Governor Proposals cost voters gas and would add friction to the process of passing Meta CIPs
  • Meta CIPs represent non-binding governance processes so the on-chain execution of proposals is not necessary
  • Reaching quorum threshold for Compound Governor requires 400K which I personally feel is excessive for Meta CIPs. CIP-1 recommends no quorum threshold be necessary for a Signal vote to pass although I’m open to feedback here.
  • Most importantly, CIPs should remain strictly separate from Compound Governor Proposals to avoid confusion.

In short, the Approval of a CIP by CIP Editors vs its Implementation by Compound Governor and the community should always remain separate processes. Signal Voting through Snapshot helps to emphasize that separation while still giving COMP token holders a voice in the adoption of Meta CIPs for governance processes.

thanks for opening this topic.

About CIP structure, it looks good for me but I think that it is also important to mention its impact as separated section. and how was merging motivation and rationale section instead of making motivation as the optional?

lt would be this structure:


Motivation

  • what is the problem?

Proposed Solution(or Proposal Details)

  • proposal details including tech spec, steps to achieve this goal.

Alternatives considered

Expected impact

  • expected results: modeling result

  • users should take actions before this proposals get activated

(Ex: Liquidation, deposit stop for the current market, the current market will be closed)

Security Considerations (optional)

1 Like

Hi @dakeshi - Thanks for the feedback.

I made the Motivation section optional just because it was an extension of the structure I adopted from EIP-1. I agree that there are good reasons to make it required.

I think Proposal Details is also a better way to represent the Specification/Process section. We could make Alternatives considered a required sub-section of Rationale. I also like the idea of including Expected impact.

One thing to note is that I do hope to make CIPs as accessible as possible to new submitters so I’m hoping to keep proposal requirements minimal. I still think your suggestions make sense but that’s the only reason I hesitated to add more initially. In general, I would hope that its easier for folks to submit and get a CIP approved than an EIP but there will still need to be a minimal level of detail to provide.

1 Like

Hi everyone - Reminder that we have a Working Group Call in the Compound Discord to discuss CIP-1 tomorrow at 9:30am PT

If you’d like to suggest changes, ask questions or become involved in the CIP process, please be there! If there are no further objections or feedback to CIP-1 in this first call, I’ll submit a finalized version of the CIP-1 to be reviewed in the Community Call next week before placing it in Final Call stage and announcing a list of CIP Editors.

Also, if you’d like to be a CIP Editor, please attend tomorrow or message me to let me know.

1 Like

Thanks for your feedback. I totally agree that CIP should be easy to access for everyone with the minimal requirement + some optional parts(as a template) to accept various types of opinions.

To make slim structure, I’m still considering which is the best candidate for the section title among Motivation, Rationale and Description based on research results.

In addition to references you mentioned(EIP, MIP, AIP), I did take research about these kinds of template formats including swift language, gatsby, react js and rust

If we choose Rationale, I think that it doesn’t need to be separate Motivation section because it is possible to mention its background and motivation in Rationale section.

1 Like

Really helpful to hear you go through the proposal and potential changes on the call today.

I do wonder whether it’s worth specifying in any way what criteria the editors and working group will use to assess whether proposals can pass on to a vote (if a vote is called for) – since the group will serve in a kind of gatekeeping capacity. Perhaps also whether editor/working group approval indicates an endorsement of the proposal, or whether it indicates only that it has met xyz criteria and is presented to the community neutrally.

I raise this in part because of what I’ve been seeing with Optimism governance: the Governance Committees (which are experimental) are under a great deal of scrutiny, and it’s been contentious. Very different situation, I know. But it may be worth thinking through some of these issues at some point during the initial phases of this new process (if you haven’t already).

Hi @Boardroom - Great question. I appreciate you bringing it up and sharing your perspective from similar initiatives.

At its core, I think CIP Editors should give approval based on similar criteria as EIP Editors

  • Read the CIP to check if it is ready: sound and complete. The ideas must make technical sense, even if they don’t seem likely to get to final status.
  • The title should accurately describe the content.
  • Check the CIP for language (spelling, grammar, sentence structure, etc.), markup (GitHub flavored Markdown), code style

Overall, the Editors are there not to pass judgment on CIPs but merely do the administrative & editorial part. They may still voice either support or opposition to the CIP’s claims of improving Compound but that should not factor into their descion-making criteria to approve a CIP. That will come down to the implementation phase where a CIP is left up to a Snapshot, Governance or Grant decision.

1 Like

Hi everyone,

Thanks for attending the CIP-1 Working Group Call this Wednesday. You can find the recording here.

I’ve finished incorporating all of the latest feedback into CIP-1 here. I’ve added several new sections outlining CIP Editor responsibilities, History, Copyright, touched up the template structure and addressed some minor wording changes.

Next steps are to review it in the community call next week and form a founding team of CIP Editors. Once a group of CIP Editors has been chosen, I intend to push for CIP-1’s approval followed by a Snapshot to be conducted two weeks after.

2 Likes

Ahead of the community call today, I’ve established the following list of community members who have graciously volunteered to act as the founding group of CIP Editors. They have also been added to CIP-1 here.

While these members may still change with additional members that wish to join in the following weeks, this group will act as the final approvers to move CIP-1 into the Final Call stage during the community call.

2 Likes

After reviewing in yesterday’s community call, we’ve got no objections to moving CIP-1 into the Final Call stage. You can see the finalized draft here.

Per the CIP Lifecycle process, CIP-1 will be in the Final Call stage for the next 14 days before going through a Snapshot vote of COMP token holders, which would start on November 16th. If the vote passes with a simple majority, CIP-1 will be adopted!

During this time, I’ll continue to solicit feedback and coordinate with the current CIP Editors. I also intend to start work on a GitHub repository for managing the CIP content ahead of the vote so we will be ready to accept new CIP submissions in anticipation of CIP-1’s adoption.

4 Likes

Thanks so much for kicking this off. A two questions come to mind:

  • The process behind the off chain voting is very vague. Is there a recommended quorum, duration, and venue (https://snapshot.comp.vote for example)?
  • How should the shared repository be managed? Possibly have a compound dao org with CIP editors as members?
2 Likes

Hi @arr00 - Great questions and something good to address now that we’re in Final Call.

I’m intending the process of voting to be:

  • Use Snapshot through this existing Compound page
  • Setup the vote with no quorum per the CIP-1 process and use single choice voting with a simple majority.
  • Set the duration of the vote for one week to start Nov 16th and end on Nov 23rd.

We can see an example of another Snapshot vote conducted by Gauntlet here. I can take the lead in setting up the Snapshot vote and over the voting process in the next Community Call.

2 Likes

@arr00 - Regarding the repository, I think we should do it under the existing Compound Finance GitHub Org but have the repo itself be managed by the CIP Editors.

@adam What do you think about this approach?

2 Likes

Sounds good, I like that approach.