0
Leganés
6 Febrero 2013

Alberto Gómez Toribio ( @gotoalberto )

Bitcoin protocol for developers

Except where otherwise no...
Coinffeine.com

Leganés
6 Febrero 2013

Alberto Gómez

@gotoalberto

“OpenData and Bitcoin Developer on fire.
Great coders...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

What is the Bitcoin Protocol?
● Network protocol
○ B...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Network protocol
● Blockchain
○ The Blockchain is a ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Network protocol
● Other services:
○ The Blockchain ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Network protocol
● Colored Coins:
○ The Blockchain i...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Transactions Mechanic
● Transaction anatomy
{

txid
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Bitcoin Script
● It Allows to define how an output w...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key Hash)

OP_DUP ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Signature)

(Public Key)
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Signature)

(Public Key)
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Signature)

(Public Key)
...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key)

(Public Key ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key)

(Public Key ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key Hash)

OP_DUP ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key Hash)

OP_DUP ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key Hash)

OP_HASH...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key Hash)

OP_HASH...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key Hash)

cb1f48…...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
(Public Key Hash)

cb1f48…...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
OP_EQUALVERIFY OP_CHECKSIG...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
OP_EQUALVERIFY OP_CHECKSIG...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
OP_CHECKSIG

Stack
(Public...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

How Bitcoin Script works?
OP_CHECKSIG

Stack
(Public...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

How Bitcoin Script works?
(EMPTY)

Stack
(EMPTY)

SUCCESS!

#Bitc...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<Sig> <PubKeyB>...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<Sig> <PubKeyB>...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<Sig> <PubKeyB>...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<PubKeyB> <7bb>...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<7bb> <5aa> OP_...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<5aa> OP_2DUP O...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_2DUP OP_HASH...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_HASH160 <aHa...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<aHash> OP_EQUA...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_EQUALVERIFY ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_SWAP
OP_HASH...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_HASH160 <bHa...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<bHash> OP_EQUA...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_EQUALVERIFY ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<1> OP_LEFT OP_...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_LEFT OP_SWAP...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_SWAP <1> OP_...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<1> OP_LEFT OP_...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_LEFT OP_ADD ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
OP_ADD <2>
OP_S...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

The sky is the limit! (Odd/Even Bet)
<2>
OP_SWAP OP_...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

The sky is the limit! (Odd/Even Bet)
OP_SWAP OP_MOD
OP_IF
OP_DUP ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

The sky is the limit! (Odd/Even Bet)
OP_MOD
OP_IF
OP_DUP OP_HASH1...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

The sky is the limit! (Odd/Even Bet)
OP_IF
OP_DUP OP_HASH160 <pub...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

The sky is the limit! (Odd/Even Bet)

OP_DUP OP_HASH160 <pubKeyBH...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

The sky is the limit! (Odd/Even Bet)
● Possible real use:
○ Rando...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Context: Oracles
● The oracle contract allow define ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Context: Oracles
● Example of a reversible payment u...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Context: Oracles
● Execution
TX2
in { TX1[0] }
out { 1 BTC
<SeurA...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Context: Oracles
● Execution
<OracleSig> <SamSig> <S...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Context: Oracles
● Execution
<SamSig> <SeurAPI(track...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Context: Oracles
● Execution
<SeurAPI(trackID) == ‘R...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Context: Oracles
● Execution

OP_HASH160 <ExternalScriptHash> OP_...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Context: Oracles
● Execution

<ExternalScriptHash> OP_EQUALSVERIF...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Context: Oracles
● Execution

OP_EQUALSVERIFY
<OraclePubKey> <Sam...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Context: Oracles
● Execution

<OraclePubKey> <SamPubKey> 2 OP_CHE...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Context: Oracles
● Execution

SUCCESS!

Stack

#BitcoinT3F
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Fees? Micro Payment Channels!
● Transactions from a ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
OUT {0: 1 BTC ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
OUT {0: 1 BTC ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
OUT {0: 1 BTC ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
OUT {0: 1 BTC ...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
O...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
O...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
O...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
O...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

Micro Payment Channels Mechanic
TX1
IN {0: 1 BTC
}
O...
Leganés
6 Febrero 2013

Bitcoin Protocol for Developers

#BitcoinT3F

THANKS!
● BigData is the current wave, P2P is the ne...
Upcoming SlideShare
Loading in...5
×

Bitcoin protocol for developerBitcoin Protocol for Developers

880

Published on

Introducción de Alberto Gómez al protocolo de Bitcoin y al lenguaje Bitcoin Scripting, el cual permite desarrollar características y comportamiento sobre el dinero y las transferencias de valor.

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
880
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
106
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "Bitcoin protocol for developerBitcoin Protocol for Developers"

  1. 1. Leganés 6 Febrero 2013 Alberto Gómez Toribio ( @gotoalberto ) Bitcoin protocol for developers Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0/ c_b_n_a
  2. 2. Coinffeine.com Leganés 6 Febrero 2013 Alberto Gómez @gotoalberto “OpenData and Bitcoin Developer on fire. Great coders are today’s rock stars. That’s it!” Alvaro Polo @apolovald “Software development enthusiast and aviation geek. Give me a higher-order function and I shall move the world.” A P2P Bitcoin exchange Sebastián Ortega @_sortega “Vocational coder since childhood, he will annoy you with concepts like "monad" and "actor model" but gets the work done.” Ximo Guanter “Theoretical computer science believer by night, pragmatic ship-it developer by day. My brain runs on glucose, caffeine, general abstract nonsense and type theory.” Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0/ c_b_n_a
  3. 3. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F What is the Bitcoin Protocol? ● Network protocol ○ Blockchain mining ○ Fees and commitment rules ○ Sharing protocol: Gossip, Bittorrent, Gnutella... ● Transactions Mechanics ○ Validations of the money source ○ Protocol to spend the money ○ Bitcoin Scripting
  4. 4. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Network protocol ● Blockchain ○ The Blockchain is a distributed ledger book ○ Create a Block in chain require a proof of work dc7047be… = SHA256(new_block_hash) ○ Forks are discarded, the most complex chain wins.
  5. 5. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Network protocol ● Other services: ○ The Blockchain is used to storage usernames. ○ Tweets are shared between users using a DHT protocol. ○ The older messages are discarded. ○ Incentive to generate blocks on Blockchain: Sponsored messages.
  6. 6. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Network protocol ● Colored Coins: ○ The Blockchain is used to storage key-value strings, as internet web domains / IP. ○ You can register a domain spending Namecoins. ○ The fee by register a name is decreased in time.
  7. 7. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 asm : d8f67a… …} …} vout …] : [ { value reqsigs scriptPubKey : : { 2.52 1 asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG addresses …} …] …} …} : [ 172D5w7C… ]
  8. 8. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { Transaction Id, changes when a field is changed or tx is signed. txid vout scriptSig : : { feff4b… 0 asm : d8f67a… …} …} vout …] : [ { value reqsigs scriptPubKey : : { 2.52 1 asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG addresses …} …] …} …} : [ 172D5w7C… ]
  9. 9. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, Locktime, Block or Time up to which this tx cannot be broadcasted. vin : [ { txid : feff4b… vout : 0 scriptSig { asm : d8f67a… …} …} …] vout : [ { value : 2.52 reqsigs : 1 scriptPubKey { asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG …} addresses : [ 172D5w7C… ] …} …] …}
  10. 10. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 TXid reference output for this input. asm : d8f67a… …} …} vout …] : [ { value reqsigs scriptPubKey : : { 2.52 1 asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG addresses …} …] …} …} : [ 172D5w7C… ]
  11. 11. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 Output number reference in previous tx asm : d8f67a… …} …} vout …] : [ { value reqsigs scriptPubKey : : { 2.52 1 asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG addresses …} …] …} …} : [ 172D5w7C… ]
  12. 12. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 asm : d8f67a… …} ScriptSig which unlock the connected OutputScript …} vout …] : [ { value reqsigs scriptPubKey : : { 2.52 1 asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG addresses …} …] …} …} : [ 172D5w7C… ]
  13. 13. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 asm : d8f67a… …} …} vout …] : [ { value reqsigs scriptPubKey : : { 2.52 1 Value to transfer. The difference with the summatory of inputs values is the fee. asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG addresses …} …] …} …} : [ 172D5w7C… ]
  14. 14. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 asm : d8f67a… …} …} vout …] : [ { value reqsigs scriptPubKey addresses …} …] …} : : { …} : Number of sigs required to broadcast this transaction. The signers are included in the “addresses” array. asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG 2.52 1 [ 172D5w7C… ]
  15. 15. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 asm : d8f67a… …} …} vout …] : [ { …} …] …} Script. It defines how the money can be spent and by whom. value : 2.52 reqsigs : 1 scriptPubKey { asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG …} addresses : [ 172D5w7C… ]
  16. 16. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Transactions Mechanic ● Transaction anatomy { txid : 5c084b… , locktime : 0, vin : [ { txid vout scriptSig : : { feff4b… 0 asm : d8f67a… …} …} vout …] : [ { value reqsigs scriptPubKey : : { 2.52 1 asm : OP_DUP OP_HASH160 cb1f48… OP_EQUALSVERIFY OP_CHECKSIG addresses …} …] …} …} : [ 172D5w7C… ]
  17. 17. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Bitcoin Script ● It Allows to define how an output will be spent and by whom. ● Is a non Turing-Complete language which is evaluated as a Stack, from left to right. ● It just allows to write pure functions (without context) ● Is a non Turing-Complete language which is evaluated with a stack machine.
  18. 18. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key Hash) OP_DUP OP_HASH160 cb1f48… OP_EQUALVERIFY OP_CHECKSIG
  19. 19. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Signature) (Public Key) bbba3f5… 172D5w7C… (Public Key Hash) OP_DUP OP_HASH160 cb1f48… OP_EQUALVERIFY OP_CHECKSIG
  20. 20. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Signature) (Public Key) bbba3f5… 172D5w7C… (Public Key Hash) OP_DUP OP_HASH160 cb1f48… Stack OP_EQUALVERIFY OP_CHECKSIG
  21. 21. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Signature) (Public Key) bbba3f5… 172D5w7C… (Public Key Hash) OP_DUP OP_HASH160 cb1f48… Stack OP_EQUALVERIFY OP_CHECKSIG
  22. 22. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key) (Public Key Hash) 172D5w7C… OP_DUP OP_HASH160 cb1f48… Stack (Signature) bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  23. 23. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key) (Public Key Hash) 172D5w7C… OP_DUP OP_HASH160 cb1f48… Stack (Signature) bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  24. 24. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key Hash) OP_DUP OP_HASH160 cb1f48… Stack (Public Key) (Signature) 172D5w7C… bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  25. 25. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key Hash) OP_DUP OP_HASH160 cb1f48… Stack (Public Key) (Signature) 172D5w7C… bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  26. 26. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key Hash) OP_HASH160 cb1f48… Stack (Public Key) (Public Key) (Signature) 172D5w7C… 172D5w7C… bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  27. 27. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key Hash) OP_HASH160 cb1f48… Stack (Public Key) (Public Key) (Signature) 172D5w7C… 172D5w7C… bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  28. 28. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key Hash) cb1f48… Stack (Public Key Hash) (Public Key) (Signature) cb1f48… 172D5w7C… bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  29. 29. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? (Public Key Hash) cb1f48… Stack (Public Key Hash) (Public Key) (Signature) cb1f48… 172D5w7C… bbba3f5… OP_EQUALVERIFY OP_CHECKSIG
  30. 30. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? OP_EQUALVERIFY OP_CHECKSIG Stack (Public Key Hash) (Public Key Hash) (Public Key) (Signature) cb1f48… cb1f48… 172D5w7C… bbba3f5…
  31. 31. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? OP_EQUALVERIFY OP_CHECKSIG Stack (Public Key Hash) (Public Key Hash) (Public Key) (Signature) cb1f48… cb1f48… 172D5w7C… bbba3f5…
  32. 32. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? OP_CHECKSIG Stack (Public Key) (Signature) 172D5w7C… bbba3f5…
  33. 33. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F How Bitcoin Script works? OP_CHECKSIG Stack (Public Key) (Signature) 172D5w7C… bbba3f5…
  34. 34. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers How Bitcoin Script works? (EMPTY) Stack (EMPTY) SUCCESS! #BitcoinT3F
  35. 35. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <Sig> <PubKeyB> <7bb> <5aa> OP_2DUP OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF
  36. 36. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <Sig> <PubKeyB> <7bb> <5aa> OP_2DUP OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Random diversion! @_sortega
  37. 37. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <Sig> <PubKeyB> <7bb> <5aa> OP_2DUP OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack
  38. 38. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <PubKeyB> <7bb> <5aa> OP_2DUP OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <Sig>
  39. 39. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <7bb> <5aa> OP_2DUP OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <PubKey> <Sig>
  40. 40. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <5aa> OP_2DUP OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <7bb> <PubKey> <Sig>
  41. 41. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_2DUP OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <5aa> <7bb> <PubKeyB> <Sig>
  42. 42. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_HASH160 <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <5aa> <7bb> <5aa> <7bb> <PubKeyB> <Sig>
  43. 43. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <aHash> OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <aHash> <7bb> <5aa> <7bb> <PubKeyB> <Sig>
  44. 44. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_EQUALVERIFY OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <aHash> <aHash> <5aa> <7bb> <7bb> <PubKeyB> <Sig>
  45. 45. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_SWAP OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <5aa> <7bb> <7bb> <PubKeyB> <Sig>
  46. 46. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_HASH160 <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <7bb> <5aa> <7bb> <PubKeyB> <Sig>
  47. 47. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <bHash> OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <bHash> <5aa> <7bb> <PubKeyB> <Sig>
  48. 48. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_EQUALVERIFY <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <bHash> <bHash> <5aa> <7bb> <PubKeyB> <Sig>
  49. 49. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <1> OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <5aa> <7bb> <PubKeyB> <Sig>
  50. 50. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_LEFT OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <1> <5aa> <7bb> <PubKeyB> <Sig>
  51. 51. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_SWAP <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <5> <7bb> <PubKeyB> <Sig>
  52. 52. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <1> OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <7bb> <5> <PubKeyB> <Sig>
  53. 53. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_LEFT OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <1> <7bb> <5> <PubKeyB> <Sig>
  54. 54. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) OP_ADD <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <7> <5> <PubKeyB> <Sig>
  55. 55. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F The sky is the limit! (Odd/Even Bet) <2> OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <12> <PubKeyB> <Sig>
  56. 56. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers The sky is the limit! (Odd/Even Bet) OP_SWAP OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <2> <12> <PubKeyB> <Sig> #BitcoinT3F
  57. 57. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers The sky is the limit! (Odd/Even Bet) OP_MOD OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <12> <2> <PubKeyB> <Sig> #BitcoinT3F
  58. 58. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers The sky is the limit! (Odd/Even Bet) OP_IF OP_DUP OP_HASH160 <pubKeyAHash> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF Stack <0> <PubKeyB> <Sig> #BitcoinT3F
  59. 59. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers The sky is the limit! (Odd/Even Bet) OP_DUP OP_HASH160 <pubKeyBHash> OP_EQUALVERIFY OP_CHECKSIG Stack <PubKeyB> <Sig> (Standard Script) #BitcoinT3F
  60. 60. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers The sky is the limit! (Odd/Even Bet) ● Possible real use: ○ Random user to pay the transaction fees. ○ Help to define asymmetric scenario (secrets) #BitcoinT3F
  61. 61. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Context: Oracles ● The oracle contract allow define how the money is spent including external state. ○ Allows to make reversible transactions. ○ Allow to pay, only if an external condition is true, for example the result of a search in google, or the API SEUR response.
  62. 62. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Context: Oracles ● Example of a reversible payment using a Oracle ○ First you generate (in private) a multisig transaction as this: TX1 in { 1 BTC BOB } out { 1 BTC MULTISIGVERIFY BOB SAM } ○ Then you must obtain signed from counterpart: TX2 in { TX1[0] } out { 1 BTC TX3 in { TX1[0] } out { 1 BTC <SeurAPI(trackID) == ‘RETURNED’> OP_HASH160 <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY } <SeurAPI(trackID) == ‘DELIVERED’> OP_HASH160 <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <BobPubKey> 2 OP_CHECKMULTISIGVERIFY }
  63. 63. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Context: Oracles ● Execution TX2 in { TX1[0] } out { 1 BTC <SeurAPI(trackID) == ‘RETURNED’> OP_HASH160 <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY } #BitcoinT3F
  64. 64. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Context: Oracles ● Execution <OracleSig> <SamSig> <SeurAPI(trackID) == ‘RETURNED’> OP_HASH160 <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY Stack
  65. 65. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Context: Oracles ● Execution <SamSig> <SeurAPI(trackID) == ‘RETURNED’> OP_HASH160 <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY Stack <OracleSig>
  66. 66. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Context: Oracles ● Execution <SeurAPI(trackID) == ‘RETURNED’> OP_HASH160 <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY Stack <SamSig> <OracleSig>
  67. 67. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Context: Oracles ● Execution OP_HASH160 <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY Stack <SeurAPI(trackID) == ‘RETURNED’> <SamSig> <OracleSig> #BitcoinT3F
  68. 68. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Context: Oracles ● Execution <ExternalScriptHash> OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY Stack <ScriptHash> <SamSig> <OacleSig> #BitcoinT3F
  69. 69. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Context: Oracles ● Execution OP_EQUALSVERIFY <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY Stack <ExternalScriptHash> <ScriptHash> <SamSig> <OracleSig> #BitcoinT3F
  70. 70. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Context: Oracles ● Execution <OraclePubKey> <SamPubKey> 2 OP_CHECKMULTISIGVERIFY Stack <SamSig> <OracleSig> #BitcoinT3F
  71. 71. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Context: Oracles ● Execution SUCCESS! Stack #BitcoinT3F
  72. 72. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Fees? Micro Payment Channels! ● Transactions from a checkpoint without broadcast ● Allows commit money safely ● Allows to pay on demand by the second ● For example: decentralized WiFi Hotspots or subcontracting services in third world countries.
  73. 73. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } #BitcoinT3F
  74. 74. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 #BitcoinT3F
  75. 75. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 #BitcoinT3F
  76. 76. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 #BitcoinT3F
  77. 77. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 IN {TX1[0] 1 BTC } OUT {0: 0,9 BTC BOB 0,1 BTC SAM }
  78. 78. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 IN {TX1[0] 1 BTC } OUT {0: 0,8 BTC BOB 0,2 BTC SAM }
  79. 79. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 IN {TX1[0] 1 BTC } OUT {0: 0,7 BTC BOB 0,3 BTC SAM }
  80. 80. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } IN {TX1[0] 1 BTC } OUT {0: 0,6 BTC BOB 0,4 BTC SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 BREAK!
  81. 81. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F Micro Payment Channels Mechanic TX1 IN {0: 1 BTC } OUT {0: 1 BTC MULTISIG BOB SAM } TX2 IN {TX1[0]: 1 BTC } OUT { 0 : 1 BTC BOB } LOCKTIME : 18 IN {TX1[0] 1 BTC } OUT {0: 0,6 BTC BOB 0,4 BTC SAM }
  82. 82. Leganés 6 Febrero 2013 Bitcoin Protocol for Developers #BitcoinT3F THANKS! ● BigData is the current wave, P2P is the next. ● APIs and P2P are the next challenge on finantial world. ● Bitcoin technology and protocol is here to stay.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×