OP_RETURN en una transacción de coinbase?

Oye, mirando esta transacción , estoy confundido por qué hay dos salidas y por qué una de ellas está etiquetada con OP_RETURN

¿Está preguntando qué es OP_RETURN en general (explicado en detalle aquí ) o por qué un minero decidió poner uno en una transacción de base de monedas (solo el minero lo sabe con certeza)?
Posibles razones por las que un minero decidió poner uno en una transacción de base de monedas. Una explicación tal vez, nunca he visto esto antes.

Respuestas (2)

Cada bloque segwit tiene uno de estos OP_RETURN en la transacción de coinbase: es la raíz de Merkle del árbol testigo.

Cuando se activó el softfork segwit, esto incluyó una solución al problema de maleabilidad de transacciones de terceros que estaba presente en la red antes. El problema era que cualquier otra persona podía cambiar la firma de una transacción invirtiendo el valor S utilizado en la firma. Esto resultó en otra transacción válida (no estándar) gastando las mismas monedas a los mismos destinatarios, pero con un txid diferente.

Segwit evitó esta fuente de maleabilidad de la transacción al mover el programa testigo fuera del script de entrada a un "campo testigo" separado en la transacción ("segregó el testigo") que se ignora cuando se calcula el txid. Esto significa que incluso cuando se cambian las firmas para transacciones segwit, su txid sigue siendo el mismo. Hacer que el txid sea independiente de la firma también facilita la creación de transacciones no firmadas (ya que su txid no cambia con la firma), lo que es útil, por ejemplo, para los contratos inteligentes empleados en los canales de pago de Lightning Network.

Un bloque se compromete con todas sus transacciones al incluir la raíz del árbol Merkle sobre sus txid. Sin embargo, esto significaría que este compromiso no cubriría las firmas de las transacciones de segwit, ya que no contribuyen al txid. Para comprometerse con las firmas, segwit introdujo un segundo árbol Merkle paralelo, construido a partir de los txid testigos, es decir, una identificación de transacción calculada sobre los datos completos de la transacción, incluido el programa testigo. Dado que el blockheader no se puede extender sin un hardfork, los bloques segwit se comprometen con este árbol testigo al incluir la raíz en un OP_RETURN en la transacción de coinbase.

Otra razón: minería fusionada

Si bien no está en la transacción de base de monedas de ejemplo del OP, otra razón para OP_RETURNuna transacción de base de monedas es la minería combinada. Un minero puede seguir la especificación de minería fusionada que implica colocar uno o más identificadores de bloque de otro sistema en el script de entrada. Además, el minero puede crear uno o más OP_RETURNcon un código de identificación y bloquear la información de las otras cadenas de bloques, de acuerdo con la especificación de esas cadenas.

Ejemplo: bloque 733578 coinbase Tx

Un ejemplo, como se explica aquí , es la transacción de base de monedas del bloque 733578 en la que el minero extrajo otras tres cadenas de bloques (Namecoin, RSK y Vcash, así como BTC). El bloque Namecoin ( ) se identifica en el scriptsig de entrada. Los bloques RSK y Vcash están incluidos en las transacciones de coinbase ; RSK ( ) y Vcash ( ).fabe6d6dOP_RETURN52534b424c4f434b3ab9e11b6d

Según la respuesta de @Murch aquí, el tercero OP_RETURNen este ejemplo es la raíz merkle testigo segregada ( aa21a9ed).