Blockstream engineers Paul “Rusty” Russell and Dr. Christian Decker completed their first lightning transaction on Bitcoin’s testnet this week. The test transaction was made using the latest version of the Blockstream’s lightning prototype software, lightningd 0.5 and consisted of a digital purchase from a web-store.
Speaking to Bitcoin Magazine Decker said:
“This is a big milestone for us. It's the first time we have a channel setup on a real blockchain, with real latencies and block rates, and it's the first multi-hop transaction, where a payment for a digital good routes from one node to another through a third node.”
Making the Transaction
The highly anticipated lightning network is a proposed second-layer protocol to be rolled out on top of Bitcoin’s blockchain. Cleverly utilizing Bitcoin’s programmable elements (e.g., multi-signature and timelock) lightning users should be able to make a virtually unlimited number of off-chain transactions at low cost, potentially boosting Bitcoin’s micropayment-ability and overall scalability.
Several teams are currently working on different implementations of lightning software. Only last week, BitFury, Lightning Labs and ACINQannounced a successful test of proposed lightning routing system Flare, whereas a Lightning Labs developer had previously completed lightning transactions to himself. Blockchain, meanwhile, made lightning-style transactions on the alpha version of their Thunder network — though these are not yet trustless or secure.
Blockstream’s team is now the first to have conducted a successful and trustless transaction between two developers on Bitcoin’s testnet, which served as a “real” payment.
“We've spent over a year working on different parts of the protocol, and from a technical perspective, simply sewing them together isn't challenging,” Russell explained. “But it's easy for us geeks to miss the forest for the trees. For this transaction, I acted as an actual vendor, and Christian made an actual purchase. It involved infrastructure for creating invoices, giving them to the user, and checking if the user paid. We’re not just sending money point-to-point.”
Use of Testnet
Blockstream’s first transaction was done over testnet, a network specifically designed for testing new Bitcoin features. Testnet also has SegregatedWitness deployed, which is required for the lightning network to function in a trustless and secure manner.
“This roll-out on testnet gives people who want to build on Lightning, like wallet developers, a chance to try it out and provide feedback on APIs, find bugs and more,” Russell said. “The change from testnet to the actual Bitcoin network is actually trivial in the code. The difference is that mistakes on the actual Bitcoin network cost real money.”
Creating a transaction with lightning is currently still very much a manual process. Most importantly, users need to open connections to other nodes’ IP addresses themselves. Decker did note, however, that he already wrote a patch to make peers announce their contact information, which will make this process easier.
“Our routing implementation relies on knowing every connection. That works for now, but obviously something more ambitious is being worked on, like BitFury’s Flare,” Russell said.
Additionally, onion routing for increased privacy is also in the works, and might even make it into the upcoming lightningd 0.5 release.
Lightning is often heralded as an important step for Bitcoin scalability, a topic that will be discussed at length during the upcoming Scaling Bitcoin workshop in Milan this weekend. In the days after the workshop, the different teams working on lightning will also come together to discuss compatibility of the different implementations.
“Unfortunately Mats Jerratsch of Blockchain’s Thunder Network won't be there, but it seems like every other implementer will," said Russell. "We’ll go through the components of lightning and find the protocol we'd like to standardize on. Afterwards, we'll have to rework some of our own protocol, based on group decisions by the other lightning teams trying to arrive at an interoperable spec.”
Despite the successful test, Russell and Decker explained it will still take some time before lightning transactions will happen on top of the main Bitcoin network. Before lightning can be rolled out, Segregated Witness must first be activated, bugs in lightningd must be found and fixed, and it must be made more robust against misconfiguration. Then, the Blockstream team wants to create libraries to allow web developers to play with constructing their use-cases.
“We would like to build a small ecosystem on testnet and give people some hands-on experience before moving to mainnet,” said Decker.
Russell and Decker made a short video-demo of the first transaction, which can be viewed here.