Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Documentation clarification: Guide - Transactions #1161

Closed
dirkmc opened this Issue Dec 14, 2015 · 3 comments

Comments

Projects
None yet
2 participants

dirkmc commented Dec 14, 2015

In https://github.com/bitcoin-dot-org/bitcoin.org/blob/master/_includes/devdoc/guide_transactions.md it says:

This pubkey hash can also be reliably repeated later, so it also does not need to be stored. The hash shortens and obfuscates the public key, making manual transcription easier and providing security against unanticipated problems which might allow reconstruction of private keys from public key data at some later point.

Is the part about providing security against unanticipated problems really a reason for hashing the public key?

Contributor

harding commented Dec 14, 2015

I don't know whether that factored into Nakamoto's thinking when he created P2PKH transactions, however this is a real security benefit even though it doesn't come into play in all possible scenarios.

dirkmc commented Dec 15, 2015

Further down in the explanation it says

Bob’s signature script will contain the following two pieces of data:

  1. His full (unhashed) public key, so the pubkey script can check that it hashes to the same value as the pubkey hash provided by Alice.

...

So if the public key is exposed at this step then there would be no security-related reason for hashing it in the earlier step, no?

Contributor

harding commented Dec 20, 2015

@dirkmc assuming addresses aren't being reused, the key isn't revealed until a transaction spending the output is broadcast. At that point. the hypothetical attacker with their ECDSA-breaking scheme is racing against the time it takes to confirm the transaction.

@harding harding closed this Dec 20, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment