paint-brush
¿Los 'modelos de confianza' merecen su título?por@Vitalik
817 lecturas
817 lecturas

¿Los 'modelos de confianza' merecen su título?

por Vitalik Buterin2022/04/23
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Una de las propiedades más valiosas de muchas aplicaciones de blockchain es la falta de confianza: 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, incluso cuando sus intereses pueden cambiar y empujarlos a actuar. de alguna forma 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 simple definición de confianza de una oración: la confianza es el uso de cualquier suposición sobre el comportamiento de otras personas. 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.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - ¿Los 'modelos de confianza' merecen su título?
Vitalik Buterin HackerNoon profile picture


Una de las propiedades más valiosas de muchas aplicaciones de blockchain es la falta de confianza : 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.


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: la confianza es el uso de cualquier suposición sobre el comportamiento de otras personas . 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.


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 existen suficientes personas que verifican el código de que se encontraría un error.


No cultivar su propia comida es otro tipo de confianza: confiar en que suficientes personas se darán cuenta de que es de su 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.


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:


  • 1 de 1 : 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.


  • N de N : el mundo "distópico". Depende de un montón de actores, todos los cuales deben actuar como se espera para que todo funcione, sin copias de seguridad si alguno de ellos falla.


  • N/2 de N : 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 preocupación por sobrevivir a los ataques del 51 % .


  • 1 de N : 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!


  • Pocos 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. Las comprobaciones de disponibilidad de datos entran en esta categoría.


  • 0 de N : el sistema funciona como se espera sin dependencia alguna de actores externos. Validar un bloque comprobándolo usted mismo entra en esta categoría.


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 una sola persona en cualquier lugar hará lo que usted espera que haga.


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 muy 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.


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 fallas de vida y 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 " N pequeña " para referirme al conjunto de participantes del propio sistema de capa 2, y " N grande " 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.


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.


  • Canales (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)


  • Plasma (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.


  • Resumen optimista : 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 de ZK : 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


  • Resumen de ZK (con mejora de retiro de luz ) : sin riesgos de fallas en la vida, sin riesgos de fallas en la seguridad


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 el dilema del verificador ), y hay formas de modificar el juego para hacerlo racional.


Ayudar a otros a retirarse de un paquete ZK es racional si agregamos una forma de micropago por el servicio, por lo que realmente hay pocos motivos de preocupación de que no podrá salir de un paquete acumulativo con un uso significativo.


Mientras tanto, los mayores riesgos de los otros sistemas pueden aliviarse si acordamos como comunidad no aceptar cadenas de ataque del 51 % que retrocedan demasiado en la historia o censurar bloques durante demasiado tiempo.


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 "