Fldigi-proxy Towards global offline Lightning channels
People in parts of the world with expensive, intermittent or low-bandwidth connectivity to the internet need alternative offline ways to use the Bitcoin network. Even Bitcoin users with ubiquitous low-cost internet connectivity are at risk of censorship and surveillance from centralized ISPs and mobile carriers and could benefit from offline alternatives.
A key requirement for making offline-only Bitcoin use cases viable is to replace the need for centralized last-mile access to the internet with a system capable of sending data, independent of the physical distance it needs to travel. It may be slower to send data halfway around the globe compared to within a city, but in both cases should use the same equipment and infrastructure.
goTenna Mesh devices make it straightforward to form local mesh networks where connections between devices can reach multiple kilometers, even in cities. With the lnproxy project, Lightning channels can be opened and used in a mostly-offline mesh network, expanding the possibilities for offline-only Bitcoin users.
Sending data various distances while offline is more complex. Long-lived mesh networks such as Freifunk and Guifi typically only span a single city. Ideally an offline user should be able to open Lightning channels with peers in any location, including other countries and continents, as if they were connected to the internet. This implies sending data tens, hundreds, and even thousands of kilometers.
Fortunately, the amateur radio community has been doing this for decades (ARRL), and has created tools such as Winlink that provide e-mail service over radio links. To support using offline Lightning channels globally, we need a similar tool to use a ham radio as an interface for lnproxy.
Fldigi-proxy is a tool that achieves this by using the popular fldigi program to control a radio and send and receive packets via that radio. This tool can be used with lnproxy to replace goTenna Mesh devices as the radio used to communicate with Lightning channel peers.
We can also configure the radio via fldigi to choose a balance between bandwidth and reliable transmission. In addition, specific frequencies are typically used for particular techniques such as skywave propagation, which allow for extremely long-distance communication under certain weather conditions.
Independent of these parameters, we also have to ensure that radio operators take turns transmitting and receiving, so that data flows evenly between the two and both operators never try to transmit at the same time. Radio operators may also encounter background noise or other operators on particular frequencies, and high-power radios may have limits on how long they should transmit continuously.
Setup and Results
Fldigi typically communicates with a radio via a sound card, so anyone can test it without radios by setting up an ‘audio loopback’. In this configuration, each fldigi instance is transmitting and listening over the same sound card, similar to radios using the same frequency. The default radio settings for fldigi-proxy mimic a typical configuration for low bandwidth long-distance radio communication that could be used between Eastern Canada and the Southern Caribbean.
Using these default settings, lnproxy can setup a Lightning channel and send a payment in about 5 minutes. There is room for improvement with respect to how much time is spent with neither radio transmitting, but in practice leaving sections of silence between transmissions is a reasonable approach to not clogging a channel.
For comparison, this is half the time it would take for a Bitcoin transaction with an above-average fee to be included in a block, and the recipient would still want to wait for a few more blocks before considering the transaction final. With fldigi-proxy and lnproxy, offline Bitcoin users can use Lightning channels for fast payments on a medium more censorship-resistant and decentralized than the public Internet or Tor.
The next step in this work is to test fldigi-proxy with real-world radio setups, and use the feedback from amateur radio operators to inform which modes are supported and used as defaults. There is a growing community of Bitcoin enthusiasts with backgrounds in amateur radio, as well as established ham radio communities around the globe that may find novel use cases for fldigi-proxy with their existing setups.
Our first tester, Sam Patt, successfully demonstrated the incredible range possible with amateur radio by sending the first ever Lightning protocol message from Michigan to the KFS WebSDR receiving station between San Francisco and San Jose in California.
This radio transmission was done with 100 watts on the 20 meter band, over a distance of almost 2,000 miles, took about 15 seconds, and decoded successfully into the message:
This message when converted to binary and passed to a Lightning node roughly translates to “Hi! Here’s some info about me, want to talk?”. The receiving node will respond with similar information about itself to kick-off further protocol negotiation.
Looking forward, it is increasingly feasible for the Bitcoin community to build out a global backhaul network that reliably connects distant mesh networks or individual users, entirely offline. This could help support layer 1 Bitcoin by globally broadcasting Block headers and SPV proofs, and the participation of Internet-connected gateway nodes would allow Lightning channels to be opened and closed within this radio network. With Lot49, radio operators could be compensated for the bandwidth they provide, helping to ensure the health of the network as a whole.
How to get Involved
The fldigi-proxy code is available here, and the compatible version of lnproxy is specified in the README. If you have questions about the project, issues using it, or are a amateur radio operator interested in testing, feel free to leave an issue in the GitHub repository, contact me at firstname.lastname@example.org, or join the discussion on development in the Global Mesh Labs Slack.