Bitcoin Forum
November 07, 2024, 03:45:26 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Proposal for secure, permanently offline wallet (with money sending support)  (Read 864 times)
mikernet (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
June 24, 2011, 12:09:38 PM
 #1

After reviewing the protocol, I can tell you that a completely offline wallet is entirely possible on the client implementation level, even for sending coins out from the wallet. Your online computer is used to track your balance and transactions, your COMPLETELY offline computer/wallet device is used to validate send requests via USB key. Perhaps if I have time after the summer after wrapping up some other projects, and if this hasn't been done by then, I will contribute to the client code to support this scenario.

Here is how it works:

Setup:

Offline device: Generate wallet file with public/private keys. Put public key on USB key.
Online computer: Track my wallet balance with the public key.

Receiving money:

Any computer: Send money to wallet with the public key.
Online computer: ooo, you have money! Look at your new awesome balance!

Sending money:

Online computer: Create "send money request" on a USB key that contains the amount and relevant blockchain(s) for the coins you want to send.
Offline device: plug in the USB key, compute the new updated blockchains using the private key.
Online computer: plug in USB key, propogate new blockchains across the network.

---

It would also be fairly easy to create a "secure wallet device" that has a fingerprint reader on it and a USB port, nothing else. The device stores your public and private keys, lets you export an encrypted copy to the USB key for backup purposes. You can store large amounts of money on it, keep it in a safety deposit box until you want to pull some money out. When you do, jump on your PC, fire up your client that is tracking the wallet from the public key and put in a USB key, hit the "send money" button, enter an amount. Plug into your secure wallet device, scan your finger, plug back into your PC and off go the new updated blockchains. Your private key never sees an internet connected device.

Thoughts?

--Mike
mikernet (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
June 24, 2011, 12:13:20 PM
Last edit: June 24, 2011, 12:36:15 PM by mikernet
 #2

Actually, I can take this one step further - your secure wallet device can plug directly into the computer and compute the updated blockchains, send them back. When you want to send money, you just plug the device into your computer and scan your finger to approve the transaction. The device is designed to never send the private key out of the USB port unless you physically flip a switch to enable encrypted backup of your wallet file.

[EDIT] If its unclear, the physical switch makes it impossible for a virus that has complete control over your PC to affect the money transfer. The device can have an LCD that says "swipe finger to approve the following transaction: 100BTC to account 9fj57whf754ivn484cdfmsweh".
Insti
Sr. Member
****
Offline Offline

Activity: 294
Merit: 252


Firstbits: 1duzy


View Profile
June 24, 2011, 12:35:32 PM
 #3

I'm fairly sure they offline computer doesn't even need a copy of the block chain to send a transaction.

https://en.bitcoin.it/wiki/Transactions
mikernet (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
June 24, 2011, 12:38:38 PM
 #4

Yeah, sorry, it would just need the previous TX value so it can send back the signing hash.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!