Loading proofofbrain-blog...

Dear Amateur Lightning Node operators: you're not going to profit from routing - part 1

Part 1 - Lightning Node Basics

Update 20th Apr I got some good feedback on this from Reddit so I will write a response soon. I'll also give some more reasons why you might STILL want to run a Lightning node! Here's Part 2 of Lightning Node Basics.

TL;DR

  1. Figure out WHY you need a Lightning Node.
  2. Do you really need it or do you just want it?
  3. If you want to experiment, experiment, don't expect it to be a business.
  4. What Lightning actually needs is business built on it, not being a business itself.
  5. If you don't want to watch hours of YouTube videos or read GitHub for days, get a wallet app on your phone.

In the Beginning

The story so far.... In the beginning Satoshi Nakamoto created the Bitcoin. Now the Bitcoin blockchain was formless and empty, darkness was over the surface of the deep, and the Spirit of Satoshi was hovering over the waters.

And Satoshi said "Let there be transactions" and there were transactions. Satoshi saw that the transactions were trustless and immutable and he separated the double spends from the valid UTX0s.

But somewhere down the line we all figured out that Bitcoin was never going to replace cash because it just can't handle the volume.

So Lightning was created to scale transaction volumes. Lightning is a peer to peer payment system which uses a comparatively small number of underlying Bitcoin transactions to allow a very large number of small transactions to be passed.

The 50,000 ft summary

1. Get the hardware synced

Here's the flow of running a Lightning node. You get some hardware which can be anything from a Raspberry Pi 4 with a 1TB SSD up and download one of the distros of Lightning. RaspiBlitz and Umbrel are very popular. You start it up and wait a few days for the entire history of Bitcoin to be downloaded and processed by your node. Going forward your node will confirm every Bitcoin transaction (it isn't mining, just verifying).

Now you're ready to start.

2. Get some BTC on it

You make a Bitcoin transaction to your new Node's BTC Wallet. Every Lightning Node has a BTC balance (on chain) and a Lightning balance (off chain). You can see the balances of my node (the one I have at home on a Raspberry Pi) below. That is one BTC transaction and the associated fee (I'll talk about fees later)

On chain and off chain Umbrel

So now you have Bitcoin on your node but you still can't send or receive a Lightning payment. In order to send or receive you need channels. That's step 3.

3. Open Channels

So now comes a critical decision point. What are you trying to do? If you've got specific friends who you want to swap BTC with on a regular basis, preferably back and forth, that's something Lightning can do.

If you want to pay for goods and services on the web, well perhaps that will be increasingly possible.

Do you want to receive payments for your goods or services or receive streaming sats for a podcast?

Do you want to earn fees while routing the payments of others around the network?

Your answers to those questions is critical to what you do next with channels.

Channels

Everything in Lightning moves in a channel. At its most basic: I want to send payments to the PodcastIndex. I open up a 1m Satoshi channel ($400) to the PodcastIndex. I can now send as little as 1 sat or as much as 1m sats in as many transactions as I like.

If I want to receive from PodcastIndex I have to either wait till I've sent them some sats or ask them to open a channel to me.

The channel is like a string on an abacus, the sats are the beads. They can move from one side to the other and back and nothing else.

If you only have one channel, you can only carry your own payments. They can go out if you have sats on your side, they can come in if you have sats on the other side.

Getting Bitcoin back from Lightning

The main way to get Bitcoin back out of a Lightning channel is to close it. Closing a channel is the act of making a full transaction on the Bitcoin blockchain and sending some part of the output back to your Bitcoin wallet on your node, and the other part to your channel partner.

An example:

You open a 1,000,000 sat channel. This will cost you maybe 100 sats in fees.
A bitcoin transaction will deposit 1,000,000 in a wallet, with two signatories: you and the channel partner.
You send 300,000 sats to your friend. This is free.
Ze sends 150,000 sats back to you. This is also free and this back and forth can go on for a long time.

You decide to close the channel. A bitcoin transaction will be made from the shared wallet. 850,000 will be sent to your node (minus some BTC fees) and 150,000 will be sent to the channel partner's wallet.

So while individual transactions on a single channel may be free, they come with the cost of opening and later closing them to turn your Lightning sats back to real BTC.

You'll have to just assume for now the crypto-wizards who wrote this software have made this all work trustlessly and any attempt to lie or cheat about the closing balance will usually result in the cheat losing all the BTC.

So what is routing?

If you now open another channel (paying BTC on chain fees) or two or three or 50, you are suddenly a more useful part of the entire Lightning network. But there's a few more steps before the network will start sending other people's money through your node.

When funds come into your node, you don't collect fees. But if they leave your node (and you didn't initiate the transfer so you are routing someone else's payment) you can take a fee. Fees are usually stated as a "Base Fee" which defaults to 1 sat and a "ppm" or parts per million. 2500 ppm is 0.25% for example (and considered a comparatively high fee). There's a big move to drop those base fees to 0 sats but I can't go into that here.

Here's my original node which I set up and learned on. I have a rather esoteric mix of channels but it shows a range.

Umbrel Channels

image.png

And on the side you can see a pretty picture of the routing I've done in the last 6 months. Remember, I didn't really know what I was doing and I wasn't really working at this. I can tell you, however, that I've earned less than 2500 sats in almost a year. Nothing. I'm not sure what I've paid in transaction fees opening and closing channels and making other payments, but it is at least 10x that.

You need a range of incoming channels with sats on the other side (inbound liquidity) and you need a different set of channels with outbound liquidity. Or you need a whole load of balanced channels.

There's also a whole lot of work that should go in to setting the right channel sizes, rebalancing channels: essentially sending sats to yourself via specific channels to shift liquidity around: this incurs fees which can often be more than you'll ever earn back from routing future payments.

And even when you get a channel nicely balanced, your partner on the other side can then dramatically change their fees and make that channel unpopular for routing through.

Routing

I'm going to answer the last question above: you're not going to make money routing without a huge effort and pretty serious capital expenditure.

Routing is going to be captured by very large centralised exchanges and (with a bit of luck) a small number of dedicated individuals (such as Zero Fee Routing on Twitter). I strongly suggest you mine his twitter feed if you want to understand what it will take to route significantly. And notice his name Zero Fee Routing. He's setting up to make money not on routing per se, but on providing inbound liquidity to merchants and others who need fat channels opened going toward them. I think this is a sustainable model for Lightning.

Is this semi-centralisation and capture a bad thing? Honestly I don't know. Nobody really does and there are plenty of opinions. From a privacy point of view it isn't ideal, but routing nodes know very little about the payments they move. They don't know the source or the destination, only the channel they come in on and go out to. Just because you route a payment, doesn't mean you know a huge amount about who sent it and who received it.

What else can you do with Lightning?

So this comes back to my own use with @v4vapp and my Hive Lightning Bridge. I have a new, more focused Lightning Node. I'm opening only a very limited number of channels mostly pointing at various mobile app wallets which my users are sending sats to.

I'm receiving sats often via Zero Fee Routing (and the mix of channels I have on my old node). I'm also receiving sats from Podcast apps a lot of which comes in via PodcastIndex.

I'm not caring what routing I'm doing and I'm now setting new channels be private (they won't get used for routing) or prohibitive fees so that I can control where my sats are. I don't want anyone else moving sats through my channels no matter what fees I could charge, those fees are almost always negligible compared to even the very small fee I charge on Hive Lightning transactions.

And of course, I make more from one popular post on Hive or every hour of my DHF payouts than I could dream of making in a year of routing on Lightning!

Well done if you read to here

If you've got to the end I hope I justified the points I stated at the top. If I didn't get yourself a Hive account and ask questions!

  1. Figure out WHY you need a Lightning Node.
  2. Do you really need it or do you just want it?
  3. If you want to experiment, experiment, don't expect it to be a business.
  4. What Lightning actually needs is business built on it, not being a business itself.
  5. If you don't want to watch hours of YouTube videos or read GitHub for days, get a wallet app on your phone.

Support Proposal 201 on PeakD
Support Proposal 201 with Hivesigner
Support Proposal 201 on Ecency


brianoflondon hive footer.png

H2
H3
H4
3 columns
2 columns
1 column
20 Comments