Your SlideShare is downloading. ×
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Crypto Law
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Crypto Law

171

Published on

BitcoinConfHK

BitcoinConfHK

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
171
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Crypto Law Opportunities for cryptographic protocols in shaping the legal systems of the 21st century
  • 2. Purpose of Law ● Prevent involuntary interactions ● eg. theft, murder, etc
  • 3. Purpose of Law ● Mediate ongoing interactions ● eg. I offer to sell you shirt for $10, you send me $10, I do not send shirt
  • 4. Types of fraud ● Total ● not sending a product ● Partial ● sending a product with very bad quality ● Visible ● defect is immediately obvious ● Invisible ● defects take months to manifest ● defects have only a small chance of manifesting ● Types of underlying commerce ● Product, one-time service, ongoing service ● Financial service
  • 5. Idea: incentives ● No legal system ● Profit from acting honestly: $3 ● Profit from cheating: $10 ● Legal system ● Profit from acting honestly: $3 ● Profit from cheating: -$40 ● Problems ● How to prove fraud (information asymmetry) ● Cost of filing a claim ● Cost of enforcement
  • 6. Cryptoeconomies ● Involuntary interaction ● Violent attack impractical ● Hacking, perhaps practical ● Ongoing interaction ● Fraud more difficult (information is more public) ● Fraud easier (people are anonymous) ● General problems ● Commerce international (enforcement harder) ● Rapidly changing society (harder to set standards)
  • 7. Case studies TorWallet (2013) Pirateat40 (2012) Bitcoinica (2012) MtGox (2014)
  • 8. Solutions ● Know whom you are trusting ● Add disincentive to cheat ● Require collusion to cheat ● Make cheating more visible ● Make cheating impossible
  • 9. Know whom you are trusting ● Idea: if A trusts B, and B trusts C, then C is more likely to be trustworthy ● Secondary benefit: if C cheats B, C loses reputation with A too ● Naive implementations vulnerable to sybil attack, be careful
  • 10. Add disincentive to cheat ● Deposits ● A submits N coins as deposit, if A cheats then deposit goes to B ● Sacrifices ● A sacrifices N coins to be able to participate in a system ● Idea: allow reputation to go negative ● Hostages ● A submits N coins as hostage, if A cheats then coins are destroyed or sent to charity
  • 11. Require collusion to cheat ● Multisig ● Oracles (for data) ● Wallets (for personal security) ● Multisig 2.0 ● Withdrawal limits ● Rights of refusal
  • 12. Make cheating more visible Provably fair gambling Provable solvency
  • 13. Make cheating impossible ● Factum law ● Idea: the definition of how much money you have is based on the results of past contracts ● If you cheat, the system automatically deducts $X ● Problem: not everything is cryptographically verifiable ● Computational resources: yes ● Math problem solutions: yes ● Subjective effort: no ● Offline effort: no
  • 14. Blockchain-based contracts Financial derivative, 21 lines of code: if !contract.storage[1000]: contract.storage[1000] = msg.sender contract.storage[1002] = msg.value contract.storage[1003] = msg.data[0] contract.storage[1004] = msg.data[1] elif !contract.storage[1001]: ethvalue = contract.storage[1002] if msg.value >= ethvalue: contract.storage[1001] = msg.sender c = call(contract.storage[1003],[contract.storage[1004]],1) othervalue = ethvalue * c contract.storage[1005] = othervalue contract.storage[1006] = block.timestamp + 500 else: othervalue = contract.storage[1005] ethvalue = othervalue / call(contract.storage[1003],contract.storage[1004]) if ethvalue >= contract.balance: send(contract.storage[1000],contract.balance) elif block.timestamp > contract.storage[1006]: send(contract.storage[1001],contract.balance - ethvalue) send(contract.storage[1000],ethvalue)
  • 15. Applications ● Self-executing financial contracts ● Computational applications ● Proof of resource ● Proof of bandwidth ● Decentralized organization management ● Shareholder relations, board election rules, etc ● Decentralized oracles (Truthcoin, SchellingCoin)
  • 16. Benefits ● Cost of enforcement tends to zero ● Scalable (works for both $1 microtransactions and very large trades) ● No barriers to entry, anyone can participate
  • 17. Problems ● How to determine precedents? ● What level of bad quality is actually fraudulent? ● What are the defaults? ● Network effects ● Only effective if many people using it ● Solution: start in a community
  • 18. End

×