Vitalik Buterin conceptualised and abstracted the proposition of DAICO in the wake of scammy and fraudulent ICOs which have become a common sighting presently. It is so easy to make millions of dollars since there is no regulatory or governing authority and no obligation on anyone. Anyone sitting at any place in the world can raise funds under the hood of “crowdfunding”. LoopX scam has been talk of the town in this regard. Of course, there are many more.
Is there any way to protect the investors?
TL;DR: Essentially, DAICO makes ICOs secure by adding checks and balances, accountability, and mechanisms to protect investors. It gives investors the opportunity to control and protect their said investment in a project. It also creates pressure on the development team to actually deliver upon the project. And of course, consumer protection is always good especially if it is in the hands of the contract itself, and not in the hands of the regulators.
Also, Read Our Next Article on Tokenic
What is it exactly? How does it work?
The team which wishes to raise funds publishes a DAICO contract. This contract spins off in “contribution mode” where anyone can pool in their money in exchange for tokens.
ICO could be a capped sale, an uncapped sale, a dutch auction, an interactive coin offering, a KYC’d sale with dynamic per-person caps, or whatever another mechanism the team chooses.
When the “contribution mode” comes to an end, investors are prohibited from contributing anymore. After the contribution period, the contract has one major state variable:
tap (units: wei / sec). Initially, the limit will be set to zero, but contributors can then vote on a resolution to increase the tap. The tap determines the amount per second that the development team can take out of token sales funds. Essentially, the developer team won’t have access to the entire funding.
DAICO can be implemented as follows:
tap: num(wei / sec) lastWithdrawn: timestamp # Make sure to initialize this to the #contribution period end time @public def withdraw(): send(self.owner, (block.timestamp - self.lastWithdrawn)*self.tap) self.lastWithdrawn = block.timestamp @private def modify_tap(new_tap: num(wei / sec)): self.withdraw() self.tap = new_tap
The investors will have complete control over this tap. You can imagine this tap to be a faucet which is in control of votes of investors and money runs out of the tap which goes to the developers. So you, as an investor, can control how much budget should the developer team have. You can raise the amount of money over time if the dev team is performing well.
Investors can make either of the two resolutions or both (at different times):
- Raising the tap
- Permanently self-destructing the contract (or, more precisely, putting the contract into withdraw mode where all remaining ETH can be proportionately withdrawn by the token holders)
Either resolution can pass by some kind of majority vote with a quorum (eg. yes – no – absent / 6 > 0). Note that lowering the tap by vote is not possible; the owner can voluntarily lower the tap, but they cannot unilaterally raise it.
If the voters are very unhappy with the development team’s progress, they can always vote to shut the DAICO down entirely and get their money back.
- Wisdom of the crowds: The contributors have complete control over the tap and can vote out a project if the team fails to deliver upon the project. In that case, refund of remaining funds is initiated.
- No trust in a centralized system: Everything works democratically through voting. There is zero amount of trust placed in centralized authorities.
- Controlled funding: Access to funds isn’t given in a jiffy, rather it is spread over time.
- Soft cap: Dev team has to calculate in advance how much is necessary to produce a minimum viable product and once they reach this amount, called ‘the soft cap’, they can start to work on the product and spend the money on whatever they deem necessary. If they don’t reach this initial soft cap, they have to refund the money. But if they do, there’s no further real obligation.
- 51% attack: Any vote is subject to 51% attacks, bribe attacks, and other game-theoretic vulnerabilities, and any ICO is subject to the risk that a team will be irresponsible or simply a plain fraud. An honest developer can just lower the tap again, or not claim excess funds. If the developer starts spending funds on lambos instead of real work — voters can prevent much of this by not raising the tap too much too quickly, but if it happens anyway they can vote to self-destruct.
- Protection of investor: The investor has a considerable say wherever it is affecting him/her directly. This way, the dev team will focus on bringing life to the project more. This completely mitigates the risk of scam ICOs where developers hold a token sale and then run away with the money as soon as the ICO is finished, without producing any product.
This is what is called having the best of both worlds!
However, there are several challenges attached to this
- Time-consuming: Naturally more the number of people are involved, longer it takes to come to a conclusion and not all contributors are intimately, emotionally connected with the project they have contributed to. If the dev team needs more funds, it needs to convince the majority of these (mostly in thousands) to release funds for any task. Each time voting will take place for a new budget. This could definitely hamper with actual work.
- Release of funds over time or milestones? Both have their own shortcomings. If we go by the time approach, its the investors who decide upon a time until which the dev team has to come up with a minimum viable product. Most of the times, investors don’t have enough technical knowledge as to what takes how much time. If we go by the milestone approach, then there is no room for failure. If Wright Brothers had a DAICO, we might have never seen an aircraft!
- Human, as a person: It’s ultimately us who are corrupting the ICOs. The DAICO still leaves room for human politics and manipulation. What is going to happen to the funds in case of a fork? What if some competitor ICO buys a major share of the tokens. They’ll have complete control over the decisions made through voting because it’s ultimately the majority that matters.
The Abyss announced it’s going to be the first in the world to implement DAICO for fundraising.
Launch your blockchain project with Quillhash: https://quillhash.typeform.com/to/KQ5Hhm