¿Por qué no se utiliza el Consenso Bizantino Multi-Paxos 'clásico' para Blockchains públicas?

Cualquier solución al problema del general bizantino se puede utilizar como método de consenso para basar un libro mayor distribuido.

Entonces, ¿por qué Satoshi Nakamoto eligió la prueba de trabajo súper costosa (en electricidad y ciclos de CPU)?

Puedo pensar en estas razones:

  • La prueba de trabajo lleva tiempo, lo que significa que los bloques llevan tiempo. (¿Pero hoy en día esto es realmente un inconveniente?)
  • Los mineros son pagados por el PoW. (¿Pero no podría funcionar esto también en un entorno Multi-Paxos, donde básicamente a todos los mineros les gustaría convertirse en líderes para la próxima ronda?)
  • Una cadena de prueba de trabajo seguirá funcionando si la red se divide en dos partes. Esto creará bloques separados en cada mitad de la red, lo que en realidad será un problema cuando las dos mitades se vuelvan a unir (porque entonces se descarta una de las dos cadenas, lo que, si la división de red tomó varios minutos antes de sanar, significa que las personas y los usuarios externos los sistemas podrían haber actuado en función de sus saldos ahora no válidos).

Claramente, estas razones no son lo suficientemente buenas. Entonces, ¿qué razones reales hay para usar Prueba de trabajo en lugar de, por ejemplo, Multi-Paxos u otra solución 'clásica' al problema de los generales bizantinos?

¿No es irresoluble el problema de los generales bizantinos? en.wikipedia.org/wiki/Two_Generals%27_Problem
@croraf Esta es la razón por la cual todos los sistemas BFT, incluido Bitcoin, afirman ser eventualmente consistentes. Es decir: siempre que algún mensaje adecuado en un futuro muy lejano llegue entre nodos, será consistente. Por lo tanto, son solo soluciones a esta versión restringida del problema. De hecho, se ha demostrado que la versión general no tiene solución.
Bitcoin ni siquiera es eventualmente consistente, solo probabilísticamente consistente (la posibilidad de que un estado en particular sea final se acerca a 1 exponencialmente, pero nunca lo alcanza).

Respuestas (3)

El consenso de Nakamoto tiene algunas propiedades que son superiores a los algoritmos BFT. (También tiene algunas propiedades que son inferiores, pero esa es otra historia).

Primero, los algoritmos BFT asumen que una autoridad central elige quiénes son los participantes. NC, por otro lado, permite que cualquiera intente ganar la siguiente ronda.

En segundo lugar, los algoritmos BFT generalmente requieren que 2/3 + 1 (por ejemplo, el 67 %) de los participantes sean honestos. NC establece un umbral inferior de 1/2 + 1 (por ejemplo, 51%). Eso es porque el PoW de NC evita que un nodo transmita dos mensajes a la vez.

Finalmente, NC tiene el atributo interesante de que en el momento en que un minero "gana", también elige simultáneamente las transacciones que va a incluir en el bloque. Esto significa que no hay una ventana de oportunidad para que un atacante intente influenciar al minero ganador para que rompa las reglas.

Tenga en cuenta que Paxos no es un algoritmo BFT. Paxos resuelve fallas de parada y falla. Lo peor que puede hacer un nodo es dejar de funcionar. Paxos no resuelve fallas "bizantinas", donde un nodo puede intentar decir dos cosas diferentes.

Los participantes del consenso no se conocen de antemano, por lo que no sabe a quién escuchar ya quién ignorar. Además, las identidades son extremadamente débiles en Bitcoin (los mineros no tienen identidades en absoluto, los usuarios generalmente solo tienen un par de claves barato), por lo que los ataques sybil ( https://en.wikipedia.org/wiki/Sybil_attack ) son baratos.

La prueba de trabajo crea una relación entre la capacidad de los mineros para votar sobre cuál debería ser el siguiente bloque y un gasto del mundo real (costos de electricidad). No puede falsificar los resultados de la prueba de trabajo, por lo que no puede falsificar la red fingiendo hacer un trabajo que en realidad no hizo.

Si ejecutar un "nodo de minería" en la red no tuviera ningún costo, ¿qué sucedería cuando se uniera a la red un almacén completo de servidores de Amazon con nodos? Necesita un método para defenderse de los ataques sybil/ddos.

Para responder a tus puntos:

  • tomarse el tiempo es esencial, significa que los mineros están trabajando para resolver el siguiente bloque. Su inversión está muy relacionada con la seguridad de la red. Más inversión = más hashpower = más difícil cambiar el historial = más seguridad.
  • Creo que al líder en un entorno de múltiples paxos se le podría pagar algo así como una recompensa en bloque.
  • Esto es cierto, a veces sucede y conduce a un 'bloque huérfano'. En relación con su primer punto, los tiempos de bloqueo más cortos en realidad conducen a tasas más altas de bloques huérfanos, debido a una mayor probabilidad de que dos mineros encuentren sus propios bloques válidos dentro de un período de tiempo corto entre sí.

En relación con Paxos, lo que estoy leyendo sobre multi-paxos dice que se debe confiar en un nodo líder, por lo que parece que se requiere un nivel de confianza en estos sistemas. Los sistemas Paxos también tienen un estado, mientras que la cadena de bloques de bitcoin no tiene estado, por lo que también hay una diferencia en los modos de seguridad/falla.

No edite el spam para eliminar los enlaces, como lo hizo en esta publicación . Hacerlo hace que sea más difícil tratar adecuadamente la publicación de spam y da como resultado que el spam exista en el sitio por más tiempo, además de darle al spammer la oportunidad de revertir la edición para eliminar cualquier marca de spam emitida en la versión editada (que son probable que lo haga, solo porque eliminó el contenido de spam). Consulte: ¿Deberían editarse las publicaciones de spam? [Por favor, envíeme un mensaje ( @Makyen) una vez que lea esto, para que pueda eliminarlo, ya que no tiene nada que ver con su respuesta aquí.]