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.
Author: Michael Lewellen
Type: Meta Process
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.
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.
There are three types of CIP:
- Meta Process - describes any process to be adopted or modified to coordinate Compound governance, development, or community efforts
- Protocol Enhancement - describes any change to the smart contracts that make up the Compound Protocol and Governor
- 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 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.
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.
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.
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:
- Address immediate feedback from the community to improve CIP-1
- Establish a group of CIP Editors that will shepard the CIP process
- Create a GitHub repository to contain CIP drafts and track progress
- Move to finalize CIP-1 and hold a COMP Signal Vote to mark its official adoption
- 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:
- Email: email@example.com
- Telegram: @cyloncat
- Discord (in the Compound server): Michael L#3462