Lightning Network

Routing through an idealized mesh network of payment channels.

The Lightning Network is a "second layer" payment protocol that operates on top of a blockchain (most commonly Bitcoin). It enables fast transactions between participating nodes and has been touted as a solution to the bitcoin scalability problem. It features a peer-to-peer system for making micropayments of digital cryptocurrency through a network of bidirectional payment channels without delegating custody of funds. Lightning Network implementation simplifies atomic swaps.

Normal use of the Lightning Network consists of opening a payment channel by committing a funding transaction to the relevant blockchain, followed by making any number of Lightning transactions that update the tentative distribution of the channel's funds without broadcasting to the blockchain, optionally followed by closing the payment channel by broadcasting the final version of the transaction to distribute the channel's funds.

To perform as intended, Lightning Network requires a transaction malleability fix, such as Segregated Witness (SegWit) in Bitcoin.[1]

History

Joseph Poon and Thaddeus Dryja published the Lightning white paper in 2015. More detailed specifications are being developed by multiple parties, including a non-commercial implementation by MIT Digital Currency Initiative,[2] and Bitcoin Core/bitcoind implementations by Blockstream, Lightning Labs, and ACINQ.

In December 2017, a series of interoperable test transactions were performed on Bitcoin Core implementations.

In January 2018 Blockstream launched a payment processing system for web retailers. Blockstream noted that Lightning was live on mainnet with 60 nodes operating as of January 18, 2018, and should be considered "in testing."

On March 15, 2018, Lightning Labs CEO Elizabeth Stark announced the initial release of lnd 0.4-beta for developers with the intent on making it available for testing purposes on the main bitcoin network with Litecoin support.

In March 2018 the Stellar CTO Jed McCaleb announced that the Stellar Network would be implementing a protocol inspired by the Lightning Network.

The Lightning Network concept was endorsed by mobile payment entrepreneur Jack Dorsey in March 2018.[3]

From April 2018 to August 2018, the Bitcoin Lightning Network had a monthly growth rate of about 15%. The number of nodes increased from 1,500 to 3,000, and the number of channels increased from 4,000 to 11,000.[4]

In April 2018, the eclair wallet was removed from the Google Play store for a few days because the app developer lost the private signing key making it unable to be updated for critical bugs.

2018 DDoS attacks

On March 20, 2018, Lightning Network nodes faced a Distributed Denial of Service (DDoS) attack that sent around 200 nodes offline, down from around 1,050 to 870. The exploit used as many node connections as possible to prevent any new connections.[5] A month earlier in February, Bitcoin Core developer Peter Todd said the Lightning protocol could very well "prove to be vulnerable to DoS [denial of service] attacks in its current incarnation." According to the cryptographer, this poses danger to both the peer-to-peer as well as the blockchain level of the project.

Design

A Lightning Network overview

The payment channels allow participants to transfer money to each other without having to make all their transactions public on the blockchain. This is done by penalizing uncooperative participants. When opening a channel, participants must commit an amount (in a funding transaction, which is on the blockchain). Time-based script extensions like CheckSequenceVerify and CheckLockTimeVerify make the penalties possible.

If we presume a large network of channels on the Bitcoin blockchain, and all Bitcoin users are participating on this graph by having at least one channel open on the Bitcoin blockchain, it is possible to create a near-infinite amount of transactions inside this network. The only transactions that are broadcast on the Bitcoin blockchain prematurely are with uncooperative channel counterparties.

Lightning Paper[6]

The CheckSequenceVerify (CSV) Bitcoin Improvement Proposal details how Hash Time-Locked Contracts are implemented with CSV and used in Lightning.[7]

Commitment transactions

If Alice and Bob have a payment channel, both of them also have a "latest" commitment transaction. A commitment transaction divides the funds from the funding transaction according to the correct allocation between Alice and Bob. For example, if Alice owns 1.0 mBTC (equal to 0.001 bitcoins or 100000 satoshis) and Bob owns 1.0 mBTC in the channel, the commitment transactions divide the total channel funds in that way.

Commitment transactions allow multiple users to participate in a single transaction (and thus act as a single entity), using a multi-key system. Determination of congestion falls primarily on the miners, so this network rests on the assumption that honest miners will not organize a 51% attack.

Since commitment transactions spend the funding transaction, they must be signed by both partners.

Commitment transactions are actually a pair of asymmetrical transactions. Alice's commitment transaction contains two outputs: one which pays Bob outright, and another which is a timelocked, revocable output that eventually pays Alice. The revocable output may be revoked by Bob if Bob knows the revocation key. Bob's commitment transaction is the reverse: it pays outright to Alice, but pays Bob's share under a timelocked, revocable output; if Alice knows the revocation key to Bob's commitment transaction, she can revoke it.

Initially, Alice holds the ${\displaystyle A_{1}}$ commitment transaction, and Bob holds the ${\displaystyle B_{1}}$ commitment transaction. The revocation key for ${\displaystyle A_{1}}$, ${\displaystyle R_{A_{1}}}$, is known by Alice, but not by Bob; the revocation key for ${\displaystyle B_{1}}$, ${\displaystyle R_{B_{1}}}$, is likewise known only by Bob.

Suppose Alice decides to pay Bob 0.25 mBTC (before this, each owns 1 mBTC):

1. Alice creates a new Bob's transaction, ${\displaystyle B_{2}}$, which allocates 0.75 mBTC to Alice and 1.25 mBTC to Bob.
2. Alice signs ${\displaystyle B_{2}}$ and sends to Bob.
3. Bob receives ${\displaystyle B_{2}}$, signs it, and keeps it.
4. Bob creates a new Alice's transaction, ${\displaystyle A_{2}}$, which allocates 0.75 mBTC to Alice and 1.25 mBTC to Bob.
5. Bob signs ${\displaystyle A_{2}}$ and sends to Alice.
6. Alice receives ${\displaystyle A_{2}}$, signs it, and keeps it.
7. Alice provides ${\displaystyle R_{A_{1}}}$, invalidating ${\displaystyle A_{1}}$; she can then delete ${\displaystyle A_{1}}$.
8. Bob provides ${\displaystyle R_{B_{1}}}$, invalidating ${\displaystyle B_{1}}$; he can then delete ${\displaystyle B_{1}}$.

Limitations

The Lightning Network is made up of bidirectional payment channels between two nodes which combined create smart contracts. If at anytime either party drops the channel, the channel will close and be settled on the blockchain.

Due to the nature of the Lightning Network's dispute mechanism which requires all users to watch the blockchain constantly for fraud, the concept of a "watchtower" has been developed, where trust can be outsourced to watchtower nodes to monitor for fraud.

Routing

The original whitepaper in reference to routing suggests that "eventually, with optimizations, the network will look a lot like the correspondent banking network, or Tier-1 ISPs".

Implementations

The specification for the commercial varieties of the lightning network is available on GitHub, and its largest contributor is Rusty Russell of Blockstream.[1]

The non-commercial lightning implementation called 'LIT' is available through the MIT-DCI Github. The MIT-DCI is the largest contributor to this version of the lightning network.

The public alpha release of lnd was made on 10 January 2017. The Release Candidate (RC1) of the Lightning protocol specification was released on 6 December 2017.

References

1. ^ a b "lightning-rfc: Lightning Network Specifications". 25 September 2017 – via GitHub.
2. ^ "The Digital Currency Initiative at the MIT Media Lab". MIT Digital Currency Initiative. Retrieved 2018-07-16.
3. ^
4. ^ "Statistics". 1ml.com.
5. ^ "Lightning Network DDoS Sends 20% of Nodes Down". News Article. TrustNodes. 2018-03-21.
6. ^ "The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments" (PDF). lightning.network. January 14, 2016.
7. ^ "bips: Bitcoin Improvement Proposals". 25 September 2017 – via GitHub.