Now that TxTenna has been live for a few weeks it seems like a good time to do a round-up on its launch, highlight some community reviews, and talk about future directions.
Billfodl wrote up an excellent tutorial on using TxTenna using an earlier version of Samourai Wallet. This write-up can be updated now that the current Samourai Wallet app automatically transfers signed transactions to TxTenna App without requiring a copy/paste step for the transaction. Pairing has also been improved in the current 0.91 release version of TxTenna, now available on the Google Play Store.
Twitter user @Coinsurenz posted a detailed write-up about how he managed to make a Bitcoin transaction over a distance of 12.67 km while off-grid using one goTenna relay in relay mode between the sending and receiving nodes.
One feature request from Coinsurenz’s distance testing was that sent transactions should be marked as spent to allow for sending multiple off-grid transactions. This can be done manually from Samourai Wallet, but ideally would be automatic. We would also like some sort of notification when a transaction sent out over the mesh network has been received and posted to the Bitcoin blockchain. The return receipt feature did not make it into the October release, but we expect to see it in a future release.
Coinsurenz also described his investigation of scenarios for using TxTenna to achieve censorship resistance in hostile environments, particularly physical tests of gateways placed in hidden locations. The ability to hide a TxTenna gateway ensures anonymous access to the Bitcoin network using internet access that is not connected with your identity.
After we announced the release of TxTenna at the HCPP18 conference, many people suggested future directions for the project. One of the most common suggestions was to integrate TxTenna functionality with a Bitcoin full node, such as the Casa Node or Raspiblitz. A stand-alone full node could then receive blockchain updates via the Blockstream satellite and send payment transactions over the mesh network via TxTenna. This would greatly improve a personal Bitcoin node’s capability to operate privately and independently when centralized networks are censored or unavailable.
Another feature request was to allow off-grid TxTenna users to confirm settlement for payments received over the mesh network. To do this in a trustless way would normally require receiving and confirming block updates from untrusted fullnodes. However, this would require sending megabytes of data over the mesh network every 10 minutes.
Fortunately, mobile wallets widely use an alternative to confirm payments already that avoids large demands on bandwidth, known as simple payment verification (SPV). SPV only requires broadcasting 80 byte block headers over the mesh network – a much more tractable amount of data. Using this system, it would be very difficult, though not theoretically impossible, to fool a node into falsely thinking a transaction had been settled on the Bitcoin blockchain. Fortunately, the increased privacy and censorship resistance that comes from using a mesh network instead of the internet would also help here. An attacker would have a hard time locating their intended victim in order to isolate them from accurate data or to feed them specifically crafted false data. SPV performed over the internet also suffers from a lack of privacy, as any full node you ask for details about your bitcoin transactions could associate that request with your IP address which could potentially be tied to your real identity by your ISP. Current techniques like bloom filters do not entirely eliminate this possibility. But with mesh networks, your physical location is obscured and this risk can be minimized.
These are just a few ideas that have been proposed to extend the open source TxTenna project. I encourage you to get involved in the MuleTools initiative and build on the great work Samourai Wallet has already contributed. All you need are a PC, Android phone, and a free goTenna Android SDK token to start contributing. In the immortal words of Tim May: “Cypherpunks write code. We know that someone has to write software to defend privacy, and since we can’t get privacy unless we all do, we’re going to write it.”