What would an independent Zcash Core team look like?

I’ve created this topic to address a question raised by Skylar.

This is something I’ve pondered a lot, and discussed at length with several community members, most notably @Souptacular, who has advocated strongly for “giving the development teams more autonomy from the leadership areas of both orgs”.

I’ve long believed that Zcash would best be served by a “Zcash Core” team of developers who maintain and improve the protocol and core software (i.e. the node and key libraries), while taking input from the Zcash community.

FWIW, that model has heavily influenced how ZF operates - a board that solicits the community’s input on things like board appointments, feature priorities, and strategic direction on questions like ASIC resistance, with an ED appointed by - and answerable to - the board who runs the organisation on a day-to-day basis.

But to address @skyl’s question directly, how could we dispense with the ZF board and me, and create an independent “Zcash Core” team?

A key question is how would they get paid?

If each individual developer is a Dev Fund recipient, what happens if they decide they want to quit? The funds would keep getting paid until there was a network upgrade.

If a “middleman” entity is the Dev Fund recipient, and then pays the developers (which is effectively what we have at the moment with ECC, ZF and ZCG), that entity can exercise a great deal of power over the developers by dint of the fact that they can withhold payment if the developers don’t do what they want - i.e. the antithesis of independence!

The current corporate structures provide administrative and operational support (e.g. payroll, legal support, health insurance, etc.). They also mitigate the impact of ZEC’s volatility by paying the developers a steady salary (denominated in fiat) and holding reserves that can continue to fund salaries (for a time at least) when the fiat value of ZEC is low.

It’s entirely possible to create an entity akin to a cooperative where the developers themselves as a group exercise executive authority (within certain parameters) over the entity. They could then hire someone (or contract out) to take care of the administrative and operational stuff (or they could simply pay themselves in ZEC and take care of their own taxes, health insurance, etc.).

Again, pay would seem to be the biggest potential stumbling block - specifically, how much should each person should get paid. In the existing structures, that’s decided by Josh and me. In the absence of that role, the developers would need to either reach agreement amongst themselves (including dealing with the fact that different developers have different levels of expertise and experience), or collectively decide to delegate the decision to someone that they all trust.

The biggest barrier is likely the developers themselves, specifically the question of whether they’re willing to make the leap from their current employment to independence, and work through the process of figuring out how to agree things like pay, and dealing with any disagreements and challenges that crop up along the way.


What do you currently use to derive this value? Is it per level?

I worked at a company that had pay transparency (e.g. each level had its own standard base salary). At first, I thought it was weird, but then realized there was no bullshit around wondering what other people are getting paid, if I’m not getting paid enough, did I negotiate poorly, etc.

Something like this I think is good but with an incentive for bonuses: Company and individual performance bonus. The challenge around bonuses though are who sets the goal and who determines who qualifies?


I, for one, would be willing to move to an Aftok model. But as that’s my personal hobby project, that’s probably hardly surprising. :slight_smile:

(With the work log that underlies it all recorded as memos on the Zcash chain.)


We research publicly-available data for similar roles, to check whether a team member’s compensation is in-line with current market data. We consider what the employee is expected to accomplish over the next twelve months, and whether they have taken on any new responsibilities since their last review. We also look at whether their experience level or skillset has increased significantly, and whether they have completed training or received new qualifications that are relevant to their role.

Bonuses are discretionary, and are determined based on the team member’s contributions to the Foundation’s success that are above and beyond what was expected from them.

All of this is obviously subject to budgetary constraints.

We want our people to be feel happy, fulfilled in their role, that their contributions are valued and appreciated, and that they are paid fairly for those contributions.

We monitor how well we’re achieving that goal by periodically (every 6 months) asking team members On a scale of 0-10, how likely are you to recommend the Zcash Foundation as a place to work to your family and friends?

Over the past year, the responses to that question have fallen in the 6 to 10 range, with an average of 9.23

Screenshot 2024-05-03 at 11.06.55