Verificación de transacciones por minero VS nodo completo con y sin SegWit

Estoy tratando de llenar algunos vacíos en mi comprensión de la verificación de transacciones y agradecería cualquier información.

Sin SegWit

  1. Los mineros transmiten nuevos bloques que contienen las firmas con cada transacción.
  2. Los mineros pueden decidir si verificar o no cada transacción en el bloque. Están incentivados para verificar cada transacción porque, de lo contrario, el bloqueo puede no ser válido y perderían su recompensa.
  3. Los nodos completos almacenan todos los datos de la cadena de bloques y, opcionalmente, también pueden verificar las transacciones.

P1: ¿Los nodos completos tienen algún incentivo para validar transacciones de las que no se benefician directamente? ¿Con qué frecuencia los nodos completos realmente validan las transacciones?

Con SegWit

  1. Los mineros transmiten nuevos bloques que pueden o no contener el testigo.
  2. Como antes, se incentiva a los mineros a validar la transacción, pero también se les incentiva a omitir el testigo cuando transmiten nuevos bloques para minimizar el ancho de banda.
  3. Los nodos completos pueden almacenar o no los datos testigo como parte de la cadena de bloques completa.

P2: Si un nodo completo quisiera validar una transacción pero el minero no transmitió el testigo como parte del nuevo bloque, ¿a quién le solicitaría la firma el nodo completo? Según tengo entendido, hay planes para hacer una "poda" de testigos a largo plazo para minimizar el tamaño de la cadena de bloques completa, pero ¿qué obliga a mantener las firmas a corto plazo?

Respuestas (1)

¿Tienen los nodos completos algún incentivo para validar transacciones de las que no se benefician directamente?

Sí. Si no validaron todos los bloques y transacciones, podrían terminar en una bifurcación de blockchain que podría ser facilitada por un atacante. La validación de todos los bloques y transacciones les permite estar seguros de que el nodo está en la cadena de bloques correcta.

¿Con qué frecuencia los nodos completos realmente validan las transacciones?

Para nuevos bloques y transacciones, todo el tiempo. Cada nuevo bloque y transacción que recibe un nodo se valida por completo de acuerdo con las reglas de consenso del nodo. Durante la sincronización inicial de la cadena de bloques, las transacciones y los bloques solo se validan parcialmente (las firmas no se validan) hasta cierto hash de bloque codificado, y solo si ese hash de bloque es parte de la cadena del mejor encabezado.

Si un nodo completo quisiera validar una transacción, pero el minero no transmitió el testigo como parte del nuevo bloque, ¿a quién le solicitaría la firma el nodo completo? Según tengo entendido, hay planes para hacer una "poda" de testigos a largo plazo para minimizar el tamaño de la cadena de bloques completa, pero ¿qué obliga a mantener las firmas a corto plazo?

Los nodos Segwit siempre preguntarán por el bloque con testigos. Si se les envía un bloque sin testigos, aunque se soliciten testigos, el bloque se considerará inválido y el nodo que envió el bloque se desconectará temporalmente del nodo y se bloqueará. Lo mismo ocurre con las transacciones, pero sin la desconexión y la prohibición de IIRC. Para garantizar siempre que un bloque venga con un testigo, un nodo segwit nunca solicitará un bloque de un nodo que no sea segwit.

Andrew chow .... Lo mismo ocurre con las transacciones (¿hace referencia a mempool o Tx de ese minero prohibido?), También, ¿qué es IIRC?
Las transacciones de @anacondabitch sin testigos se consideran inválidas, pero el nodo que las envió no está necesariamente desconectado y prohibido. IIRC es la abreviatura de "Si recuerdo correctamente".