Bitcoin’s second layer scaling solution — the Lightning Network (LN) — has made some significant strides in 2018, despite the extended bearish sentiment in the markets. Many developers view these types of market downturns as vital periods of growth for both the underlying technology and the core community.
The LN has been flourishing over the last few days, despite the recent negative downtrend in the crypto markets once Bitcoin broke its support. The value capacity of the LN (sum of channel values) is currently around $2 million (~441 BTC) and the number of open channels at roughly 15,800. As of the time of this writing (11/21), this marks a considerable increase from only a few days ago on 11/17. Since then, the sum of the channel value leaped from 232 to 441 BTC, and the number of open channels surged from approximately 14,300 to 15,800.
Reasons for the surge in activity and value aside, evaluating some recent developments — particularly the Neutrino Protocol and BTCPay server — offers some intriguing insights into the growing LN.
Lightning Labs and The Neutrino Protocol
Lightning Labs has been at the forefront of innovation when it comes to the LN. Their Lightning Network Daemon (LND) is a comprehensive implementation of the LN and includes several back-end chain services, like Neutrino, which is an experimental light client. The LND complies with the continually evolving Lightning Network specifications (BOLTs) standards and is tailored towards developers looking to get their feet wet with the LN.
Neutrino is a privacy-preserving light wallet client designed with an emphasis on using the LN. It is written in Go and utilizes compacted block filters to improve upon the SPV bloom filtering (BIP 37) light client implementation that has been the standard among Bitcoin light clients for several years. The Neutrino protocol is still in the experimental phase, so it is not recommended for using at the capacity you would use the full LND client at the moment.
The primary problems that Neutrino addresses are the leakage of information with bloom filters in SPV nodes that can be used to deanonymize users and to provide a more user-friendly experience while retaining a non-custodial, secure and decentralized wallet.
Neutrino is designed to minimize bandwidth and storage on the client side while preserving privacy on the full nodes that serve the light clients. It achieves this through a mechanism where GSC filters are used to represent addresses corresponding in a specific block, which are a much more compressed version of a block than the source block. Low-bandwidth devices (i.e., mobile phones) can subsequently determine if transactions within a newly minted block are relevant to the user’s wallet. If a block contains relevant transactions, then the Neutrino client downloads the corresponding block, but only the transaction data, not the signatures or witness data. The client can then scan and update its transaction information with the process completed by the user’s wallet software rather than a random node, an important privacy consideration.
What Are Submarine Swaps? Send Bitcoin from Mainnet to Lightning Network & Back
Syncing of Neutrino clients follows a modified version of the current BIP 37 SPV client process where the client downloads the chain of block headers rather than the actual blockchain like with a full client. However, the Neutrino client simultaneously downloads a chain of filter headers where a GSC filter corresponds to each block. The Neutrino client — based on analysis of relevant transactions within blocks — downloads the transaction data of the block if the corresponding GSC filter contains the relevant transaction data.
Neutrino clients require much less bandwidth due to GSC compression and actually reduce the computational load on full nodes since filters sent to Neutrino clients only need to be computed once for all of its users. The client also contains new protections for resolving conflicting transaction information and reduces local storage requirements by discarding previous block headers once validated during the syncing process.
Neutrino is still in its early stages, so it should be used with caution. The Neutrino Github explicitly warns about using the experimental protocol and details several major issues with the protocol so far. The official BIP proposals referencing Neutrino are BIP 157 and BIP 158. Lightning Labs also provides an extensive blog post on the Neutrino Protocol and its projected developments.
Future developments in Neutrino include block filter retrieval from outside Bitcoin’s network and potentially integrating the GSC block filter hash directly into the block header via a soft fork. Eventually, the goal is for Neutrino to build the foundation for a next generation of wallet applications to be built on top of.
Another notable development regarding Neutrino surfaced when Bitcoin developer at Bitcoin Advisory — Pierre Rochard — proposed a Microsoft Excel plug-in for the Lightning Network. The plug-in utilizes a Neutrino client and enables users to trivially paste wallet addresses and pay other users on Excel via the LN. These types of LN advances are vital to facilitating the adoption of the technology as Excel is one of the most widely used accounting software tools in the world.
BTCPay Server Developments
BTCPay server has become a popular open-source cryptocurrency payment processor, focusing primarily on Bitcoin. It is a non-custodial invoicing system that conforms to the invoice API of BitPay and effectively allows users to become their own Bitcoin and LN payment processors, either through a self-hosted server or third-party server.
BTCPay, Image from Bitcoin Wiki
Applications can be built on top of it, and several have already created in-store point-of-sale systems using BTCPay server. The primary advantages of using BTCPay server include direct control of funds, use of the LN (can even process payments for other users), lower fees, and universally compatible invoices.
An interesting application of BTCPay server was announced earlier this month by IndieSquare. They developed a Unity SDK that uses the BTCPay server for game developers to create in-game stores and in-app purchases via the LN. Developers can subsequently retain complete control over the payment processing for game stores or purchases while utilizing an invoicing UI for multiple games.
IndieSquare even provides a guide to add an in-game shop UI for game project asset “Survival Shooter” that uses the LN and BTCPay server. BTCPay server is tailored towards developers, but its proliferation should help to reduce concerns around censorship by payment processors stemming from compliance issues.
The Future Lightning Network
Bitcoin has an ample design space for building on top of it and creating user-friendly applications that should help foster greater adoption of the technology. The LN has come a long way since its inception. Recent developments show a trend towards much more viable applications and self-sovereign technical implementations — such as BTCPay Server — that grant users the privacy, decentralization, and security without sacrificing too much on the UI/UX front.
The recent growth of the network over the last week is significant, symbolizing that people are interested in using the LN despite bearish sentiment in the broader market. Such trends typically go unnoticed by mainstream media but prove to be crucial gauges of adoption as the underlying technology continues to evolve.
Lightning Labs notes that it has been six years since the last Bitcoin improvement proposal emphasizing mobile platforms. Neutrino offers an enhancement to several of the problems facing most Bitcoin light clients and their shortcomings in security, privacy, and usability. With increasingly common advancements refining the LN experience, the LN is poised to continue on its trajectory to a scalable payment network solution for Bitcoin.
1 Comment
Nice overview of LN, Neutrino, and BTCPayServer.