Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

There is a part of the Bitcoin protocol that I don't quite understand.

When you make a transaction, and spend the output of a previous transaction for say 1 BTC, you provide a signature using the private key matching the public key (or address) that appears in the output of the previous transaction. My first question here is what exactly is signed?

Second, when the transaction is broadcast, what prevents a malicious peer to take the input of my transaction with signature, for 1 BTC, and forge a new transaction using that same input going to their own address? To avoid that, the full transaction (including outputs) would need to be signed, I couldn't find a document indicating the whole transaction is signed.

share|improve this question
    
Yeah great question, I asked myself the same question but I found the answer looking all the transcations wiki. –  Gopoi Jan 25 '13 at 23:33
add comment

1 Answer 1

up vote 6 down vote accepted

From what I gather you sign both the input and the output of the transaction, meaning that nobody can alter the content of the transaction without invalidating your signature. I also had some problems with this part of the algorithm, and even asked a similar question earlier, but this one deals with more of the low-level bit operations rather than the high-level concept.

share|improve this answer
1  
What is being signed is indeed (a modified version of) the entire transaction. The details are complex (see the question linked to be the answer), but most importantly, the transaction inputs are stripped before signing (as otherwise, the signature would need to sign itself before signing, which is computationally infeasible). –  Pieter Wuille Jan 24 '13 at 12:14
1  
Thanks, that makes sense. So if there are 3 inputs in a transaction, each input will contain a signature (they may be 3 different signatures) of the whole transaction (minus the inputs), correct? –  Flavien Jan 24 '13 at 13:08
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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