39
Bitcoin, the Blockchain, and Open Source Why Finance is the Next Frontier for Open Source Eric Martindale · All Things Open · Raleigh, NC · October 19th, 2015

Bitcoin, the Blockchain, and Open Source

Embed Size (px)

Citation preview

Bitcoin, the Blockchain,and Open Source

Why Finance is the Next Frontier for Open Source

Eric Martindale · All Things Open · Raleigh, NC · October 19th, 2015

What’s the problem?

Money as DebtLegacy Banking Infrastructure Confabulation of Money & State

● slow to adapt

● highly expensive

● possibly malicious

● perverse incentives

● not very scalable

● possibly malicious

● perpetual interest

● questionable merit

● probably malicious

What’s the problem?

private key

Ledgers

Shared Ledgers?

Problem: each party must trust all of the others; any malicious actor “cooking the books” can lie about how much they have!

Sally Bank

KT Bank Co.

Bob Co.

Alice’s Credit

Leaping Lou Investments

Byzantine Generals’ Problem

Byzantine Generals’ Problem

Byzantine Fault:Any fault presenting different symptoms to different observers.

Byzantine Generals’ Problem

Byzantine Fault:Any fault presenting different symptoms to different observers.

Byzantine Failure:The loss of a system service due to a Byzantine fault in systems that require consensus.

Byzantine Generals’ Problem

Solution: Open Source All The Things!

Cryptography

Elliptic-Curve Cryptography

Asymmetric Cryptography

Bitcoin Transactions

Hash Functions

Hash Functions, Important Features

Cryptographically-strong hash functions must be easy to compute, but impossible to reverse.

A one-way function with no inverse function.

Cryptographically-strong hash functions should therefore have unpredictable output, so they cannot be easily reversed.

Changing one byte of the inputshould completely change the output.

Bitcoin Mining000000000000000011d1ae8e1400bc7d7abc19de5769270083841b6b3...

arbitrary criteriaMeeting these arbitrary

criteria will grant you

50 25new Bitcoin.

Bitcoin Mining

Bitcoin Mining

Bitcoin Scripting (basic transaction)Objective: verify that the original owner of the tokens being redeemed is in possession of the same private key as this new redemption transaction.

Bitcoin Scripting (basic transaction)Objective: verify that the original owner of the tokens being redeemed is in possession of the same private key as this new redemption transaction.

OP_DUP OP_HASH160 62e907b15cbf27d… OP_EQUALVERIFY OP_CHECKSIG

Bitcoin Scripting (basic transaction)Objective: verify that the original owner of the tokens being redeemed is in possession of the same private key as this new redemption transaction.

OP_DUP OP_HASH160 62e907b15cbf27d… OP_EQUALVERIFY OP_CHECKSIG

duplicate top stack item(tx hash)

hash the top stack item

make top stack itemequal 62e90…

compare top stackitem with register

check signature of topstack item

Bitcoin Scripting (basic transaction)

private key

Bitcoin Scripting (basic transaction)

private key a26ec7025e8f7f01c07d2dfcdb2256ef00…

4356d540433581084a1b3ca91cca9ac13d…public key

Bitcoin Scripting: Multi-Sig

Bitcoin Scripting: Multi-SigObjective: implement multi-factor authentication to prevent loss or theft in the event of a security compromise.

Bitcoin Scripting: Multi-SigObjective: implement multi-factor authentication to prevent loss or theft in the event of a security compromise.

2 519d4ba… ab19bef… d3ba14d… 3 OP_CHECKMULTISIGVERIFY

Bitcoin Scripting: Multi-SigObjective: implement multi-factor authentication to prevent loss or theft in the event of a security compromise.

2 519d4ba… ab19bef… d3ba14d… 3 OP_CHECKMULTISIGVERIFY

number of signaturesrequired all the public keys

allowed to sign

number of totalkeys provided

verify signatures, continue if minimum is met

Use Cases

Bitcoin Scripting: DataObjective: store some data permanently.

OP_RETURN Hello, world!

return opcodedata to return

Bitcoin Scripting: DataObjective: store some data permanently.

OP_RETURN Hello, world!

return opcodedata to return

As long as someone, somewhere is running the Bitcoin client, this data cannot be deleted!

Bitcoin Scripting: DataBitrated

https://www.bitrated.com/

Smart ContractsObjective: write some arbitrary program and run it without trusting a server.

Sidechains

Sidechains

Use CasesSmart Contracts:

https://en.bitcoin.it/wiki/Contract

Multi-sig:

https://copay.io

Sidechains:

https://blockstream.com

Questions?or comments. I’ll take those too.

Eric Martindale · All Things Open · Raleigh, NC · October 19th, 2015

martindale

martindale

[email protected]

Open Source Finance