¿Cómo proteger las primeras etapas de una aplicación de prueba de trabajo?

Para una determinada criptomoneda u otra aplicación de cadena de bloques, la prueba de trabajo proporciona seguridad intrínseca en el propio algoritmo que hace que sea poco probable que alguien pueda atacar la red a menos que tenga más del 50 % de la potencia computacional de la red bajo su control.

Esto tiene sentido y funciona una vez que la red tiene un tamaño considerable, pero toda red tiene que empezar en alguna parte, y cuando nace una nueva aplicación y el número de mineros es aún muy pequeño, parecería muy fácil superar a la red para insertar información fraudulenta. transacciones y seguir siendo la cadena más larga de bloques.

¿Hay alguna forma de mitigar este riesgo?

Respuestas (5)

... insertar transacciones fraudulentas ...

No, las transacciones fraudulentas y los bloques que las contienen se rechazan cuando los nodos siguen las reglas de consenso.

Existe un mayor riesgo de reorganización de la cadena, lo que significa que los mineros que extrajeron con éxito un bloque pueden no tener la recompensa por eso cuando su bloque ya no sea parte de la cadena más larga.

El gran riesgo de un ataque del 51 % es que el atacante podría superar al resto de la red para afirmar que la versión de la cadena de bloques del atacante es más larga, reescribir el historial con transacciones válidas y reclamar recompensas en bloque, o deshacer sus propias transacciones cuando vuelva -escribir la historia gastando los utxos primero en sí mismos, haciendo que su transacción previamente válida parezca un gasto doble, por ejemplo, y robando a un comerciante.

Para proteger una nueva aplicación de prueba de trabajo solo es necesario que el trabajo esté razonablemente distribuido. Por ejemplo, en el caso de un clon completo de Bitcoin, los mismos mineros ASIC serían válidos, sin embargo, el costo por beneficio sería muy bajo inicialmente, por lo que un atacante debe preguntarse, ¿qué beneficio obtengo?

No creo que haya riesgo de que esto suceda porque habría muy pocos incentivos para que alguien inserte transacciones fraudulentas. Bitcoin ha logrado el éxito y es una importante reserva de valor, por lo que existe un gran incentivo para lanzar ataques del 51 % en su contra, pero debido al tamaño de la red y la cantidad de mineros honestos, aún no ha sucedido. Entonces, desde mi punto de vista, hasta que una criptomoneda alcance un valor significativo o la use, no tiene riesgo de actividades fraudulentas y cuando alcanza un valor que hace que valga la pena piratearla, entonces la red es demasiado grande para lanzar ataques contra ella.

Sí, tienes toda la razón. ¡Esto puede pasar! Por eso es muy importante usar un algoritmo de prueba de trabajo que sea resistente a la centralización. En otras palabras, ASIC/mining-resistente al ataque de ballenas. En otras palabras, cree una prueba de trabajo novedosa que solo se pueda extraer en CPU (entidades individuales, no grupos completos) o GPU. Esto no es algo fácil de hacer y una de las monedas que lo ha hecho muy bien es Biblepay. Por supuesto, hay otras formas de hacer esto, como ajustar la dificultad y otras características, pero nada tan bueno como un gran algoritmo POW.

La suya es una pregunta válida, aunque no puede incluir transacciones fraudulentas en un entorno donde los nodos testigo son honestos.

Los primeros ataques a las cadenas de bloques son una cosa y ya ocurrieron ( CoiledCoin , por ejemplo), y la mayor amenaza en tales ataques es que los atacantes voluntariamente pierden su dinero para sabotear la moneda recién creada.

La mitigación del riesgo depende de cuánto esté descentralizado el sistema, ajustando la dificultad para que el atacante desperdicie muchos recursos en la computación del PoW (por lo tanto, esto sería renunciar a la disponibilidad del sistema por un tiempo). Incluso se puede pensar en pedir la cooperación de otros grupos de minería para mantener el poder de hash distribuido uniformemente durante las primeras etapas de una nueva criptomoneda.

  1. Use SHA256 : Obligue al atacante a pensar si vale la pena perder bitcoin al atacarlo
  2. Publicitar : Necesitas tanta gente para minar desde el principio como sea posible
  3. Reflexione por qué está haciendo esta pregunta : si el producto que creó está verdaderamente descentralizado (y no es para su beneficio) y tiene utilidad, no se preocupe por si muere. El código no puede morir. Déle unos años y alguien lo reiniciará y hará lo que estaba destinado a hacer, en el mundo.