<p>Pubkey transactions use a little less space in the block chain overall (if no pruning is used), so you might as well use them when you can.</p>

<p>I think that Satoshi's main reasoning was as follows, though:</p>

<p>Satoshi originally expected that most transactions would be pubkey transactions: the sender would contact the recipient directly and retrieve a public key to send funds to (the protocol has commands for getting this info from recipients, but it's almost never used nowadays). Bitcoin addresses were just a "hack" useful for sending BTC to offline recipients. You know your own public key for use in generation transactions, so addresses aren't necessary and Satoshi avoided using the "hack".</p>

CC BY-SA 3.0
2012-07-20T01:19:27.047Z
2012-07-20T01:19:27.047Z
theymos
<p>At BlockExplorer I can see that (<em>edit</em>: some) generation transactions use a pubkey in the script (<code>&lt;key&gt; OP_CHECKSIG</code>), while ordinary transactions use address/hash (<code>OP_DUP OP_HASH160 &lt;hash&gt; OP_EQUALVERIFY OP_CHECKSIG</code>). <strong>Why don't generation transactions use hash as well</strong>?</p>

<protocol><script>
Why do some generation transactions use pubkey, instead of hash?
hmp
# Why do some generation transactions use pubkey, instead of hash?

(Asked by: username_0 on 2012-07-19)

At BlockExplorer I can see that (*edit*: some) generation transactions use a pubkey in the script (`<key> OP_CHECKSIG`), while ordinary transactions use address/hash (`OP_DUP OP_HASH160 <hash> OP_EQUALVERIFY OP_CHECKSIG`). **Why don't generation transactions use hash as well**?

**Tags:** protocol, script


---

## 1 answers

### Answer by username_1 on 2012-07-20. Score: 3

Pubkey transactions use a little less space in the block chain overall (if no pruning is used), so you might as well use them when you can.

I think that Satoshi's main reasoning was as follows, though:

Satoshi originally expected that most transactions would be pubkey transactions: the sender would contact the recipient directly and retrieve a public key to send funds to (the protocol has commands for getting this info from recipients, but it's almost never used nowadays). Bitcoin addresses were just a "hack" useful for sending BTC to offline recipients. You know your own public key for use in generation transactions, so addresses aren't necessary and Satoshi avoided using the "hack".


---

