¿Por qué hay una salida con op-return en modo regtest?

Aquí hay una salida de 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
}

Estoy interesado en este bit:

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

¿Quién lo creó? (Estoy usando regtestel modo)

Respuestas (1)

Lo hiciste, presumiblemente.

La transacción que está mostrando es la base de monedas; es una transacción especial agregada por el minero. La salida OP_RETURN es el compromiso del bloque SegWit. Es la raíz de Merkle del wtxid de todas las transacciones (un txid que incluye los testigos), lo que garantiza que el bloque se confirme con todos los testigos.

Cuando se ejecuta en modo de prueba, probablemente, directa o indirectamente, desde un script llamado generatellamada RPC, que produce un nuevo bloque. Si hubo transacciones SegWit en el bloque, el compromiso es obligatorio (y opcional de lo contrario).

Si estoy siguiendo su respuesta correctamente, no tengo ninguna salida de SegWit en mi bloque de registro. El bloque solo tiene la base de monedas tx. Y la salida única de este tx es a una mdirección heredada (por lo tanto, no a SegWit). Todavía obtengo un OP_RETURNy sus datos no son una cadena utf8.
El compromiso de segwit siempre se crea, incluso cuando no hay transacciones de segwit. No es obligatorio (se permite que un bloque sin testigos no tenga tal compromiso), pero Bitcoin Core siempre lo creará. No se espera que sea legible por humanos o una cadena; contiene un hash de la raíz wtxid merkle.