¿Cómo previene exactamente el bitcoin los ataques de doble gasto?

Recientemente comencé a leer sobre Bitcoin, la idea parece difícil de entender y ahora estoy tratando de entender los conceptos básicos.

Leí el libro blanco de Satoshi Nakamoto pero todavía tengo algunas confusiones.

Primero, se ha dicho que la principal ventaja de Bitcoin es su capacidad para prevenir los ataques de doble gasto, mis preguntas son:

  • ¿Esto se debe a la idea de blockchain o la prueba de trabajo?
  • ¿Alguien puede gastar sus bitcoins dos veces en dos transacciones diferentes y dos cadenas de bloques diferentes? si no, ¿cómo evita el protocolo prevenir tal caso?
  • ¿Cuál es exactamente el proceso que siguen los menores para detectar que determinada transacción está gastando dos veces los bitcoins?
  • ¿Por qué los menores (votantes) simplemente no aceptan un nuevo bloque sin ni siquiera verificar si es realmente válido o no? ¿Cuáles son las consecuencias?

Lo siento si mis preguntas parecen muy básicas,

gracias de antemano

Respuestas (1)

Un nodo completo es una computadora que ejecuta un software de nodo completo como el núcleo de bitcoin que ha verificado cada transacción en la cadena de bloques y continúa verificando las nuevas a medida que se entera de ellas. Cada nodo completo valida las transacciones y rechaza los gastos dobles. Si se entera de una transacción que gasta ciertas monedas, rechazará cualquier transacción nueva que intente gastar esas mismas monedas, a menos que la transacción original se haya marcado como reemplazable.

Debido a la naturaleza de las redes informáticas, es posible que no todos los nodos hayan oído hablar de todas las transacciones. También es posible que diferentes nodos hayan oído hablar de las mismas transacciones en diferente orden. La cadena de bloques corrige el orden y el historial de las transacciones para que todos estén de acuerdo con el estado del libro mayor. Una vez que una transacción se ha comprometido con la cadena de bloques y se han agregado suficientes bloques a la cadena después del bloque que contiene la transacción, esa transacción no se puede modificar.

Por lo tanto, cada nodo evita individualmente los gastos dobles de los que se entera y el consenso colectivo de qué transacciones se realizaron o no se produce a través de la cadena de bloques.

¿Cuál es exactamente el proceso que siguen los menores para detectar que determinada transacción está gastando dos veces los bitcoins?

Los mineros no son los únicos que validan transacciones. Como dije, cada nodo completo valida las transacciones para asegurarse de que no haya gastos dobles.

Los mineros siguen el mismo proceso que los nodos completos. La lista completa de reglas de validación se proporciona aquí .

¿Por qué los menores (votantes) simplemente no aceptan un nuevo bloque sin ni siquiera verificar si es realmente válido o no? ¿Cuáles son las consecuencias?

No hay votaciones en bitcoin. No son solo los mineros los que necesitan verificar la validez de los bloques. Los nodos completos ejecutados por los usuarios también lo comprueban. Si un minero genera un bloque no válido, los nodos completos lo rechazarán y el minero perderá dinero porque habrá desperdiciado electricidad y tiempo produciendo ese bloque.

En realidad, se votan los cambios por consenso. Había un eslogan 'Una CPU, un voto'. Temprano.
@Willtech Gmaxwell me dijo que no hay votación en bitcoin porque votar implica elegir a un tercero para que lo represente. Dijo que lo único que se acerca al concepto de votación es el "quórum basado en hashrate", que entiendo que significa el consenso formado mediante la prueba de trabajo con respecto al estado del libro mayor.
De acuerdo, @gmaxwell usa la terminología correcta y sus declaraciones, tal como las ha transmitido, ciertamente no tienen errores. En lo personal, no solo lo llamo votación cuando se elige a alguien para que me represente, sino también para el caso de quórum, donde los procedimientos de los miembros son válidos y se toma una determinación.
¿Qué pasa si todos los nodos completos deciden aceptar cualquier bloque independientemente de su validez (¿por qué incluso desperdician sus recursos comprobando bloques?)? que puede prevenir esta situacion??
@user971961 las reglas de bitcoin requieren que verifiques los bloques. si no los verifica, entonces no es bitcoin. si permitió bloques inválidos, entonces alguien podría mover dinero que no le pertenece. sería un sistema inseguro y sin valor.