dominant assurance contracts using ethereum
Post on 14-Sep-2014
494 views
DESCRIPTION
TRANSCRIPT
DOMINANT ASSURANCE CONTRACTS
Ethereum Meetup4/6/2014
Overview
• Business Models on the Blockchain• Some Funding Models• Crowd Funding • Kickstarter on Ethereum• Dominant Assurance Contracts• Variants
Business Models on the Blockchain
• Ledra Capital has an interesting brainstorming list of these: link
• Site also contains a thought provoking list of assertions about bitcoin
• #12 on the business model list is Crowdfunding
Crowd FundingDefinition (wikipedia): Crowdfunding is the collection of finance to sustain an initiative from a large pool of backers—the "crowd"—usually made online by means of a web platform.
Types1. Donation Based2. Reward Based3. Credit Based (peer to peer lending)4. Equity Based
Comparison of platforms/services (wikipedia): link
Kickstarter• Kickstarter is an example of a type #2, multi-level reward
based crowdfunding platform. It’s a pledge threshold based system.
• Example: Project initiator must raise $10k in 30 days or all pledges are refunded. In a successful campaign, donors may receive different rewards based on amount donated.
Stats• Currently Kickstarter takes 5% in fees and Amazon takes 3-
5% for payment processing.• For the example above, a 43.99% success rate. For 60 day
campaigns this drops to 29%.• Most projects raise less than $10k
Kickstarter Successes & Failures
Success• Pebble e-watch @ 10x• Ouya @ 9x• Veronica Mars @ 2.8x• Oculus VR (?) - $2M raisedFailure• Kobe Red @ $120k fraud• < 50% success rate
Kickstarter on Ethereum
• Platform and payment fees can be cut drastically by creating this as an assurance contract on the Ethereum blockchain
• Will still require a web front end, promotion, and gateways to fiat currency (Paypal USD <-> Ether) etc.
• Alex_GuangTou in Vienna and I have been working independently on Kickstarter contract HLL code for Ethereum
Code Comments (Kickstarter)
Contract Storage [1000] is contract state (0 = first run, 1 = initialized and unfunded, 2 = expired, 3 = fully funded) [1001] is contract creator address [1002] is target date for campaign to finish [1003] is target funding amount for campaign [1004] is number of donors [2000] is donor //1 address [2001] is donor amount [2002] is donor //2 address...
All Runs Make sure there is enough ether to run contract (GAS)
First run of contract (state == 0) Need 2 args for expiry date and target funding, or stop Store contract state, contract creator, target date and target funding
Code Comments (Kickstarter, cont’d)
Contract Initialized (state == 1) Create constants based on contract storage (campaign parms)
If contract expired Check if funding goal met If yes, state == 3, send balance to contract owner (suicide) If no, state == 2 loop through contract storage[2000] to refund to all Delete contract (suicide) Else contract not expired Store donor and amount in contract storage[2000], [2001]… Increment the donor count by (one). -Used to determine GAS/fees for refund if necessary. -Min donation should be the mktx/CALL fee to allow refund • You can do this in less than 100 lines of commented
code
Dominant Assurance Contracts• Alex Tabarrok, George Mason University (1996). Model is
credited for the success of GroupOn
• Project initiator pays the donors a fee on top the refund if the target fundraising amount is not met
• In exchange the project initiator asks for a profit (fundraising target is more money than the cost of the project).
• Example: A project costs $10k and takes 30 days to complete. The project initiator asks for $12k and will refund an additional $1k if the campaign is unsuccessful.
Features• Solves the free rider problem through incentive alignment
• Project initiators can profit. Creates a marketplace for projects
• Improves perception of a project because the project initiator is putting money on the line
• Project initiator may forgo some profit by providing additional funding near the end of the campaign
• Jason Quinn tried this out successfully on Quora to fund the Center for Election Science (link).
Variants using Ethereum• Prize (refund bonus) proportional to the amount
contributed: Incentivizes matching contributions by initiator.
• Funder acceptance test (FAT): Goods must pass an acceptance vote at the end of the project or not be released with the initiator refunding the profit.
• Equity: Contributions are converted into equity shares via Ethereum subcurrency. The good/product could be sold for ether. The shares could then be traded and could be used for voting on dividend issuance (in ether).
• DAC: Convert the contract into a DAC (Distributed Autonomous Organzation)
Next Steps
• Successfully code and test Kickstarter contract
• Try it out by attempting to raise funds
• Build web front ends and payment gateways
• Rinse & Repeat for Dominant Assurance Contract
• Integrate into Daemon / SkyNet
QUESTIONS?