1. enemy of the banks
COIN PUNK
Obsoleting the banking industry
with HTML5 and JavaScript
Kyle Drake
Tuesday, October 15, 13
2. What is Coinpunk?
• First open-source Bitcoin web wallet
service
• Designed and intended for power
users and developers
• Funded by a grant from the Bitcoin
Foundation (and others)
Tuesday, October 15, 13
4. Coinpunk “Old School”
• Ruby application
• Bitcoind (official client) JSON RPC
does all heavy lifting
• Implemented in 4 days
• Stored all private keys on server
• Works. But there’s a Serious
security risk.
Tuesday, October 15, 13
5. Major Bitcoin Wallet Thefts
•
July 2011: Bitomat “loses” database. $220,000
USD
•
August 2011: MyBitcoin hacked. $800,000
•
August 2012: Bitcoinica hacked. $460,000
•
March 2012: Linode servers trawled. $250,000
•
Sept 2012: BitFloor hacked. $250,000
•
April 2013: InstaWallet hacked. $4.6 million
Tuesday, October 15, 13
6. We’re starting to think
putting the private keys
on a central server is a
really bad idea. I can’t
imagine why.
Tuesday, October 15, 13
7. But web interfaces are
easy to use. They’re
lightweight. They’re
universal. They make
sense to non-tech
users.
Tuesday, October 15, 13
8. How can we provide a
web interface while
reducing server trust?
Tuesday, October 15, 13
9. The Problem
“Bitcoin wallets” that store
the private keys on the
server are not wallets.
They are Bitcoin accounts.
Tuesday, October 15, 13
10. The Solution
Move the wallet encryption
over to the browser.
Yes, really.
No, seriously!
Tuesday, October 15, 13
16. Coinpunk “New Wave”
Browser generates Bitcoin
private keys, encrypts them,
sends encrypted payload to
server for storage/backup.
Tuesday, October 15, 13
17. Coinpunk “New Wave”
Browser also creates all the
transactions. The server
(and therefore hackers)
cannot spend the user’s
money.
Tuesday, October 15, 13