Between bitcoin and lightning developments there's a lot to keep up with.
Inspired by this tweet, we've summarised the big technical updates to lightning implementations that have been rolled out in 2020. If you haven't been reading the lightning mailing list, we've got you👇
A service that watches the blockchain for you.
The lightning network requires nodes to be online at all times, this is to route payments but also to monitor the blockchain to react to relevant transactions. Unfortunately, for a variety of reasons, nodes won't always be online. To solve this issue, a client can hire a watchtower. A watchtower is a third party service that monitors the blockchain and responds to channel breaches on your behalf. The Watchtower protocol is specified in BOLT13 and was put forward by PISA and is now being led by Talaia Labs. The Eye of Satoshi is an example of a BOLT13 compliant watchtower. You can find out more about The Eye of Satoshi in this Advancing Bitcoin video
The Eye of Satoshi is available for use here: https://github.com/talaia-labs/python-teos
Lightning Loop (previously Submarine Swaps)
A service that gets your funds in and out of the lightning network easily.
Loop is a service and software that enables users to quickly, cheaply, and easily transfer bitcoin from the lightning network to the bitcoin network and vice-versa. lightning Loop is specific to LND, but similar services do exist elsewhere. This feature allows functionality such as closing a lightning channel to any on-chain address. A similar service is Bitrefill's Thor service which provides users with inbound capacity on a lightning channel in exchange for a bitcoin payment.
Authentication and Payments for the lightning-Native Web.
lightning Service Authentication Tokens are admission tickets to a service or website in exchange for payment. So instead of registering for a service and paying by credit card, you can simply pay over the lightning network and gain access to the item you want to use. This allows users to authenticate with a service without requiring the user to sign up for and maintain an account. It uses a mix of the industry standard HTTP status code 402 'Payment required', and macaroons to make this a seamless process flow.
A standard built on top of lightning to improve the user flow.
LNURL is an additional layer of standards on top of the protocol that simplifies using the lightning network. Many lightning-enabled wallets support at least some of these standards. Some of the LNURL standards are:
LNURL-auth generates a key from your wallets seed, and from that seed it generates a new key for each service or website you try to authenticate with. This provides you with a new identity for each site you use without having to sign up. This is similar to LSAT except that it's primary use case is payment for access to a service. LNURL also shares a number of similarities with WebAuthn which is a web specification supported by Google, Mozilla, Microsoft and Yubico.
An LNURL withdrawal is a request to transfer sats from one lightning wallet to another. This means an invoice does not need to be manually created, sent, and then paid. These process steps can be embedded into a simple LNURL-withdraw link or QR code. In addition, time can be added to this scheme so that a direct debit or ACH equivalent can be built using this technology.
This makes it easy to create payment channels. You can find out more on the specification page:https://github.com/btcontract/lnurl-rfc/blob/master/lnurl-channel.md
Wumbo is an option in lightning nodes for large payment channels. lightning network is an experimental network so limits were initially placed on the network to prevent any channel being opened that was larger than 0.167BTC ($2,000 at the time of writing). All major lightning implementations have lifted this limit and imposed their own, if any.
Get paid without an invoice.
Keysend allows you to send money between two online nodes, without requiring an invoice. Keysend is also known as 'non-interactive money sends' and was previously named Sphinx send in LND. lightning Labs developer Joost Jager spoke at the Advancing Bitcoin conference 2020 about some of the in-protocol applications that are possible as a result of keysend
Multi part payments (MPP)
Optimised payment routing.
Multi part payments allow you to send a given amount to a node, with that amount being split across multiple routing paths. This solves the issue of a sender who has enough liquidity in total, but none of their channels can carry the payment amount. All major lightning implementations have now implemented MPP.
Point Hash Time Lock(PTLC)
So this hasn’t been implemented in any of the lightning nodes and is unlikely to happen any time soon. Realistically we won't see this in any nodes until well after Schnorr signatures have been implemented in Bitcoin. We’ve included PTLC’s in this article to get a taste of what’s (potentially) to come. In lightning 1.0 payments are routed using something called Hashed Timelock Contracts or HTLC's. A HTLC is a payment contract that can be redeemed when the hash of a preimage is presented. PTLC’s are similar, but funds are secured not using a hash of a preimage but a private key using standard bitcoin cryptography. SuredBits developer Nadav Kohen describes it in the following way
This means that rather than making payments atomic by using some hash, h(a), with some pre-image, a, we instead treat a as a private key and create a contract that requires that the payee must reveal the private key to a public key A = a*G in order to claim funds.- Nadav Kohen
Benefits of PTLC's over HTLC's include:
- Reduces the ability to associate payments to a given user
- Stuckless (retry-able) payments with proof of payment
- Escrow contracts over lightning
- Lightning Discrete Log Contracts
There's plenty to love about lightning. Development is happening at a fast pace so by 2021 we can expect some amazing things from this scaling technology.