Wallets & Tools
Who Needs A Lightning Wallet When You Have A Browser?
Remember the Mutiny Web Wallet we discovered in Lastest Stikes #10? The team behind the project made some significant progress and the perfect video announcement. The web wallet now provides all the features you’d expect from a Lightning wallet: send and receive Bitcoin on-chain, open Lightning channels and transact on Lightning. For example, Ben Carman recorded a demo of him using Munity Web to buy an OP_RETURN transaction on OP_RETURN bot.
Behind the scenes, Mutiny Web leverages the BDK and LDK libraries inside a Lightning node written in Rust and compiled to Web Assembly so that it can be loaded in the frontend (written in React Typescript).
Needless to say that the ability to run a freakin’ non-custodial Lighnting node in the browser is huge. Of course, there are still a lot a improvements to be made, and a browser wallet has inherent limitations, notably when it comes to being always online and dealing with persistent storage. But as the teams puts it:
Of course, we don’t have to stay in the web page. This could be a browser extension, it could be a mobile and desktop app, it could run on a server, etc. By getting a node to run in the most constrained environment, we’re setting ourselves up to, ultimately, run anywhere (and even distributed).
New BTCPay Server Release
BTCPay Server v1.7.0 was released, and it’s a big one! The team completely redesigned the checkout page, with a slick, more intuitive layout where the complexity is hidden by default, but can be revealed by users with the click of a button. You can even go one step further with BIP21 Unified QRs that allow you to completely remove the “On-chain” and “Lightning” tabs: all the user sees on checkout is how much is due and a QR Code. The user’s wallet will then, upon scanning the QR, choose whether to use on-chain or Lightning (or ask the user which one to use). And on top of all that, you can now customize your store and server appearance easier than ever. No more CSS stylesheet upload. Yaï!
There are a lot more things in this update (new Greenfield API functionnalities, forms on the checkout page, etc.), which you can check out in the release notes.
If you which to support BTCPay Server’s mission to enable every merchant and individual to self-sovereignly receive Bitcoin, you can donate on OpenSats.
Torq & Nolooking On Umbrel
Torq is an open source “capital management tool for routing nodes” which allows node runners to get (and visualize) a lot of actionnable data regarding their routing activity. With this data in mind, operators can then take educated decisions on where to (re)deploy their liquidity in the network.
nolooking (about which we talked in Latest Strikes #8) is a privacy and efficiency tool that helps node operators open multiple channels at once using PayJoins. In only one transaction, you can go from having funds on some external wallet to having a bunch of channels opened on your Umbrel node!
Standard Sats Wallet Rebrands To Valet
Valet looks really much like SBW, with support for on-chain and both regular and hosted Lightning channels, but with an additionnal twist: fiat channels. Fiat channels are basically hosted channels but with a stable balance in fiat (for example, dollars or euros). It does this by adding a dedicated “fiat rate” field to each channel, which is changed by the host every time the user sends or receive a payment, so that the balance stays flat in fiat terms, plus or minus the incoming/outgoing payment.
Surge allows node operators to visualize their node’s uptime, receive alerts, detect bad peers and issues, analyze traffic and transactions, perform static channel backups on remote servers, and so on. It’s free (for now) and accessible through a waiting list.
The idea is to be able to run multiple Lightning nodes on the same server by leveraging the fact that only a few of them need to be online at the same time. You can therefore keep the nodes “shut down” while they’re not used, and only bring them back online when needed. If you were to do this with a naive approach, you would need to boot up the node everytime you want to use it, getting the saved channel data of the “virtual node” into the real, actual one. And even if booting times are fast, they’re not fast enough to bring a node back online at the exact moment it is needed to answer a request. Here comes Azz’s innovative approach, which they compare to how a computer boots up: instead of having to boot it up, the node’s state is stored in database in a format that can be pushed straight to memory, thus allowing to “revive” the node in 5 milliseconds, as Azz claims.
Synthetic USD In LN Markets
LN Markets released a new feature called Synthetic USD, which looks a lot like what Galoy is offering with Stablesats. Basically, by holding Bitcoin and shorting its price against the US Dollar at the same time, it is possible to mimick a stable balance in dollars terms. It was hence always possible to create this kind of synthetic dollar on LN Markets by shorting Bitcoin on the platform (a possibility that wallets such as Tao exploited), but it is now easier than ever thanks to a dedicated interface and API, allowing users to swap sats for synthetic dollars, and vice-versa, without having to care about the hedging stuff (shorting), which is carried out by LN Markets.
OpenNode Integration In Woocommerce
OpenNode is now officially a preferred payment processor for accepting Bitcoin in WooCommerce, thanks to OpenNode’s plugin and their partership with WooCommerce.
Buy Bitrefill Gift Cards In Zebedee
Zebedee partnered with Bitrefill to enable users to buy gift cards directly from the Zebedee wallet app. This may seem a not so important news, but I personnaly find it huge: people who get their first sats through gaming (and there are more and more of them) are often confused as to how and where they can spend them. This integration will help solve this and further show that Bitcoin is for spending!
Specs & Implems
More On Channel Jamming
There was an update on the Channel Jamming front following Clara Shikhelman and Sergei Tikhomirov’s proposal made earlier this month. Antoine Riard published the first sketch of a reputation-based mechanism to prevent channel jamming. The idea is that, in order to have a payment forwarded through a routing node, the sender would need to join to the payment a certain amount of certificates, signed earlier by this specific routing node1. If the payment goes well, the routing node will replace the sent certificates with new, freshly signed ones (and possibly a few additionnal certificates to reward the sender for their good behavior). It the payment fails, the certificates are burnt and no new certificates are signed for this payment. Certificates use blind signatures, which means that when a routing node signs a certificate, they don’t know who they sign a certificate for, thus maintaning the privacy benefits of Onion Routing. This certificates-based mechanism hence allows routing nodes to assess of the reputation in which they hold the sender of the payment, without even having to identify the sender.
When it comes to bootstraping this new, still highly theoretical system, and issuing the first certificates, Riard proposes that they would be acquired by sending a dedicated payment to each node you want to receive certificates from.
If you are interested in the topic of channel jamming and its mitigations, make sure to subscribe to LNMarket’s blog and newsletter, as I will cover this subject there in a more extensive format soon™. And if you like Latest Strikes and want to receive them by email, subscribing to this newsletter might be a good idea too 😉.
Posts & Papers
The Maturation Of Lightning
Roy from Breez pulished this fantastic piece.
Le tonnerre frappe et tonne deux fois:
Quand il s’abat,
Et dans la ferveur de la voix
De l’homme qui relate son fracas.
If you enjoyed this recap, you can show your appreciation by throwing a few coins to fanis @ lnmarkets.com, by scanning or clicking the QR code.
The number of certificates required by a node to route a certain amount of sats with a certain expiry period can be set by each node, at any time, and is gossiped through the network, much like regular payment fees. ↩︎