<p>Addresses do not exist on chain, and at the protocol level even nothing equivalent to an address balance exists. All that exists are UTXOs created by transactions, which carry a scriptPubKey.</p>
<p>Addresses are merely <em>instructions</em> for sender wallets to construct the scriptPubKey of outputs in order to pay the receiver. While it's currently generally possible to infer the used address back from the scriptPubKey, this is really backwards, and not something that will work with e.g. <a href="https://github.com/bitcoin/bips/blob/master/bip-0352.mediawiki" rel="nofollow noreferrer">silent payment</a> addresses.</p>

CC BY-SA 4.0
2024-05-24T11:36:19.093Z
Thanks for asnwering! So the addresses shown in the Bitcoin explorer are inferred from the scriptPubKey, right?
Yan
CC BY-SA 4.0
2024-05-24T11:47:32.227Z
Indeed, and that inference process only works for the current typical address formats. In fact, many (older) explorers show a P2PKH address even when the scriptPubKey is actually P2PK, for historical reasons.
Pieter Wuille
CC BY-SA 4.0
2024-05-24T11:23:00.607Z
2024-05-24T11:23:00.607Z
Pieter Wuille
<p>When I want to spend a UTXO, I need to and only need to provide the <code>scriptSig</code> (or input script, or unlock script). In another word, the <code>scriptPubKey</code> (or output script, or lock script) of a UTXO simply defines the way to unlock this UTXO. And it doesn't have to consist of someone's pubkey hash (the RIPEMD160 hash). I can even define the <code>scriptPubkey</code> as follows: anyone that finds the original content that can be hashed to 0123456789abcdef can spend this UTXO. In this case, there's actually no receiver address.</p>
<p>So is there really such a thing called &quot;Bitcoin address&quot;? Or is the &quot;Bitcoin address&quot; only inferred based on the content of <code>scriptPubKey</code>? Since most P2PKH, P2SH, P2WPKH, P2WSH, P2TR transactions use a fairly standard form of <code>scriptPubKey</code>.</p>

<address><script><output-script>
Is there really a thing called "Bitcoin address"? Since all I need to spend a UTXO is to provide a scriptSig
Yan
# Is there really a thing called "Bitcoin address"? Since all I need to spend a UTXO is to provide a scriptSig

(Asked by: username_0 on 2024-05-24)

When I want to spend a UTXO, I need to and only need to provide the `scriptSig` (or input script, or unlock script). In another word, the `scriptPubKey` (or output script, or lock script) of a UTXO simply defines the way to unlock this UTXO. And it doesn't have to consist of someone's pubkey hash (the RIPEMD160 hash). I can even define the `scriptPubkey` as follows: anyone that finds the original content that can be hashed to 0123456789abcdef can spend this UTXO. In this case, there's actually no receiver address.

So is there really such a thing called "Bitcoin address"? Or is the "Bitcoin address" only inferred based on the content of `scriptPubKey`? Since most P2PKH, P2SH, P2WPKH, P2WSH, P2TR transactions use a fairly standard form of `scriptPubKey`.

**Tags:** address, script, output-script


---

## 1 answers

### Answer by username_1 on 2024-05-24. Score: 2 | Accepted answer

Addresses do not exist on chain, and at the protocol level even nothing equivalent to an address balance exists. All that exists are UTXOs created by transactions, which carry a scriptPubKey.

Addresses are merely *instructions* for sender wallets to construct the scriptPubKey of outputs in order to pay the receiver. While it's currently generally possible to infer the used address back from the scriptPubKey, this is really backwards, and not something that will work with e.g. [silent payment](https://github.com/bitcoin/bips/blob/master/bip-0352.mediawiki) addresses.

> **Comments:**
> **username_0**: Thanks for asnwering! So the addresses shown in the Bitcoin explorer are inferred from the scriptPubKey, right?  
> **username_1**: Indeed, and that inference process only works for the current typical address formats. In fact, many (older) explorers show a P2PKH address even when the scriptPubKey is actually P2PK, for historical reasons.  

---

