Bitcoin Forum
May 28, 2024, 03:46:16 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Offline Transactions and Bluetooth!  (Read 9925 times)
Andreas Schildbach (OP)
Moderator
Hero Member
*
Offline Offline

Activity: 483
Merit: 501


View Profile
September 17, 2013, 09:47:30 PM
 #21

Could this be used as cold storage with an old smartphone?

1.) Send some coins to the wallet
2.) remove sim and keep it in airplane mode forever (change wlan pw on router)
3.) Do offline txs as needed

In theory, this should be possible.

In practise, the current implementation is not designed for 100% robustness. If the Bluetooth submission fails for some reason, you'll need to connect to regular Bitcoin peers to get the tx through.
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1020



View Profile
September 18, 2013, 08:33:33 AM
 #22

Could this be used as cold storage with an old smartphone?

1.) Send some coins to the wallet
2.) remove sim and keep it in airplane mode forever (change wlan pw on router)
3.) Do offline txs as needed

In theory, this should be possible.

In practise, the current implementation is not designed for 100% robustness. If the Bluetooth submission fails for some reason, you'll need to connect to regular Bitcoin peers to get the tx through.

Actually I would be more interested in the QR Code variant as I expect it to be still a little safer.

The way I understand you the problem is that the offline transaction can not be recreated. So what about manually taking a screenshot of the QR code to be able to retry the broadcast?

One could even create a stripped down, hardened rom (tinfoilrom).
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 18, 2013, 09:15:34 AM
 #23

What phelix is proposing should work fine, we can always fix bugs in the Bluetooth code if there are any.

The missing piece is getting money into the offline wallet. You need the ability to sync a wallet online without any private keys (bitcoinj can do this, but currently the Android app can't), and then send the online/pubkey-only wallet to the cold storage device, and have the cold storage device do the merge.

This isn't technically very complicated, but I wonder how useful it really is given that we have the Trezor coming up. That seems like a more robust approach. I guess some people may have old phones lying around that they wouldn't mind using just as a wallet but I guess it's not so common.
Andreas Schildbach (OP)
Moderator
Hero Member
*
Offline Offline

Activity: 483
Merit: 501


View Profile
September 18, 2013, 09:18:07 AM
 #24

Could this be used as cold storage with an old smartphone?

1.) Send some coins to the wallet
2.) remove sim and keep it in airplane mode forever (change wlan pw on router)
3.) Do offline txs as needed

In theory, this should be possible.

In practise, the current implementation is not designed for 100% robustness. If the Bluetooth submission fails for some reason, you'll need to connect to regular Bitcoin peers to get the tx through.

Actually I would be more interested in the QR Code variant as I expect it to be still a little safer.

The way I understand you the problem is that the offline transaction can not be recreated. So what about manually taking a screenshot of the QR code to be able to retry the broadcast?

One could even create a stripped down, hardened rom (tinfoilrom).


The Bluetooth channel will currently not be set up again.

However, you're right that you could also use the "transaction QR code" feature to submit a transaction. You can also use NFC. The problem with that is that QR codes are limited in size, so some transactions will not fit.

If this turns out to be a real problem, we can work on the bitcoinj default coin selector to not build transactions exceeding a given byte size.

Why don't you just try it out? I'd be interested in real feedback.
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1020



View Profile
September 18, 2013, 09:29:39 AM
 #25

Could this be used as cold storage with an old smartphone?

1.) Send some coins to the wallet
2.) remove sim and keep it in airplane mode forever (change wlan pw on router)
3.) Do offline txs as needed

In theory, this should be possible.

In practise, the current implementation is not designed for 100% robustness. If the Bluetooth submission fails for some reason, you'll need to connect to regular Bitcoin peers to get the tx through.

Actually I would be more interested in the QR Code variant as I expect it to be still a little safer.

The way I understand you the problem is that the offline transaction can not be recreated. So what about manually taking a screenshot of the QR code to be able to retry the broadcast?

One could even create a stripped down, hardened rom (tinfoilrom).


The Bluetooth channel will currently not be set up again.

However, you're right that you could also use the "transaction QR code" feature to submit a transaction. You can also use NFC. The problem with that is that QR codes are limited in size, so some transactions will not fit.

If this turns out to be a real problem, we can work on the bitcoinj default coin selector to not build transactions exceeding a given byte size.

Why don't you just try it out? I'd be interested in real feedback.
Will do.

What phelix is proposing should work fine, we can always fix bugs in the Bluetooth code if there are any.

The missing piece is getting money into the offline wallet. You need the ability to sync a wallet online without any private keys (bitcoinj can do this, but currently the Android app can't), and then send the online/pubkey-only wallet to the cold storage device, and have the cold storage device do the merge.
Maybe it could fly blind if I manually tell it how many coins there are on a key scanned.

Quote
This isn't technically very complicated, but I wonder how useful it really is given that we have the Trezor coming up. That seems like a more robust approach. I guess some people may have old phones lying around that they wouldn't mind using just as a wallet but I guess it's not so common.
Agreed, once Trezor et al are available it is only a matter of not having to buy a new device...
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 18, 2013, 09:37:28 AM
 #26

You can't "fly blind" like that, the Bitcoin protocol doesn't work that way. Without access to transaction data you can't build a valid spend that will be accepted by the network. However, nothing says you have to get transactions by downloading the block chain. They could be delivered via bluetooth or a wifi connection from a co-operating device.
Andreas Schildbach (OP)
Moderator
Hero Member
*
Offline Offline

Activity: 483
Merit: 501


View Profile
September 18, 2013, 04:35:54 PM
 #27

I'd love to see someone broadcasting the blockchain on a wavelength that goes around the globe. Devices with a radio might be able to receive and decode those, even in remote areas without cell coverage. Well, just dreaming...
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 18, 2013, 07:25:44 PM
 #28

Gregory Maxwell actually looked into that at one point. It turns out you can rent a satellite transponder on an old satellite for less than one might imagine. It's not actually financially infeasible. However, receiving the data would require special equipment obviously.
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1020



View Profile
September 18, 2013, 07:39:22 PM
 #29

You can't "fly blind" like that, the Bitcoin protocol doesn't work that way. Without access to transaction data you can't build a valid spend that will be accepted by the network. However, nothing says you have to get transactions by downloading the block chain. They could be delivered via bluetooth or a wifi connection from a co-operating device.
Roll Eyes  OK. Would a single output be enough (a 100bytes??)? Could I fly blind with that?
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 18, 2013, 08:09:43 PM
 #30

You need to know the tx hash (32 bytes) and the script and of course the value. You don't really need the entire transaction.
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1020



View Profile
November 20, 2013, 03:24:31 PM
 #31

Could this be used as cold storage with an old smartphone?

1.) Send some coins to the wallet
2.) remove sim and keep it in airplane mode forever (change wlan pw on router)
3.) Do offline txs as needed

In theory, this should be possible.

In practise, the current implementation is not designed for 100% robustness. If the Bluetooth submission fails for some reason, you'll need to connect to regular Bitcoin peers to get the tx through.

Actually I would be more interested in the QR Code variant as I expect it to be still a little safer.

The way I understand you the problem is that the offline transaction can not be recreated. So what about manually taking a screenshot of the QR code to be able to retry the broadcast?

One could even create a stripped down, hardened rom (tinfoilrom).


The Bluetooth channel will currently not be set up again.

However, you're right that you could also use the "transaction QR code" feature to submit a transaction. You can also use NFC. The problem with that is that QR codes are limited in size, so some transactions will not fit.

If this turns out to be a real problem, we can work on the bitcoinj default coin selector to not build transactions exceeding a given byte size.

Why don't you just try it out? I'd be interested in real feedback.
A little bit late but still: It seems I can only do one offline transaction from a single address as long as the previous one can not be read from the blockchain.

Pages: « 1 [2]  All
  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!