<blockquote>
  <p>Can this effectively be used to break/hide a Bitcoin transaction chain? </p>
</blockquote>

<p>No, the block explorers you've mentioned simply do not include code that is capable of decyphering the nonstandard transaction you've linked to. </p>

<p>Importantly: Bitcoin transactions do not include a 'from address', instead they reference a valid unspent transaction output (UTXO) that they are spending. That said, the majority of transactions throughout history can be decoded to present the user with a 'from address', so this is simply a user-friendly abstraction that block explorers make. The 'from address' is not inherent to the Bitcoin protocol. </p>

<p>So in a simplified sense, rather than trace the transaction history via "this address, and then this address, etc", you would say "this UTXO, and then this UTXO, etc". </p>

<p>Thus, using <code>bitcoin-cli</code> you can easily trace the transaction history. Here is the output when using the <code>getrawtransaction</code> RPC for the transaction you mentioned, with <code>verbosity=1</code>:</p>

<pre><code>user$ bitcoin-cli getrawtransaction 54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f 1
{
 "txid": "54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f",
  "hash": "54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f",
  "version": 1,
  "size": 159,
  "vsize": 159,  
  "weight": 636,
  "locktime": 0,
  "vin": [
    {
      "txid": 
"a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c",
      "vout": 0,
      "scriptSig": {
        "asm":"3045022100d92e4b61452d91a473a43cde4b469a472467c0ba0cbd5ebba0834e4f4762810402204802b76b7783db57ac1f61d2992799810e173e91055938750815b6d8a675902e[ALL] -1",
        "hex":"483045022100d92e4b61452d91a473a43cde4b469a472467c0ba0cbd5ebba0834e4f4762810402204802b76b7783db57ac1f61d2992799810e173e91055938750815b6d8a675902e014f"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.09000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 a86e8ee2a05a44613904e18132e49b2448adc4e6 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914a86e8ee2a05a44613904e18132e49b2448adc4e688ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB"
        ]
      }
    }
  ],
  "hex":"01000000010c0e314bd7bb14721b3cfd8e487cd6866173354f87ca2cf4d13c8d3feb4301a6000000004a483045022100d92e4b61452d91a473a43cde4b469a472467c0ba0cbd5ebba0834e4f4762810402204802b76b7783db57ac1f61d2992799810e173e91055938750815b6d8a675902e014fffffffff0140548900000000001976a914a86e8ee2a05a44613904e18132e49b2448adc4e688ac00000000",
  "blockhash": 
"000000000000000c15dfb68cc1abead192f718cf8b772977d79938f3a4259afa",
  "confirmations": 299789,
  "time": 1378742541,
  "blocktime": 1378742541
}
</code></pre>

<p>So we can see that the input is the first output created by the transaction with id:<code>a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c</code>. Using the same method as above, we can look up that transaction:</p>

<pre><code>user$ bitcoin-cli getrawtransaction a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c 1
{
  "txid": "a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c",
  "hash": "a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c",
  "version": 1,
  "size": 212,
  "vsize": 212,
  "weight": 848,
  "locktime": 0,
  "vin": [
    {
      "txid": 
"c079314b17b7a2c3fbe879e6fc610291c685f6f7819d70bef785295c774b1e04",
      "vout": 1,
      "scriptSig": {
        "asm":"3045022100d4f73a357e323a3f0666264bd018f25296682bd7db12979890b3952b159337d7022039ebfd0d3deeb6236545e6d05d65e9fa395544f69e5275fab2e4f73cc7c20286[ALL] 0223a6fbf80fe06efa9a8707620a1215cf6a5834e6f81ca6592b0e7195fe92eae7",
        "hex":"483045022100d4f73a357e323a3f0666264bd018f25296682bd7db12979890b3952b159337d7022039ebfd0d3deeb6236545e6d05d65e9fa395544f69e5275fab2e4f73cc7c2028601210223a6fbf80fe06efa9a8707620a1215cf6a5834e6f81ca6592b0e7195fe92eae7"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.09000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP 0 OP_LESSTHAN OP_VERIFY OP_ABS 1 16 OP_WITHIN OP_TOALTSTACK 0378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71 OP_CHECKSIGVERIFY OP_FROMALTSTACK",
        "hex":"76009f69905160a56b210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad6c",
        "type": "nonstandard"
      }
    }
  ],
  "hex":"0100000001041e4b775c2985f7be709d81f7f685c6910261fce679e8fbc3a2b7174b3179c0010000006b483045022100d4f73a357e323a3f0666264bd018f25296682bd7db12979890b3952b159337d7022039ebfd0d3deeb6236545e6d05d65e9fa395544f69e5275fab2e4f73cc7c2028601210223a6fbf80fe06efa9a8707620a1215cf6a5834e6f81ca6592b0e7195fe92eae7ffffffff0140548900000000002d76009f69905160a56b210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad6c00000000",
  "blockhash": 
"0000000000000026c3b45ad70e4622dcdaffc8cad2b202d1d5a4254625166ec9",
  "confirmations": 306793,
  "time": 1375519263,
  "blocktime": 1375519263
}
</code></pre>

<p>And we could continue following the transaction history in this way, so you can see that this type of nonstandard transaction does not break the transaction history. Keep in mind that a <a href="https://bitcoin.stackexchange.com/questions/2496/are-bitcoins-inherently-fungible">bitcoin is fungible</a>, so while we can trace a general transaction history, we cannot trace an 'exact coin' through time, as such a thing does not exist. This allows for privacy and fungibility enhancing techniques such as 'CoinJoins' to function. </p>

CC BY-SA 4.0
2019-01-02T23:17:57.730Z
Thank you for your well-written answer. One more comment on it, out of curiosity: What was the input UTXO for the first transaction on the genesis block?
Dimitris Sfounis
CC BY-SA 4.0
2019-01-02T23:35:53.620Z
@DimitrisSfounis that question has an interesting answer! The first tx in each block is a special type of tx with no inputs, called the coinbase transaction. The output it creates is composed of the miner's block reward + tx fees from that block. However, the genesis block is hardcoded into the client, so the UTXO set starts being populated from the second block onwards. Because of this, there is no valid UTXO for the genesis block coinbase tx, meaning those coins are unspendable. See: https://bitcoin.stackexchange.com/questions/10009/why-can-t-the-genesis-block-coinbase-be-spent
chytrik
CC BY-SA 4.0
2019-01-02T22:31:24.640Z
2019-01-03T09:37:30.767Z
2019-01-03T09:37:30.767Z
chytrik
<p>I was reading the Bitcoin wiki on how the Bitcoin protocol <a href="https://en.bitcoin.it/wiki/From_address" rel="nofollow noreferrer">has no "From" address</a> and the closest thing to a from address is a "previously receiving address".</p>

<p>The article then proceeds to show a <strong>transaction</strong> that breaks Bitcoin chain explorers: <code>54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f</code></p>

<p>This is indeed true. Web-based explorers such as <a href="https://www.blockchain.com/btc/tx/54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f" rel="nofollow noreferrer">blockchain.com</a> and <a href="https://live.blockcypher.com/btc/tx/54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f/" rel="nofollow noreferrer">BlockCypher</a> cannot resolve the Input address.</p>

<p>I see in the transaction's details that the tx creator has placed a <code>PUSHDATA(72)[somedata]</code> operation at the Input.</p>

<p><strong>Can this effectively be used to break/hide a Bitcoin transaction chain?</strong> If yes, what is the point for alternative Privacy-oriented coins such as Monero, when absolute privacy in transactions (hidden-input transactions) can be created in Bitcoin?</p>

<p>I'm probably misunderstanding something, and If you can point me in the right direction, I'd be more than grateful.</p>

<privacy><op-return>
Can PUSHDATA/OP_RETURN be used to break a trail of transactions permanently?
Dimitris Sfounis
# Can PUSHDATA/OP_RETURN be used to break a trail of transactions permanently?

(Asked by: username_0 on 2019-01-02)

I was reading the Bitcoin wiki on how the Bitcoin protocol [has no "From" address](https://en.bitcoin.it/wiki/From_address) and the closest thing to a from address is a "previously receiving address".

The article then proceeds to show a **transaction** that breaks Bitcoin chain explorers: `54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f`

This is indeed true. Web-based explorers such as [blockchain.com](https://www.blockchain.com/btc/tx/54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f) and [BlockCypher](https://live.blockcypher.com/btc/tx/54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f/) cannot resolve the Input address.

I see in the transaction's details that the tx creator has placed a `PUSHDATA(72)[somedata]` operation at the Input.

**Can this effectively be used to break/hide a Bitcoin transaction chain?** If yes, what is the point for alternative Privacy-oriented coins such as Monero, when absolute privacy in transactions (hidden-input transactions) can be created in Bitcoin?

I'm probably misunderstanding something, and If you can point me in the right direction, I'd be more than grateful.

**Tags:** privacy, op-return


---

## 1 answers

### Answer by username_1 on 2019-01-02. Score: 2 | Accepted answer

> Can this effectively be used to break/hide a Bitcoin transaction chain?

No, the block explorers you've mentioned simply do not include code that is capable of decyphering the nonstandard transaction you've linked to.

Importantly: Bitcoin transactions do not include a 'from address', instead they reference a valid unspent transaction output (UTXO) that they are spending. That said, the majority of transactions throughout history can be decoded to present the user with a 'from address', so this is simply a user-friendly abstraction that block explorers make. The 'from address' is not inherent to the Bitcoin protocol.

So in a simplified sense, rather than trace the transaction history via "this address, and then this address, etc", you would say "this UTXO, and then this UTXO, etc".

Thus, using `bitcoin-cli` you can easily trace the transaction history. Here is the output when using the `getrawtransaction` RPC for the transaction you mentioned, with `verbosity=1`:

```
user$ bitcoin-cli getrawtransaction 54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f 1
{
 "txid": "54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f",
  "hash": "54fabd73f1d20c980a0686bf0035078e07f69c58437e4d586fb29aa0bee9814f",
  "version": 1,
  "size": 159,
  "vsize": 159,  
  "weight": 636,
  "locktime": 0,
  "vin": [
    {
      "txid": 
"a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c",
      "vout": 0,
      "scriptSig": {
        "asm":"3045022100d92e4b61452d91a473a43cde4b469a472467c0ba0cbd5ebba0834e4f4762810402204802b76b7783db57ac1f61d2992799810e173e91055938750815b6d8a675902e[ALL] -1",
        "hex":"483045022100d92e4b61452d91a473a43cde4b469a472467c0ba0cbd5ebba0834e4f4762810402204802b76b7783db57ac1f61d2992799810e173e91055938750815b6d8a675902e014f"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.09000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 a86e8ee2a05a44613904e18132e49b2448adc4e6 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914a86e8ee2a05a44613904e18132e49b2448adc4e688ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB"
        ]
      }
    }
  ],
  "hex":"01000000010c0e314bd7bb14721b3cfd8e487cd6866173354f87ca2cf4d13c8d3feb4301a6000000004a483045022100d92e4b61452d91a473a43cde4b469a472467c0ba0cbd5ebba0834e4f4762810402204802b76b7783db57ac1f61d2992799810e173e91055938750815b6d8a675902e014fffffffff0140548900000000001976a914a86e8ee2a05a44613904e18132e49b2448adc4e688ac00000000",
  "blockhash": 
"000000000000000c15dfb68cc1abead192f718cf8b772977d79938f3a4259afa",
  "confirmations": 299789,
  "time": 1378742541,
  "blocktime": 1378742541
}

```

So we can see that the input is the first output created by the transaction with id:`a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c`. Using the same method as above, we can look up that transaction:

```
user$ bitcoin-cli getrawtransaction a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c 1
{
  "txid": "a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c",
  "hash": "a60143eb3f8d3cd1f42cca874f35736186d67c488efd3c1b7214bbd74b310e0c",
  "version": 1,
  "size": 212,
  "vsize": 212,
  "weight": 848,
  "locktime": 0,
  "vin": [
    {
      "txid": 
"c079314b17b7a2c3fbe879e6fc610291c685f6f7819d70bef785295c774b1e04",
      "vout": 1,
      "scriptSig": {
        "asm":"3045022100d4f73a357e323a3f0666264bd018f25296682bd7db12979890b3952b159337d7022039ebfd0d3deeb6236545e6d05d65e9fa395544f69e5275fab2e4f73cc7c20286[ALL] 0223a6fbf80fe06efa9a8707620a1215cf6a5834e6f81ca6592b0e7195fe92eae7",
        "hex":"483045022100d4f73a357e323a3f0666264bd018f25296682bd7db12979890b3952b159337d7022039ebfd0d3deeb6236545e6d05d65e9fa395544f69e5275fab2e4f73cc7c2028601210223a6fbf80fe06efa9a8707620a1215cf6a5834e6f81ca6592b0e7195fe92eae7"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.09000000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP 0 OP_LESSTHAN OP_VERIFY OP_ABS 1 16 OP_WITHIN OP_TOALTSTACK 0378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71 OP_CHECKSIGVERIFY OP_FROMALTSTACK",
        "hex":"76009f69905160a56b210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad6c",
        "type": "nonstandard"
      }
    }
  ],
  "hex":"0100000001041e4b775c2985f7be709d81f7f685c6910261fce679e8fbc3a2b7174b3179c0010000006b483045022100d4f73a357e323a3f0666264bd018f25296682bd7db12979890b3952b159337d7022039ebfd0d3deeb6236545e6d05d65e9fa395544f69e5275fab2e4f73cc7c2028601210223a6fbf80fe06efa9a8707620a1215cf6a5834e6f81ca6592b0e7195fe92eae7ffffffff0140548900000000002d76009f69905160a56b210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71ad6c00000000",
  "blockhash": 
"0000000000000026c3b45ad70e4622dcdaffc8cad2b202d1d5a4254625166ec9",
  "confirmations": 306793,
  "time": 1375519263,
  "blocktime": 1375519263
}

```

And we could continue following the transaction history in this way, so you can see that this type of nonstandard transaction does not break the transaction history. Keep in mind that a [bitcoin is fungible](https://bitcoin.stackexchange.com/questions/2496/are-bitcoins-inherently-fungible), so while we can trace a general transaction history, we cannot trace an 'exact coin' through time, as such a thing does not exist. This allows for privacy and fungibility enhancing techniques such as 'CoinJoins' to function.

> **Comments:**
> **username_0**: Thank you for your well-written answer. One more comment on it, out of curiosity: What was the input UTXO for the first transaction on the genesis block?  
> **username_1**: @username_0 that question has an interesting answer! The first tx in each block is a special type of tx with no inputs, called the coinbase transaction. The output it creates is composed of the miner's block reward + tx fees from that block. However, the genesis block is hardcoded into the client, so the UTXO set starts being populated from the second block onwards. Because of this, there is no valid UTXO for the genesis block coinbase tx, meaning those coins are unspendable. See: https://bitcoin.stackexchange.com/questions/10009/why-can-t-the-genesis-block-coinbase-be-spent  

---

