On DAO Contractors and Curators

Stephan Tual
Stephan Tual’s Blog

--

Note: Those who have been participating in the development of the Standard DAO Framework will have noticed the recent renaming of the ‘serviceProvider’ variable to ‘curators’ while the allowedRecipients Solidity mapping is now casually referred to as ‘Contractors.’

Artist’s impression of a DAO — Image adapted from work by K-appa

If you’re new to DAOs, Contractors are easy to understand. Since a DAO is pure software, it cannot take actions in the real world such as building hardware or sweeping the streets. It therefore hires Contractors to deliver on these tasks.

A DAO can have as many Contractors as necessary to deliver on a multitude of tasks of varying importance. Let’s imagine an hypothetical SweepTheStreets DAO for example, consisting of 300 DAO token holders living in the same neighborhood and wanting their streets swept clean of pesky autumn leaves.

That DAO would require the services of many different Contractors. One (a reseller) could be hired to source brooms to a certain specification, another (a project management firm) to coordinate the sweeping of the streets, and 15 others (individuals) to do the actual street sweeping.

Verifying that leaves were indeed swept could also be outsourced, but in this case, the satisfaction of having clean driveways will be motivation enough for the DAO token holders to do the checking themselves — looping the loop, so to speak.

The actual terms of engagement for each Contractor can be as simple or as complex as necessary; it all depends on the terms of the Contractor’s Proposal to the DAO, a smart contract with an attached plain English description. This code determines everything from the duration of the engagement, to its deliverables, milestones and payment terms (if any) — all of which will of course vary wildly from Contractor to Contractor.

Of course, nothing stops the SweepTheStreets DAO Token Holders from being Contractors to the DAO themselves — after all, who else is going to be more motivated to complete a job to satisfaction than someone with ‘skin in the game’.

Bonus meta-points: A DAO can also play the role of a Contractor to another DAO.

Curators

Not all DAOs will be as innocent as our SweepTheStreets DAO. Some, such as the SharkDAO(tm), will be created for profit and be formed by individuals that have never met each other before, unlike the friendly neighborinos of the previous example. In fact, the very formation of the SharkDAO(tm) could be the product of completely pseudonymous transactions, making it impossible to track who owns SharkDAO(tm) tokens and in what amount.

This exposes our SharkDAO(tm) to a dangerous attack: Joe Rich could acquire 51% of the SharkDAO(tm) tokens, and then submit a Proposal that sends all the SharkDAO’s(tm) ether to himself. Thankfully, the concept of Curator renders this attack — and any other so-called “Tyranny of the Majority” attacks — moot.

When forming a DAO, DAO Token Holders nominate a Curator. Only the Curator can add Contractor addresses to the whitelist, authorizing them to receive ether from the DAO. This means Joe Rich would have to become Curator if he wanted to execute his attack Proposal.

We assume that Joe Rich has 51% of the SharkDAO(tm) tokens, and therefore 51% of the vote. While voting himself as the Curator is therefore theoretically possible, a Curator election is a two step process where a DAO can ‘split’ in case there is no mutual agreement during the second round. No matter what Joe Rich tries, the DAO will always be able to spot his malicious Proposals and split itself proportionally to the second vote results, leaving the attacker with his ether and the rest of the participants in control of their own.

In other words, a Curator is a failsafe mechanism that indirectly prevents Joe Rich from executing this 51% attack. Curators do not add centralization to the DAO: they are nominated by the DAO Token Holders themselves, and can be fired at any time, for any reason.

Security through obscurity never works — instead, DAOs use intrinsic, open, decentralized processes to keep themselves secure

Curators, in more depth

So, we now understand why we need Curators — but who are they? Well, they can be anyone, but they likely will be a group of signatories that are somehow respected and trusted as part of the Community the DAO operates in. From a technical standpoint, a Curator likely takes the form of a multisig contract.

Curators curate the whitelist, the list of Contractors authorized to receive ether from the DAO. A Curator therefore holds two primary functions:

  • First, when a DAO Token Holder submits a Proposal in the form of a smart contract, the Curator checks that the published Contract on the Ethereum blockchain matches the source code the Contractor claims to have deployed (this is done by comparing bytecode).
  • Second, a Curator confirms that a Proposal comes from an identified person or organization. This is done by asking the entity submitting the Proposal to send a signed transaction with a certain set of data only known to the Curator and the author of the Proposal, thereby confirming the author of the Proposal.

The above are the only two functions of a Curator. For clarity, the following tasks are therefore not the role of a Curator, but instead the role of the DAO as a whole:

  • Evaluate whether a Proposal is ‘good’ or not.
  • Audit the Proposal’s smart contract code.
  • Provide legal advice regarding the Proposal (if any).
  • Take responsibility for the Proposal.

I hope this gave you a good overview of Contractors and Curators. For more information on the voting mechanism, check the DAO Primer, and of course don’t forget the ultimate reference, the White Paper.

If you’d like to practice with actual code, Griff Green is running a DAO School on #art_of_the_DAO on our Slack and recently started a series of fun challenges.

About the Author

Stephan Tual is the Founder and COO of Slock.it.

Previously CCO for the Ethereum project, Stephan has three startups under his belt and brings 20 years of enterprise IT experience to the Slock.it project. Before discovering the Blockchain, Stephan held CTO positions at leading data analytics companies in London with clients including VISA Europe and BP.

His current focus is on the intersection of blockchain technology and embedded hardware, where autonomous agents can transact as part of an optimal “Economy of Things”.

Twitter: @stephantual
Contact:
stephan@slock.it

If you enjoyed reading this, please log in and click “Recommend” below.
This will help to share the story with others

--

--

Stephan Tual
Stephan Tual’s Blog

Stephan Tual, former CCO Ethereum, passionate Communicator and recognized Innovator with nearly 30 years of IT expertise.