How to build local payment systems on top of Bitcoin

Finally, people are thinking about cloud societies, network states and parallel communities as a real alternative to current doctrine of democratic statism. There are many societal institutions required to pull it off – parallel justice, rulescaping, proxy merchants, local reputation, etc. I would like to look at a simple use-case. Imagine a parallel society that is relatively secluded – think village in Africa or India, an island or a parallel community in a jungle, eco-village.

We can safely say that the infrastructure needs to be built locally (there is no state to build the roads and power grid and if there is, it’s failing). We don’t want to use the state currency, but we want something usable globally, without a need to run a local monetary system. Why is that? Many local currencies failed because of naivity and complexity of building small scale monetary systems. LETS systems, local coins all need monetary policy, bookkeeping and making sure money is not printed out of thin air.

Bitcoin, but locally

Let’s try to figure out if we can build Bitcoin payments as a part of local infrastructure. We want to build local data networks (wifi or GSM – using off-the shelf or open-source components), but we cannot rely on non-stop internet connectivity (Starlink might work soon enough, but it still is a single point of failure). We have abundant sunlight for solar panels. And of course we want low fees. How could this infrastructure look like?

  • Element as a federated messenger. If Internet is online, you can talk to other Element users, but if it’s down, local community chats (of course end-to-end encrypted) can happen on local infrastructure. Element is built on Matrix and has a user-interface similar to Slack. Townhall meetings and community organization can happen “online”, without Internet and without spies. Contrary to Signal, you can run your own server.
  • At least one Bitcoin node, synchronized passively from Blockstream Satellite. This costs under $1000 and can provide at least passive connectivity to Bitcoin blockchain. This gets useful a bit later. No Internet connection required.
  • Lndhub or something similar for Lightning wallets. Here is where it gets interesting and where we don’t just use another cryptocurrency. Lightning network has a great infrastructure, because with a passive Bitcoin node, you can create a local cluster, with interconnectivity that does not require stable online connection to the world.

Lightning is more peer to peer

The infrastructure of lightning network does not need connectivity to network (for the most part). You can have a small town hall – a local market, retailer, local IT geek to run a node with some connectivity (channels) to the Bitcoin network. If these channels are up, you are connected to the global Lightning network, but if the connectivity is down, you can still transact. Compare this to the full blockchain, where you need to have basically full connectivity. When you send blockchain transaction, it needs to reach miners in time, they have to validate it (confirm, include in the block) and then you see the money has changed hands. Of course you can accept zero confirmation payments as a merchant, but you never know if the transaction will actually confirm. The fee might be too low to include in a block, the transaction might never reach other nodes, etc.

Compare this with Lightning. You as a user have a channel that is well connected in local community (maybe to the retailer) and your transactions are your business. No need to inform miners or the wider Bitcoin network. The fees can be super low in this scenario.

But most users don’t care even about channels. You can have a few providers who install lndhub and provide channels and connectivity to the wider Lightning network and among each other. The transactions in both cases are basically free and instant. No need to wait – if the transaction goes through, it happened.

Lightning needs two things to work well – a passive watch node to notice when someone cheats (broadcasts old state). That is served by a passive Blockstream Satellite powered Bitcoin node. BTW this can also work for parallel communities inside of totalitarian states – it does not broadcast anything, so cannot be triangulated, compared to for example Starlink. You also need some uplink connectivity – for opening channels (you do it once or maximally a few times per year) and for broadcasting revocation transactions if someone attempts to cheat (you really never do it, but in case it is needed, you can even tell it to someone over the phone, use old-school modem, send it in a letter, fax it etc.).

With BlueWallet, satellite node and few lndhubs, you can have your local economy, without stable Internet connectivity. This economy is based on global hard money currency. Transaction can be as private as you want it (the lndhub operator can see transactions, but if you don’t trust him, you can run your own, on a Raspberry Pi under your bed if you wish – you can connect it to your local passive node provider if you don’t want to run satellite and your own full node).

You can also bootstrap it with cash – there is a cheap, open-source ATM that allows purchases of Bitcoin over lightning using cash called Bleskomat.

The merchants can use either their lightning wallet (they just create a lightning invoice) or use a more sophisticated PoS from BTCPayServer, or even integrate to a local eshop. This is super useful for example for proxy merchants that go to a nearby town to bring whatever people need. You create an order, pay for it from your phone and when proxy merchant comes from town, they give it to you or deliver using local delivery service (islands/parallel societies can cover a large area!).

The problems

There are a few small developments that need to happen in order to make this work in practice. One simple problem is that BlueWallet has hardcoded exchange rates that it downloads from the Internet. Of course the merchant can create invoice using their exchange rates, but there is a better way that can be coded into BlueWallet. Blockstream allows broadcasts, so if you have an online server (somewhere with good connectivity), you can broadcast signed messages with current exchange rates every hour or so. With a simple modification to the code, the Bitcoin node could publish these for local community, but it does not have to be trusted – the wallet could verify that the timestamp is recent enough and the rates have been signed by a trusted price feed provider.

Why Lightning?

Compared to “blockchains”, lightning infrastructure is cheaper and much simpler. You don’t need permanent Internet connectivity, the transactions are more private, instant a final. This infrastructure also reduces traction, but also allows use of the money outside of the local infrastructure. If you are a good local entrepreneur, you can decide to leave and take your wealth with you. Nothing is stopping you, you are earning a good global hard money, not some “local economy” coin that is worthless 100km away from where it was created.

No miners and stakers required to run it locally either. Local blockchains are difficult to keep secure (and are local – with local tokens). Global blockchains need a lot of connectivity for transactions that are not relevant for local economy. They need global miners (or stakers/validators) to include transactions (that are not very relevant for global economy) in a public ledger. Lightning is a good balance – global money, but local transactions stay local.

And if you have local data connectivity, adding a payment layer is cheap. One Blockstream satellite node and a few Raspberry Pis with hard drives is all you need.

Learn more about Lightning

If you are new to lightning network, check out my quick introductory course. Use lightning today – be fossil-fuel free like Elon would want it, low fees, instant finality, privacy. Settle small debts with friends and family using the best money out there and even accept lightning in your business.

2 replies on “How to build local payment systems on top of Bitcoin”

Thank you for sharing these ideas! I was wondering about writing something similar, not anymore. Will just link here instead. All the best!

Comments are closed.