Estoy tratando de llenar algunos vacíos en mi comprensión de la verificación de transacciones y agradecería cualquier información.
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?
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?
¿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.
usuario380208
andres chow