Redes Tokenizadas: Web3, la red con estado - Token-Economy-Book/2ndEdition-Spanish GitHub Wiki

Si asumimos que la WWW revolucionó la información, y que la Web2 revolucionó las interacciones, la Web3 tiene el potencial de revolucionar los contratos y los intercambios de valor. La Web3 cambia las estructuras de datos en el backend de la Internet, introduciendo un registro de estado universal, frecuentemente incentivando a los actores de la red con tokens. La columna vertebral de esta Web3 está representada por una serie de redes de blockchain o registros distribuidos similares.

La Internet que tenemos hoy está rota. No controlamos nuestros datos, ni tampoco tenemos una capa nativa para pagar en valor. A 30 años de la adopción masiva de Internet, la arquitectura de datos aún está basada en el concepto de computadora única, a donde los datos están centralizadamente almacenados en un servidor, y son enviados o recuperados por un cliente. Cada vez que interactuamos en la Internet, copias de nuestros datos son enviados al servidor de un proveedor de servicios, y cada vez que eso ocurre, perdemos el control sobre nuestros datos. Como resultado, y a pesar de que vivimos en un mundo cada vez más interconectado, nuestros datos son principalmente almacenados de manera centralizada: en servidores locales o remotos, en nuestras computadoras personales, dispositivos móviles, dispositivos de almacenamiento, y cada vez más en nuestros relojes, autos, televisores o heladeras. Esto genera problemas de confianza. ¿Puedo confiar en que las personas e instituciones que almacenan y manejan mis datos serán inmunes a formas de corrupción interna y externa, accidentales o dolosas? Las estructuras de datos centralizadas no solo generan problemas de seguridad, privacidad y control de datos personales, sino que también producen muchas ineficiencias a lo largo de la cadena de suministro de bienes y servicios.

Estos problemas tienen raíces históricas dado que la computadora precede a la Internet. En los inicios de las computadoras personales, uno no podía enviar archivos de una computadora a otra. Era necesario guardar el archivo en un disco flexible, encontrarse con la persona que necesitaba el archivo, y copiarlo en su computadora para que pudiera usarlo. Si esa persona estaba en otro país, había que ir al correo y enviar el disco flexible a la otra persona. El surgimiento del Protocolo de Internet (IP) le puso fin a esta etapa, al conectar todas esas computadoras individuales con un protocolo de transmisión de datos que hizo más rápido el envío de datos, y redujo los costos de transacción del intercambio de información. Sin embargo, la Internet que usamos hoy aún está predominantemente construida sobre la idea de computadoras individuales, a donde la mayoría de los datos están almacenados de manera centralizada y gestionados a través de los servidores de instituciones confiables. Los datos en estos servidores están protegidos por cortafuegos, y los administradores del sistema deben gestionar la seguridad de los datos almacenados en sus servidores.

La irrupción de la WWW a principios de los noventa aumentó la usabilidad de la Internet con sitios de Internet visualmente atractivos y fáciles de navegar. Diez años después, la Internet se volvió más madura, y programable. Vimos el surgimiento de la llamada Web2, que nos trajo las redes soociales, los e-commerces y las plataformas de información. La Web2 revolucionó las interacciones sociales, acercando más a los productores y consumidores de información, bienes y servicios. La Web2 nos permitió disfrutar de las interacciones puerto-a-puerto (P2P) a escala global, pero siempre con un intermediario: una plataforma que actúa como intermediario de confianza entre dos personas que no se conocen ni se confían mutuamente. Mientras que estas plataformas de Internet han hecho un trabajo fantástico creando la economía P2P, también establecen todas las reglas y controlan los datos de sus usuarios.

En este contexto, las redes de blockchain aparecen como una fuerza que empuja hacia la próxima generación de Internet, a la que algunos denominan Web3. Estas redes reinventan la forma en la que los datos son almacenados y gestionados en la Internet, proveyendo un único conjunto de datos -una capa de estado universal- que es colectivamente administrado por todos los nodos de la red. Esta capa de estado único, por primera vez, provee una capa nativa para intercambios de valor para la Internet que no requiere intermediarios. Permite genuinas transacciones P2P, y todo comenzó con la irrupción de Bitcoin.

Mientras que la Web2 fue una revolución de la interfaz de usuario de la Internet, la Web3 es una revolución del modo administrador. La Web3 reinventa el cableado de la Internet en el modo servidor, combinando las funciones de sistema de Internet con las funciones de sistema de las computadoras. Sin embargo, el usuario promedio de Internet no verá cambios en su interfaz. La Web3 representa una serie de protocolos, con registros distribuidos como su columna vertebral. Los datos son gestionados de manera colaborativa por una red de computadoras P2P. Las reglas de administración están formalizadas en protocolos y aseguradas por un consenso mayoritario de todos los participantes de la red, que están incentivados con tokens de la red por sus actividades. El protocolo formaliza las reglas de gobierno de la red y asegura que personas que no se conocen o no se confían recíprocamente puedan contactarse y realizar acuerdos en la Web. Mientras que manipular los datos de un servidor es análogo a ingresar forzadamente a una casa, cuya seguridad está dada por una reja y un sistema de alarma, la Web3 está diseñada de un modo que obliga a tener que entrar simultáneamente y por la fuerza en muchas casas repartidas por todo el planeta, cada una de ellas con su propia reja y sistema de alarma. Esto puede ser hecho, pero es costosamente prohibitivo.


History of the Web


Blockchain: un protocolo con estado

La Internet que usamos hoy es “sin estado”. No tiene un mecanismo nativo para transferir lo que la ciencia de la computación denomina “estado”. Estado refiere a información, o al status de “quién es quién?”, “quién posee qué?” y “quién tiene el derecho a hacer qué?” en una red. La habilidad de transferir valor fácilmente y P2P es esencial para mercados eficientes, y el “estado” es una propiedad clave para gestionar y transferir valores. En la Web3, los valores son representados mediante tokens con seguridad criptográfica.

Si no puedes tener un estado en la Internet, no puedes transferir valor sin pasar por instituciones centralizadas que actúan como entidades de compensación. Mientras que la Internet de hoy ha acelerado la transferencia de información en órdenes de magnitud comparado a lo que era posible antes, todavía necesitamos instituciones confiables como los proveedores de plataformas de Internet para ejecutar nuestras acciones, como una solución a esta falta de estado. Protocolos sin estado como el actual de la Web sólo gestionan la transferencia de información, donde quien envía o recibe esa información no puede conocer el estado del otro. Esta falta de estado se debe a la simplicidad de los protocolos sobre los que se construyó la Web, como TCP/IP, SMTP o HTTP. Esta familia de protocolos regula la transmisión de datos, no cómo se almacenan los datos. Los datos pueden ser almacenados de manera centralizada, o descentralizada. Por muchas razones, el almacenamiento centralizado de datos se volvió la forma más usada para almacenar y gestionar datos.

La introducción de galletas de información de sesiones y los proveedores centralizados de servicios permitieron dar una solución a esta Web sin estado. Las galletas de información de sesión fueron inventadas para que las aplicaciones basadas en la Web pudieran preservar el estado en un dispositivo local. Antes de las galletas de información de sesión -en los primeros días de la WWW- no había historial de navegación, no se guardaban los sitios favoritos, ni se auto-rellenaban los formularios, lo que implicaba que teníamos que re-enviar nuestra información de usuario cada vez que usábamos un sitio de Internet. Mientras que las galletas de información de sesión proveen mejor usabilidad, son creadas y controladas por un proveedor de servicios, como Google, Amazon, Facebook, tu banco, tu universidad, etc. cuyo rol es establecer y gestionar el estado de sus usuarios.

Las plataformas Web2 introdujeron muchos servicios beneficiosos y crearon mucho valor social y económico a lo largo de los años. Sin embargo, la riqueza fue principalmente acumulada por las compañías que ofrecen esos servicios, y muy poco por el público general que contribuye y aporta a esos servicios contenidos y valor. En lugar de descentralizar el mundo, las plataformas de Web2 contribuyeron a un re-centralización de las decisiones económicas, de las decisiones de I+D, y, consecuentemente, a una enorme concentración de poder por parte de estos proveedores de plataformas. Más aún, dado que la Internet inicial fue creada en torno a la idea de información libre, los clientes no estaban dispuestos a pagar por contenidos online con abonos recurrentes, y los micropagos no eran aún posibles en la mayoría de los casos. Por ello, muchas de estas plataformas Web2 debieron buscar otras formas alternativas de monetizar los servicios gratuitos que proveían, y esta forma fue la publicidad. Lo que vino después fue la publicidad dirigida basada en comportamientos del usuario y la commoditización de los datos privados. Así, los modelos de negocio se han desarrollado alrededor de la publicidad dirigida que se desarrolla sobre la base de conjuntos de datos colectados, que le proveen el “estado” a estas plataformas. Como consecuencia, los usuarios pagan por los servicios que usan con sus datos privados.

La red de Bitcoin introdujo un mecanismo para que cada nodo de la red pueda enviar y recibir tokens, y registrar el estado de los tokens en un formato nativo digital. El protocolo de consenso de la red de Bitcoin está diseñado de un modo tal que la red puede colectivamente recordar eventos previos o interacciones entre usuarios, resolviendo así el problema del “doble gasto” al ofrecer una única fuente de referencia que informa quién recibió qué y cuándo. El protocolo de Bitcoin puede, por ello, ser visto como un cambio en el juego, allanando el camino hacia una Web más descentralizada. El documento blanco de Bitcoin de 2008 inició una nueva forma de infraestructura pública donde el estado de todos los tokens de Bitcoin es mantenido de manera colectiva.

Las redes de blockchain, como la red de Bitcoin, son sólo la columna vertebral y el punto de partida, pero no son el único bloque fundacional de esta nueva Web descentralizada. La arquitectura de la Web3 apalanca el estado universal colectivamente mantenido para una computación descentralizada. Aplicaciones descentralizadas pueden gestionar algunos o todos sus contenidos y lógica en una red de blockchain o en otro registro distribuido. Pero también se necesitan otros protocolos. Muchos desarrolladores han comenzado a construir redes alternativas de blockchains, y también protocolos complementarios para la Web3.


Centralized vs. Distributed


Otros protocolos de la Web3

Blockchain no es la única tecnología necesaria para descentralizar la Web. Un conjunto de otros protocolos son necesarios para crear una aplicación descentralizada. Sin embargo, el término “blockchain” parece ser utilizado como sinónimo con muchos protocolos Web3[^1], o con la Web3 en sí misma, al menos por parte de ciertos periodistas y del público general. Además de la computación, necesitamos almacenamiento de archivos, mensajería, identidades, datos externos (oráculos) y muchos otros servicios descentralizados. Una red de blockchain es simplemente el procesador de aplicaciones descentralizadas que operan sobre la Web3. Funciona como una máquina contable distribuida que registra todas las transacciones con tokens y las computa.

Las redes de blockchain no son ideales para almacenar datos por dos razones principales: (i) las redes públicas de blockchain son demasiado lentas y muy costosas para almacenar conjuntos de datos; y (ii) las redes de blockchain que almacenan datos en forma de texto puro no permiten la “privacidad por diseño”[^2]. Para crear un YouTube descentralizado, por ejemplo, se requiere almacenamiento descentralizado de archivos para gestionar los archivos de video. Distintas soluciones de redes descentralizadas de almacenamiento de datos han aparecido, como “IPFS,” “Filecoin,” “Swarm,” “Storj,” or “Sia”. Las redes descentralizadas de almacenamiento incentivan a los nodos de la red para compartir su espacio de almacenamiento a través de un token nativo, y convierten el almacenamiento en la nube en mercados algorítmicos. Difieren entre sí por su nivel de descentralización, privacidad y por su elección del mecanismo de incentivos. Algunas pueden incluso no tener una capa de incentivos, como IPFS, por ejemplo. Por otro lado, protocolos como “Golem” proveen almacenamiento descentralizado recompensando las contribuciones a la red con un token de protocolo nativo.

La comunidad de desarrollo de la Web3 ha evolucionado en los últimos años. Distintos equipos están trabajando en varios componentes de esta Web emergente; sin embargo, muchos de estos protocolos aún están en desarrollo. Las aplicaciones de Web3 inicial y típicamente se comunican con pares desconocidos, y tienen una calidad variable en términos de velocidad y fiabilidad. Nuevas librerías y APIs son necesarias para navegar estas complejidades. No está claro cuándo alcanzarán una masa crítica que les permita reemplazar a las actuales aplicaciones de la Web a gran escala, o cuáles serán los estándares que finalmente prevalecerán. La transición de la Web “cliente-servidor” hacia la “Web descentralizada” será, por tanto, gradual y no radical. Pareciera estar transicionando desde centralizada a parcialmente descentralizada y a totalmente descentralizada.

Una de las preguntas críticas en materia de investigación respecto al desarrollo de tecnologías complementarias para la Web3 es la que indaga en cómo recompensar a los participantes de la red con un token, de modo tal que la red pueda resistir ataques. Ejemplos de ello son los mecanismos de incentivos para soluciones de almacenamiento descentralizado de archivos, computación descentralizada, análisis de datos, o reputación. Muchos mecanismos de consenso están actualmente siendo experimentados, tales como “Proof-of-Retrievability,” “Proof-of-Storage,” and “Proof-of-Spacetime”. Soluciones totalmente descentralizadas, como IPFS y Swarn todavía no están funcionalmente implementadas.

Mientras que las arquitecturas descentralizadas son más resilientes que sus antepasados centralizados de la Web 2, también son más lentas. Velocidad, performance y usabilidad son cuellos de botella en la Web3 que serán probablemente resueltos con el correr del tiempo, una vez que los componentes nucleares de la Web3 estén funcionando (ver más: Anexo - Escalabilidad). Es probable que el futuro de la Internet será más descentralizado, sin embargo esto no significa que podremos deshacernos de todos los sistemas centralizados a la vez. Los sistemas centralizados tienen ventajas y probablemente prevalecerán, al menos para ciertos casos de uso específicos.


Web2 vs. Web3 Applications


Aplicaciones Descentralizadas en la Web3

De manera opuesta a las aplicaciones centralizadas que corren en una única computadora, las aplicaciones descentralizadas corren en una red P2P de computadoras. Han existido desde el surgimiento de las redes P2P y no necesariamente corren encima de una red de blockchain. “Tor”, “BitTorrent”, “Popcorn Time”, and “BitMessage” son todos ejemplos de aplicaciones descentralizadas que corren en una red P2P, pero no en una red de blockchain, que es un tipo específico de red P2P (Leer más: Anexo - Orígenes de Bitcoin y la Web3).

Las aplicaciones tradicionales usan HTML, CSS o javascript para desarrollar un sitio web o una aplicación para móviles. La interfaz de usuario de un sitio web o una aplicación móvil interactúa con una o más base de datos centralizadas. Cuando usas un servicio como Twitter, Facebook, Amazon o Airbnb, por ejemplo, el sitio de Internet llamará a una API para procesar tus datos personales y otra información necesaria almacenada en sus servidores, para mostrarla en la interfaz de usuario. La identificación de usuario y la contraseña se usan para identificar y autentificar, con bajos niveles de seguridad, dado que los datos personalizados están almacenados en el servidor del proveedor de servicio.

Las aplicaciones descentralizadas no se ven muy diferentes a los actuales sitios web o aplicaciones móviles. La interfaz de usuario representa lo que uno ve, y el back-end de la aplicación descentralizada contiene toda la lógica de negocio. Una aplicación descentralizada es un cliente en blockchain llamado “billetera”. Usa la misma tecnología usada para desarrollar un sitio web o una aplicación móvil (como HTML, CSS, Javascript) pero se comunica con una red de blockchain en lugar de con un servidor, y en el caso de las redes de contratos inteligentes (leer más: Partes 2 - Contratos Inteligentes), también se comunica con otros contratos inteligentes. La billetera también gestiona el par de llaves pública y privada y la dirección en blockchain, lo que genera una identidad única para los nodos de la red de modo tal que puedan interactuar de manera segura (leer más: Parte 1 - Seguridad de los Tokens e Identidades centradas en el Usuario). Los contratos inteligentes contienen la lógica núcleo de negocio de aplicaciones descentralizadas, y procesan datos que ingresan desde adentro y desde afuera de la red para gestionar el estado de todos los actores de la red (ver más: Parte 1 - Contratos Inteligentes). Si el cliente de la blockchain es un nodo completo, también gestionará el estado completo del registro (leer más: Parte 1 - Bitcoin, Blockchain & other Distributed Ledgers). En éste caso, el cliente de la blockchain realiza ambas funciones, las de un cliente HTTP y las de un servidor, dado que todos los datos están almacenados del lado del cliente. Los datos de la interfaz del usuario, incluyendo archivos de audio o video y otros documentos, pueden estar colectivamente almacenados en y gestionados por redes de almacenamiento descentralizado como “Swarm” o “IPFS”. Al tiempo en que se escribe este libro esos datos aún son almacenados y gestionados, en su mayor parte, por servidores.

Para el usuario promedio, las aplicaciones descentralizadas deben verse y parecerse a las aplicaciones existentes, lo que implica que deben ser igual de intuitivas y fáciles de usar si quieren ser adoptadas a gran escala. Actualmente, los softwares de billeteras y la gestión de llaves son difíciles, lo que podría ser un cuello de botella para la adopción masiva de las aplicaciones de la Web3. Incluso más, la adopción global solo puede ocurrir si la desconfianza en las soluciones centralizadas es lo suficientemente alta como para compensar los defectos actuales de usabilidad.

Resumen del Capítulo

La Internet que tenemos hoy está rota. No controlamos nuestros datos, ni tenemos una capa nativa que nos permita realizar liquidaciones de valor. Cada vez que interactuamos en Internet, copias de nuestros datos se envían al servidor de un proveedor de servicio, y cada vez que eso pasa, perdemos el control sobre nuestros datos. Esto genera problemas de confianza. \

La Internet que usamos hoy almacena y gestiona datos en servidores de instituciones confiadas. En la Web3 los datos se almacenan en múltiples copias en una red P2P, y las reglas de gestión se formalizan en un protocolo, y se garantizan mediante un consenso mayoritario de todos los participantes de la red, a menudo (pero no siempre) incentivados con un token de la red por sus actividades. \

En la Web3 el estado de la red (representado por el registro de transacciones) es colectivamente mantenido. \

Mientras que la Web2 fue una revolución en materia de interfaz de usuarios, la Web3 es una revolución en el back-end, al introducir una capa de estado universal. Es un conjunto de protocolos liderado por una red de blockchain o registro distribuido similar, que pretende reinventar la forma en que la Internet está conectada en su back-end. La Web3 combina las funciones de sistema de la Internet con las funciones de sistema de las computadoras. \

De manera opuesta a las aplicaciones centralizadas que corren en una única computadora, las aplicaciones descentralizadas corren en una red P2P de computadoras. Existen desde que aparecieron las redes P2P. Las aplicaciones descentralizadas no necesariamente deben correr sobre una red de blockchain. \

Una aplicación descentralizada es un cliente de blockchain llamado “billetera”. Usa la misma tecnología usada para programar sitios de Internet o aplicaciones móviles (HTML, CSS, Javascript) pero se comunica con una red de blockchain en lugar de con un servidor, y en el caso de las redes de contratos inteligentes, también se comunica con contratos inteligentes. La billetera también gestiona el par de llaves pública y privada y la dirección en la blockchain, proveyendo una identidad única para los nodos de la red y permitiendo que los nodos puedan interactuar con la red. \

Referencias del Capítulo y Lecturas Complementarias

Notas al pie

[^1]: Por favor tener en cuenta que términos similares, como Web 3.0, son usados en otros ámbitos. Frecuentemente se refieren a una Internet más inteligente o semántica, incluyendo el aprendizaje automático y la inteligencia artificial, enfocándose en la convergencia de varias tecnologías emergentes relevantes. En el contexto de blockchain, el término es usado por muchos para referirse a una Internet más descentralizada, y es generalmente utilizado como Web3 (no Web 3.0).

[^2]: “Privacidad por Diseño” refiere a “protección de datos a través del diseño tecnológico” (https://gdpr-info.eu/issues/privacy-by-design)