The Lightning Network is a "Layer 2" payment protocol that operates on top of a blockchain-based cryptocurrency (like 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 cryptocurrency through a network of bidirectional payment channels without delegating custody of funds. Lightning Network implementation also simplifies atomic swaps.[clarification needed]
Normal use of the Lightning Network consists of opening a payment channel by committing a funding transaction to the relevant base blockchain (Layer 1), 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.
Joseph Poon and Thaddeus Dryja published the Lightning white paper in 2016.
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.
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.
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. 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 endangers the project's peer-to-peer and blockchain levels.
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."
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 commitment transaction, and Bob holds the commitment transaction. The revocation key for , , is known by Alice, but not by Bob; the revocation key for , , is likewise known only by Bob.
Suppose Alice decides to pay Bob 0.25 mBTC (before this, each owns 1 mBTC):
- Alice creates a new Bob's transaction, , which allocates 0.75 mBTC to Alice and 1.25 mBTC to Bob.
- Alice signs and sends to Bob.
- Bob receives , signs it, and keeps it.
- Bob creates a new Alice's transaction, , which allocates 0.75 mBTC to Alice and 1.25 mBTC to Bob.
- Bob signs and sends to Alice.
- Alice receives , signs it, and keeps it.
- Alice provides , invalidating ; she can then delete .
- Bob provides , invalidating ; he can then delete .
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.
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".
BOLT (Basis of Lightning Technology) specifications were drafted in late 2016. Several implementations were made:
- Lightning Labs' lnd implementation in Go
- Blockstream's c-lightning implementation in C
- ACINQ's eclair implementation in Scala
- A non-commercial implementation by MIT Digital Currency Initiative
- "lightning-rfc: Lightning Network Specifications". 25 September 2017 – via GitHub.
- "Lightning Network whitepaper by Joseph Poon and Thaddeus Dryja" (PDF). 6 January 2019.
- "Bitcoin price: What is Bitcoin lightning network - how could it cause CHAOS with BTC price". Express. 2018-07-06.
- "Statistics". 1ml.com.
- "Lightning Network DDoS Sends 20% of Nodes Down". News Article. TrustNodes. 2018-03-21.
- "The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments" (PDF). lightning.network. January 14, 2016.
- "bips: Bitcoin Improvement Proposals". 25 September 2017 – via GitHub.
- Lightning Network Specifications. Contribute to lightningnetwork/lightning-rfc development by creating an account on GitHub, lightningnetwork, 2019-08-11, retrieved 2019-08-11
|Wikimedia Commons has media related to Lightning Network.|