Pages:
Author

Topic: Offline Transactions and Bluetooth! (Read 9971 times)

legendary
Activity: 1708
Merit: 1020
November 20, 2013, 10:24:31 AM
#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.

legendary
Activity: 1526
Merit: 1134
September 18, 2013, 03: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.
legendary
Activity: 1708
Merit: 1020
September 18, 2013, 02: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?
legendary
Activity: 1526
Merit: 1134
September 18, 2013, 02: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.
hero member
Activity: 483
Merit: 551
September 18, 2013, 11:35:54 AM
#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...
legendary
Activity: 1526
Merit: 1134
September 18, 2013, 04: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.
legendary
Activity: 1708
Merit: 1020
September 18, 2013, 04: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...
hero member
Activity: 483
Merit: 551
September 18, 2013, 04: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.
legendary
Activity: 1526
Merit: 1134
September 18, 2013, 04: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.
legendary
Activity: 1708
Merit: 1020
September 18, 2013, 03: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).
hero member
Activity: 483
Merit: 551
September 17, 2013, 04: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.
legendary
Activity: 1708
Merit: 1020
September 17, 2013, 03:57:08 PM
#20
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

hero member
Activity: 483
Merit: 551
August 27, 2013, 04:27:50 PM
#19
It does not yet send a chain of transactions, if that's what you're aiming for. This is planned, but bitcoinj does not offer the API yet.

So yes, the second merchant will throw away your transaction if it builds on your first transaction and he doesn't know about it. It will all sort out later when parties get online and (re-)broadcast their pending transactions.

However, in reality your wallet should be fragmented enough that pending transactions don't build on each other.
newbie
Activity: 43
Merit: 0
August 27, 2013, 04:05:19 PM
#18
What happens if you have 2 merchants and an offline customer:
 - the 1st is offline, but still accepts offline BT transactions
 - the 2nd is online and accepts offline BT tansactions

For example If I as a customer send a offline BT transaction to the 1st merchant (offline)
After I go to the 2nd merchant (online) and send him another BT offline transaction.

Now the 2nd merchant sends my signed BT transaction to the network BEFFORE the 1st merchant.
Will be the this transaction valid?
And what about the validity of the first offline transaction (sent to the 1st merchant)?
hero member
Activity: 483
Merit: 551
August 27, 2013, 08:15:30 AM
#17
Yes, Galaxy S2 :-/

If anyone has got a spare S2 device (which hopefully got replaced by a shiny Nexus phone), it would make a great donation! These TouchWiz devices have a lot of device dependent quirks unfortunately... )-:
newbie
Activity: 34
Merit: 0
August 26, 2013, 04:10:03 PM
#16
Sounds like a  bug. Is it reproducable?

Yes, send you a mail.

Quote
All app-provided buttons use the internal barcode scanner. What phone do you use? There is a known issue with the Galaxy S2 that autofocus does not work but I don't know why. I don't have non-nexus phones to test with.

Yes, Galaxy S2 :-/
hero member
Activity: 483
Merit: 551
August 26, 2013, 04:01:10 PM
#15
1. After sending, the mobile said that bluetooth transmission was rejected, although successful.

Sounds like a  bug. Is it reproducable?

Quote
2. Does the 'scan QR' button activate the camera in a different way? Seemed to have no autofocus, while "Barcode Scanner" activates it.

All app-provided buttons use the internal barcode scanner. What phone do you use? There is a known issue with the Galaxy S2 that autofocus does not work but I don't know why. I don't have non-nexus phones to test with.
newbie
Activity: 34
Merit: 0
August 26, 2013, 03:06:44 PM
#14
Tried it with official 3.19 and works like a charm  Grin

Mobile (offline) scans QR from tablet (online) and sends per Bluetooth, nice! Two questions:

1. After sending, the mobile said that bluetooth transmission was rejected, although successful.
2. Does the 'scan QR' button activate the camera in a different way? Seemed to have no autofocus, while "Barcode Scanner" activates it.

Peter
hero member
Activity: 483
Merit: 551
August 22, 2013, 07:35:17 AM
#13
I sent you a screenshot of the clipping issue.

Thanks, fixed.
legendary
Activity: 1526
Merit: 1134
August 22, 2013, 05:59:47 AM
#12
People who are paying shouldn't have to think about trust stores at all, and I don't intend that they will. It should operate exactly like SSL in that regard.

Small business owners who want to sign their payment requests might need a wizard or something to help them get set up, yes. It shouldn't involve much beyond opening the file that the CA sent you, confirming the import into the Android cert store, and then telling BW to use it. But I never tried it myself and it's a more advanced feature for next year, perhaps. For now being able to scan QRcodes from websites and pay from your phone is good enough.

I sent you a screenshot of the clipping issue.
Pages:
Jump to: