¿Qué decide el orden de las transacciones en un bloque?

El orden de las transacciones en un bloque es importante, ya que ese es el orden en que se ejecutan esas transacciones y surten efecto en el estado de la EVM. Pero, ¿qué o quién decide el orden de las transacciones? ¿Está codificado en función del precio de la gasolina pagado por el remitente, de modo que los TX con una gasolina pagada más alta se ordenen primero? ¿O depende completamente del minero decidir el orden de las transacciones en un bloque propuesto?

Respuestas (2)

Depende, de verdad. Algunos mineros en la cadena Ethereum, como Ethermine, usan pedidos no convencionales para su beneficio, es decir, generalmente no hacen el tipo de by-gas. Otros mineros pueden elegir ordenar por gas y nonce, otros pueden elegir ordenar por gas y tiempo visto por primera vez, otros pueden ordenar primero por gas y luego aleatorizar el orden, otros pueden ordenar primero por gas y luego poner el "mejor" direcciones del remitente en la parte superior o inferior, que básicamente es convertir una dirección en un número entero de 160 bits y trabajar con esos valores.

La mayoría de las otras redes POA que se ejecutan en EVM, como BSC o Polygon, generalmente clasifican por gas y por primera vez.

Los mineros deciden el orden de las transacciones (estamos hablando de transacciones con el mejor precio del gas) para obtener el mayor beneficio para ellos. Para saber más sobre el tema google keywords Miner Extractable Value(MEV)

Por ejemplo, si envía una transacción para comprar una gran cantidad de tokens, el minero insertará su propia transacción para comprar este token antes que usted y ganar algo de dinero. Entonces, el orden de las transacciones "dependerá", por así decirlo. Todos tienen sus propios algoritmos personalizados y nadie sabe cómo maximizan las ganancias, esto es parte del bosque oscuro (también palabra clave) de Ethereum

Supongo que esto también implicaría que si codifico mi préstamo flash TX para sobornar al minero con una parte de las ganancias obtenidas, esto me daría más ventaja sobre los bots que intentan ejecutar la misma transacción. ¿Sería eso correcto?