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:
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?
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:
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.
@Makyen
) una vez que lea esto, para que pueda eliminarlo, ya que no tiene nada que ver con su respuesta aquí.]
Croraf
Qqwy
pieter wuille