The New ZIP Process and Zcash Governance

#1

New blog post! Copy-pasted below.


The Foundation has suggested changes to the Zcash Improvement Proposal process, which will be critical for protocol development going forward. We want to explain our intent to the community, establish the importance of ZIPs for ongoing Zcash governance, and make the new procedures clear before finalization.

Ideally, all future consensus and upgrade changes will go through the ZIP process. It will constitute an open, standardized path for evaluating and deciding what goes into Zcash.

The following details may be subject to further change. Feedback is more than welcome! Please share substantive thoughts by commenting on the GitHub pull request. There is also a Zcash Community Forum thread for informal discussion. Lastly, feel free to contact the Foundation’s Executive Director by emailing josh@zfnd.org.

What, Who, How… and Why

Governance fundamentally consists of three questions: What should we do, who gets to decide, and how are the deciders chosen and held accountable? A robust, active ZIP process answers these questions with respect to the Zcash protocol. The document covers this thoroughly, but here are the most important passages:

A Zcash Improvement Proposal (ZIP) is a design document providing information to the Zcash community, or describing a new feature for Zcash or its processes or environment. The ZIP should provide a concise technical specification of the feature and a rationale for the feature.

We intend ZIPs to be the primary mechanism for proposing new features, for collecting community input on an issue, and for documenting the design decisions that have gone into Zcash. The author(s) of the ZIP (known as Champions in this document) are responsible for building consensus within the community and documenting dissenting opinions.

Further down:

The current ZIP Editors are Daira Hopwood, representing the [Electric Coin Company, previously called the Zcash Company], and Josh Cincinnati, representing the Zcash Foundation. […] The current design of the ZIP Process dictates that there are always at least two ZIP Editors: one from the [Electric Coin Company] and one from the Zcash Foundation. Additional Editors may be selected by consensus among the current Editors.

Foregrounding the ZIP process is a significant procedural change. Historically, the Electric Coin Company has handled the vast majority of Zcash protocol development (notwithstanding help from third-party open-source contributors). That is still largely the case, although the Foundation’s node partnership with Parity Technologies is a big step toward establishing a larger group of well-resourced development stakeholders.

The Electric Coin Company’s modus operandi was to write ZIPs after deciding internally which features would be included in its Network Upgrade Pipeline. That was a practical way to handle things at the time, but it is no longer sufficient as the Zcash ecosystem continues to expand and mature. The Network Upgrade Pipeline will persist, but it will be downstream of the ZIP process rather than the other way around.

As Electric Coin Company CTO Nathan Wilcox wrote in December, 2018:

The Network Upgrade Pipeline is an execution process, not a governance or evaluation process. It doesn’t define how decisions are made, although it does clarify roles for making “execution decisions,” such as if a proposed specification meets the criteria to begin implementation and design audits.

Alongside our joint rejuvenation of the ZIP process, the Electric Coin Company plans to refine its NUP. Most notably:

All features to be considered for inclusion in a Network Upgrade must have an associated Draft-ZIP: Starting in Network Upgrade 3, all goals that are under consideration for the next Network Upgrade must be documented in at least a Draft-ZIP. […]

Network upgrade Draft-ZIPs must be complete two months before feature selection: We received a great deal of feedback indicating that the community did not get a sufficient chance to respond to the proposed goals for Blossom, and that some requirements were added too late to be properly considered. The Company is now asking that ZIPs for all network upgrade changes are at least in draft form two months before feature selection; for NU3 this is the end of March 2019. This will give the Company that time to decide which of the ZIPs we can commit to implementing (possibly with help from the broader community!) during this network upgrade. This will also give the community a chance to provide feedback on the ZIPs up for consideration. ZIPs which aren’t ready to be submitted as a draft by the deadline can instead go into the next NUP, which starts six months later.

Currently, the Electric Coin Company is still free to choose which ZIPs are incorporated into zcashd , though they have committed to publishing their own feature requests as ZIPs. In the future, when there are multiple implementations, ZIPs proposed by the Electric Coin Company will go through the same process and face the same scrutiny as ZIPs proposed by the Foundation or any other entity or individual. In fact, the Company has worked with the Foundation to flesh out the proposed changes. We commend the organization’s willingness to relinquish its unilateral control over Zcash development in service of the community’s needs.

The Foundation’s independence is important; we do not and will never serve the Electric Coin Company. Our mission is paramount. That said, we deeply appreciate the mutual productive relationship. Few startups prioritize their values as the Electric Coin Company has.

Zcash the software and Zcash the network have always been open for anyone to use, but Zcash protocol development has not been accessible to the same degree. The new ZIP process will allow current community members to increase their influence, while laying the groundwork for future teams and contributors to have a say in the direction of Zcash protocol development.

2 Likes
#2

I updated your copy/pasta @sonya with Josh’s re-wording on the post.

The ZIP (Zcash Improvement Process) is the key way for the Community to propose changes to Zcash. I’m surprised there has been so little feedback here or in the other thread: Call for NU3 ZIPs and Network Upgrade Pipeline Process Changes about what users want to see in this next update.

I’m going to ping many of the most active community members here on the forum to try to spark some more conversation. The deadline is March 31st (less than a month) and I would hate to see users miss this window due to not knowing about it.

Ping @adityapk00 @Autotunafish @hloo @JKDC @garethtdavies @tromp @Lisfin @vgm @root @ChileBob @kek @Hannibal @johnwisdom @boxalex @BrunchTime @nec @Uche32 @aeonglacial @CitricAcid @tloriato @jmsjsph @lordfeo

If you want to have a influence on the the next version of Zcash now is the time to speak up! :loudspeaker:

10 Likes
#3

Just to add there is an existing NU3 wishlist on GitHub that is already pretty long: https://github.com/zcash/zcash/labels/NU3%20wishlist.

2 Likes
#4

Thanks Shawn! People can see post updates and dig into the diffs on GitHub as well: https://github.com/ZcashFoundation/zfnd/commits/master/_posts/blog/2019-03-05-new-zip-process.md

1 Like
#5

True, many may not be tracking the actual issues list on GitHub due to various reasons. Many of those on the wishlist barely have any non-company members feedback on them.

I hope that more people will take the time to read through them or add new ones.

2 Likes
#6

It’s because of github. For many users, including me, it’s extremely difficult even to navigate there, leave alone writing a proposals. Pretty sure this a a bigger burden as the devs/mods/admins/foundation member expect as they are allready more than familar with github.

There is a reason we are active on the forum and not on github, while one doesn’t of course exclude the other…

4 Likes
#7

Agree - I confess I have no clue about github.

The forum does provide a form of input - when TenCent beat the fluff out of my node my post was picked up by devs. I’m happy to contribute on that level, kinda informal.

3 Likes
#8

This is and will continue to be an issue if they really want to get wide community feedback. Even the requirements to format a ZIP proposal is difficult to understand:

ZIPs SHOULD be written either in reStructuredText [4] or LaTeX [5]. In the latter case, a Makefile MUST be provided to build (at least) a PDF version of the document.

:thinking::thinking:

3 Likes
#9

That’s the strange point in my opinion. You guys are asking for wide community proposals, feedback and on the others side it MUST be done in a way/fom that 90+% aren’t able to do anyway.

For wider community feedback i think this is the worst one regarding possible participation of interested community members (expect the anyway participating ones like zcash employee/s, admins, mods, foundation members) .

I went through some github topics in the past and more or less i had the feeling that it’s more some company intern level of communication than community one. Just my opinion on github and reaching wider community contribution…

2 Likes
#10

Maybe someone could volunteer to ‘zipify’ a thread from the forum? Just an idea.

#11

What happens when this process needs to change? Do the current editors also decide upon that? For now it seems fine, but when there are more I’m wondering what that meta process might look like.

If we could clone Daira and Josh for a total of 5+ (odd number) editors where a simple majority wins, that would be wonderful.

Overall this seems like a step in the right direction.

1 Like
#12

If you read the proposed ZIP 0, you’ll see that GitHub isn’t used for the majority of the process. In fact, the majority of activity happens in a mailing list via email. Quoting the relevant sections:

The first step should be to search past discussions to see if
an idea has been considered before, and if so, what issues arose in its
progression. After investigating past work, the best way to proceed is
by posting about the new idea to the Zcash Ecosystem Development
list (https://lists.z.cash.foundation/mailman/listinfo/zcash-ecosystem-dev).

Once the Champion has asked the Zcash community as to whether an idea
has any chance of acceptance, a draft ZIP should be presented to the
Zcash Ecosystem Development list
(https://lists.z.cash.foundation/mailman/listinfo/zcash-ecosystem-dev).
This gives the Champion a chance to flesh out the draft ZIP to make it
properly formatted, of high quality, and to address additional concerns
about the proposal. Following a discussion, the proposal should be
submitted to the ZIPs git repository (https://github.com/zcash/zips)
as a pull request. This draft must be written in ZIP style as described
below, […]

So it is only necessary to use GitHub and be following the document style guidelines at the point where the ZIP is submitted to the repository. If the Champion is unfamiliar with GitHub, this is the point where they could ask for assistance from the ZIP editors, or other Zcash community members. Prior to this point, the only requirement is that the Champion has an email address, which is a pretty reasonable requirement.

1 Like
#13

Thx for the explaination, but again, it’s you and the devs/members that are familar with GIT, proposals, whatever that think it’s one of the easiest tasks, it’s simply not IF you are not familar with github.

You won’t be able to get wide community there. Now if you want only feedback/proposals from technically people which are familar with github, so it be, but wider community? No chance.

Even through reading all the requirements will drop about 95% that even won’t try and i absolutly include myself here.

Just in comparison on other projects that just generate a channel on discord for example for suggestions/proposals after phone verification for example. These channels are full of ideas/proposals/discussions on improvements and whether they are worth it.

My personal opinion is that often the Zcash Team is that technically focused that they forget that the average joe user just isn’t.

1 Like
#14

Yeah, I think GitHub is more of a barrier to entry than people who are familiar with it realize. And git itself is… a headache. I will say that making comments on GitHub isn’t hard or particularly confusing once you sign up for an account. But the overall point is a good one.

The Foundation’s website reorg was largely for consolidating information from like four different GitHub repos and making it available to non-devs in a familiar environment (the good ol’ static webpage).

1 Like
#15

A thought that occurred while exploring github… I bet ‘regular folk’ find it intimidating because its where the serious brainpower hangs out.

Perhaps this is a benefit, those with the skills/knowledge will be comfortable using it so its a kind of filter. A complex project doesnt benefit from amatuers running amok.

Having said that, good ideas can come from anywhere and its a shame if they’re lost, not to mention the benefits of involving the community.

As an ‘enthusiastic amateur’ I like to contribute & the forum lets me do that. Github is the dev teams ‘API’ & thats fair enough, they prob also need it that way to focus & coordinate their work.

I also think input from ‘regular folk’ wouldn’t go much beyond their initial idea, even if it was a great one, and they wouldn’t be able to keep up with the github discussion as it evolved. Its a long road from ‘idea’ to ‘implementation’.

Perhaps a method to catch good ideas from the forum where they can be discussed, edited, liked, supported, etc… then submitted on githib by a ‘forum champion’ ?

2 Likes
#16

Yep, this is what I hope would happen - with the obvious caveat that we shouldn’t saddle a single person with all the responsibility of the “forum Champion” role, and instead should encourage GitHub-minded community members to contribute in this fashion.

We absolutely should be discussing ideas, particularly at the early stages, in mailing lists or forums. At some point, however, a technical document does need to be written and submitted, in order to provide a common point-of-reference that can be reviewed and audited, and that implementations can refer to.

4 Likes
#17

Maybe a forum section for ‘proto-ZIPs’?

A new idea creates a new thread, a summary post is produced & if there’s enough support (likes?) a call for a volunteer to ZIP it.

2 Likes
#18

For some reason the forum doesn’t seem to be “accepted” for ideas or deeper discussions on various issues.

I tried with a topic regarding the foundation with no discussion at all happening and it pretty fast just died … After nobody else from the community made suggestions regarding the foundation someone can conlude that there is not much interest either from the community itself to give ideas how to improve things.

#19

Are they going to switch to a different consensus? I didn’t get it

#20

Nope, we’re just discussing the best way to have discussions, improving the improvement method and deciding on how to make decisions. :slight_smile:

1 Like