by Liam Kelly
2017 was a stark reminder that Bitcoin and Ethereum were still far from competing with their traditional payment counterparts. Second layer protocols were thus produced, and for many, the Lightning Network and other off-chain solutions disquieted critics.
But, the work is far from over. These solutions are revealing themselves to be much more complex than simply Bitcoin Cash retardants, and they are certainly imperfect models. Thus, in an April 30, 2018, proposal, Blockstream offered a minor change to Bitcoin’s Lightning Network, which would include a scripting change called SIGHASH_NOINPUT.
Simplified Off-Chain Transactions
Of course, it’s become characteristic to avoid grand consensus rallies in the Bitcoin community, but what Blockstream proposes will be as seamless as the addition of Segwit. Pretty smooth sailing, right?
SegWit has locked in on Bitcoin. A tremendous day. After two years of infighting, this upgrade is long overdue. Now, on to SegWit2x in Nov.
— Erik Voorhees (@ErikVoorhees) August 8, 2017
Still and according to Blockstream, eltoo is “a simple, yet powerful, renegotiation and invalidation mechanism for off-chain protocols and smart contracts. Eltoo is much simpler to implement and easier to analyze than previous protocols, can be easily extended to any number of participants and has a very small footprint.”
Basically, it enables the Lightning Network (LN) to be more lightning-y in two ways; updates settlement transactions quicker and allows for more advanced settlement types. Interestingly, this particular update can be easily deployed since the adoption of Segwit, and the two work hand-in-hand to provide speedy on- and off-chain solutions.
Lightning Network Stack: Quick Overview of Functionality
The suggested improvement can be better understood by first dissecting the current LN stack. When released in January 2016, the LN proposal described a relatively novel means of leveraging Bitcoin’s blockchain for micropayments. The common reference point is the exchange of coffee for bitcoin, something that is no longer feasible since the end of 2017. In practice, it resembles two parties entering into a contractual agreement (i.e., you and your local café).
Both parties stake one bitcoin, for example, in order to launch the contract, or better yet, open a “payment channel.” Then they sort pull from this stake when exchanging bitcoin for coffees and pastries. More importantly, this entire exchange is captured by only one bitcoin address.
The folks at Blockstream aptly compare the main Bitcoin blockchain and the Lightning Network with the Supreme Court and legal contracts made between citizens. You only need to arbiter these sub-exchanges when there is a problem; in this way, Lightning is backed by the crypto equivalent of the Supreme Court.
So, the client and café are exchanging coffee for bitcoin all week, back and forth. They are drawing from this initial input of one bitcoin, and the transactions are kept away from the Blockchain in order to improve speed. A mini-ledger of sorts is created that documents each exchange. Each adjustment to the mini-ledger between the client and the café is updated and identified but isn’t broadcast to the blockchain until the payment channel is closed.
Our lovely friends at Wikipedia have provided an outline of this exchange. Replace “Bob” with “client” and “Alice” with “café:”
It is only on the rare occasion that a channel is prematurely closed and then recorded on the blockchain. This event occurs if there exist uncooperative parties. In the case of the café and client, perhaps this client overspends and attempts to get free coffee. This type of behavior would incur a penalty and result in all funds being returned to the non-malicious party (i.e., the café in question). This penalty mechanism is also where the eltoo update hopes to improve.
Eltoo, LN-Penalty, and SIGHASH_NOINPUT
Keeping all this in mind, despite the brevity, we arrive at Blockstream’s most recent update to the Lightning Network Stack; eltoo. Simply put, this addition would serve as “a drop-in replacement for the original update mechanism [LN-Penalty] that maintains backward compatibility with the other parts of the stack.”
This update mechanism, contrary to the standard LN implementation ‘LN-Penalty,’ does not punish, but instead “enforces the latest agreed-upon state of the off-chain contract.” This positive reinforcement, rather than negative forfeiture, is only possible because eltoo more efficiently bundles intermediate transactions.
By “short-circuiting” intermediate exchanges (i.e., those that occurred between the contract’s creation and the last settlement transaction) eltoo omits the retention of outdated states. Examples of outdated states include information reporting malicious agents and nodes still in need of an update. This latter problem has resulted in the loss of funds for some participants.
Concluding the announcement, Blockstream proposes a soft fork the Bitcoin script, called SIGHASH_NOINPUT. This alteration to the script enables the binding of intermediaries mentioned above.
Christian Decker Ph.D., the author of the eltoo proposal, mentioned in the Bitcoin developers mailing list that:
“We have long known that `SIGHASH_NOINPUT` would be a great fit for Lightning. They enable simple watch-towers, i.e., outsource the need to watch the blockchain for channel closures, and react appropriately if our counterparty misbehaves.”
Decker and Co.’s proposal basically makes these off-chain exchanges much more active in the sense that offer greater functionality (as well as governance by watch-towers). It will be interesting to uncover some other use cases of this soft fork in the future, as well as ways it can further lay the foundation for the expanding Lightning Network