Hans Moog , Dev de la Fundación IOTA, quien se caracteriza por su forma sencilla de explicar con fundamentos varios conceptos relacionados a IOTA, ha escrito una serie de blogs que valen la pena leer de principio a fin y a los cuales vamos a ir traduciendo al Español en el transcurso de las siguientes semanas.
Hoy les traemos la Parte 1 de esta serie que ha publicado en su blog personal de Medium, «The Trust Machine — Part1: Sybil Protection»
Esperamos que disfruten de la lectura tanto como nosotros!
Esta es la primera de una serie de publicaciones que introducirá gradualmente los conceptos e ideas detrás de una novedosa arquitectura DLT que pretende resolver todas las ineficiencias existentes en las DLTs contemporáneas.
El esfuerzo actual de la Fundación IOTA es hacer que la red sea descentralizada de una manera segura, por lo que nos hemos centrado en los principios revisados, en primer lugar. Con Nectar a la vuelta de la esquina, por fin vamos a tener tiempo para examinar cada bloque de construcción y mejorar o simplificar los elementos clave.
Creo que ir por la ruta segura es definitivamente la mejor opción para un proyecto de la envergadura de IOTA, pero también creo que Coordicide no es el final del camino sino sólo el principio.
«Todos los conceptos e ideas que voy a describir son muy radicales y no están respaldados por extensas simulaciones o investigaciones.
Están fuertemente inspirados en conversaciones con los primeros desarrolladores de IOTA como Paul Handy o Come from Beyond por lo que esto será un intento de desarrollar una especificación completa y clara de mi visión de la versión «definitiva» de IOTA.»
La razón por la que IOTA ha tardado tanto en descentralizarse es porque no queríamos tomar ningún atajo. La red que vamos a diseñar no sólo va a ser más rápida y sencilla, sino también más eficiente, más segura, más robusta, más descentralizada y más escalable que cualquier tecnología existente.
La primera parte de esta serie analiza el problema de la protección sybil, que actualmente ni siquiera es percibido como un problema real por la mayoría de los proyectos y que considero que es la razón por la que las DLT contemporáneas son tan difíciles de escalar.
La sociedad es la primera red descentralizada
Si vemos a los seres humanos como nodos que realizan transacciones entre sí y que se comunican a través de gossips, el trilema de la escalabilidad se resolvió hace decenas de miles de años con el surgimiento de las primeras sociedades.
La sociedad se amplía porque ha establecido una forma de distinguir a los actores honestos de los maliciosos. Utiliza un mecanismo llamado confianza, que es un nombre gracioso:
«Creo que a alguien le conviene más ser honesto que traicionarme, porque perdería su reputación, se enfrentaría a consecuencias legales o se perdería las cosas buenas que yo estaría dispuesto a hacer por él».
Esta percepción intuitiva de la teoría de los juegos del mundo real en combinación con el tiempo constituye la base de un sistema de reputación (confianza) que nos permite construir sociedades complejas aunque nuestra capacidad de conocer a otros individuos sea limitada.
Abarca todo tipo de relaciones humanas, desde la familia y los amigos hasta las relaciones entre empresas, corporaciones y estados nacionales.
Veamos un ejemplo:
Si Audi no entregara los coches que la gente compra y se limitara a robarles el dinero, no podría vender coches durante mucho tiempo y perdería la confianza muy rápidamente. Por lo tanto, les interesa ser honestos y continuar con su negocio.
La confianza virtual en el mundo digital
Bitcoin y su correspondiente Proof of Work están creando un juego para imitar un mecanismo similar en el mundo digital. Un minero que tiene acceso a una cierta cantidad de poder de hash siempre será mejor para asegurar la red que para atacarla.
Bitcoin equivale a una sociedad que acordó una regla según la cual siempre que alguien quiera realizar una actividad económica, primero tiene que encontrar una empresa que esté dispuesta a cavar un agujero en el que va a poner su recibo.
Como cavar es un negocio lucrativo, las empresas excavadoras compiten por hacer agujeros cada vez más grandes, lo que empieza a crear problemas para el medio ambiente.
Proof of Stake trata de resolver estas ineficiencias pagando a los ricos para que confirmen las transacciones en su lugar. Esto es, en efecto, más eficiente desde el punto de vista energético, pero conlleva sus propias contrapartidas e implicaciones para el sistema resultante:
- Los ricos son cada vez más ricos.
- Si los ricos deciden alguna vez censurar a alguien o hacer retroceder la historia, entonces ya no tenemos los agujeros excavados para convencer a la gente de la verdad.
Nadie construiría una sociedad en el mundo real basada en estos principios por razones obvias, pero cuando se trata de asegurar una DLT abierta y sin permisos, probar el acceso a un recurso escaso se considera lo mejor de lo mejor.
Pero este tipo de protección contra ataques no sólo es muy incómodo e ineficiente, sino que también tiene varios otros problemas:
1. Es difícil de fragmentar
Dado que la capacidad de procesamiento de los nodos está limitada por su hardware, la única forma de escalar una DLT de forma fiable es la fragmentación.
Con la fragmentación, los nodos distribuyen la cantidad total de trabajo entre todos los participantes de la red, de modo que cada nodo sólo tiene que procesar un subconjunto de todas las transacciones.
Ver sólo un subconjunto de todas las transacciones significa automáticamente: ver sólo un subconjunto de las declaraciones de los validadores. Si el poder de hash o los tokens apostados pueden verse como un muro que protege la DLT, entonces la fragmentación significa que hay que dividir ese muro en un montón de piezas más pequeñas que luego se utilizarán para construir los muros de los fragmentos adicionales.
Si la cantidad de fragmentos es muy grande, en algún momento el muro será tan pequeño que prácticamente no existirá. Este problema se conoce como el Trilema de la Escalabilidad.
Las DLTs contemporáneas intentan solucionar este problema haciendo que los validadores sean teletransportados aleatoriamente entre los fragmentos en intervalos regulares, lo que hace más difícil planificar un ataque.
Esto no sólo complica mucho los protocolos, sino que tampoco resuelve realmente el problema subyacente. El sharding sólo puede funcionar de forma fiable hasta un tamaño arbitrario si la creación de nuevos shards no reduce la altura del muro.
2. Excluyes a muchos actores honestos
Si la participación como validador se limita al acceso a un recurso escaso, entonces automáticamente se excluye a muchos validadores que simplemente son demasiado pobres pero que por lo demás son perfectamente honestos.
3. Las economías de escala conducen a una creciente centralización
Todo lo que se basa en un recurso escaso favorece automáticamente a los actores que tienen un acceso mejor o más barato al recurso subyacente.
Esta ventaja en los costos para manejar un validador conduce a una centralización del poder en torno a los actores con el acceso más barato al recurso subyacente.
4. La teoría de los juegos no siempre es válida
Los seres humanos no siempre son jugadores racionales (en el contexto de la teoría de los juegos), lo que significa que puede haber situaciones en las que se desvíen del comportamiento esperado.
Ejemplos populares son el habitual «pistola en la cabeza», así como el escenario «quiero ver el mundo arder», en el que actores muy poderosos se ven «inesperadamente» incentivados a romper el protocolo.
Cuanto más centralizado esté el sistema, peores serán estos problemas.
5. La red es atacable desde el exterior
Dado que es posible adquirir el recurso que se utiliza como mecanismo de protección sybil en secreto, un atacante muy poderoso podría ser capaz de romper el sistema si está dispuesto a gastar suficiente dinero (como sucederia, por ejemplo, antes de una guerra). Como resultado, la red quedaría completamente inutilizada.
La confianza real en el mundo digital
Hemos hablado de los problemas de la confianza virtual en el mundo digital, pero ¿qué pasa con la confianza real?
La confianza no se limita al mundo real. De hecho, cada vez que compramos algo en línea, confiamos en que el comerciante al que le compramos, nos entregue la mercancía. Además, la confianza no se limita a una relación 1 a 1 entre dos personas. También puede formar redes complejas.
Déjenme darles un ejemplo: Una vez tuve la oportunidad de cenar con uno de los fundadores de AirBNB (mucho antes de que fuera grande). Y dio la casualidad de que en la misma mesa que nosotros estaba sentado un tipo que era dueño de una enorme marca de hoteles en Estados Unidos.
Cuando estábamos discutiendo las ideas detrás de AirBNB dijo que estaba 100% seguro de que un sistema como ese nunca funcionaría. Lleva décadas dirigiendo hoteles y, por su experiencia de primera mano, pudo decirnos que los huéspedes suelen ser horribles. Suelen robar equipos o incluso destruir las habitaciones del hotel.
Al final resultó que estaba equivocado y la introducción de un sistema de reputación que premiaba el comportamiento honesto con algo tan sencillo como las estrellas amarillas fue suficiente para convertir el condenado negocio en una mina de oro.
Lo que consiguen las estrellas amarillas es que permite a dos personas que no se conocen de otra manera establecer una relación de confianza basada en la experiencia pasada de otros miembros de la misma plataforma. AirBNB se convierte en el intermediario para establecer esta relación de confianza.
La confianza distribuida como el intermediario
Las DLT funcionan de forma muy similar: actúan como intermediarios entre partes que no se conocen pero que quieren realizar transacciones. Sin embargo, a diferencia de AirBNB, nosotros no confiamos en una sola entidad, sino que confiamos en el protocolo y distribuimos la confianza entre los validadores.
Lo bueno de utilizar un protocolo de este tipo es que es mucho más difícil hacer un mal uso de la confianza. En el mundo real se dan regularmente casos de corrupción en los que la gente hace un mal uso de la confianza que otros depositan en ellos para hacer cosas malas, pero esto es sólo el resultado de una supervisión demasiado escasa por parte de la sociedad.
Buenos ejemplos son Wirecard o Enron. Si sus libros hubieran estado abiertos y accesibles para cualquiera, no habrían tenido la oportunidad de salirse con la suya. Es esto en efecto, el porque las cosas que suceden en una DLT transcurren «al descubierto», y es esa transparencia lo que las hace tan seguras.
Los actores sólo actúan con malicia si existe la posibilidad de salirse con la suya. Cuantos más validadores haya, más difícil será salirse con la suya y menos probable será que los actores intenten ser maliciosos o, en otras palabras: ¡La oportunidad hace al ladrón! Una mayor descentralización es buena para la seguridad.
Integrar la confianza directamente en la DLT
Entonces, si la confianza no se limita al mundo real, ¿por qué nadie ha intentado construir un sistema que utilice la confianza como mecanismo de protección contra sibilas?
La respuesta es sencilla: Actualmente no disponemos de una tecnología lo suficientemente potente como para hacerlo de forma abierta y sin permisos. La confianza es demasiado subjetiva, difusa y asimétrica como para que podamos utilizarla fácilmente para alcanzar el consenso en una cadena de bloques.
Sin embargo, los beneficios de un sistema de este tipo serían tan enormes que incluso diría que:
La primera DLT que consiga integrar las identidades del mundo real y la confianza de forma abierta y sin permisos como protección contra ataques sybil hará que todas las demás criptomonedas queden obsoletas.
No sólo sería órdenes de magnitud más descentralizada sino también órdenes de magnitud más eficientes y seguras. Todo el mundo podría ser un validador incluso sin poseer ningún token o hardware caro.
Lo único que sería necesario para convertirse en un validador sería crear una identidad descentralizada (un par de claves públicas/privadas) y publicar la clave pública para que la gente sepa que esa identidad pertenece al emisor (de forma muy parecida a como se comunica el número de teléfono).
Los operadores de los nodos pueden entonces añadir las claves públicas de los actores en los que confían a una lista local de entidades de confianza. Esta lista es completamente subjetiva y no tiene un tamaño limitado. Puede contener desde familiares y amigos, pasando por colegas y empresas locales, hasta actores como gobiernos y organizaciones internacionales. El operador del nodo es quien decide a quién considera digno de confianza.
Para romper el protocolo, un atacante tendría que corromper más del 50% de todos los actores de confianza de un nodo. Cuanta más gente empiece a usar IOTA y publique su identidad descentralizada, más opciones habrá para seleccionar a los actores de confianza y más segura será la red.
Pero incluso una situación en la que alguien consigue corromper más del 50% de los nodos de confianza no es realmente un problema porque es posible editar la lista e ignorar el ataque. Esto hace que la red sea prácticamente inatacable. Dado que IOTA utiliza una estructura de datos que vota cada transacción individualmente, es incluso posible revertir decisiones individuales sin afectar a otras transacciones (si hay un consenso social de que esto debe hacerse).
Este es un concepto muy poderoso porque debilita los principios de corazón frío del código es ley a un código es ley con supervisión social.
Imagina que se hackea un contrato inteligente que gestiona los fondos de jubilación de todo un país. Con IOTA y un modelo basado en la confianza, la sociedad en su conjunto podría decidir simplemente emitir un segundo gasto de los mismos fondos de vuelta al contrato inteligente y entonces todo el mundo simplemente aprueba este gasto en su lugar. Todas las demás transacciones no se ven afectadas por esto.
Es importante señalar que los operadores de nodos que no estén de acuerdo con la reversión pueden simplemente eliminar de su lista a los validadores que la han realizado. Las dos facciones resultantes de la red que tienen diferentes creencias respecto a los fondos en cuestión pueden seguir cooperando en todos los demás pagos y no necesitan hacer un hard-fork en todo el sistema. En lugar de ello, simplemente no aceptarían mutuamente los pagos que se originen en el incidente dudoso. Es razonable asumir que la sociedad encontrará un consenso social sobre cómo proceder con la situación.