El protocolo 0x, gestado en el Proyecto 0x, supone uno de los mayores avances en dirección a la creación de aplicaciones exchange totalmente descentralizadas sobre blockchains de ethereum, sin estar exentas de seguridad y rapidez.
El protocolo 0x es sin duda la piedra angular del Proyecto 0x. Este protocolo está diseñado para hacer que exchanges (o casas de cambio) distribuidos sean totalmente funcionales por medio de smart contracts ejecutados sobre Ethereum. Su desarrollo data de octubre de 2016, cuando Will Warren y Amir Bandeali iniciaron este proyecto.
La idea detrás del desarrollo del protocolo 0x es diseñar una plataforma capaz de manejar exchanges de forma descentralizada y segura. Plataforma que debe poder ser ampliable en funciones, fácilmente adaptable, escalable y segura. Pues bien todas estas propiedades se vuelven tangibles con el protocolo 0x. Esto significa dos cosas: primero los desarrolladores pueden crear DApps que usen el protocolo 0x para ampliar sus capacidades. Segundo, los usuarios pueden manejar un sistema más homogéneo y seguro para realizar sus operaciones.
Pero el protocolo 0x es mucho más que un medio para facilitar intercambios. Debajo de todo esto encontramos características únicas que convierten a 0x en un referente en el desarrollo del ecosistema Ethereum.
Protocolo 0x : ¿Cómo funciona?
El funcionamiento del protocolo 0x es bastante sencillo. A grandes rasgos, podemos resumirlo con la siguiente serie de pasos:
- Se aprueba el contrato del intercambio descentralizado (DEX) para acceder a su saldo del token A.
- El creador crea una orden para intercambiar el token A por el token B. En ella se especifica el tipo de cambio deseado, el tiempo de vencimiento y firma el pedido con su clave privada.
- Se difunde la orden a la red a los fines de que sea procesado por los relayers.
- La contraparte acepta la orden.
- Se aprueba el contrato DEX para acceder al saldo del token B de la contraparte.
- La contraparte firma la orden mostrando su interés en realizar la operación.
- La orden es enviada nuevamente a la red para que sea procesada por el DEX.
- El contrato DEX autentifica la firma de ambas partes, verifica que el pedido no haya caducado y verifica que el pedido no se ha completado.
- Se realiza la transferencia y luego transfiere los tokens entre las dos partes al tipo de cambio especificado.
Sin embargo, en todo este proceso intervienen una serie de importantes actores que hacen posible este funcionamiento. Cuáles son y qué es lo que hacen es algo que descubriremos más adelante.
¿Cómo se encuentra constituido el protocolo 0x?
Smarts contracts de 0x
La red 0x depende de varios smarts contracts que se ejecutan en la red de Ethereum. Los smarts contracts son unos pequeños programas que se ejecutan sobre la red Ethereum. Estos smart contracts son la base del funcionamiento del protocolo 0x. Esto es debido a que son los encargados de procesar todas y cada una de las operaciones posibles en 0x. En pocas palabras, los smart contracts vendrían a ser el cerebro de toda la red 0x. Un cerebro dividido en varias partes, cada una de ellas especializada en un tarea en especifica.
Por ejemplo, si una DApp desea realizar alguna operación con tokens ZRX y otros tokens ERC-20, se debe hacer uso del smart contract creado para tal fin. También existen smart contracts que nos facilitan el manejo de wETH (wrapped Ether). Todo ello con el fin de optimizar el uso de saldos en Ethers en el intercambio descentralizado.
El protocolo 0x en la actualidad está conformado por un total de diez smarts contracts. Cada uno de ellos con una funcionalidad específica. De esta forma, goza de una excelente modularidad y seguridad. A continuación mostramos la lista completa de los smart contracts de 0x dispuestos en la mainnet de Ethereum:
- AssetProxyOwner: 0x17992e4ffb22730138e4b62aaa6367fa9d3699a6
- ERC20Proxy: 0x2240dab907db71e64d3e0dba4800c83b5c502d4e
- ERC721Proxy: 0x208e41fb445f1bb1b6780d58356e81405f3e6127
- Exchange: 0x4f833a24e1f95d70f028921e27040ca56e09ab0b
- Forwarder: 0x5468a1dc173652ee28d249c271fa9933144746b1
- OrderValidator: 0x9463e518dea6810309563c81d5266c1b1d149138
- WETH9 (EtherToken): 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
- ZRXToken: 0xe41d2489571d322189246dafa5ebde1f4699f498
- CoordinatorRegistry: 0x45797531b873fd5e519477a070a955764c1a5b07
- Coordinator: 0x25aae5b981ce6683cc5aeea1855d927e0b59066f
Puedes revisar cada uno de estos smart contracts desde el explorador de bloques de Ethereum y revisar toda la actividad del mismo de forma abierta y transparente.
Relayers
Los relayers son computadores que ejecutan el software de 0x. La unión de los distintos relayers es responsable de la creación de la red autonóma 0x. Estos equipos son los que se encargan de manejar el libro de órdenes y pedidos de la red off-chain. Al mismo tiempo, los relayers tienen como misión servir de provisión de las funciones necesarias para que los usuarios agreguen, eliminen y actualicen este libro de pedidos a través de las DApps que usen.
De esta forma, los relayers se transforman en la columna vertebral de toda la red 0x. Gracias a ellos, quienes participan en la red pueden realizar sus operaciones de forma segura, pues toda la información se maneja de forma criptográfica. Además, los relayers tienen como tarea rastrear cada una de las operaciones, para que una vez finalizadas éstas sean liquidadas directamente en la cadena de bloques Ethereum a través de los contratos inteligentes de protocolo 0x.
El Token ZRX
El token ZRX es otra parte fundamental del protocolo 0x. Este token tiene dos funciones bien definidas que son:
- Ayudar a resolver el problema de coordinación y mejorar la liquidez de la red. Esto gracias a que permite crear un ciclo de retroalimentación económica, donde los primeros adoptantes del protocolo se benefician de la adopción más amplia.
- Ayuda a crear y gestionar una gobernanza descentralizada. Los participantes del mercado que generan y consumen órdenes de intercambio, usan el token ZRX para pagar por las tarifas de las transacciones a los relayers. Esto crea una asociación cripto-económica entre los actores que pasa desde los incentivos por mantener la red hasta la gobernanza del proyecto y la toma de decisiones.
Herramientas de desarrollo del protocolo 0x
Para hacer posible que terceros puedan adoptar el protocolo 0x, los creadores del mismo han dispuesto distintas herramientas para esto. Estos bloques de construcción ayudan a crear DApps o integrar las ya existentes a la red de 0x para usar sus capacidades. En este punto, 0x cuenta con 0x.js una librería creada para construir aplicaciones web usando el potencial de 0x.
El objetivo de 0x.js es permitir la creación smart contracts seguros sobre Ethereum, y asegurarse de que los clientes pueden interactuar con estos smart contracts por medio de interfaces web. Esto garantiza un acceso seguro y sencillo a los intercambios descentralizados abogando por su expansión y masificación.
Gobernanza dentro del protocolo 0x
Dada la amplia descentralización del protocolo 0x, este cuenta con una gobernanza repartida entre sus partes de forma equitativa. Esto con el fin de garantizar el funcionamiento descentralizado y continuo de la red, además de garantizar que las decisiones tomadas beneficien a todos por igual.
Este sistema de gobernanza tiene como finalidad, garantizar el funcionamiento y evolución del protocolo 0x en todo momento. Las actualizaciones menores o mayores de 0x, son aprobadas con el voto de quienes integran la red. Este modelo garantiza que todos participen en el destino de la red y en su evolución a futuro.
Ventajas del protocolo 0x
Muchas de las ventajas aportadas por el protocolo 0x tienen que ver con las que le reporta a los exchange del tipo descentralizado sobre el intercambio centralizado. Uno de los mayores problemas con los intercambios centralizados es que deben mantener y asegurar los fondos de todos los comerciantes en su plataforma. Esto hace que haya un único punto vulnerable que, si se piratea o se administra mal, significa que todos estos operadores podrían perder sus fondos. Cientos de millones ya han sido robados de esta manera, en varias ocasiones.
Además, con un intercambio descentralizado los comerciantes no necesitan depositar fondos en una entidad centralizada, con la que estarían obligados a confiar. Esto permite operar en la compra venta de tokens directamente desde nuestro monedero. De esta forma es como los DEXs devuelven al usuario el control de sus fondos en todo momento, eliminando este único punto de falla de la ecuación.
En este punto, 0x permite generar sistemas de intercambios descentralizados de forma muy sencilla. Pero no solo eso, hace posible también que las DApps integren el token 0x de forma rápida, permitiéndome interactuar con el ecosistema 0x sin ningún esfuerzo.