Lightning Network
![]() Routing through an idealized mesh network of payment channels. | |
Original author(s) | Joseph Poon, Thaddeus Dryja |
---|---|
Developer(s) | Elements Project (Blockstream) Lightning Labs ACINQ MIT DCI |
Preview release | 1.0 RC
/ 6 December 2017 |
Written in | C, Go, Scala |
Type | Cryptocurrency |
Website | lightning |
The Lightning Network is a "second layer" payment protocol that operates on top of a blockchain (most commonly Bitcoin). It enables instant 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 and minimizing trust of third parties.
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, followed by closing the payment channel by broadcasting the final version of the transaction to distribute the channel's funds.
The specification for using the Lightning Network uses Segregated Witness[1] (SegWit).[2]
History
Joseph Poon and Thaddeus Dryja wrote the Lightning white paper. The specification was announced after the paper, and is being developed by multiple parties, including Elements Project (c-lightning, depending on Bitcoin Core/bitcoind), Lightning Labs (lnd, depending on btcsuite/btcd or Bitcoin Core/bitcoind), and ACINQ (eclair). The specification is available on Github, and its largest contributor is Rusty Russell of Blockstream.[3]
The public alpha release of lnd was made on 10 January 2017.[4] The Release Candidate (RC1) of the Lightning protocol specification was released on 6 December 2017.
In December 2017, three different entities working on creating software implementations, ACINQ, Lightning Labs, Blockstream, performed a series of interoperable test transactions.[5] There is also an implementation by the MIT DCI that uses a different specification. Payment provider Bitrefill tweeted in December 2017 claiming it was the first lightning transaction operating on the Bitcoin network.[6]
On January 4, 2018. TorGuard became the first VPN provider to accept payments via mainnet Lightning network[7] while covering any potential losses of funds when sending Lightning payments.[8]
In January 2018 Blockstream launched a payment processing system for web retailers called "Lightning Charge," and noted that lightning was live on mainnet with 60 nodes operating as of January 18, 2018, and should be considered "in testing."[9][10]
On March 15, 2018, Lightning CEO Elizabeth Stark announced the early phase release version of lnd 0.4-beta for developers with the intent on making it available for testing purposes.[11]
Design
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[12]
The CheckSequenceVerify (CSV) Bitcoin Improvement Proposal details how Hash Time-Locked Contracts are implemented with CSV and used in Lightning.[13]
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.[14][better source needed]
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 .
Limitations
The Lightning Network is made up of bi-directional payment channels between two nodes which combined create smart contracts.[15] If at anytime either party drops the channel, the channel will close and be settled on the blockchain.[16] Also, due to the burdensome nature of the Lightning Network's dispute mechanism which requires all users to watch their full nodes constantly for fraud, a new concept has been introduced called "watchtowers" where trust is outsourced to watchtower nodes to monitor their channel payments for fraud.[17]
References
- ^ Does Lightning require Segregated Witness? in Rusty Russell's Lightning Things To Know
- ^ "lightning-rfc: Lightning Network Specifications". 25 September 2017 – via GitHub.
- ^ "lightning-rfc: Lightning Network Specifications". 25 September 2017 – via GitHub.
- ^ "Alpha Release of the Lightning Network Daemon". Lightning Network Community Blog. Lightning Labs. 10 January 2017. Retrieved 19 September 2017.
- ^ "BITCOIN LIGHTNING NETWORK IS COMING: TEST A TRANSACTION NOW". Bitcoinist. 20 December 2017. Retrieved 21 December 2017.
- ^ "Payment Provider Bitrefill Runs Successful Lightning Transaction Test". Coindesk. 29 December 2017. Retrieved 4 January 2018.
- ^ "TorGuard VPN announcing mainnet Lightning network support".
- ^ "TorGuard VPN officially announces coverage of potential losses".
- ^ "Blockstream Launches Micropayments Processing System for Bitcoin Apps". Coindesk. 17 January 2018. Retrieved 21 January 2018.
- ^ "'UNFAIRLY CHEAP' LIGHTNING NETWORK MAINNET HITS 40 NODES, 60 CHANNELS". Bitcoinist. 18 January 2018. Retrieved 21 January 2018.
- ^ "Announcing our first Lightning mainnet release, lnd 0.4-beta". Article. Lightning. 2018-03-15.
- ^ https://lightning.network/lightning-network-paper.pdf
- ^ "bips: Bitcoin Improvement Proposals". 25 September 2017 – via GitHub.
- ^ Poon, Joseph (November 2015). "The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments" (PDF). We Use Coins.
{{cite web}}
: Cite has empty unknown parameter:|dead-url=
(help) - ^ "Lightning Network May Not Solve Bitcoin's Scaling 'Trilemma'". Article. CoinDesk. 2018-01-20.
- ^ "Understanding the Lightning Network, Part 3: Completing the Puzzle and Closing the Channel". Article. BitcoinMagazine. 2016-06-17.
- ^ "Bitcoin Lightning Fraud? Laolu Is Building a 'Watchtower' to Fight It". Article. CoinDesk News. 2018-02-22. Retrieved 2018-03-21.
External links
- http://dev.lightning.community/
- https://lists.linuxfoundation.org/pipermail/lightning-dev/ on the Linux Foundation servers
- What is the Lightning Network and how can it help Bitcoin scale?
- https://1ml.com/ Lightning Network Search and Analysis Engine