Skip to content

Latest commit

 

History

History
46 lines (32 loc) · 1.73 KB

apo.md

File metadata and controls

46 lines (32 loc) · 1.73 KB

+++ title = "ANYPREVOUT" description = "Overview of the Merklize All The Things proposal from Salvatore Ingala" slug = "apo" weight = 10 template = "docs/page.html"

[extra] lead = "SIGHASH_ANYPREVOUT (APO)" toc = true +++

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.