Batch Output
Technical Implementation
A batch output is a transaction output which is locked by a taproot script with an n-of-n Musig2 internal key, and all associated VTXO owners as cosigners. A batch output consists of an unspendable key path and exactly two script paths:- A sweep path that allows the operator to spend the entire output after a timeout, the so-called batch expiry
- An unroll path that enables to split the single batch output into separate VTXO branches of the virtual transaction tree
Virtual Transaction Tree Structure
A batch output encapsulates multiple users’ ownership claims (VTXOs) through a tree of presigned virtual transactions while still allowing, in the worst case, every VTXO holder to exit unilaterally. The leaves of the virtual transaction tree (A, B, C, D) created by the batch output are the VTXOs, ie. the offchain ownership claims of users.

MuSig2, an advanced Schnorr multi-signature scheme enables efficient collaborative signing. This allows the virtual transaction tree to appear as a single signature onchain, significantly reducing the footprint when users need to perform unilateral exits.

