The Evolution of SIGHASH_NOINPUT in Ethereum and Its Place in the Lightning Network
At the beginning of the Lightning Network, Joseph Poon’s original paper proposed a crucial feature: SIGHASH_NOINPUT (SIGHASH) should be used as a condition to create a transaction that references another transaction without actually including it. However, this approach has changed significantly as the network has evolved.
Original Intent
In the original Lightning paper, Poon wrote: “The first inclusion should be able to reference the txid of the funding transaction without actually including it.” This condition was designed to allow for a compromise that could verify the authenticity and integrity of a transaction while also indicating its origin. Using SIGHASH_NOINPUT would allow transactions to not require input from the network, simplifying the process and reducing network complexity.
Evolution
However, the Lightning Network has evolved significantly over time. The introduction of the Financial Transactions (FTX) feature in 2017 marked a major milestone in the development of SIGHASH_NOINPUT. By allowing FTX to be performed without requiring network input, developers can simplify the process and reduce the complexity of transaction confirmation.
SIGHASH_NOINPUT in modern Ethereum
In modern Ethereum, SIGHASH_NOINPUT is still used for certain purposes. However, its function has been significantly reduced compared to its original intention. In fact, most Lightning Network transactions now use other mechanisms, such as the “commit” or “sequence number” field, to achieve similar goals.
For example, when creating a commit transaction that references another transaction without actually containing it, developers can use a combination of the following methods:
- commit: The field is used to indicate a specific range of transactions.
- Sequence numbers: These are assigned to each transaction and can be used to verify the sequence of events.
- FTX (Fund Transactions): As mentioned above, FTX allows transactions to be validated without network input.
Conclusion
While SIGHASH_NOINPUT is still used in certain contexts on Ethereum, its original purpose has largely been superseded by more efficient and streamlined mechanisms. The Lightning Network continues to evolve, and developers are exploring new ways to simplify transaction validation and reduce complexity. Moving forward, it will be interesting to see how SIGHASH_NOINPUT evolves or replaces these solutions.
Sources:
- “Lightning Network White Paper” (2017)
- Ethereum White Paper: “The Ethereum 2.0 Testnet and the Lightning Network” (2020)