Upload
all-things-open
View
311
Download
0
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
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 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.
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 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 a26ec7025e8f7f01c07d2dfcdb2256ef00…
4356d540433581084a1b3ca91cca9ac13d…public key
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
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!
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