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.
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
m1xolyd1an
Julien Klepatch
pieter wuille