bitcoin, beyond payments

17
Bitcoin Beyond Payments 1 Pierre Noizat PAYMIUM

Upload: pierre-noizat

Post on 29-Jan-2015

107 views

Category:

Technology


2 download

DESCRIPTION

Bitcoin technology empowers entrepreneurs with a lot more than a new currency and a simpler, faster way to pay online. Understanding bitcoin scripts is the key to unlock new ideas and business models.

TRANSCRIPT

Page 1: Bitcoin, beyond payments

Bitcoin Beyond Payments

���1

Pierre Noizat PAYMIUM

Page 2: Bitcoin, beyond payments

• ..store and transfer value by yourself

• decide whether or not you wish to share your transaction data

• sell goods or services online

• reduce transaction costs

• facilitate access to financial services

Bitcoin can be used to..

���2

Page 3: Bitcoin, beyond payments

Why it’s a big deal..

���3

Page 4: Bitcoin, beyond payments

Debt Money vs. Commodity Money

6

Monnaie «commodité»Monnaie élastique

Generation Transaction Issuance of a debt Mathematical extraction

Money Supply Graph

Open source software/ Public Ledger

NO YES

���4

Page 5: Bitcoin, beyond payments

���5

Centralized vs. Decentralized

Google, Facebook, Amazon, Banks, etc.

Bitcoin, email, web, etc.

Page 6: Bitcoin, beyond payments

Bitcoin Address 1CC3X2gu58d6wXUWMffpuzN9JAfTUWu4Kj

Private Key K = 5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF

The public key P is a point (x,y): P = K*G where G is a base point on the elliptic curve specified by Bitcoin: y2= x3+7. x and y are two 256-bit integers.

Public Key (x,y) = !04588D202AFCC1EE4AB5254C7847EC25B9A135BBDA0F2BC69EE1A714749FD77DC!9F88FF2A00D7E752D44CBE16E1EBCF0890B76EC7C78886109DEE76CCFC8445424

���6

Page 7: Bitcoin, beyond payments

Chain of Transactions

���7

Page 8: Bitcoin, beyond payments

Blockchain Simplified View

Source: Jan Vornberger

���8

Generation = 50 Total Fees = 6

Input = 25 Outputs = 24

Fee = 1

Inputs = 20+50 Outputs = 65

Fee = 5

Page 9: Bitcoin, beyond payments

���9

Proof of work: make a hash difficult to compute

Alice pays Bob 20 BTC, nonce is 00001 Hash = aaa3d179f4....

Alice pays Bob 20 BTC, nonce is 00381 d29d79158....

Alice pays Bob 20 BTC, nonce is 00942 cc36410c9....

Alice pays Bob 20 BTC, nonce is 02711 e54b06b6....

....

Alice pays Bob 20 BTC, nonce is 9443527 000006ba....

Difficulty

Page 10: Bitcoin, beyond payments

The Mining Challenge: !

Difficulty is increased if more computing power is added so that

a correct answer is found every ten minutes on average

���10

Page 11: Bitcoin, beyond payments

���11

A chain of proof of work becomes practically tamperproof

Alice pays Bob 20 BTC

nonce value = 9443527

000006ba....

Bob pays Chuck 10 BTC !

nonce value = 6639107

000006ba....

00000adf5....

Chuck pays Denis 6 BTC !

nonce value = 821139

00000adf5....

000008ce2....

Rewriting the first message entails rewriting all subsequent messages.

Hash Hash Hash

Message 1 Message 2 Message 3

Page 12: Bitcoin, beyond payments

!

!

• The bitcoin «group» payment address (e.g 1PierreFUi7RuFkkA812MQyRruDZhzzh7Y for Pierre’s birthday party) is generated by the organizer and published on social networks.

• All donators can follow the payments sent to that address (e.g via blockchain.info): no sign up is required.

• Each donator can get a proof of payment and sign a greetings message with the private key that was used to pay.

• Only the organizer can spend the donated bitcoins.

=

Group Payments

���12

Page 13: Bitcoin, beyond payments

Bitcoin Contracts: Crowdfunding

���13

Page 14: Bitcoin, beyond payments

Contract example: crowdfunding 100 BTC

1. To make a pledge, you create a new transaction spending some of your coins to the announced crowdfunding address, but you do not broadcast it.

2. There cannot be any change: spend the desired amount to one of your own addresses.

3. The input script signature is signed with SIGHASH_ALL | SIGHASH_ANYONECANPAY.

4. The output value is set to 100 BTC: this is not yet a valid transaction because the output value is larger than the input value.

5. Do not broadcast the transaction: simply upload it to the entrepreneur's server.

6. The entrepreneur saves it and updates its count of how many coins have been pledged.

7. Once the server has enough coins, it merges the separate transactions together into a new transaction and broadcast it. The new transaction has the same output as the output on each contributed transaction. The inputs to the transaction are collected from the contributed pledges.

The SIGHASH_ALL flag is the default and means « sign all of the outputs ». SIGHASH_ANYONECANPAY is an additional modifier that means the signature only covers the input it’s found in - the other inputs can be anything.By combining these flags together, you are able to create a signature that is valid even when other inputs are added, but breaks if the outputs or other properties of the transaction are changed.

���14

Page 15: Bitcoin, beyond payments

���15

Source: Oleg Andreev

Page 16: Bitcoin, beyond payments

���16

Source: Oleg Andreev

Crowdfunding 100 BTC

Page 17: Bitcoin, beyond payments

[email protected]

���17

Pierre Noizat PAYMIUM