My question is that, suppose there is a txn tx(k) paid from user u to v, that refers two txns tx(i) and tx(j) as it's inputs. Also, both these inputs are meant for different public keys of u, say, Pk1(u) and Pk2(u).

How does u sign tx(k) for v, i.e. how does she convince v that she owns both of those public keys? Does she sign tx(k) with both Sk1(u) and Sk2(u)?
Thank you.

1 Answer 1


In short words: yes, if you want to redeem two previous outputs in one transaction - you should sign twice. The steps for creating such transaction are:

  1. create "template" of transaction for redeeming first output
  2. hash it. this will be digest1.
  3. sign the digest1 with your privkey1. this will be signature1
  4. create "template" of transaction for redeeming second output
  5. hash it. this will be digest2 (not equal to digest1 !)
  6. sign the digest2 with your privkey2. this will be signature2
  7. create the transaction itself with {pubkey1, signature1, pubkey2, signature2}

note: steps 1,2,3 can be made by Alice who has privkey1. steps 4,5,6 can be made by another person, say Bob who holds privkey2. step 7 can be made by everyone

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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