Discurso: Gavin Wood
Gavin ha estado prestando atención al tema de los ataques de brujas (resistencia civil) recientemente. PolkaWorld revisó el discurso de apertura del Dr. Gavin Wood en Polkadot Decoded 2024 y quería explorar algunas de las ideas de Gavin sobre cómo prevenir los ataques de brujas.
¿Qué es un ataque de bruja?
Como sabrán, he estado trabajando en algunos proyectos, estoy escribiendo un documento gris, enfocándome en el proyecto JAM, y también he trabajado algo de código en esta dirección. De hecho, en los últimos dos años he estado pensando en una cuestión muy crítica y muy importante en este campo: cómo prevenir la resistencia civil. Este problema está en todas partes. Los sistemas blockchain se basan en la teoría de juegos y, al analizar juegos, normalmente necesitamos limitar el número de participantes o gestionar la arbitrariedad que puedan exhibir los participantes.
Cuando diseñamos sistemas digitales, queremos mucho poder determinar si un punto final en particular, es decir, un punto final digital, está siendo operado por un ser humano. Quiero dejar claro desde el principio que no estoy hablando aquí de identidad. La cuestión de la identidad es ciertamente importante, pero el punto aquí no es determinar la identidad específica de un punto final en el mundo real, sino distinguir la diferencia entre este dispositivo y los dispositivos actualmente operados por humanos. Más allá de eso, una pregunta adicional es: si el dispositivo es efectivamente operado por un humano, ¿podemos darle a esa persona un seudónimo para que pueda ser identificada en un contexto específico, y si vuelve a interactuar con nosotros usando este dispositivo en el futuro? Podremos identificarlos nuevamente.
A medida que la forma en que interactuamos cambia gradualmente de comunicarnos principalmente con otras personas (como en la década de 1980, cuando yo nací) a interactuar con sistemas, este tipo de sistemas digitales, especialmente los sistemas Web3 descentralizados, se vuelven cada vez más importantes. En la década de 1980, las personas se comunicaban principalmente directamente entre sí; en la década de 1990, comenzamos a interactuar con servicios por teléfono, como la banca telefónica. Este fue un gran cambio para nosotros, y aunque originalmente la banca telefónica consistía simplemente en muchos centros de llamadas operados manualmente donde hablábamos con las personas por teléfono, con el tiempo esos sistemas evolucionaron hasta convertirse en los sistemas de voz automatizados que tienen hoy. Con el desarrollo de Internet, este tipo de interacción humana se ha vuelto cada vez menor y casi ya no interactuamos directamente con los humanos en los servicios diarios. Por supuesto, esta tendencia se ha vuelto aún más pronunciada con el auge del comercio electrónico Web2. Y Web3 solidifica esto aún más: en Web3, ya casi no interactúas con humanos. La idea central de Web3 es permitirle interactuar con las máquinas e incluso permitir que las máquinas interactúen entre sí.
¿Cuál es el punto de estudiar los ataques de brujas?
Entonces, ¿qué significa esto exactamente? Este es un elemento fundamental de cualquier sociedad real y está en el corazón de muchos de nuestros sistemas sociales, incluidos los negocios, la gobernanza, la votación, la integración de opiniones y más. Todo esto depende en gran medida de la capacidad de prevenir ataques de Sybil para construir una comunidad. Muchos de los mecanismos que damos por sentado en la empresa en realidad se basan en el supuesto de prevenir los ataques de Sybil. Ya sea el uso justo y razonable, el control del ruido o la gestión comunitaria, todos se basan en esta capacidad de defensa. Muchas cosas requieren que confirmemos si una entidad es un ser humano real. Si alguien se comporta de manera inapropiada, es posible que deseemos excluirlo temporalmente de la comunidad. Puedes ver este fenómeno en los servicios digitales y, por supuesto, en el mundo real.
Al prevenir los ataques de Sybil, podemos introducir algunos mecanismos para restringir el comportamiento sin requerir barreras de entrada ni sacrificar la accesibilidad del sistema. Por ejemplo, hay dos formas básicas de motivar el comportamiento. Una es una estrategia de "palo y zanahoria" (es decir, un mecanismo de recompensa y castigo). El gran castigo (castigo) es exigirle que pague un depósito. Si se comporta de manera inapropiada, el depósito será confiscado. El replanteo es un ejemplo simple de esto. El enfoque de zanahoria (recompensa) es asumir que usted se desempeñará bien y, si no cumple con las expectativas, le quitaremos algunos de sus derechos. En realidad, esta es la forma básica en que operan la mayoría de las sociedades civiles.
Sin embargo, este enfoque no se puede implementar verdaderamente sin un mecanismo a prueba de Sybil en la cadena de bloques. En la sociedad civil, mecanismos como este funcionan porque una vez que alguien es encarcelado, no puede volver a cometer el mismo delito, al menos no mientras esté encarcelado. La libertad es inherente y en principio los gobiernos pueden arrebatárnosla. No estoy hablando de encarcelar a nadie en la cadena, pero sí digo que actualmente no son posibles medidas de restricción similares en la cadena. Esto dificulta la prestación de servicios gratuitos para desalentar el mal comportamiento, en lugar de simplemente fomentar el buen comportamiento. Las actividades comerciales y promocionales dependen en gran medida de poder confirmar que los comerciantes son personas reales.
Esta es una captura de pantalla de un sitio web que uso ocasionalmente. Este es un muy buen whisky que gusta mucho a mucha gente y es difícil de encontrar en su país de origen. En Europa es relativamente más barato conseguirlo, pero parece que mantienen el precio bajo limitando las compras individuales. Sin embargo, esta operación es casi imposible de implementar en un sistema Web3 real.
También existen dificultades importantes en la creación de comunidades, los lanzamientos aéreos y la identificación y distribución de miembros de la comunidad. En general, los lanzamientos aéreos son muy ineficientes en gastos de capital porque el objetivo de los lanzamientos aéreos es llegar a la mayor cantidad de personas posible. Al realizar lanzamientos aéreos, para lograr una distribución justa de manera efectiva, primero se debe identificar a las personas y luego entregar la misma cantidad a todos. Sin embargo, se encontrarán varios problemas en la operación real, como diferentes saldos de billetera. Puede terminar en una situación en la que la curva de distribución se desequilibre mucho y muestre enormes diferencias. El resultado es que la mayoría de la gente apenas está lo suficientemente motivada.
Con respecto a la cuestión del "uso justo y razonable", aunque el impacto es menor ahora, si usa demasiados recursos de la red, el sistema generalmente lo ralentizará, aunque aún puede continuar usando la red.
En los viejos tiempos, hace unos 10 o 15 años, si usaba demasiados recursos de Internet, su proveedor de servicios de Internet podría pensar que no estaba usando el servicio de red ilimitado de manera adecuada. Básicamente, detendrán su servicio por completo en lugar de simplemente disminuir la velocidad de Internet como lo hacen ahora. Este enfoque les permite proporcionar un servicio de Internet casi ilimitado a la mayoría de los usuarios porque pueden identificarlos para distinguir quién está utilizando los recursos de manera adecuada.
Una base de Web2 es el modelo de servicio avanzado, que depende en gran medida de la capacidad de identificar usuarios. Hace más de 20 años, los mecanismos de identificación de usuarios podían haber sido menos sofisticados, pero ahora las cosas son muy diferentes. Si deseas abrir una cuenta, normalmente existen más de tres mecanismos para confirmar si eres un individuo real y si eres un usuario al que no han visto antes. Por ejemplo, si intentas registrarte para obtener una cuenta de Apple sin comprar un iPhone, es casi como pasar por obstáculos y las empresas básicamente no están dispuestas a darte una cuenta. Claro, anuncian que puedes obtener una cuenta gratis, pero no tengo idea de qué está haciendo la IA detrás de escena y me tomó 10 intentos antes de que finalmente lograra que funcionara. Como resultado, tuve que comprarme un iPhone.
Siento que si podemos identificar mejor a las personas, muchos procesos como la "Oracleización" (verificación de la información) serán más fáciles.
Un ejemplo típico del uso de la "prueba de humanidad" para prevenir ataques de brujas en la sociedad para verificar información es el sistema de jurado. Cuando necesitamos un juez imparcial (es decir, un oráculo) para decidir si alguien es culpable o no, el sistema selecciona aleatoriamente un número impar de personas comunes y corrientes de la sociedad y les permite escuchar las pruebas y emitir un veredicto. De manera similar, en otras áreas de la vida social, como la representación y la recopilación de opinión, la representación es una parte importante de la sociedad y la gestionamos a través de medios a prueba de Sybil. Por supuesto, dado que la infraestructura cívica actual es imperfecta, este enfoque de gestión a menudo no es ideal, especialmente cuando se confunde representación con identidad. Muchas veces, cuando quieres votar, necesitas acreditar tu verdadera identidad, como mostrar una licencia de conducir o un pasaporte. Pero, de hecho, votar representa una parte de sus derechos de voto, en lugar de vincular directamente este voto a su identidad personal.
¿Cómo prevenir los ataques de brujas? ¿Cuál es la solución actual?
Entonces, ¿cómo debería hacerse esto?
En la Web 2 y antes de la Web 2, había muchas formas de implementar la autenticación. En los sistemas Web 2 actuales, estos métodos se utilizan a menudo en combinación. Por ejemplo, si desea crear una nueva cuenta de Google, es posible que deba pasar un código de verificación y verificarla por correo electrónico y SMS. A veces, la verificación por mensaje de texto puede reemplazar una llamada telefónica con una persona real. Si alguna vez te han bloqueado el acceso a tu cuenta de Amazon, sabes de lo que estoy hablando. Básicamente, es un juego de laberinto complicado hasta que encuentras los botones y las opciones de teléfono correctos y finalmente puedes hablar con un agente de servicio al cliente en vivo. Para una prevención más sofisticada de Sybil, podríamos utilizar información como identificación o tarjeta de crédito.
Sin embargo, cuando ingresamos al mundo de la Web 3, mi investigación no encontró nada que realmente me satisficiera como una solución perfecta. Hay algunos candidatos, pero difieren mucho en tres áreas: si están descentralizados, si protegen la privacidad y si son verdaderamente resilientes (es decir, resistentes a los ataques).
La resiliencia se está convirtiendo en un problema cada vez mayor. De hecho, la mayoría de los sistemas enfrentan ambos problemas.
Existe un sistema, lo que yo llamo el "sistema de confesión común", en el que usted revela su privacidad a una autoridad específica, y esta autoridad tendrá información sobre usted que quizás no desee compartir con otros. Por ejemplo, puede escanear su pasaporte y enviarlo a una agencia, que luego tendrá la información del pasaporte de todos y estará en una posición sólida porque tiene toda esa información. Los sistemas de confesión habituales no son adecuados para Web3.
Además, a veces se ven algunos sistemas de personalización como Web3, que se basan en "autoridades de gestión de claves comunes". Existe una organización poderosa que determina quién es una persona jurídica al tener la clave. En otras palabras, esta organización tiene derecho a decidir quién puede ser considerado un "usuario real" del sistema. A veces, estas organizaciones incluso tienen las claves para los usuarios, pero lo más frecuente es que simplemente retengan el poder de decidir quién es un individuo legítimo.
Todos ellos dependen de autoridades centralizadas para controlar la privacidad o la información de identidad de los usuarios, lo que es contrario a los conceptos de descentralización de la Web 3 y autonomía del usuario.
Poner algo en cadena no significa que sea Web3. Simplemente puede mover políticas Web2 o políticas que dependen de una autoridad centralizada en la cadena, pero hacerlo no cambiará la política en sí. Simplemente significa que la política puede ser más resistente a la ejecución, pero la política en sí todavía no es Web3. El hecho de que un nombre sea una cadena hexadecimal larga no significa que sea necesariamente privado. Si no se toman medidas específicas, dichas cadenas aún pueden estar asociadas con información de identidad del mundo real.
Si un sistema se basa en "mecanismos de confesión" comunes, no es una solución que preserve la privacidad. Hemos visto suficientes filtraciones de datos como para comprender que los datos no se pueden mantener seguros simplemente colocándolos detrás de un muro de archivos corporativo o en algún hardware confiable. Una solución personalizada adecuada para Web3 no requiere una identidad individual local o una membresía en una comunidad local, sino una identidad individual global, que son conceptos completamente diferentes.
Hay algunos sistemas que intentan resolver este problema, pero se basan en una sola pieza de hardware y un mecanismo de administración de claves común, por lo que en realidad no son soluciones Web3. Por ejemplo, el proyecto Worldcoin intenta resolver este problema mediante hardware confiable, pero utiliza una organización de administración de claves unificada y una fuente de datos centralizada, por lo que no está en línea con el concepto de descentralización de Web3.
Otro ejemplo es Gitcoin Passport, que se usa ampliamente en la comunidad Ethereum y es una plataforma integral para otras soluciones de identidad y personalización. Depende de una autoridad federal de gestión de claves para identificar a las personas, pero estas fuentes de datos a menudo se basan en autoridades centralizadas, incluidas autoridades centralizadas (CC) como CoinBase.
Idena, una interesante solución Web3 sin la habitual gestión de claves ni autoridad centralizada. Sin embargo, es solo un mecanismo único y no está claro si es lo suficientemente resistente frente a la evolución de la industria de la IA. Hasta ahora, le está yendo bastante bien, pero la base de usuarios aún es relativamente pequeña, con sólo unos mil usuarios.
En general, actualmente no existe ningún método que pueda solucionar completamente este problema.
Los pensamientos de Gavin sobre cómo resolver los ataques de brujas
Hay dos maneras de pensar la identidad individual: una es remota y la otra es local. Las máquinas no comprenden de forma natural la "identidad individual" y es poco probable que veamos que algún tipo de tecnología de cifrado resuelva repentinamente este problema. Se podría argumentar que las huellas dactilares o la biometría hacen a los humanos únicos y que las máquinas pueden medirlas, pero esto sería difícil de demostrar con un sistema puramente digital. Probablemente el sistema más cercano a este objetivo sea Worldcoin, pero es sólo una máquina capaz de verificar de una manera que no puede ser fácilmente pirateada.
Por lo tanto, debemos comprender que la identidad individual tiene más que ver con la autenticación. Implica cómo los elementos dentro de un sistema digital verifican que otros elementos son entidades reales. Entonces la pregunta es ¿cuál es la base de esta certificación? ¿Es contacto físico u otras sospechas? Confiamos en que una cuenta es un individuo real porque hemos conocido a la persona y en el momento del encuentro asumimos que no ha estado en contacto con otras personas y por lo tanto podemos inferir si es el único individuo en un entorno particular o simplemente porque estamos en la pantalla ¿Vio algo y tenía otra evidencia que respalde su identidad como individuo?
Cuando hablamos de autenticación remota (es decir, autenticación de evidencia no directa y no física), la IA (inteligencia artificial) puede causar algunos problemas. Y si confiamos en la evidencia física, la practicidad puede convertirse en un problema. Así que estamos atrapados entre estas dos limitaciones. Sin embargo, creo que a través de la innovación y la imaginación todavía podemos encontrar algunas soluciones viables.
Entonces, ¿qué debemos hacer?
Entonces, ¿qué necesitamos? ¿Cuál es nuestro plan?
Creo que la clave para hacer que Polkadot sea más útil en el mundo real (y no solo en el mundo de DeFi, NFT y blockchains virtuales) es encontrar una forma sencilla de identificar a las personas. La identificación aquí no significa determinar quién es esta persona, por ejemplo, no se trata de decir "Sé que es Gavin Wood", sino de identificar "este es un individuo único". No creo que haya una solución única, por lo que necesitamos un marco modular y extensible.
El primer paso es integrar soluciones existentes y razonables como Idena. En segundo lugar, el sistema no debería estar limitado por las ideas de una sola persona y no debería depender únicamente de la imaginación de una persona sobre qué mecanismos podrían funcionar. Esto debería estar abierto hasta cierto punto, permitiendo que todos aporten soluciones.
En segundo lugar, necesitamos un seudonimato contextual fuerte. En realidad, originalmente escribí sobre el anonimato y, hasta cierto punto, me refería al anonimato, al anonimato de tu identidad en el mundo real. Pero al mismo tiempo, también queremos tener seudónimo para que en cualquier contexto dado, no sólo puedas demostrar que eres un individuo único, sino también que cuando uses el sistema nuevamente en el mismo contexto, puedas demostrar que eres Eres la misma persona que antes. Ese individuo único.
Finalmente, necesitamos SDK y API sólidos para que esta función sea tan fácil de usar como cualquier otra función en los contratos inteligentes de Substrate o Polkadot, o en el próximo ecosistema JAM. Debe ser fácil de usar. Por ejemplo, para ser específico, no sé cuántas personas aquí han escrito código Frame, pero al escribir una nueva cadena de bloques, a menudo verá una línea de código let account = asegurar_signed (origen). El propósito de esta línea de código es obtener el origen de la transacción y confirmar si el origen proviene de una cuenta y, de ser así, decirme cuál es la cuenta. Pero no es lo mismo una cuenta que un individuo. Una persona puede usar una o más cuentas y, de manera similar, un script también puede usar una o más cuentas. La cuenta en sí no puede proporcionar ninguna información sobre la identidad de un individuo, al menos no por sí sola. Entonces, si queremos asegurarnos de que una transacción provenga de una persona real y no de un millón de cuentas, debemos poder reemplazar esta línea de código con otra línea de código let alias = asegurar_persona (origen, &b「Mi contexto ").
Hay dos beneficios que vale la pena destacar.
En primer lugar, no solo preguntamos si es una cuenta la que firma la transacción, sino si es una persona que firma la transacción. Esto marcó una gran diferencia en lo que pudimos lograr.
En segundo lugar, es importante que diferentes operaciones tengan diferentes contextos, e implementamos protección de anonimato y seudónimo dentro de estos contextos. Cuando el contexto cambia, también lo hacen los seudónimos, y no hay forma de relacionar los seudónimos en diferentes contextos entre sí, o de asociar el seudónimo con la persona detrás de él. Se trata de sistemas de seudónimos completamente anónimos, que se convierten en una herramienta muy importante en el desarrollo de blockchain, especialmente cuando se desarrollan sistemas que son útiles en el mundo real.
Entonces, ¿qué limitaciones podríamos imponer a los mecanismos mediante los cuales identificamos realmente a los individuos? En primer lugar, el mecanismo debe ser ampliamente accesible. No será muy útil si sólo permite participar a un subconjunto de la población. No debería requerir activos ni honorarios costosos, al menos no honorarios exorbitantes.
Inevitablemente, habrá compensaciones entre diferentes mecanismos. No creo que exista una solución única para todos. Pero algunas compensaciones son aceptables y otras no. La resiliencia, la descentralización y la soberanía no deben ser tratadas con concesiones, pero algunos mecanismos pueden requerir menos esfuerzo pero más compromiso, mientras que otros pueden requerir más esfuerzo pero menos compromiso. Deberíamos tener una expectativa razonable de que detrás de un individuo verificado por el sistema (es decir, vinculado a una cuenta o seudónimo) haya de hecho un individuo único en el mundo real.
Puede haber superposición en los diferentes mecanismos para medir la identidad individual de una manera resiliente y no basada en autoridades en sistemas Web3 descentralizados. Esto significa que en realidad no podemos lograr la perfección, pero no debería haber un error de orden de magnitud y la diferencia debería ser significativamente menor que un orden de magnitud. Además, el sistema debe ser extremadamente resistente al abuso de identidad para evitar que un pequeño número de personas u organizaciones intenten obtener una gran cantidad de identidades individuales.
Fundamentalmente, el sistema debe contar con salvaguardias para evitarlo. Puede haber mecanismos capaces de proporcionar puntuaciones de confianza relativamente bajas de las identidades individuales, lo cual es un objetivo más elevado. Algunos mecanismos pueden lograr esto, otros no y algunos pueden ser binarios, ya sea que creamos que la cuenta es un individuo único o no. También hay mecanismos que pueden decir que estamos 50% seguros, pero también es posible que este individuo tenga dos cuentas y estemos 50% seguros de ambas cuentas.
Por supuesto, todo esto tiene que ser sin permiso y tiene que ser fácil de implementar. No debería tener que enfatizar esto, pero no debería haber un mecanismo de confesión común o una autoridad de gestión de claves común en el sistema.
¿Cuáles son los beneficios de hacer esto?
Entonces, ¿por qué hacer esto? ¿Cuáles son los beneficios?
Hemos discutido algunas de las formas en que las sociedades utilizan o dependen de las identidades individuales. Pero, ¿cómo se implementan en la cadena? Podemos empezar a imaginar un sistema Polkadot en el que no haya que pagar tarifas de transacción, es decir, gratuito para un uso razonable. Imagine una "Plaza", si no está familiarizado con ella, es básicamente una versión mejorada de Asset Hub, con funcionalidad de contrato inteligente y la capacidad de aprovechar el sistema de apuestas.
Si imaginamos una cadena Plaza de este tipo, podemos imaginar un escenario en el que no se requieran tarifas de gas. El gas es gratis siempre que lo utilices dentro de límites razonables. Por supuesto, si escribe scripts o realiza muchas operaciones comerciales, deberá pagar una tarifa porque está más allá del alcance de los derechos de uso del individuo promedio. Imagine que estos sistemas se vuelvan gratuitos y abiertos al público, y que podamos lanzar la comunidad de manera específica y eficiente a través de lanzamientos aéreos y otros métodos. Al mismo tiempo, también podemos imaginar métodos de gobernanza de Polkadot más avanzados.
Ahora bien, no me convence especialmente la idea de “una persona, un voto”. En algunos casos es necesario garantizar la legalidad, pero normalmente esto no conduce a resultados especialmente buenos. Sin embargo, podemos considerar otros métodos de votación, como la votación cuadrática o la votación regional. Una persona, un voto puede resultar muy esclarecedor en algunos elementos de representación.
También podríamos imaginar un sistema de oráculos similar a un jurado, donde las paracaídas y los contratos inteligentes podrían utilizar oráculos secundarios locales, tal vez para oráculos de precios, tal vez para manejar disputas entre usuarios. Pero también pueden decir que, si es necesario, utilizaremos un sistema de "gran jurado" o "Tribunal Supremo" para seleccionar miembros entre individuos conocidos al azar para tomar decisiones, ayudar a resolver disputas y dar una pequeña cantidad de remuneración. Dado que estos miembros se seleccionan al azar de un grupo grande e imparcial, podemos esperar que este enfoque proporcione un método resiliente y confiable de resolución de disputas.
Puede imaginar que los sistemas de limitación de ruido, especialmente las integraciones descentralizadas de redes sociales en las integraciones de redes sociales, pueden ayudar a gestionar el spam y el mal comportamiento. En DeFi, podríamos imaginar un sistema de reputación limitada similar a una puntuación de crédito, pero quizás más centrado en si alguna vez te han sorprendido no pagando un préstamo a tiempo, de modo que el sistema pueda proporcionar un servicio similar a un modelo freemium.
Bien, esa es la primera parte de esta charla, espero que ayude.