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.

I've been reading around: https://en.bitcoin.it/wiki/How_bitcoin_works

What prevents a miner's block from being accepted across the network if the hash checks out when miner forges transactions in the block?

For example, lets say I'm mining and I want to steal money from address A and put it into my address B. So I build a block with the A->B transaction along with some requested transactions. Now if I can compute a hash for the block before anyone else, and send off to peers in the network, how could they reject it? How would they know that's not a real transaction? If bitcoin clients record requests to verify, maybe this request was blocked by some NAT issue.

I can't think of a good way of fixing this and I didn't find anything about in documentation. Any insight would be appreciated. Thanks.

share|improve this question
add comment

2 Answers 2

up vote 6 down vote accepted

Transactions are signed with ECDSA. Incidentally, bitcoin addresses are hashes of the ECDSA public key that can spend them. You can't spend somebody else's coins unless you 1) do a bruteforce search to find their private key or 2) find a public key that hashes out to the same thing. Both are much, much harder than doing a double spend attack.

share|improve this answer
    
Yes I understand that, but that public key verification is done by the miner who submits the transaction into the block and eventually to the block chain. So what if the miner makes something up to put in the body of the block (a false transaction) who verifies the miner? Your answer only ensures the non miners cannot easily steal. –  Patrick Lorio Feb 6 '13 at 3:17
1  
@PatrickLorio, everybody who downloads the blockchain verifies the signatures. There wouldn't be much point in including the signatures in the blockchain if nobody checked them, now would there? –  Nick ODell Feb 6 '13 at 3:20
1  
For some reason I thought the transactions placed in the block were decrypted plain-text. It makes a lot more sense that they're not. Thanks, that was really bugging me. –  Patrick Lorio Feb 6 '13 at 3:34
1  
@PatrickLorio, Signing != Encrypting –  Stephen Gornick Feb 6 '13 at 11:36
add comment

An attack of this nature would be equivalent to resolving an NP-Complete problem. If the hacker has resolved the P=NP conjecture or is Peter Shor working on a secret quantum computer, then perhaps, but honestly this isn't a concern. ECDSA is secure and used in the NSA's suite B protocols.

That said, there is the notion of a 51% attack, which could become real if BTCGuild continues to grow, yet I believe the guys at the open source Bitcoin project have hard coded certain solutions in the blockchain to mitigate some of these issues.

share|improve this answer
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.