Recaudación de recompensas en bloque y tarifas de transacción.

Estaba leyendo un documento sobre datos de transacciones y parece haber dos párrafos contradictorios:

Cada bloque debe incluir una o más transacciones. La primera de estas transacciones debe ser una transacción de base de monedas, también llamada transacción de generación, que debe cobrar y gastar la recompensa del bloque (compuesta por un subsidio del bloque y cualquier tarifa de transacción pagada por las transacciones incluidas en este bloque).

No se requiere que los bloques incluyan transacciones que no sean de base de monedas, pero los mineros casi siempre incluyen transacciones adicionales para cobrar sus tarifas de transacción.

mis preguntas son sobre transacciones de coinbase y tarifas de transacción:

  • ¿Se agrega automáticamente una transacción de coinbase (es decir, se asume por consenso) para cada bloque, o los mineros tienen que agregarla explícitamente como la primera transacción en cada bloque? si es así, ¿cómo lo marcan como una transacción de base de monedas? ¿Es suficiente no establecer entradas y enumerarlo como el primero?

  • ¿Cómo cobran los mineros las tarifas de transacción? ¿Tienen que agregar explícitamente transacciones que no sean de Coinbase con su propia dirección como salida? en caso afirmativo, ¿las transacciones de cobro de tarifas son del mismo tipo que otras transacciones o son especiales de alguna manera?

el primer párrafo del texto citado parece implicar que las tarifas de transacción en un bloque se pueden cobrar a través de la transacción de base de monedas, pero el segundo párrafo parece implicar que los mineros deben agregar explícitamente transacciones que no sean de base de monedas para cobrar las tarifas de transacción; si el minero Mquiere cobrar tarifas de una transacción A->B, ¿debe Mincluir una transacción adicional A->Mademás A->B? si no, ¿cómo saben los demás dónde se cobran las tasas, es decir, la dirección de M?

Respuestas (1)

Los mineros crean de forma independiente una transacción de base de monedas para el bloque. Para crear una transacción de base de monedas, esta transacción debe ser la primera en el bloque y tener solo 1 entrada de base de monedas. La entrada de Coinbase significa que la transacción de salida es 00000000000000000000000000000000000000000000000000000000000000000 y el índice de salida es FFFFFFFF. Ingresa el monto de la transacción calculado como el monto de la recompensa del bloque según la altura del bloque, más todos los montos de las tarifas para todas las demás transacciones dentro del bloque. Miner capaz de tomar esta cantidad total en las salidas. El minero especifica su propia dirección y la cantidad de la recompensa del bloque más la recompensa de la tarifa. En caso de que el minero calcule incorrectamente las cantidades y especifique más de lo esperado, el bloque será rechazado por otros nodos. En caso de que el minero especifique, se aceptará un bloque inferior, pero el minero perderá dinero.

Ejemplo en mainnet cuando el minero pierde toda la recompensa debido a un error:

https://bitaps.com/410995608537d591d6ce5ff2a7966fa84f891c5e2269ef85e8ecdb68d5188f9b

ingrese la descripción de la imagen aquí

hola gracias por el bloque de ejemplo! pero todavía estoy un poco confundido; ¿Significa esto que un minero tiene que calcular las recompensas por bloque y las tarifas de tx correctamente y por sí mismo ? además, vi muchos txs de coinbase recientes que en realidad enviaron más de 12.5 btc, ¿significa esto que un minero puede cobrar tanto la recompensa del bloque como todas las tarifas de tx en este bloque dentro de un solo tx? gracias
Sí, el minero debe calcular todos los montos (recompensa y tarifas) por sí mismo. Calcule la recompensa total + las tarifas y recopile en transacciones de base de monedas únicas.