Correction Notice: This article has been updated to reflect the most recent versions of CIP-0001 and CIP-9999. [1/17/2023] A brief interview with Matthias Benkort has been added for context as well.
A Living Network
Cardano is a living global network and ada holders are stakeholders. Each and every one of us can take part in the evolution of this amazing blockchain! We all have something unique and valuable to contribute to the continuous process of discovery and augmentation that defines blockchain technology. The Cardano Improvement Proposal process is inspired by the Bitcoin Improvement Proposal process, as well as Ethereum’s equivalent.
The basic question being asked: How does a decentralized network grow and advance in a methodical way without getting brittle and stagnant? The CIP process is a way forward, but it demands input and participation from the Cardano Community at large if it’s going to be an effective tool in the future.
Engaging with CIPs is an edifying activity. It’s a great way to learn about Cardano and provides a channel for communicating with others in a productive manner about Cardano. As one interacts with the intricacies of the CIP process and the many advanced concepts that are contained within, we’re reminded that each of us can play an active role – either big or small, or both – in the progression of the network to an ever more powerful and useful state.
A great example of an impactful Cardano Improvement Proposal that many ada holders will be familiar with is CIP 30 – Cardano dApp-Wallet Web Bridge. It was inspired by web3 for Ethereum or EIP-0012 for Ergo. You’ve probably clicked on the ‘Connect Wallet’ button on your favorite dApp, then had a smooth pop-up window ask you to sign-off on this with your wallet password. If that sounds familiar, you’ve already experienced the concepts laid out in CIP 30. This very useful innovation in Cardano was brought to life via the CIP process and is only one of the many examples of the geniuses at work in the ecosystem.
CIP 1 – Foundations for Evolution
A Cardano Improvement Proposal (CIP) is a design document meant to provide a detailed description of a new feature for the network. The Cardano Foundation wants to see potentially beneficial augmentations presented to the community as a CIPs, then discussed openly and with full documentation.
One of the valuable lessons of the early CIP implementation was how challenging it can be to establish a shared understanding of the problems we face. The Cardano Problem Statement was introduced as a document meant to “complement CIPs and live side-by-side in the CIP repository as first-class citizens.” Don’t worry, we’ll come back to Cardano Problem Statements soon.
All CIPs should abide by a general structure, although authors can organize the sections any way they choose. The document itself is a Markdown file “with a Preamble and a set of pre-defined sections.” CIPs need an abstract to provide a brief bird’s eye view of the solution, as well as an explanation of its purpose. If the proposal is very complex, its author should be prepared to write a Cardano Problem Statement and provide its link in the ‘motivation’ section.
Each and every CIP needs to be complete and thorough enough to serve as an unambiguous design outline for the entirety of the proposal. Another requirement is a detailed description of the rationale behind the design decisions that went into the CIP, along with information regarding backwards compatibility.
Discussions within the community regarding potential improvements to Cardano are always valuable, and having constructive dialogue around a proposed change will only serve to benefit its chances of being implemented successfully. At this stage, it’s vital that a CIP illicit a substantial level of community curiosity and support, as the work required from the proposer to formalize the idea will be wasted if nobody is interested in implementing it.
When an idea is deemed ready, its author will open a pull request at the cardano-foundation/CIPs repository with the name of the proposal as its title. It is the responsibility of the author to be a driving force behind the proposal, while also being open to discussions with the community and subject matter experts.
An author may disagree with some of the feedback their proposal receives, but they should respond to it whenever possible in the ‘rational’ section.
In the past, I have inaccurately described the CIP Editors as the reviewers of proposals. I was lucky enough to get to do brief interviews with two different Cardano Improvement Proposal Editors for this article, one being Matthias Benkort. He explained to me the role of the Editor as follows:
Editors do some kind of review, mostly structural, and they mediate discussions around proposals. Yet they aren’t the expected technical reviewers and experts — though they should have a sufficient level of expertise to assess comments and reviews from other experts. Rather, CIPs are reviewed by community members who have a common interest in collaborating. It is, in principle, the role of a CIP author to champion his/her CIP and to seek review from colleagues and peers of the ecosystem. Editors often facilitate that and invite experts to collaborate on pieces they deem relevant. Some CIP categories also have ‘assigned reviewers’ (e.g. Plutus core evolutions). So fundamentally — and this is a common misunderstanding — it is not the role of editors to provide technical feedback on CIPs. Yet indeed, it happens that most editors also are technical experts and often engage in technical reviews; but they do so with their community-member-hat on rather than their cips-editors-hat on. We’ve tried to make that clearer with the new CIP-0001 process as it has generally been a source of confusion. CIPs aren’t an ivory tower guarded by some elite members of the community; it is a community-oriented process that encourages peer review from experts all around the Cardano community. Editors are just here doing the busywork that no one wants to do.Matthias Benkort
Editors ensure that CIPs are formatted correctly, have had enough time for a suitable discussion to take place in the community, have valid motivations, are backwards compatible, and have acceptable licensing terms.
A CIP is ‘Proposed’ when meets the criteria laid out in CIP-0001 but is not yet ‘Active’.
For a CIP to reach this status, it must be structured properly, written in a grammatical and understandable manner, and “demonstrate noticeable efforts in terms of completeness and level of detail.” The soundness of the technical aspects of the CIP must be well established. There must also be a valid ‘Path to Active’, which is divided into two parts: Acceptance Criteria and Implementation Plan.
The Acceptance Criteria is a “list of criteria by which the proposal can become active.”
The Implementation Plan is a clearly defined path that the implementors will take to meet the Acceptance Criteria.
If a CIPs original author doesn’t have the time or inclination to continue updating the CIP and helping it progress forward, a transfer of ownership can be enacted. If a CIP is being neglected or sitting idle, a community member can send a message to both the original author and the Editor requesting to have ownership transferred to them. Changes to CIP ownership is reversible and the original proposer will still be credited as ‘Co-Author’ to maintain the historical record.
The nature of ‘Active’ status varies from one CIP to another, but based on what type of change it brings to the network we can generalize what it may necessitate. For a specific piece of technology to become Active, it needs to be released and implemented. If the protocol is being altered in the process, Active would be manifested as an update to the Cardano mainnet. Whereas an ecosystem standard proposed in a CIP must exhibit high levels of adoption to be considered Active.
According to CIP-0001, “a proposal that is ‘Active’ is considered complete and is synonymous with ‘production readiness’ when it comes to the maturity of the solution.”
This is a broad status that includes any proposal that isn’t either ‘Proposed’ or ‘Active’. Some causes for an ‘Inactive’ status could be obsolescence, supersession, abandonment, etc. Details of the cause for inactivity must be included in the Inactive status itself.
An Editor’s Point of View
I asked CIP Editor Matthias Benkort if he thinks CIP process has achieved its stated goal of “creating a public platform that can be used for sharing Cardano improvement ideas and specifications with the community, allowing the Cardano network to grow and advance over time.”
Yes. We are seeing an increasing participation in the process and most proposals and comments come from the community at large, and not only IOG. There are still many points of improvements as it’s an iterative process which keeps on improving itself, but compared to the situation a couple of years ago when we started the CIP process it has already grown beyond our expectations.Matthias Benkort
I also asked him, “Should the average ada holder should try to participate in the CIP process?”
No. And this is a common misunderstanding. There’s a reason why CIPs are hosted on Github — a developer platform. CIPs are technical by nature and they require technical expertise. While we sometimes try to create digests of the content for non-developers; it’s more with the aim of informing people than encouraging them to participate. Rather, CIPs can be an excellent source of input for Catalyst, since they provide (in principle) non-ambiguous and agreed-upon technical specifications that have been peer-reviewed by experts. So in the future, we can imagine more and more (if not all) Catalyst proposals to be in the form of “We intend to implement CIP-XXXX within Y months and we need budget Z”. This could simplify / streamline a lot of the Catalyst procedures; especially regarding technical reviews which would have already happened.Matthias Benkort
According to CIP-0001, “The motivation for [Cardano Improvement Proposals] is to create a public platform that can be used for sharing Cardano improvement ideas and specifications with the community, allowing the Cardano network to grow and advance over time.” CIP-0001 was authored by Frederic Johnson, Sebastien Guillemot, Matthias Benkort, and Duncan Coutts to establish the procedure for developing and implementing CIPs.
Frederick Johnson was formerly the Technical Project Manager for the Cardano Foundation (he is no longer listed as a team member on the Foundation’s website). Sebastien Guillemot is the Co-founder and CTO of dcSpark. Matthias Benkort is Technical Director of Open Source Development at the Cardano Foundation. Duncan Coutts is a Technical Architect at IOHK.
Sebastien Guillemot was also kind enough do a brief interview for this article, and as a CIP Editor from day one, he has a unique perspective on the process. He told me:
[the CIP process] is doing a relatively good job with the resources and developers available, it’s been a success so far and continues to improve. Sebastien Guillemot