Is it possible to buy or sell something using Bitcoin, in an offline mode?

In other words, if I had my wallet on my mobile phone and I wanted to send or receive money from another Bitcoin user who also has their wallet on a mobile phone, can we send/receive bitcoins offline to each other and then later re-sync the transaction to the network?

I find offline mode critical for this currency to progress beyond a simple crypto-currency experiment because relying on the network means that if network access is unavailable, your wallet is useless.

  • There is such a thing as an SMS wallet (Coinapult offers this) and LocalBitcoins has "LocalBitcoins Transactions" which can be released via an SMS/text message. Are those close enough? – Stephen Gornick Dec 14 '12 at 0:43

Take a look at Bitcoin apps available for your mobile phone. Several are recommended in answers to question Can I send bitcoins with my mobile phone?. Look for apps that offer some kind of offline mode.

For instance, the highly recommended Bitcoin Wallet app for Android mentions in its feature list, "Enter transactions while offline, will be executed when online".

Technically it is possible: the sender creates transaction to payee's wallet, signs it, payee verifies it, then broadcasts it to the network when able.

But in terms of security it is even worse than accepting zero-confirmation transacrions: the payer can create another transaction transfering all his money to some other address and broadcast it before payee broadcast "honest" transaction, thus invalidating "honest" transaction since coins are already spent.

As an option, there are Casascius's physical bitcoins. This option, however, requires trust to 3rd party (coin issuer), which is somewhat against bitcoin ideology, in my opinion.

P.S. Most modern terminals for plastic cards require network access to function, and it rarely causes any complications. The bigger problem with bitcoin is requirement for verification, which can take quite a long time. It could be lifted (decreasing security).

If you trust your counterparty not to double-spend on you, certainly this is possible.

Create a raw transaction (available with bitcoind, or through other methods) and then instead of broadcasting it you simply share it with your counterparty. Then when connectivity is re-established the transaction is broadcast and confirmed (presuming the counterparty didn't double-spend the funds on you.)

The transaction can be inspected using BrainWallet.org (which is a static web page that can be copied and used when offline).

This is something along the lines of writing a check though. Without connectivity there's no knowing if there were funds available to begin with though. So there's not a whole lot of an advantage to doing this other than how the recipient of the funds has the technical ability to broadcast the transaction at a later time to obtain access to the funds (if the transaction was legit to begin with and the payer didn't double spend after.)

  • Analogous to writing a check... but one where you can verify the check... and even funds availability offline, provided the funds were in the account the last time you were online. – Erik Aronesty Jul 22 '14 at 12:23

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.