Una de las propiedades más valiosas de muchas aplicaciones de blockchain es la falta de : la capacidad de la aplicación para continuar operando de la manera esperada sin necesidad de depender de un actor específico para comportarse de una manera específica. confianza Incluso cuando sus intereses puedan cambiar y empujarlos a actuar de alguna manera diferente e inesperada en el futuro. Las aplicaciones de cadena de bloques nunca son totalmente confiables, pero algunas aplicaciones están mucho más cerca de serlo que otras. Si queremos hacer movimientos prácticos hacia la minimización de la confianza, queremos tener la capacidad de comparar diferentes grados de confianza. Primero, mi definición simple de confianza de una oración: . Si antes de la pandemia caminabas por la calle sin asegurarte de mantener una distancia de dos metros con los extraños para que no pudieran sacar un cuchillo de repente y apuñalarte, eso es una especie de confianza: ambos confían en que las personas rara vez están completamente trastornadas. , y confiar en que las personas que manejan el sistema judicial continúen brindando fuertes incentivos contra ese tipo de comportamiento. la confianza es el uso de cualquier suposición sobre el comportamiento de otras personas Cuando ejecuta un fragmento de código escrito por otra persona, confía en que lo escribieron honestamente (ya sea por su propio sentido de la decencia o por un interés económico en mantener su reputación), o al menos que suficientes personas que verifican el código de que se encontraría un error. existen No cultivar su propia comida es otro tipo de confianza: confiar en que suficientes personas se darán cuenta de que es de interés cultivar alimentos para que puedan vendérselos. Puede confiar en diferentes tamaños de grupos de personas, y hay diferentes tipos de confianza. su A los efectos de analizar los protocolos de blockchain, tiendo a dividir la confianza en cuatro dimensiones: ¿Cuántas personas necesitas para que se comporten como esperas? ¿De cuántos? ¿Qué tipo de motivaciones se necesitan para que esas personas se comporten? ¿Necesitan ser altruistas o simplemente buscar ganancias? ¿ ? Necesitan estar descoordinados ¿Qué tanto fallará el sistema si se violan los supuestos? Por ahora, centrémonos en los dos primeros. Podemos dibujar un gráfico: Cuanto más verde, mejor. Exploremos las categorías con más detalle: : hay exactamente un actor, y el sistema funciona si (y solo si) ese actor hace lo que esperas que haga. Este es el modelo "centralizado" tradicional, y es lo que estamos tratando de mejorar. 1 de 1 : el mundo "distópico". Depende de un montón de actores, los cuales deben actuar como se espera para que todo funcione, sin copias de seguridad si alguno de ellos falla. N de N todos : así es como funcionan las cadenas de bloques: funcionan si la mayoría de los mineros (o validadores de PoS) son honestos. Tenga en cuenta que N/2 de N se vuelve significativamente más valioso cuanto mayor sea N; una cadena de bloques con unos pocos mineros/validadores dominando la red es mucho menos interesante que una cadena de bloques con sus mineros/validadores ampliamente distribuidos. Dicho esto, queremos mejorar incluso en este nivel de seguridad, de ahí la N/2 de N . preocupación por sobrevivir a los ataques del 51 % : hay muchos actores y el sistema funciona siempre que al menos uno de ellos haga lo que esperas que haga. Cualquier sistema basado en pruebas de fraude entra en esta categoría, al igual que las configuraciones confiables, aunque en ese caso la N suele ser más pequeña. ¡Tenga en cuenta que desea que la N sea lo más grande posible! 1 de N : hay muchos actores, y el sistema funciona siempre que al menos un pequeño número fijo de ellos haga lo que se espera que hagan. entran en esta categoría. Pocos de N Las comprobaciones de disponibilidad de datos : el sistema funciona como se espera sin dependencia alguna de actores externos. Validar un bloque comprobándolo usted mismo entra en esta categoría. 0 de N Si bien todos los cubos que no sean "0 de N" pueden considerarse "de confianza", ¡son muy diferentes entre sí! Confiar en que una persona (u organización) en particular funcionará como se espera es muy diferente de confiar en que hará lo que usted espera que haga. una sola persona en cualquier lugar Podría decirse que "1 de N" está mucho más cerca de "0 de N" que de "N/2 de N" o "1 de 1". Un modelo 1 de N quizás se sienta como un modelo 1 de 1 porque se siente como si estuviera pasando por un solo actor, pero la realidad de los dos es diferente: en un sistema 1 de N, si el actor con el que estás trabajando en ese momento desaparece o se vuelve malvado, puedes cambiar a otro, mientras que en un sistema 1 de 1 estás jodido. muy En particular, tenga en cuenta que incluso la corrección del software que está ejecutando generalmente depende de un modelo de confianza de "algunos de N" para garantizar que si hay errores en el código, alguien los detectará. Con ese hecho en mente, esforzarse mucho para pasar de 1 de N a 0 de N en algún otro aspecto de una aplicación a menudo es como hacer una puerta de acero reforzado para su casa cuando las ventanas están abiertas. Otra distinción importante es: ¿cómo falla el sistema si se viola su suposición de confianza? En las cadenas de bloques, los dos tipos de fallas más comunes son las de vida y . fallas las fallas de seguridad Una falla de actividad es un evento en el que no puede hacer algo que desea hacer temporalmente (por ejemplo, retirar monedas, incluir una transacción en un bloque, leer información de la cadena de bloques). Una falla de seguridad es un evento en el que ocurre algo que el sistema debía evitar (por ejemplo, se incluye un bloque no válido en una cadena de bloques). Aquí hay algunos ejemplos de modelos de confianza de algunos protocolos de capa 2 de blockchain. Uso " " para referirme al conjunto de participantes del propio sistema de capa 2, y " " para referirme a los participantes de la cadena de bloques; la suposición siempre es que el protocolo de capa 2 tiene una comunidad más pequeña que la propia cadena de bloques. N pequeña N grande También limito mi uso de la palabra "fallo de vida" a los casos en los que las monedas están atascadas durante un período de tiempo significativo; ya no poder usar el sistema pero poder retirarse casi instantáneamente no cuenta como una falla de vida. (incluidos canales estatales, red de relámpagos): 1 de 1 fideicomiso para la vida (su contraparte puede congelar temporalmente sus fondos, aunque los daños de esto pueden mitigarse si divide monedas entre varias contrapartes), N/2 de gran N fideicomiso por seguridad (un ataque de blockchain del 51 % puede robar sus monedas) Canales (asumiendo un operador centralizado): 1 de 1 confianza para la vida (el operador puede congelar temporalmente sus fondos), N/2 de gran confianza para la seguridad (ataque de cadena de bloques del 51 %). Plasma (suponiendo un operador semidescentralizado, p. ej., DPOS): N/2 de confianza de N pequeña para vida, N/2 de confianza de N grande para seguridad. Plasma : 1 de 1 o N/2 de confianza de N pequeña para vitalidad (depende del tipo de operador), N/2 de confianza de N grande para seguridad. Resumen optimista Resumen de : 1 de fideicomiso de N pequeña para vivir (si el operador no incluye su transacción, puede retirar, y si el operador no incluye su retiro de inmediato, no pueden producir más lotes y puede retirarse usted mismo con la ayuda de cualquier nodo completo del sistema de resumen); sin riesgos de fallos de seguridad ZK Resumen de : sin riesgos de fallas en la vida, sin riesgos de fallas en la seguridad ZK (con ) mejora de retiro de luz Finalmente, está la cuestión de los incentivos: ¿el actor en el que confías debe ser muy altruista para actuar como se espera, solo un poco altruista, o está siendo lo suficientemente racional? La búsqueda de pruebas de fraude es "por defecto" ligeramente altruista, aunque cuán altruista depende de la complejidad del cálculo (ver ), y hay formas de modificar el juego para hacerlo racional. el dilema del verificador Ayudar a otros a retirarse de un paquete ZK es racional si agregamos una forma de micropago por el servicio, por lo que hay pocos motivos de preocupación de que no podrá salir de un paquete acumulativo con un uso significativo. realmente Mientras tanto, los mayores riesgos de los otros sistemas pueden aliviarse si que retrocedan demasiado en la historia o censurar bloques durante demasiado tiempo. acordamos como comunidad no aceptar cadenas de ataque del 51 % Conclusión: cuando alguien diga que un sistema "depende de la confianza", ¡pregúntele con más detalle qué quiere decir! ¿Significan 1 de 1, o 1 de N, o N/2 de N? ¿Están exigiendo que estos participantes sean altruistas o simplemente racionales? Si es altruista, ¿es un gasto pequeño o un gasto enorme? ¿Y si se viola la suposición? ¿Solo necesita esperar unas pocas horas o días, o tiene activos que están bloqueados para siempre? Dependiendo de las respuestas, su propia respuesta sobre si quiere o no usar ese sistema puede ser muy diferente. Publicado originalmente como " " Modelos de confianza