Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Bitcoin, the Blockchain, and Open Source
1. 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
2. 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
5. 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
8. 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.
15. 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 input
should completely change the
output.
19. 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.
20. 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
21. 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 item
equal 62e90…
compare top stack
item with register
check signature of top
stack item
26. Bitcoin Scripting: Multi-Sig
Objective: implement multi-factor authentication to prevent loss or theft in the
event of a security compromise.
2 519d4ba… ab19bef… d3ba14d… 3 OP_CHECKMULTISIGVERIFY
27. Bitcoin Scripting: Multi-Sig
Objective: 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 signatures
required all the public keys
allowed to sign
number of total
keys provided
verify signatures, continue if
minimum is met
31. Bitcoin Scripting: Data
Objective: store some data permanently.
OP_RETURN Hello, world!
return opcode
data to return
As long as someone, somewhere is
running the Bitcoin client, this data
cannot be deleted!
38. Questions?
or comments. I’ll take those too.
Eric Martindale · All Things Open · Raleigh, NC · October 19th, 2015
martindale
martindale
eric@decentralize.fm