¿Cómo trata la red Bitcoin a los malos actores?

¿Alguien puede explicar a un alto nivel cómo la red trata con los malos actores (ya sea intencionalmente (es decir, atacante) o no intencional (es decir, nodo mal configurado o un nodo que ejecuta código obsoleto, código bifurcado, etc.))?

Sin saber demasiado sobre las partes internas de bajo nivel de Bitcoin, asumo que hay controles de rutina a medida que los datos fluyen a través del código en la red para probar que se cumple el protocolo; y que cualquier cosa fuera del protocolo esperado se rechace o marque. Supongo que todas estas verificaciones se verifican esencialmente exclusivamente con el 'modelo de datos' esperado, ya que obviamente es imposible analizar directamente qué código se ejecuta en mineros/nodos independientes.

Entonces, corríjame si me equivoco aquí, o elabore más para completar un poco más el panorama general.

En segundo lugar, quería saber, en el caso de un minero/nodo hostil conocido (o, en menor medida, un participante de la red obsoleto o mal configurado), qué recurso está disponible para que otros usuarios o mineros 'informen' o incluyan en la lista negra o eviten los nodos o transacciones afectados?

Es decir, ¿hay una función incorporada para informar una violación del protocolo (ya sea que se pueda ejecutar en el sistema del atacante o por medio de otros participantes en la red que identifiquen a dicho atacante)?

Se agradece su aclaración, gracias!

Respuestas (2)

Suponiendo que hay un minero que colocará transacciones no válidas en un bloque:

Primero, este minero tiene que encontrar un hash de muy alta dificultad para que el bloque sea válido.
Eso por sí solo es extremadamente improbable, ya que está tratando de encontrar un hash más rápido que cientos de miles de mineros honestos. Los mineros honestos probablemente encontrarán un hash correcto para un bloque válido y honesto, mucho más rápido de lo que el minero deshonesto puede completar su bloque corrupto.

En segundo lugar, si el minero puede encontrar un hash y publicar con éxito este bloque corrupto/no válido, cualquier nodo que reciba este bloque no válido examinará los datos y lo reconocerá como no válido. Cuando ven un bloque no válido, se negarán a agregarlo a su cadena de bloques, se negarán a compartirlo con otros nodos y probablemente incluirán en la lista negra al nodo que se lo envió.

El minero corrupto habrá invertido mucho tiempo y esfuerzo en encontrar un hash, solo para encontrarse rápidamente en la lista negra e ignorado.

Ah, entonces parece que el bloque en sí puede ser el 'modelo de datos' al que aludí; para los cuales los nodos / mineros pueden verificar pragmáticamente para verificar la validez. Esto es conexión de puntos, gracias por la clara explicación.
Una solución no criptográfica, por ejemplo, podría ser que un nodo examine el bloque confirmado anterior y luego haga una 'diferencia' con el nuevo bloque (diferenciando solo las transacciones que existen en ambos bloques). Si hay algún conflicto, sabe que el nuevo bloque no es válido.
Sin embargo, los bloques de Bitcoin no contienen transacciones antiguas. Entonces, aquí es donde entran algunas de las matemáticas criptográficas pesadas: según tengo entendido, el protocolo dice que el nuevo bloque válido debe contener un hash que es el resultado de todos los hash de los bloques anteriores combinados, como tal, si eliminara alguno uno de esos bloques/hashes (o alterar las transacciones contenidas dentro) el nuevo hash no se computaría. Por lo tanto, su lógica de validez de bloque no necesita examinar específicamente el historial de transacciones; solo necesita verificar que el nuevo hash devuelve correctamente el resultado esperado de todos los hash anteriores.
Si el hash no se alinea, entonces no es válido; en este punto, el nodo debe rechazarlo y, opcionalmente, tomar medidas defensivas contra la fuente de ese bloque, es decir, marcarlo o incluirlo en la lista de bloqueo.

Cómo la red trata con los malos actores (ya sea intencionalmente (es decir, atacante) o no intencional (es decir, nodo mal configurado o un nodo que ejecuta código obsoleto, código bifurcado, etc.)): La mayoría del software de bitcoin está diseñado para escuchar información en Internet y pasar en si es válido. Si no es válido suficientes veces del mismo compañero, el software dejará de escuchar a ese compañero. Esto corta los nodos que no proporcionan datos válidos.

Qué recurso está disponible para que otros usuarios o mineros 'informen' o incluyan en la lista negra o eviten los nodos o transacciones afectados : solo unos pocos nodos se habrán conectado a la fuente, y la mejor protección para TODOS los demás nodos es la respuesta anterior. Nadie envía datos a un montón de compañeros, por lo que nadie puede estropear muchas máquinas a la vez. Dado que, si envía un lío, el nodo al que lo envía NO lo transmitirá, no hay necesidad de informar o incluir en la lista negra.

Uno de los problemas de las listas negras es que se puede abusar de ellas. El modelo de Bitcoin de conectarse a algunos nodos y luego pasar mensajes entre ellos después de la validación es una solución elegante para este problema de descentralización.

Tratar con "ataques" intencionales : para ataques que usan transacciones no válidas, la respuesta de abelenky es suficiente. Para los estafadores y piratas informáticos, Bitcoin no tiene mecanismos internos para identificar a las personas. Los entusiastas de Bitcoin han estado desarrollando sus propios métodos personales para conectar dichos puntos (aplicaciones de mensajería, foros en sitios de Bitcoin, arreglos de "Web of Trust", etc.) durante varios años. Dudo que todos puedan catalogarse, pero si le compras o le vendes a alguien, solo pregunta y obtendrás más y más información con el tiempo.