my name is Wil warren I'm here with
Peter Zeitz and we're from the 0x
protocol core development team and Xerox
just briefly 0x Protocol is an open
protocol for peer-to-peer exchange of
aetherium tokens we're not gonna be
talking about that too much
instead we're gonna be talking about how
we're thinking about building a
self-sustaining ecosystem through
governance but before we get into that
I'm just gonna provide a little bit of
background on 0x the history of 0x and
how governance has been a critical piece
of the project a core requirement from
the very beginning and so I'm gonna talk
a little bit about technical protocol
governance so initially very on before
we were actually working on what is now
0x we were initially building a
for-profit decentralized exchange that
would be owned by a corporation and
would be generating revenues and
something that we identified very early
on was that we were building this system
of smart contracts on top of a rapidly
evolving technology stack so etherium
was still in its infancy the etherium
virtual machine was changing the smart
contract programming language was
changing everything was you know
changing at a very rapid pace and so you
know what we realized is that if we were
to build our protocol for a peer to
build our decentralized exchange in a
single monolithic smart contract that
there would be some issues when we would
have to upgrade and that we would have
to upgrade frequently so here you can
see in the slide there is this smart
contract represented as a triangle you
can think of this as containing all of
the logic associated with exchange and
you have these traders that are
depositing their they've deposited their
funds into the contract and they're
using it to trade and one of the issues
that
you encounter when you're building on
top of a rapidly evolving technology
stack and you have to upgrade your smart
contracts is that your users have to
withdraw their funds from your old smart
contract
deposit them to a new smart contract and
it's a costly in time intensive process
now further as you continue to do these
upgrades another issue is that you'll
have user churn so every time you do an
upgrade it's it's a costly and
time-consuming process and users will
drop off and another issue with doing
upgrades in this way is that it can lead
to fragmentation so some of the people
might decide not to move to the new and
most most recent version of the contract
and this fragments the network and
destroys a lot of the valuable network
effects that you get around liquidity so
we realized that in order to create a
system that would make sense for us long
term we needed to build a modular
pipeline of etherium smart contracts
this pipeline would allow you to replace
parts of it without affecting the other
parts of the system and you know this is
kind of a diagram of what that pipeline
looks like and what you can do is you
can unhook one module and hook in a new
module and it allows your users to
seamlessly transition to the most recent
and up-to-date version with practically
zero friction now when we were building
our own for-profit decentralized
exchange this was a very easy process
for us to do you know we own these
contracts we can just decide to upgrade
them whenever we want it's our decision
but as we spent more time in the
etherium space and met with more teams
that are developing on top of aetherium
we very quickly realized that there are
many aetherium projects that require
exchange functionality and we determined
that
all of the work we were doing this
system that we were we're confident was
designed in a very good way would have
much greater impact if we designed it to
be an open protocol rather than a
proprietary exchange so anyone could
build their own exchanges or markets on
top of it so in an open protocol there
are many different stakeholders there's
you know today they're you know there's
15 or more different real layers that
are for profit businesses building on
top of the same set of smart contracts
and a various infrastructure projects
that exist so this begs the question who
gets to decide on upgrades and who
approves them
well obviously the answer should be the
stakeholders the people that are
actually making use of this system
should make those decisions so how can
we identify who is a stakeholder so the
way that we determined was the best way
to measure this is you want to measure
how much each party values access to the
protocol utility and you can measure
that through a usage token that is used
in order to access that protocol utility
so this is just a brief explanation of
what technical protocol governance means
in the context of 0ex protocol but in
you know today there's a vibrant
ecosystem that has developed around the
protocol and governance has extended
beyond just technical protocol
governance to be something that's much
more important to create a decentralized
ecosystem and so that's what Peter is
going to talk about now
this is Peter sites use Research Fellow
focused on governance at zero X so I'm
gonna hand it over to Peter
[Applause]
all right so we'll talk to bunch about
upgrades and this process this
collective decision-making process where
we take our software and we improve upon
it we'd introduce an upgrade and that
has being this motivation for governance
I've had this experience with software
upgrades as a user of software you know
where Microsoft sends me a list of
upgrade to some numeric code and I have
a voice here right I can choose to
install these or not to install these
all right so I have this participate in
this decision to upgrade my software and
Microsoft at least doesn't do it without
my consent and yet I feel don't feel
like I'm empowered at all really I feel
like I have to choose these upgrades
right so my thinking behind this is that
really just the ability to approve a
change in your software really doesn't
give you very much control it's not
sufficient to empower you to ensure you
get the product you want and so we want
to think about how can we change this
how can we make it so that our product
is something that is constructed to
offer users the upgrades that they want
to serve them and I really feel that the
only way of doing this is giving the
users some control over the purse
strings right so Microsoft developers
they work for Microsoft shareholders
they give me these deep resentment with
these choices that Microsoft
shareholders want me to see and what we
want to see instead is is the the
developers working for token holders and
presenting the Xerox holder the token
holder with a choice that he wants to
see so he sees the code that he wants to
choose to use as opposed to what some
investor might want him to choose to see
okay so how are you then going to
operationalize that so that the token
holder controls the purse strings but
we're gonna start you know by thinking
about a committee as being a rep the
your X token holder as electing a
committee and this committee is going to
work on the behalf of the user the token
holder you to influence the allocation
of funds for development and our
ecosystem and this is kind of like a
risky scary prospect we can imagine the
users directly choosing you know who
gets money to build what frightens it's
releasing control you know from our
organization to the community and it
involves a lot of risk and so we thought
the best way of approaching this in
order to address this issue of risk
was to start small and work and build up
from there and so we imagine the
short-term of the 0x token holders
electing a committee that's gonna be
responsible for allocating grant funds
to community projects right so these are
prod the work and development of the
core protocol itself but instead the
funding of third party development of
projects that are building on the Xerox
protocol like these real Ayres or maybe
they're making market making tools or
maybe they're doing educational videos
that will help attract users right we
have all these actors in the ecosystem
you know that benefit from third party
projects which were already funding
right so we already have a program
within our organization to extend grants
to people working to building on our
software and we'd like to empower the
community to take on that function for
us instead of just doing it in a
centralized fashion ourselves in the
longer term we hope that this experience
with community directed grants will
inform how we can use an elected
committee elected by the CRX token
holder to control the development of the
core protocol itself right so the
developers on the core protocol are
working as the employees of users rather
than on behalf of someone else okay so I
should at the start here note that this
is a really hard area to make any kind
of commitment so this is not a
commitment you know that explains
exactly what we're going to do because
we don't have sufficient knowledge to
know that right now right this
presentation is expressing our current
understanding of how we see governance
in the Xerox protocol evolving but that
understanding is almost certain to
change in some way you know our
long-term plans are gonna change as we
you know do this new experiment with
governance where we begin to devolve
power to our users and get them to
administer these grant funds we're gonna
observe what they do and we're gonna
learn from that to improve our program
we're also observing all these other
crypto projects and their governance
experiments and expecting to learn from
that and there's also this big elephant
in the room where the legal environment
for for allocating funds and you know
using user votes is very very uncertain
and every kind of blockchain
organization faces this legal
uncertainty and so we're gonna have to
accommodate you know whatever the law
allows us to do and you know be flexible
with our plans to make sure that we
don't face legal risks and that our
token holders
you know don't face legal risks as well
okay so the first element of this is you
know we have this committee that the
token holders are electing a committee
right and and then this committee is
going to distribute grants and so the
first element I want to explain and help
you understand is the the use of grants
itself why should we use you know create
these grants to pay people to help them
use our software right what's the
purpose of this well our understanding
is that we have sort of this user
platform with multiple classes of users
and the activities of one class of user
have implications that are broader than
those guys themselves they they affect
the entire ecosystem they make the
entire ecosystem more attractive to
other participants so that when if we
fund projects you know that work in one
part of the ecosystem that that not
drives growth you know all over across
the board it drives it encourages you
know more users to come on board in
other areas and so there's kind of three
kinds of main projects we might fund we
could imagine a great the real layers
are here so real layers create these
specialized asset markets where a
certain class of tokens can be traded
and those tokens that maybe there's a
real layer that trades and utility
tokens there might be a real layer that
trades and crypto kiddies or you know
playing cards you know collectible
playing cards or maybe a really other
trades and security tokens venture
capital funds there are all kinds of
specialized asset markets and where
these tokens are traded that could be
created and so one purpose of grants
would be to create more markets to begin
to serve new markets using our protocol
and then once those markets are opened
up that will attract you know traders
who are buying and selling tokens right
someone wants to buy a crypto could eat
and they might arrive at this market
place to do so you know someone much
might have a bunch of crypto kiddies
they've collected and they need to they
need to you know pay for their mother's
medical bills so they're going to sell
all their cryptic kitties to do that and
this is the market place is a place they
can take those crypto cookies to to to
sell them off all right so those are
these traders right and as the traders
or another place we can target resources
right because we can mark it we can
develop tools that make it easier for
users to enter
act in our ecosystem and help people
understand how the ecosystem works that
deliver them that bring the users to the
real layers that improve the environment
for traders in different ways right so
grants could do that and as we bring on
more traders there's another element
here which is market makers who provide
liquidity right because we have on these
exchanges there are sort of retail
customers who are arriving there
occasionally to buy and sell what they
want but they're also sort of consistent
participants who do market making hold
an inventory of assets of tokens on the
relayer and then buy and sell these
tokens in response to sort of sporadic
demand that comes from these traders who
arrive you know to buy and sell when
they want to write the more traders we
have they're coming to buy and sell the
larger inventory of assets it makes
sense to hold on this on this real layer
you know the more buyers the more people
holding inventories the more markets it
makes a sense of sense to open up all
right so if you have a grant that drives
growth in one part of the ecosystem that
will then fuel you know follow-on growth
in other parts of the ecosystem through
sort of a self-sustaining process or a
self-perpetuating process all right so
the goal of the grants then is to sort
of identify aspects of our ecosystem
that are bottlenecking that are
constraining growth right now and help
to alleviate that bottleneck by
targeting funding to that area because
that's why grants but of course grants
do not need to involve the community
right we could we have an organization
that has some resources we're already
using some of those resources to award
grants to third party projects as many
of the relays that have been created you
know are projects that we've had some
involvement in you know giving
non-dilutive capital just just giving
them free money essentially to help them
begin building at some point in their
life span so we're already doing this
and why involve the community in it well
as I said before and we want to make
sure that the code that's created in
Azure X ecosystem is created in order to
serve users and we feel that the best
way of guaranteeing that is to give
users control over the purse strings
right so they are the you know the money
is being spent on their behalf
so we feel that the 0x token holder
should exercise ultimate control over
resource
allocation is your X ecosystem and in
order to do that we want to compare the
community to determine how grants are
allocate what kind of types of projects
are created to make sure they get the
projects they want in the short term
that means community control of grants
distributed third party projects that
build on our exchange standard and the
longer term that means community control
upgrades and extensions is that core
protocol to the core exchange standard
so for example if the users decide that
there's a proposal to improve the
protocol that's created by some other
development team right that that isn't
us that they could potentially choose to
fund that team instead of the existing
group of developers right so you can see
probably how that would be really
empowering and it would ensure this kind
of level of accountability where the
developers need to be responsive to user
concerns
in order to ensure their livelihood okay
so what why an elected committee right
so we can imagine doing this another
ways right it could be that there's a
grant proposal a third party project
creates and it broadcasts it to all the
token holders who read all the details
of its white paper and then figure out
what do they want to vote yes in this
proposal or no and we felt that this for
this type of decision having every
single user read and vote does not make
much sense right in my interpretation
there's kind of two main types of
collective decisions and depending on
what type of decision you're dealing
with you know you may want to use
participatory democracy to arrive at
that collective decision or you might
want to have a delegated former to a
representative democracy where the token
holders elect a representative who then
makes makes decisions in their behalf
it's a participatory decision you know
there may be cases where individuals
know exactly what they want just by
glancing at the issue right they don't
need specialized expertise they don't
need a college degree they don't really
do a lot of research and reading to
figure out to vote yes or no maybe for
example there's in my municipality there
is a proposal to create a playground and
that playground will cost this much to
build and the taxpayers will have to pay
and say a million dollars to fund it and
I have a couple
kids I can evaluate now how much benefit
my kids get out of playground is it
worth it to pay that extra tax money to
build that and I don't need to ask an
expert right I know right away because
it affects you know I can
III know as a as a resident that
community exactly whether it makes sense
to me or not and I can just vote yes or
no right those types of decisions it
makes a lot of sense to govern the
participatory process but there are
other type of types of decisions where
individuals need to make a serious
effort in order to come to an informed
decision where someone might need you
know a college degree even a graduate
degree and then even with these degrees
they would need to do a lot of reading
and research before they felt like they
had sufficient information to have a
preference for one outcome one decision
over another right so it should we scale
the theory of network for sharding or
via plasma you know which approach to
charting should we use which approach
the plasma should be using a dag or a
blockchain these are very complex issues
or even an expert needs to do it a lot
of time to doing research before they
can come to an informed preference so
for those classes of decisions it makes
sense for individuals to hire someone
who has expertise to take make that
effort on their behalf rather than than
making decision directly through a
participatory process okay so then the
next question I think that arises there
is right so we have an expert who's
working in the users behalf we already
have experts why do we need to elect
them we already have for these core
developers who spend their entire
working life poring over the protocol
reading white papers reading about
emerging technologies making choices
about what types of things to introduce
if we already have these experts who are
employed to do this you know why do we
need more of them okay what is the
purpose of creating a you know a
separate body so here what I think is
really important is that the elected
committee you know provide a source of
information that's independent from the
core development process right so there
are people looking over the developers
shoulders observing what they're doing
trying to learn about the choices
they're making and ensuring that those
choices are being made on users behalf
and the reason for this is that
all the core developers are informed
experts they're also not particularly
good choices for user advocates because
they face a conflict of interest right
fundamentally they're the employees of
the ZRX hold of the Xerox holders have
crowdfunded development of this protocol
and they're there for the you know the
developers are working for them but you
they have this issue that continuing to
have this job is their source of
livelihood right they have this sort of
more clean raises this issue in this
quote you tell me where a man gets his
corn pone and I'll tell you what his
opinions is so what's the saying corn
pone here is how a man makes its living
and that is that I need to you know my
imperative is to continue earning my
daily bread and I'm just gonna tell you
whatever is necessary to make sure that
happens right so if we don't if we don't
have an independent voice which isn't
dependent upon giving certain advice for
its livelihood right the users really
can't you know trust the infant that the
information they're receiving is is
reliable all right so the solution then
is a committee of outside experts all
right so have the users that vote people
in in this committee that are outside of
development team
okay so sort of get a better sense of
this you know I'm gonna argue that that
users need this access to unbiased
information right so they need to know
that this source that they've that is
providing them with advice is
independent from the development process
and they also need to have control over
funding so they can act on that unbiased
information to influence what projects
get built so you can imagine some users
here and they say how do we get
developers to address our concerns and
we're not happy with the code they're
producing they haven't we the
scalability problem they haven't done
anything to address it what if we voice
our displeasure by refusing to utilize
the software they created so the users
are considering that the developer might
say wait those are critical security
upgrades failing to utilize these could
put your funds at risk it could put
decentralization at risk it could result
in someone capturing the protocol and
there's this huge danger that means that
users need to download these immediately
and the users as naive fairly naive
participants really don't know how to
react
that right there's this risk that maybe
the developers telling the truth and
given that risk most people will just
say okay we'll vote yes and they'll be
left with this problem still you know
how do we get our concerns address and
they can take that back to the developer
the developer might say we don't have
the resources for addressing those
concerns or it's infeasible to do that
or trying to accommodate what you want
would break decentralization which is
our key priority and so we can never
even consider anything in that direction
and the the key problem here is the
users really can't evaluate these claims
the users need some independent source
of information they can consult which
can tell them is that legitimate or not
legitimate that isn't just the guy
writing the code and then they need to
be able to act on that by allocating
money to someone who's actually going to
work to create the code they want okay
so how will this work
I think the first key thing to focus on
is this source of funding right we want
to take funny that's currently under the
control of Z of our organization is
under centralized control shown here and
then release it to a committee which is
going to be controlled by the community
and when that when that happens when
this is saying negative one months here
is negative one months before one month
before the committee is elected we're
gonna grant funds to the election
process and once we do this once we
release these funds there is no
centralized control anymore
the token holders votes and the the
committee they elect are gonna determine
how the money is spent and even if we
don't like this you know we there's
nothing we can do about it without say a
hard worker fundamentally changing the
code all right so this is like this this
key step of moving from centralization
to a decentralized community directed
process at the same time you know
there's needs to be an election process
where people are nominated and the token
holders I lacked a community a committee
of say three people who's going to
represent them okay so we're going to
move forward and then after this one
month nomination election process is
over there's this committee that's
serving holding these tokens that have
in multi-state custody right so this is
there's money that's taken from us and
transferred to the community control
committee and then the committee can
look at grant proposals from the
community right so independent project
startups will ask what will soar be
begging for fund
and the community the committee will
evaluate their proposals and see if
they're whether they're worthy or not
whether they serve the community
interests and say one week later they
have a suggestion of a proposal they'd
like to fund and they they bring that to
the community they announced the
community we would like to send this
many ZRX tokens to this third party
project what do you think all right so
this is announced and the community is
going to have to again of a week to
observe that and if they choose not to
act if they say observe what the
committee proposes to do and decide to
let that happen then this the CRX tokens
are released to the third party project
and that project is then spit out some
some code which help hopefully benefits
our ecosystem helps it grow but we might
work maybe this committee is corrupt
maybe we have bribery or some some
problem that's results in this committee
being captured so that once they're in
office they no longer serve the
interests of token holders and so we
want the token models to be able to
intervene in some way and so this is
there's this possibility that then this
proposals announced and it's observed
for a week and in that weeks time the
CRX holders can take action to hold a
vote to block the proposed allocation
and if they succeed in doing that that
will trigger election of a new committee
and hopefully this new committee will
then go on to act truly on the user's
behalf and not propose allocations that
result in them being recalled you know
by their constituents okay so this is
the framework for the grant program and
we can think of this as being quite
generalizable and adapting it to oh
sorry sorry I forgot to so if the
proposal is continued if there is no
blocking right then then these
committees are intended to serve for a
one year long time span and so this
process of proposing allocation and then
having it go through week later would
continue over the course of a year until
the committee's terms expire and then
there they go back to being reelected
okay so I was gonna say this process is
quite generalizable and it's probably
pretty easy to see how we might expand
that to encompass not just governance of
third party project funding but also
governance of core development funding
itself and so the couple differentiators
of how that you know might need a change
to encompass to
the core protocol is firstly there
mainly be more funds right so we have
these larger established organizations
with say dozens of employees and they're
going to need to be supported by larger
allocations and early-stage startups
okay so we can imagine more funds going
to the committee and the other issue
with a larger project with a bunch of
employees with an office building it's
renting it has this these near-term
funding needs that it needs to have
certainty over right it can't just be
getting funding on a week-by-week basis
and be uncertain whether it can actually
continue to pay salaries instead it
needs to have certainty that it will
receive a certain amount of money that
will sustain it over say year long
period right so in this modified process
the committee you know when it holds
office and then after being office for
five months it will propose an annual
budget which will govern all the funding
for the core protocol for that year and
it could be distributed to say one
Development House if there's just one
development organization or multiple
development organizations if the
committee thinks that is a you know
better scenario for the users and then
you know given that this is a larger
decision that the community lends a
month to either let the decision go
through and then the money will be
released to development houses or block
it in which case we go to re-election
but other than that you know essentially
the long term plan is very similar to
the small-scale sort of short-term grant
program plan anyways thank you guys for
listening so this is the end of the
presentation I just want to ask if you
guys have any questions feedback or
suggestions so I can take a question
right now if there's time is no no time
there's no time sorry sorry you off to
the please come talk to me afterwards
right now
you