¿El protocolo de Bitcoin define cómo los mineros hacen la selección de su conjunto de txns?

Sabemos que los mineros seleccionan un conjunto de txs de su grupo de memoria local y los colocan en un bloque antes de hacer PoW.

Me pregunto si este proceso de selección está definido por el protocolo o si incluso los mineros "honestos" pueden seleccionarlos de la forma que deseen, por ejemplo, seleccionan el subconjunto que maximiza la tarifa de tx.

Respuestas (1)

No, el proceso de selección de transacciones a incluir en un bloque no está definido en el protocolo. La única transacción que los mineros tienen que incluir en un bloque es la transacción coinbase, es decir, la transacción que los recompensa con nuevos bitcoins si logran extraer el bloque con éxito. Pero incluso si los mineros no tienen que incluir otras transacciones en un bloque, lo harán porque les permite cobrar las tarifas de transacción.

Los mineros en general optan por incluir transacciones con tarifas más altas. En el cliente principal de bitcoin, la fecha de la transacción también juega un papel: las transacciones más antiguas tienen prioridad sobre las más nuevas, por lo que la transacción con tarifas de transacción más bajas aún tiene la oportunidad de incluirse en un bloque, pero más tarde.

Editar: según el comentario de Pieter Wuille, las transacciones más antiguas ya no se priorizan desde v0.15.0

Llamarlo una transacción de génesis es un poco confuso, por lo general se conoce como la transacción coinbase en.bitcoin.it/wiki/Block#Description (desafortunadamente, eso también se ha vuelto confuso considerando la popularidad de la compañía con el mismo nombre).
Buen punto, he actualizado mi respuesta.
La priorización basada en la edad de la moneda en la minería se deshabilitó de forma predeterminada en Bitcoin Core 0.13, quedó en desuso en 0.14 y se eliminó en 0.15. Ahora solo se está clasificando según la tarifa.