Warum gibt es im Regtest-Modus eine Ausgabe mit op-return?

Hier eine Ausgabe von getrawtransaction:

{
  "txid": "a2b9e3aa4adeb68a9b8b8b0bbc8d4890585cd711e89cda83e7f236397fac6218",
  "hash": "6d96c04d49eefe3eab4934188841ef3592c818bf789517b90b1f71ff75a14c26",
  "version": 2,
  "size": 183,
  "vsize": 156,
  "locktime": 0,
  "vin": [
    {
      "coinbase": "02b0010101",
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 12.50000000,
      "n": 0,
      "scriptPubKey": {
    "asm": "03d81b3d2ac76e322dcb2e713cb8fdeaf68cb83406c0e4d28dcd10a880ef172a6a OP_CHECKSIG",
    "hex": "2103d81b3d2ac76e322dcb2e713cb8fdeaf68cb83406c0e4d28dcd10a880ef172a6aac",
    "reqSigs": 1,
    "type": "pubkey",
    "addresses": [
      "mwzWcEU4kBkJPSTgB8LSBfvyaEjdXmyGh7"
    ]
      }
    }, 
    {
      "value": 0.00000000,
      "n": 1,
      "scriptPubKey": {
    "asm": "OP_RETURN aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9",
    "hex": "6a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9",
    "type": "nulldata"
      }
    }
  ],
  "hex": "020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0502b0010101ffffffff02807c814a00000000232103d81b3d2ac76e322dcb2e713cb8fdeaf68cb83406c0e4d28dcd10a880ef172a6aac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000",
  "blockhash": "4742b345fb92ce66f5fccaa880ebef29ebe44d8649114ddb06c4f7177047a717",
  "confirmations": 1,
  "time": 1512718207,
  "blocktime": 1512718207
}

Ich interessiere mich für dieses Bit:

{
  "value": 0.00000000,
  "n": 1,
  "scriptPubKey": {
    "asm": "OP_RETURN aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9",
    "hex": "6a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9",
    "type": "nulldata"
  }
}

Wer hat es geschaffen? (Ich benutze regtestden Modus)

Antworten (1)

Das hast du vermutlich.

Die angezeigte Transaktion ist die Coinbase; Es ist eine spezielle Transaktion, die vom Miner hinzugefügt wird. Die OP_RETURN-Ausgabe ist die SegWit-Blockzusage. Es ist die Merkle-Wurzel der wtxid aller Transaktionen (eine txid, die die Zeugen enthält), wodurch sichergestellt wird, dass der Block für alle Zeugen festgeschrieben wird.

Wenn Sie im Regtest-Modus laufen, werden Sie wahrscheinlich direkt oder indirekt von einem Skript namens generateRPC aufgerufen, das einen neuen Block erzeugt. Wenn es SegWit-Transaktionen im Block gab, ist die Zusage obligatorisch (und ansonsten optional).

Wenn ich Ihrer korrekten Antwort folge, habe ich keine SegWit-Ausgänge in meinem Regtest-Block. Der Block hat nur die Coinbase tx. Und die einzelne Ausgabe dieses TX geht an eine Legacy- mAdresse (also nicht SegWit). Trotzdem bekomme ich eine OP_RETURNund ihre Daten sind keine utf8-Zeichenfolge.
Das Segwit-Commitment wird immer erstellt, auch wenn keine Segwit-Transaktionen vorhanden sind. Es ist nicht obligatorisch (ein Block ohne Zeugen darf keine solche Verpflichtung haben), aber Bitcoin Core wird es immer schaffen. Es wird nicht erwartet, dass es für Menschen lesbar oder eine Zeichenfolge ist. es enthält einen Hash der wtxid-Merkle-Wurzel.