Is it possible to take multiple transactions in the form:

[A->X] , [B->Y] , [C->Z], where A,B,C,X,Y,Z are arbitrary, unrelated Bitcoin users/wallets

and aggregate them to a single transaction:

[inputs:(A,B,C) outputs: (X,Y,Z)]?

Why yes or why not? Is it possible for some types of transactions and not others?

It might appear as a weird question, but it is part of a research I am conducting, so please feel free to elaborate regarding the technical details (so I will know where to pursue the matter further).


Yes and no.

This can be done for all types of Bitcoin transactions, but only collaboratively by the senders controlling A, B and C. There is even a protocol available to find partners which is called "CoinJoin". The idea is to increase privacy, although this is not necessarily achieved by CoinJoin, as it is often easy to calculate which inputs would correspond to what outputs.

Transaction aggregation cannot be done by third parties or only a subset of the participants, as a signature in Bitcoin needs to cover the complete transaction data. Therefore, to update a transaction with another input and more outputs, all the original signatories need to add their signature again as well.

If you're interested in the topic, you should look into the following keywords:

  • Transaction cut through
  • CoinJoin
  • Mimblewimble
  • "Schnorr Signature Aggregation"
  • RingCT or Ring confidential transactions on Monero

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.