Here's the scenario. You are having a beer at a bar with a friend, when the topic of Bitcoin comes up. Your friend seems generally curious. You explain Bitcoin to him (or her) and they are sincerely interested - they want to learn more and get their first Sats (they don't even know what Sats are yet) say maybe 10-20$ worth.
You are going to see them again later that day, maybe the next day so there can be some follow-up.
You say 'hey ok' tell you what 'you pay for the beer' (10-20$ worth) and I'll give you some Sats as compensation. They agree. Now, where do you go from here?
They only want 20$ of Sats. Now how the hell do they accept 20$ of Sats economically?
Short of them getting a 'custodial' wallet, which they don't want and probably shouldn't get there is no way for them to do this really...
And they don't have the interest or time to 'sign up' for an exchange - If Bitcoin is so great why does 'an exchange' have to be involved anyway? KYC, paperwork, waiting periods WTF what a great way to turn newbies off to Bitcoin.
The on-chain fee for accepting 20$ of Bitcoin is... 50 Cents - 1$ and they don't have a Lightning channel.
No Lightning channel (which requires 300,000 Sats opening to be economical) and no 'exchange account' means there is no way of accepting the Bitcoin... and even if they did accept on-chain through a mobile wallet, the spending fee would be too great to be economical to spend the UTXO anyway.
All the while their knowledge about Bitcoin is very limited... so they probably need something that just 'works' to be able to send, receive, and store a little bit (no pun intended) without things becoming too complicated.
So what do you recommend? How do they accept, non-custodially 20$ of Bitcoin on the spot while keeping things simple and straightforward?
I believe the answer is Liquid Bitcoin, in conjunction with Lightning through Non-Custodial Atomic Swaps.
By sending your friend (Bitcoin newbie) Liquid Bitcoin, non-custodially, through a liquid/lightning wallet they
- Receive the 'Bitcoin' right away, in just a minute or 2
- Receive the Bitcoin through a neat QR code
- don't have to deal with addresses and derivation paths and
- very importantly can receive the Bitcoin from your own lightning node
You send them Lightning and they receive Liquid it's that simple. Now before you say 'hey that's an Atomic swap and Boltz has supported Atomic Swaps for a while now...'
https://boltz.exchange/
Yes that's correct Boltz has. But using Atomic Swaps manually is too advanced and difficult for most people... it's really primarily for enthusiasts and not for beginners. And if you overwhelm people they just turn off or get confused... ask me how I know?
But your friend can download an app on their phone:
https://blitz-wallet.com/
So they download Blitz Wallet write down their 12-word seed phrase in a private place, and the next time you see them they generate the QR Code to receive 20$... you scan the QR with your Lightning App (Phoenix, Green, Zeus, Breeze, whatever) and you send them Lightning which is cheaply and immediately converted to Liquid for them to hold non-custodially, send and receive.
https://blog.boltz.exchange/p/launching-liquid-swaps-unfairly-cheap
https://blog.boltz.exchange/p/dispatching-chain-swaps
Yes this could, technically, have been done through the Boltz Exchange on a webpage... but it's already complicated enough to write down and keep safe a seed phrase for most people. Blitz Wallet, on the other hand, I believe is a practical solution evolving today along with BTCPay Server and the Boltz Plugin.
Now that the app is downloaded with the seed phrase non-custodially secured...
If your friend wants to send you, or anyone else, to include a merchant or exchange the 'sats' they just received they can scan a lightning QR or liquid QR code and send directly from the Blitz mobile app... without having the technical knowledge about how Lightning or liquid works.
In the same way that 99.9% of people have no idea how 'the internet works' in the future 99% of people will have no idea how Lightning, Liquid, or On-Chain works. Bitcoin will just work for them and I believe this is a technical and UI necessity.
Then once your friend/fellow drinker's 'liquid' balance builds up to say, 300,000 sats or greater, a Lightning Channel is automatically opened for them using Blockstream Greenlight - a Lightning-Node in the cloud that only they have access to through their seed phrase. A "maximum opening fee" can also be set so that low on-chain fees will be utilized economically. When the main chain is lesser-utilized a channel will be opened (defaulting to 5000 sats max).
"Inbound Liquidity" is created for them automatically (through settings in the app) on their Lightning Channel, for example allowing for 80% outbound liquidity, 20% inbound swapping some lightning sats to liquid sats in the background of the app. This is all done automatically. Then once the Lightning Channel is opened lightning is the primary way the user sends and receives within the app... enabling exchange, merchant, and peer-to-peer sending and receiving. The user doesn't have to 'get into the weeds', it will just work seamlessly (and it does I have tried it).
In addition, Blitz can use eCash (Cashu or Fedi) in the form of an independent organization's Lightning Sats to make very small micropayments prior to a Lightning Channel being opened. I have tried this (BTC Sessions covers it well) and it does a good enough job for things like Stacker News or Nostr.
- "Blitz Wallet uses Liquid-to-Lightning and Lightning-to-Liquid swaps through Boltz until a Lightning channel is open. Currently, the minimum swap amount is 1,000 satoshis, or 0.00001 Bitcoin. In many cases, this is too expensive and excludes users from making transactions. To address this, Blitz Wallet uses eCash to send and receive Lightning payments under 1,000 sats."
Boltz, utilizing the concept of the Lightning + Liquid + On-Chain Triangle... takes a novel, interesting approach to BTCPay Server as well. This will allow (currently in Beta) merchants, individuals, and organizations to accept Liquid Bitcoin, immediately convertible to Lightning without the organization having to run complicated node software.
If, for example, an NGO or charitable group wants to accept payments in Bitcoin, anonymously from anyone at any time, on-chain fees will be prohibitive not to mention less private, relative to using Lightning or Liquid ie layered solutions. Assuming that people want to donate a few dollars worth of Bitcoin at a time (a few thousand sats) most people will want to donate over lightning using BTCPay Server... individual, whole UTXOs are inefficient. Mobile Lightning apps, convenient and available everywhere can be used to transact without touching on-chain, and the receiving organization doesn't have to understand how Lightning actually works... or necessarily all of the technical tradeoffs.
Just like people don't understand "the tradeoffs" in the way the internet is constructed or used today.
In other words, the same principles that empower the less tech-savy individual (on Blitz wallet)... can empower lightning transactions quickly and cheaply for an organization, all without the complicated node or liquidity management:
After the 'lightning payments' are swapped to Liquid (cheaply and immediately) a liquid balance is accumulated until a reasonable number of sats are available to open a Lightning Channel (using Greenlight or another Non-KYC provider).
The organization decides if they want mostly 'inbound' or 'outbound' liquidity... and through lightning-liquid swaps that "liquidity mix" is established automatically for them depending on their use-case.
-
Next, setup asks us to decide if we want to specify our minimum inbound liquidity in sats or in percentage of our total channel capacity. We choose percentage and go with the default 25% threshold. This means that once our inbound liquidity hit the minimum threshold of 25% inbound liquidity (or, in nominal terms, a bit more than 750k sats of our 3 million sats channel), Boltz Client starts rebalancing our channel.
-
Next we set a budget, the maximum amount we want to spend on fees, applicable for a certain budget period. We are going with 50k sats over 7 days rolling. Lastly, Boltz Client informs us that the target when executing swaps is 100% inbound liquidity, which is exactly what we want as an online merchant, have all our liquidity available as inbound liquidity.
After a certain "liquid" balance is accumulated, a certain number of "liquid" Sats are swapped to 'on-chain' without exceeding a fee threshold... in a view-only wallet with the keys stored offline.
The same 'swap' can also be executed in the opposite direction... to move Liquid to Lightning for example balancing a lightning channel or other purposes.
From the Boltz Blog (a long read but very interesting):
"The first decision boltzcli autoswap setup asks us to take is if we want to:
- maintain inbound liquidity via reverse, e.g. if you are a merchant and need to be able to receive Lightning payments reliably,
- maintain outbound liquidity via normal, e.g. if you are running a Bitcoin ATM that accepts FIAT and needs to be able to send Lightning payments reliably,
- maintain both, e.g. if you are operating a Bitcoin exchange and offer Lightning deposits and withdrawals and need to be able to send and receive reliably
"Let’s now imagine we are operating an online merchant selling amazing hats for sats and need to be able to reliably receive Lightning payments. We do not have the need to send Lightning payments out. Our current channel balance is not great for this use case as we currently only can receive up to 42488 sats, which is barely the price of one hat. Our desired channel balance is basically the exact opposite - all of our channel balance on the remote side of the channel as inbound liquidity. Consequently, we are continuing with the first option “reverse” to manage our inbound liquidity.
Next up is selecting the destination wallet, which also determines if we are swapping to Liquid or to the mainchain (both are supported by Boltz Client). We want to swap to Liquid to benefit from reliably cheap network fees and avoid rebalancing costs spiraling out of control when mainchain miner fees rise."
I think there are some very important takeaways from this 'Atomic Swap' conversation:
-
No new technologies or soft-forks are required to swap between Liquid, Lightning, or On-Chain.
-
It is inevitable that on-chain fees will rise... requiring the use of 'layered money' solutions that we can implement now... not "at some point" in the future once we have a fork that may never happen.
-
People, whether individuals or organizations, will want instant settlement or relatively quick settlement for small transactions... and those transactions will be secure enough for their size. Sending 10 BTC is not the same as sending 10000 Sats... one is an expensive house, the other a fast-food lunch (think Chick-fil-A). Why would we expect these different transaction amounts... to be on the same 'layer' of Bitcoin? The fast-food "lunch-line" requires instant settlement... the house purchase can wait an hour (which is remarkably fast relative to legacy payment systems).
-
No other settlement network can provide instant, quick micropayments like Lightning can to anyone in the world while also remaining interoperable with the world's most secure Proof-Of-Work computer network. The fact that Lightning can settle to on-chain at all is remarkable... and this shouldn't be understated in my opinion.
-
Liquid is obviously not the "same thing" as on-chain Bitcoin... no-one is saying that. But what Liquid does provide is a temporary, settlement layer for funds to accumulate, useful for channel balancing or transacting quickly and cheaply. Liquid is cheaper and more private than on-chain... and although it necessitates compromises ("Federation" risk) there is no other way to 'onboard' a new user, non-custodially for small amounts of Bitcoin (10$) until they have enough to open a lightning channel. Even with a 'soft-fork' my understanding is that the apps, tooling, and 'operating experience' just isn't there... it would take years to develop, not to mention the time required to educated users.
-
On-Chain is extremely transparent. Transparency is necessary for Global Money to expose any "inflation bug" (cough cough XMR) in my opinion. And without transparency people won't trust a blockchain. However the additions of Lightning and Liquid greatly confuse chain-analysis when used intelligently. Liquid does not show transaction amounts... and Lightning transactions aren't publicly visible anyway. The greater the layer-set and anonymity-set the more private the transactions while the base-chain can remain transparent for global money purposes.
-
Boltz, in my opinion, in conjunction with Aqua Wallet and Blitz are offering practical scaling solutions "today" instead of relying on a soft-fork. Just recently I sent 10$ to a friend, who owned no Bitcoin and no sats, to settle a 'bar tab'. What are the other solutions or methods available today... that allow a new user access to the lightning network, non-custodially, cheaply and quickly, for daily-spend amounts of Bitcoin? Now... my friend can buy a coffee, or tip stacker news, or save a few hundred thousand Sats (allowing access to a lightning channel) all in one app. Isn't this what we want, after all for the vast majority of new users? A mobile app can never replace on-chain savings for long-term use (buried in the back yard in a treasure chest etc, chain in a steel box LOL...) but it can get Bitcoin into the hands of millions who don't have access today and in the near future not to mention many businesses and organizations.
I look forward to seeing how all this develops, and I wonder why there isn't more discussion of these kinds of apps or tradeoff-technologies.
- "Boltz.exchange plugin is going to be the most impactful plugin ever released on BTCPay. Be on the lookout. [Alan of Strainly on September 8, 2024]"
I hope Alan is right and I am hopeful.