ANYPREVOUT
SIGHASH_ANYPREVOUT (APO)
Links
Introduction
SIGHASH_ANYPREVOUT
, an updated version of SIGHASH_NOINPUT
, is a proposal for a signature hash
(sighash) where the identifier for the UTXO being spent is not signed, allowing the signature to be
used with any UTXO that is protected by a similar script (i.e. uses the same public keys).
In other words, a transaction presigned with SIGHASH_ANYPREVOUT
can be signed once and later
"attached" to multiple different outputs, as long as the conditions are met.
The original proposal for SIGHASH_NOINPUT
, was mentioned in the original Lightning Network
paper and a more detailed proposal in the
Eltoo whitepaper.
Specification
This proposal has been specified in BIP-118.
Use Cases
APO was specifically proposed to bring about Eltoo, a more efficient Lightning Channel update mechanism, but can be used to achieve various other use cases, such as Statechains and Spacechains. It can also be used to emulate a CTV-like covenant and all its use-cases, but this emulation is both more fragile (as you need to store signatures and pre-signed transactions) and less efficient, so it is not an ideal solution to bring about these use-cases.