Moxie opinó sobre la Web3 el pasado 7 de enero. En su blog nos compartió su experiencia e hizo algunas observaciones al probar esta tecnología. A continuación repasaremos los puntos más importantes que compartió.

Matthew Rosenfeld, conocido como Moxie Marlinspike, es un empresario, criptógrafo e investigador de seguridad informática estadounidense, creador de Signal, cofundador de la Signal Technology Foundation y fue el primer director general de Signal Messenger LLC. También es coautor del protocolo de cifrado de Signal utilizado por Signal, WhatsApp, Facebook Messenger, y Skype.

Mis primeras impresiones sobre web3

A pesar de considerarme un criptógrafo, no me he encontrado especialmente atraído por la «criptografía». Además, no comparto el mismo entusiasmo generacional por trasladar todos los aspectos de la vida a una economía instrumentada.

Sin embargo, incluso en el plano estrictamente tecnológico, todavía no he conseguido convertirme en un creyente. Así que, teniendo en cuenta toda la atención que se ha prestado recientemente a lo que ahora se denomina web3, decidí explorar más a fondo lo que ha estado ocurriendo en ese espacio para ver lo que me puedo estar perdiendo.

Mi opinión sobre 1 y 2

Web3 es un término algo ambiguo, lo que hace difícil evaluar con rigor cuáles deben ser las ambiciones de web3, pero la tesis general parece ser que web1 estaba descentralizada, web2 centralizaba todo en plataformas, y que web3 volverá a descentralizar todo. Web3 debería darnos la riqueza de web2, pero descentralizada.

Probablemente sea bueno tener claro por qué surgieron las plataformas centralizadas para empezar, y en mi opinión la explicación es bastante sencilla:

1. La gente no quiere manejar sus propios servidores, y nunca lo hará. La premisa de web1 era que todo el mundo en Internet sería a la vez editor y consumidor de contenidos, así como editor y consumidor de infraestructura.

Todos tendríamos nuestro propio servidor web con nuestro propio sitio web, nuestro propio servidor de correo para nuestro propio correo electrónico, etc. Sin embargo, y no creo que se pueda enfatizar lo suficiente, eso no es lo que la gente quiere. La gente no quiere manejar sus propios servidores.

Las empresas que surgieron ofreciendo hacer eso por ti en su lugar tuvieron éxito, y las empresas que iteraron sobre nuevas funcionalidades basadas en lo que es posible con esas redes tuvieron aún más éxito.

2. Un protocolo se mueve mucho más lentamente que una plataforma. Después de más de 30 años, el correo electrónico sigue sin encriptar; mientras tanto, WhatsApp pasó de no estar encriptado a ser totalmente e2ee en un año.

Esto no es un problema de financiación. Si algo está realmente descentralizado, se vuelve muy difícil de cambiar, y a menudo se queda estancado en el tiempo. Eso es un problema para la tecnología, porque el resto del ecosistema se mueve muy rápido, y si no sigues el ritmo fracasarás.

Hay industrias paralelas enteras centradas en definir y mejorar metodologías como Agile para tratar de averiguar cómo organizar grupos enormes de personas para que puedan moverse lo más rápido posible, porque es muy crítico.

Creación de algunas aplicaciones descentralizadas

Para hacerme una idea del mundo de la web3, creé una dApp llamada Autonomous Art que permite a cualquiera crear un token para un NFT haciendo una contribución visual a la misma.

También hice una dApp llamada First Derivative que te permite crear, descubrir e intercambiar derivados de NFT que rastrean un NFT subyacente, similar a los derivados financieros que rastrean un activo subyacente.

Ambos me dieron una idea de cómo funciona el espacio. Para ser claros, no hay nada particularmente «descentralizado» en las aplicaciones en sí: son sólo sitios web de reacción normal. La «descentralización» se refiere a dónde vive el estado y la lógica/permisos para actualizar el estado: en la cadena de bloques en lugar de en una base de datos «centralizada».

Todos los diagramas de red son de servidores, el modelo de confianza es entre servidores, todo es sobre servidores. Las cadenas de bloques están diseñadas para ser una red de pares, pero no están diseñadas para que sea posible que tu dispositivo móvil o tu navegador sean uno de esos pares. Así que la única alternativa es interactuar con la cadena de bloques a través de un nodo que se ejecuta de forma remota en un servidor en algún lugar.

Un servidor. Pero, como sabemos, la gente no quiere ejecutar sus propios servidores. Así, han surgido empresas que venden el acceso a la API de un nodo de Ethereum que ejecutan como un servicio, además de proporcionar análisis, APIs mejoradas que han construido sobre las APIs de Ethereum por defecto. Lo que suena… familiar. En este punto, hay básicamente dos empresas. Casi todas las dApps utilizan Infura o Alchemy para interactuar con la blockchain. De hecho, incluso cuando conectas un monedero como MetaMask a una dApp, y la dApp interactúa con la blockchain a través de tu monedero, ¡MetaMask sólo está haciendo peticiones a Infura!

Estas APIs de clientes no están usando nada para verificar el estado del blockchain o la autenticidad de las respuestas. Los resultados ni siquiera están firmados.

Esto me sorprendió. Se ha invertido mucho trabajo, energía y tiempo en crear un mecanismo de consenso distribuido sin confianza, pero prácticamente todos los clientes que desean acceder a él lo hacen simplemente confiando en los resultados de estas dos empresas sin ninguna otra verificación. Tampoco parece la mejor situación de privacidad.

Creación de un NFT

La mayoría de la gente piensa en imágenes y arte digital cuando piensa en NFTs, pero los NFTs generalmente no almacenan esos datos en la cadena. Para la mayoría de los NFT de la mayoría de las imágenes, eso sería demasiado caro.

En lugar de almacenar los datos en la cadena, los NFT contienen una URL que apunta a los datos. Lo que me sorprendió de las normas fue que no hay un compromiso de hash para los datos ubicados en la URL. Si observamos muchas de las NFT que se venden en mercados populares por decenas, cientos o millones de dólares, esa URL suele apuntar a algún VPS que ejecuta Apache en algún lugar.

Cualquiera que tenga acceso a esa máquina, cualquiera que compre ese nombre de dominio en el futuro, o cualquiera que comprometa esa máquina puede cambiar la imagen, el título, la descripción, etc. del NFT a lo que quiera en cualquier momento (independientemente de si es o no «dueño» del token). No hay nada en las especificaciones del NFT que diga cuál es la imagen que «debería» ser, o que permita confirmar si algo es la imagen «correcta».

MetaMask necesita interactuar con el blockchain, pero la blockchain ha sido construido de tal manera que los clientes como MetaMask no pueden interactuar con él. Así que, al igual que mi dApp, MetaMask logra esto haciendo llamadas a la API de tres empresas que se han consolidado en este espacio.

Todo esto significa que si tu NFT se elimina de OpenSea (u otra dapp que use el API de este), también desaparece de tu monedero. ¡No importa funcionalmente que mi NFT esté en la blockchain en algún lugar, porque la billetera sólo está utilizando la API de OpenSea para mostrar NFTs, luego comenzó a devolver un error para la consulta de NFTs de mi propiedad en mi dirección!

Recreando este mundo

Teniendo en cuenta la historia de por qué web1 se convirtió en web2, lo que me parece extraño de web3 es que tecnologías como ethereum se han construido con muchos de los mismos adornos implícitos de web1. Para que estas tecnologías sean utilizables, el espacio se está consolidando en torno a… plataformas. De nuevo. Personas que ejecutarán servidores por ti, e iterarán sobre la nueva funcionalidad que surja. Infura, OpenSea, Coinbase, Etherscan.

Una vez que un ecosistema descentralizado se centraliza en torno a una plataforma por conveniencia, se convierte en lo peor de ambos mundos: control centralizado, pero lo suficientemente distribuido como para quedarse estancado en el tiempo. Puedo construir mi propio mercado de NFTs, pero no ofrece ningún control adicional si OpenSea media la vista de todas las NFTs en los monederos que la gente utiliza (y cualquier otra aplicación en el ecosistema).

Esto no es una queja sobre OpenSea o una acusación sobre lo que han construido. Todo lo contrario, están intentando construir algo que funcione. Creo que deberíamos esperar que se produzca este tipo de consolidación de plataformas, y dada la inevitabilidad, diseñar sistemas que nos den lo que queremos cuando así se organizan las cosas. Sin embargo, mi sensación y preocupación es que la comunidad de web3 espera un resultado distinto al que ya estamos viendo.

 

Es pronto

El refrán más común que veo en el espacio de web3 cuando se discuten asuntos como éste  «todavía es pronto». En cierto modo, el hecho de que las criptomonedas no haya escalado más allá de una ingeniería relativamente incipiente es lo que permite considerar que los días son «tempranos», puesto que objetivamente ya ha pasado una década o más.

Sin embargo, incluso si esto es sólo el principio (¡y bien podría serlo!), no estoy seguro de que debamos considerarlo un consuelo. Creo que podría ser lo contrario; parece que deberíamos tener en cuenta que, desde el principio, estas tecnologías han tendido inmediatamente hacia la centralización a través de plataformas para poder realizarse, que esto tiene ~cero efectos negativos en la velocidad del ecosistema, y que la mayoría de los participantes ni siquiera saben o les importa que esté ocurriendo.

Esto podría sugerir que la descentralización en sí misma no tiene una importancia práctica inmediata o apremiante para la mayoría de la gente, que la única cantidad de descentralización que la gente quiere es la mínima necesaria para que algo exista, y que si no se tiene en cuenta de forma muy consciente, estas fuerzas nos alejarán, en lugar de acercarnos, del resultado ideal a medida que los días sean menos tempranos.

 

La creatividad podría no ser suficiente

Sólo me he sumergido en las aguas de la web3. Sin embargo, mirándolo a través de la lente de estos pequeños proyectos, puedo ver fácilmente por qué tanta gente encuentra el ecosistema de la web3 tan estupendo.

No creo que esté en una trayectoria que nos libere de las plataformas centralizadas, no creo que vaya a cambiar fundamentalmente nuestra relación con la tecnología, y creo que la historia de la privacidad ya está por debajo de la par para Internet (¡que es un listón bastante bajo!), pero también entiendo por qué los nerds como yo están entusiasmados por construir para ella. Es, como mínimo, algo nuevo a nivel de nerds – y eso crea un espacio para la creatividad/exploración que recuerda un poco a los primeros días de Internet.

Irónicamente, parte de esa creatividad surge probablemente de las limitaciones que hacen que la web3 sea tan torpe. Tengo la esperanza de que la creatividad y la exploración que estamos viendo tengan resultados positivos, pero no estoy seguro de que sea suficiente para evitar que se vuelva a producir la misma dinámica de Internet.

Si queremos cambiar nuestra relación con la tecnología, creo que tendríamos que hacerlo intencionadamente. Mis ideas básicas son más o menos las siguientes:

  1. Deberíamos aceptar la premisa de que la gente no dirigirá sus propios servidores diseñando sistemas que puedan distribuir la confianza sin tener que distribuir la infraestructura. Esto significa una arquitectura que anticipe y acepte el resultado inevitable de las relaciones cliente/servidor relativamente centralizadas, pero que utilice la criptografía (en lugar de la infraestructura) para distribuir la confianza. Una de las cosas que me sorprenden de la web3, a pesar de estar construida sobre «criptografía», es lo poco que parece haber de criptografía.
  2. Deberíamos intentar reducir la carga de la construcción de software. En este momento, los proyectos de software requieren una enorme cantidad de esfuerzo humano. Incluso las aplicaciones relativamente sencillas requieren que un grupo de personas se siente frente a un ordenador durante ocho horas al día, todos los días, para siempre. Esto no siempre fue así, y hubo un tiempo en que 50 personas trabajando en un proyecto de software no se consideraba un «equipo pequeño».
    Mientras el software requiera tanta energía concertada y tanta concentración humana altamente especializada, creo que tendrá la tendencia a servir a los intereses de las personas que se sientan en esa sala cada día en lugar de lo que podemos considerar nuestros objetivos más amplios. Creo que para cambiar nuestra relación con la tecnología probablemente habrá que hacer que el software sea más fácil de crear, pero en mi vida he visto lo contrario.Por desgracia, creo que los sistemas distribuidos tienden a exacerbar esta tendencia haciendo las cosas más complicadas y más difíciles, no menos complicadas y menos difíciles.