Subject: [Bitcoin-development] Bluetooth on Android

From: Mike Hearn <[email-masked]>
Date: Fri, 13 Sep 2013 18:21:19 +0200

Just a heads up,

Over a year ago Andreas and I prototyped bluetooth tx submission on Android
at a hackfest in Berlin, and it will be with support on-by-default for the
sending side soon. That means, anyone can enable the feature in the
settings page and start receiving payments via Bluetooth as long as both
sides use the Bitcoin Wallet app.

The protocol used is a set of proprietary things. Once the payment protocol
is implemented in bitcoinj, I guess we will recast the bluetooth support to
use that and then submit a BIP for it, but right now it wouldn't make sense
to do so as we know the current protocol has a limited lifespan.

Send via bluetooth resolves one of the most common UX fails we see here in
Europe: people travel to conferences or events and then want to spend their
Bitcoins whilst they're abroad, but they can't reasonably do so because
data roaming is so expensive.  By allowing the receiver i.e. merchant to
receive the tx via Bluetooth, this problem is avoided - often the receiver
is local and will be able to broadcast the transaction on your behalf.

Briefly, we use an unauthenticated RFCOMM socket with the adapter MAC
address in a new btcmac parameter in the bitcoin: URI qrcode. No pairing is
required. MITM attacks on the connection are possible, but all that's done
with it is writing raw tx bytes out over the connection so MITM is limited
to DoS.