Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Metadata in the Blockchain:
The OP_RETURN Explosion
Coin Sciences Ltd
http://coinspark.org/
If Bitcoin = Gold 2.0 then …
What is the intrinsic
value of a bitcoin?
Coin Sciences Ltd Metadata in the Blockchain http:/...
What has gone wrong? (1)
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Early Internet growth
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
http://homes.cs.washington.edu/~l...
What has gone wrong? (2)
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Gartner hype cycle
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
What has gone wrong? (3)
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
3% (PayPal)
What is bitcoin for?
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
A hypothesis…
Bitcoin as communication
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
What can we send?
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
An expensive way to encode information
Fake addresses
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Permanent burden on unspent output list
Multisig addresses (1 of …)
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Temporary burden on unspent...
The OP_RETURN decision
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
https://bitcoinfoundation.org/20...
OP_RETURNs
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Provably prunable, no unspent output
OP_RETURN size limit
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
OP_RETURNs vs TCP/IP
OP_RETURNs TCP/IP Ratio
Address space 2160 (collisions) 232 → 2128 1×
Latency 5 seconds 1 second 5×
P...
So why use bitcoin?
Asynchronicity?
Bitcoin TCP/IP Email
Asynchronous Synchronous Asynchronous
Coin Sciences Ltd Metadata in the Blockchain ht...
Notarization
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Bitcoin TCP/IP
Blockchain None
Message chaining
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Bitcoin TCP/IP
Directed acyclic
graph
...
Privacy
Bitcoin TCP/IP
Addresses
Pseudonymous
but transaction
chain analysis
IP geolocation,
traceable to
individual via I...
Payment model
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Bitcoin TCP/IP
Per message,
with message
...
So bitcoin is suitable for…
•  Tiny payload
•  High value
– Hashes in general
•  Public broadcast
•  Permanently recorded
...
Financial transactions
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Document notarization
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Bitproof, BlockSign, La Preuve, P...
Historical records
•  Blog post about stuff in blockchain
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.or...
Email with scarcity?
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Universal family tree?
•  Show a family tree (DAG)
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
http...
0
5
10
15
20
25xxxx
26xxxx
27xxxx
28xxxx
29xxxx
30xxxx
31xxxx
32xxxx
33xxxx
34xxxx
35xxxx
36xxxx
37xxxx
Bitcoin block numb...
OP_RETURNs to block 375000
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
27%
17%
9%
3%2%
2%
40%
Open%...
CoinSpark
CoinSpark
•  Rich OP_RETURN protocol
– Multiple metadata per OP_RETURN
•  Version 1.0 — September 2014
– Assets = lightwei...
CoinSpark assets
•  Assets via OP_RETURN metadata
– Not connected to bitcoin quantity
•  Genesis metadata:
– Quantity, iss...
CoinSpark assets for users
•  Lightweight wallet
•  Asset web page
– View in browser
– Hidden metadata
– Domain authentica...
SparkBit wallet
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Asset web page
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Asset contract
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Bitcoin transaction model
Signed by Alice
Alice 10.000
Bob 2.000
Alice 7.999
Miner 0.001
Coin Sciences Ltd Metadata in the...
CoinSpark asset model
•  Multiple assets per output
– Low burden on network
– No accidental loss
•  Default: all assets to...
Example asset transaction
Signed by Alice
Alice 0.007
Bob 0.001
Alice 0.005
OP_RETURN
Miner 0.001
A
B
C
B
A
C
B
Output 1
C...
CoinSpark messages
•  Attach text and/or files to a bitcoin or
CoinSpark asset transaction
•  Message discovery via OP_RET...
CoinSpark messages vs email
•  Hash proves message authenticity
•  Notarization of message on blockchain
– Contracts, invo...
CoinSpark OP_RETURN format
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
53	
   50	
   4B	
   CoinSpa...
Metadata opcodes
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
61	
   7F	
  —
67	
  
72	
  
74	
  
80...
Every byte is sacred
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Every byte is sacred
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
Only encode surprises
000 = omit fields. If this is the first color transfer, assume input and output indices of 0.
Otherw...
Mantissa and exponent
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
625 trillion = 625×1012
??1100100...
Common domain strings
www.	
  
.at	
  
.au	
  
.be	
  
.biz	
  
.br	
  
.ca	
  
.ch	
  
.cn	
  
.co.jp	
  
.co.kr	
  
.co....
More domain name compression
•  38 valid characters
– 0 to 9, a to z, -­‐ .	
  
•  Two terminator characters ⇒ 40
– http:/...
Variable hash length ≥ 96 bits
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
350,000,000 × 109 × 8640...
CoinSpark for Developers
•  Fully open source (MIT/AGPL)
•  Multilingual libraries
– C/C++, Go, Java, JS, PHP, Python, Rub...
Back to the start…
What is the intrinsic
value of a bitcoin?
Coin Sciences Ltd Metadata in the Blockchain http://coinspark...
0.0
0.2
0.4
0.6
0.8
1.0
1.2
2011 2012 2013 2014 2015 2016 2017 2018 2019
Average block size (MB)
Coin Sciences Ltd Metadat...
What happens then?
•  Transactions compete for confirmation
– Bidding via miner fee, paid only in bitcoin
•  Real price di...
So: bitcoin = global
bidding power for
embedding data in
the blockchain.
Coin Sciences Ltd Metadata in the Blockchain http...
More from Coin Sciences
MultiChain
•  Private blockchain platform
– Targeted at financial sector
– Drop-in replacement for Bitcoin Core
•  Easy an...
Coin Secrets – coinsecrets.org
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
php|python-OP_RETURN
Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
•  Send OP_RETURN using Bitcoin Co...
Questions?
Upcoming SlideShare
Loading in …5
×

Metadata in the Blockchain: The OP_RETURN Explosion

17,651 views

Published on

With the addition of OP_RETURN outputs in version 0.9, it became possible to attach arbitrary pieces of information to bitcoin transactions. This turns bitcoin into a low-level communications protocol, just like TCP/IP, on which many new applications can be built.

Despite its powerful features, bitcoin is also limited, costly and inefficient compared to TCP/IP. After discussing which sorts of applications make this trade-off worthwhile, we talk about CoinSpark, a new open source protocol for enhancing bitcoin transactions, which makes extensive use of OP_RETURNs.

Published in: Technology
  • Hi Dima, there a many differences, so it's hard to know where to start. CoinSpark is fully decentralized, so you don't need us at all. It's designed for lightweight wallets (like SparkBit) which communicate directly with the bitcoin network. It is more scalable because every asset can be tracked independently of any other asset. It has a lower burden on the bitcoin network, because one transaction output can contain many different assets. Contracts are properly notarised on the blockchain in genesis transactions. Please feel free to get in touch via http://coinspark.org/contact-us/ and I'll be happy to share more information.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Could you explain key difference with Open Assets?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Metadata in the Blockchain: The OP_RETURN Explosion

  1. 1. Metadata in the Blockchain: The OP_RETURN Explosion Coin Sciences Ltd http://coinspark.org/
  2. 2. If Bitcoin = Gold 2.0 then … What is the intrinsic value of a bitcoin? Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  3. 3. What has gone wrong? (1) Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  4. 4. Early Internet growth Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ http://homes.cs.washington.edu/~lazowska/faculty.lecture/ innovation/hpcc/internet/hosts.html
  5. 5. What has gone wrong? (2) Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  6. 6. Gartner hype cycle Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  7. 7. What has gone wrong? (3) Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ 3% (PayPal)
  8. 8. What is bitcoin for? Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  9. 9. A hypothesis…
  10. 10. Bitcoin as communication Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  11. 11. What can we send? Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ An expensive way to encode information
  12. 12. Fake addresses Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Permanent burden on unspent output list
  13. 13. Multisig addresses (1 of …) Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Temporary burden on unspent output list
  14. 14. The OP_RETURN decision Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ https://bitcoinfoundation.org/2013/10/core-development-update-5/
  15. 15. OP_RETURNs Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Provably prunable, no unspent output
  16. 16. OP_RETURN size limit Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  17. 17. OP_RETURNs vs TCP/IP OP_RETURNs TCP/IP Ratio Address space 2160 (collisions) 232 → 2128 1× Latency 5 seconds 1 second 5× Packet size 40 bytes 1.5 KB 36× Bandwidth ~100 bytes/s (50% of network!) 5 MB/s (50% of 100 Mbps) 50,000× Cost $850,000/GB (at $315/BTC) $0.10/GB 10,000,000× Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  18. 18. So why use bitcoin?
  19. 19. Asynchronicity? Bitcoin TCP/IP Email Asynchronous Synchronous Asynchronous Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  20. 20. Notarization Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Bitcoin TCP/IP Blockchain None
  21. 21. Message chaining Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Bitcoin TCP/IP Directed acyclic graph Request-response only
  22. 22. Privacy Bitcoin TCP/IP Addresses Pseudonymous but transaction chain analysis IP geolocation, traceable to individual via ISP Payloads Naked in public Private but seen by ISPs, switches Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  23. 23. Payment model Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Bitcoin TCP/IP Per message, with message Subscription or pay- per-use, separate
  24. 24. So bitcoin is suitable for… •  Tiny payload •  High value – Hashes in general •  Public broadcast •  Permanently recorded •  Non-instant •  Pay-as-you-go Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  25. 25. Financial transactions Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  26. 26. Document notarization Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Bitproof, BlockSign, La Preuve, ProveBit, Proof of Existence, Stampd, Stampery
  27. 27. Historical records •  Blog post about stuff in blockchain Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Lots more: http://www.righto.com/2014/02/ ascii-bernanke-wikileaks-photographs.html
  28. 28. Email with scarcity? Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  29. 29. Universal family tree? •  Show a family tree (DAG) Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ http://recursivediscursion.blogspot.com/2011/04/gentle-introduction-to-graph-theory.html
  30. 30. 0 5 10 15 20 25xxxx 26xxxx 27xxxx 28xxxx 29xxxx 30xxxx 31xxxx 32xxxx 33xxxx 34xxxx 35xxxx 36xxxx 37xxxx Bitcoin block numbers (each column ~70 days) OP_RETURNs per block Bitcoin 0.9 released 19th March 2014 More at: coinsecrets.org Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  31. 31. OP_RETURNs to block 375000 Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ 27% 17% 9% 3%2% 2% 40% Open%Assets% Blockchain%ID% CoinSpark% Ascribe% Proof%of%Existence% Factom% Other%
  32. 32. CoinSpark
  33. 33. CoinSpark •  Rich OP_RETURN protocol – Multiple metadata per OP_RETURN •  Version 1.0 — September 2014 – Assets = lightweight scalable colored coins – Payment references •  Version 2.0 — February 2015 – Transaction attachments / messaging •  Version 3.0: simpler addressing, … Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  34. 34. CoinSpark assets •  Assets via OP_RETURN metadata – Not connected to bitcoin quantity •  Genesis metadata: – Quantity, issuer transaction fees – Compressed web page URL – Hash of contract and key params •  Transfer metadata: – Reference to genesis, quantity, outputs Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  35. 35. CoinSpark assets for users •  Lightweight wallet •  Asset web page – View in browser – Hidden metadata – Domain authenticates issuer •  Asset contract – Ready US + UK templates – Customizable Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  36. 36. SparkBit wallet Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  37. 37. Asset web page Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  38. 38. Asset contract Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  39. 39. Bitcoin transaction model Signed by Alice Alice 10.000 Bob 2.000 Alice 7.999 Miner 0.001 Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  40. 40. CoinSpark asset model •  Multiple assets per output – Low burden on network – No accidental loss •  Default: all assets to last output •  Metadata sends to other outputs – 40 bytes: up to 3 assets, unlimited outputs •  Asset independence ⇒ scalability – Issuer provides tracking server for SPV Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  41. 41. Example asset transaction Signed by Alice Alice 0.007 Bob 0.001 Alice 0.005 OP_RETURN Miner 0.001 A B C B A C B Output 1 Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ 150 60 60 90
  42. 42. CoinSpark messages •  Attach text and/or files to a bitcoin or CoinSpark asset transaction •  Message discovery via OP_RETURN – Compressed URL / IP of delivery server – Outputs for which message intended – Hash of message + salt •  Open source delivery server – Federated, non-centralized model Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  43. 43. CoinSpark messages vs email •  Hash proves message authenticity •  Notarization of message on blockchain – Contracts, invoices, digital delivery •  Also: public messages – Broadcast content + proof of existence •  Future: message encryption – Requires public key, not just bitcoin address •  Challenge: identity (Openname?) Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  44. 44. CoinSpark OP_RETURN format Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ 53   50   4B   CoinSpark marker (“SPK”) 61   FF  — Last metadata opcode ···· Last metadata (until end of script) 01   60   Length of this metadata section— 61   FF  — Metadata opcode ···· Metadata (up to 95 bytes) *
  45. 45. Metadata opcodes Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ 61   7F  — 67   72   74   80   EF  — Reserved for CoinSpark Asset genesis (“g”) Payment reference (“r”) Asset transfer (“t”) Your application? 6D   Message pointer (“m”)
  46. 46. Every byte is sacred Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  47. 47. Every byte is sacred Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  48. 48. Only encode surprises 000 = omit fields. If this is the first color transfer, assume input and output indices of 0. Otherwise take the indices from the previous color transfer. 001 = omit fields. If this is the first color transfer, assume input index 0 and output index 1. Otherwise take the indices from the previous color transfer and increment the output index only. 010 = omit fields. If this is the first color transfer, assume input index 1 and output index 0. Otherwise take the indices from the previous color transfer and increment the input index only. 011 = omit input index and use 1 byte for output index. If this is the first color transfer, assume input index 0. Otherwise use the same input index as the previous color transfer. 100 = omit output index and use 1 byte for input index. If this is the first color transfer, assume output index 0. Otherwise use the same output index as the previous color transfer. 101 = use 1 byte for input index, 1 byte for output index. 110 = use 1 byte for input index, 2 bytes for output index. 111 = use 2 bytes for input index, 2 bytes for output index. Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  49. 49. Mantissa and exponent Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ 625 trillion = 625×1012 ??11001001110001  
  50. 50. Common domain strings www.   .at   .au   .be   .biz   .br   .ca   .ch   .cn   .co.jp   .co.kr   .co.uk   .co.za   .co   .com.ar   .com.au   .com.br   .com.cn   .com.mx   .com.tr   .com.tw   .com.ua   .com   .cz   .de   .dk   .edu   .es   .eu   .fr   .gov   .gr   .hk   .hu   .il   .in   .info   .ir   .it   .jp   .kr   .me   .mx   .net   .nl   .no   .org   .pl   .ps   .ro   .ru   .se   .sg   .tr   .tv   .tw   .ua   .uk   .us   .vn     Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  51. 51. More domain name compression •  38 valid characters – 0 to 9, a to z, -­‐ .   •  Two terminator characters ⇒ 40 – http:// vs https://   •  403 = 64000 < 65536 = 216 – So 3 characters per byte pair •  Special case: IPv4 address – Obvious encoding in 4 bytes Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  52. 52. Variable hash length ≥ 96 bits Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ 350,000,000 × 109 × 86400 × 365 × 7178 = 296
  53. 53. CoinSpark for Developers •  Fully open source (MIT/AGPL) •  Multilingual libraries – C/C++, Go, Java, JS, PHP, Python, Ruby •  Fully decentralized – Server-side elements federated • Let’s do for bitcoin what the web did for TCP/IP Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  54. 54. Back to the start… What is the intrinsic value of a bitcoin? Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  55. 55. 0.0 0.2 0.4 0.6 0.8 1.0 1.2 2011 2012 2013 2014 2015 2016 2017 2018 2019 Average block size (MB) Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ Current limit: 1 MB Economic prehistory Economic reality
  56. 56. What happens then? •  Transactions compete for confirmation – Bidding via miner fee, paid only in bitcoin •  Real price discovery – Econ 101: until supply = demand •  If enough transactions (notarization?) are worth $10 to sender, all will cost that – No more cups of coffee! •  Increasing block size limit just delays this Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  57. 57. So: bitcoin = global bidding power for embedding data in the blockchain. Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  58. 58. More from Coin Sciences
  59. 59. MultiChain •  Private blockchain platform – Targeted at financial sector – Drop-in replacement for Bitcoin Core •  Easy and quick deployment – Custom network parameters •  Permission management •  Native asset support •  Stable alpha now available Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  60. 60. Coin Secrets – coinsecrets.org Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/
  61. 61. php|python-OP_RETURN Coin Sciences Ltd Metadata in the Blockchain http://coinspark.org/ •  Send OP_RETURN using Bitcoin Core – Doing it yourself is hard work! •  Store and retrieve any data in blockchain – Uses OP_RETURNs in chained transactions – Returns reference like 356115-052075 for easy and fast retrieval •  Use on command line or library – PHP and Python now, Ruby to come
  62. 62. Questions?

×