¿Qué obliga a que las transacciones sean visibles para todos los mineros?

¿Cómo se proporcionan las transacciones a los mineros? ¿Y qué evita que ocurra el siguiente escenario?


Una transacción válida se informa inicialmente a un nodo "rogue", A, en la red. Si ese nodo es un minero, simplemente se queda con la transacción para que pueda (eventualmente) obtener el incentivo la próxima vez que ingrese un bloque en la cadena. La red aceptará el bloque ya que la transacción es válida, ¿eh?

Si Ano es un minero, simplemente trabaja con un minero "socio" Bque otorga Auna parte del incentivo obtenido por cada transacción que se Aenvía By Bse ingresa con éxito en la cadena de bloques.


Entonces, en cierto sentido, ¿qué impide que los mineros paguen (ilegalmente) a otros nodos en la red por más transacciones (válidas)? A la luz de algo como la neutralidad de la red, ¿tal vez los mineros puedan pagar por un mejor servicio de los nodos que reciben transacciones? ¿Cuántos nodos deben saber acerca de una transacción antes de que pueda colocarse en un bloque?

Respuestas (2)

Una transacción puede ir en un bloque si es válida (hace referencia a entradas que ya están en el mismo bloque o en bloques anteriores, los scripts son legales y devuelven el éxito, y las firmas se validan correctamente), independientemente de si otros nodos lo han visto antes o no. Entonces, si un nodo "egoísta" asociado con un minero en particular recibe una transacción, es perfectamente libre de sentarse en él hasta que pueda incluirlo en uno de sus propios bloques.

Es por eso que no envía su transacción a un solo nodo. Lo envías a tantos nodos diferentes como puedas. (Bitcoin Core, de forma predeterminada, intentará permanecer conectado a hasta 125 nodos en un momento dado y, que yo sepa, intentará enviar una transacción recién creada a los 125). Quizás algunos de esos nodos son " egoísta", pero espera que al menos algunos de ellos no estén afiliados a ningún minero en particular, y se esforzarán por transmitir su transacción lo más ampliamente posible, como es el comportamiento predeterminado del software de nodo estándar.

Con suerte razonable, su transacción se propagará rápidamente a todos los mineros de la red, y cada uno de ellos tiene un incentivo (a saber, la tarifa) para incluirla en el siguiente bloque que extraen. (Si el minero X se niega a incluirlo en su próximo bloque, con la esperanza de quedarse con él hasta que extraiga otro bloque en algún momento posterior, corre el riesgo de que algún otro minero Y que haya recibido la transacción lo incluya en uno de sus bloques antes que el minero) . X llega a minar un segundo bloque. En ese caso, Miner X nunca recibe la tarifa).

Entonces, un nodo que falla en retransmitir una transacción, guardándola para su próximo bloque, no hace mucho daño y tampoco gana mucho. Un nodo que intenta guardar una transacción para un bloque posterior causa algún daño, pero también corre el riesgo de sufrir una pérdida monetaria, por lo que tiene un incentivo para no hacerlo.

Quienquiera que origine la transacción (el remitente) quiere que su transacción se complete lo más rápido posible, especialmente si le adjuntaron un gran "incentivo" (tarifa).

Entonces anunciarán su transacción a muchos otros nodos.

Nada obliga realmente a esos nodos a compartir la transacción con todos los demás nodos, aunque se supone que deben compartirla.

Pero el remitente original puede enviar la transacción a cualquier nodo/grupo/minero que crea que podría completar la transacción. En última instancia, el remitente se asegurará de que la transacción se distribuya ampliamente, incluso si algunos nodos no siguen el protocolo de intercambio.

En general, simplemente no hay razón para no compartir todas las transacciones con otros nodos. Cuando surge una transacción excepcionalmente valiosa, guardarla para usted puede parecer una buena idea, pero se compartirá entre los mineros con o sin su cooperación.