En [este artículo] te hemos hablado de los principales productos ofrecidos por Arbitrum: Arbitrum Nova y Arbitrum One. Dichos servicios se construyen y deben sus funcionalidades a un stack tecnológico conocido con el nombre de Arbitrum Nitro (básicamente, el conjunto de rudimentos tecnológicos que, alejados de la UX, hacen que funcionen los productos que tu vas a utilizar a través del frontend). Derivado, a su vez, de dicho stack tecnológico, tenemos una variante del mismo, conocida como AnyTrust, que apunta a una ofrecer un servicio mucho más económico a los usuarios sacrificando, en pos de esto, una porción ínfima de seguridad. Pero vayamos por partes.
De nuevo: ¿cómo funciona Arbitrum?
Como ya sabrás, a través de rollups, Arbitrum se encarga de compilar muchas
transacciones, comprimirlas (como si estuviésemos hablando de un archivo .zip) y
enviarlas a la red principal de Ethereum ya procesadas y pesando mucho menos.
Durante este proceso existen distintos nodos que se encargar de varias acciones
(por ejemplo, los validators, que stakean dinero para asegurar que una
trasnacción es válida o no). Pues bien: todos los nodos, durante todo el
proceso, deben tener acceso a los datos que se están manejando. En ota palabras,
los datos de cada transacción tienen que ser públicos durante todo su recorrido
en la L2 (y, desde ya, en la L1). ¿Cómo asegura esta disponibilidad y
auditabilidad de datos Arbitrum? Enviando toda la información, de manera
comprimida, hacia la L1, en donde cualquiera puede verla. Pero aquí es donde
entran los costos, porque enviar esa información desde la L2 a la L1 representa
un fee; un determinado costo de gas. Y ese es uno de los costos principales de
todo Arbitrum. Y es un costo que, por supuesto, se ve reflejado en el costo que
Arbitrum tiene para los usuarios del servicio.
¿Pero qué pasaría si nos ahorrásemos este paso? Es decir, si no tuviésemos que
enviar la información desde la L2 hacia la L1. Esto, desde ya, abarataría los
costos de operación. Y es justamente esto lo que propone el protocolo AnyTrust.
AnyTrust
Por supuesto que al utilizar AnyTrust la información debe seguir estando
disponible para cualquiera que quiera auditarla. Si esto no fuese así,
estaríamos ante un sistema casi TradFi en el cual los datos de las operaciones
se mantienen lejos de cualquier mirada, y nadie sabe en realidad que esta
sucediendo tras bambalinas (por ejemplo, cualquier banco de tu ciudad).
Estaríamos hablando, en definitiva, de una operación centralizada en la que un
organismo tiene el acceso exclusivo a la información, lo cual desnaturalizaría
el ethos de Arbitrum, esencialmente alineado con los principios y valores de
Ethereum.
Entonces, ¿esta disponibel dicha información si utilizamos el protocolo
AnyTrust? Sí, pero no es enviada a la L1, sino que se mantiene en el poder de un
Comité de Disponibilidad de Datos, abreviado DAC según sus siglas en inglés
(Data Availability Committee). Este Comité es quien se encarga de atesorar la
información y de proporcionársela a cualquier parte interesada en ella,
evitándose con esto el sistema la necesidad de enviar los datos a la L1 y
ahorrandose, con esto, los gastos de gas.
El Comité, por supuesto, es público, y se asume que, de entre sus miembros, al
menos dos son honesto. Supongamos que el comité esta formado por 5 miembros que
prometen que darán la información cuando esta sea reclamada. Digamos que,
llegado el caso, únicamente 4 de 5 se comprometen a dar la información. Pues
bien: dentro de esos 4, como hay dos honestos, debe encontrarse, al menos, un
miembro honesto que nos dará el acceso a la información.
¿Debemos confiar en terceros para que todo esto funcione? Sí. No podemos,
entonces, definir a este sistema como uno trustless, pero sí, quizás, definirlo
como de mild trust assumption.
Especificando un poco más sus funciones, el Comité se encarga de producir lo que
se conoce como Certificado de Disponibilidad de Datos, o, en inglés, un DACert
(Data Availability Certificate), en donde se encuentra el hash (es decir, un
código identificatorio único) del bloque de datos, los datos de los miembros del
Comité que han habilitado este certificado y, además, una fecha de expiración.
Estos certificados están disponibles para los secuenciadores que, desde aquí,
tienen dos opciones:
- Pueden agarrar esta información compilada y enviarla a la L1, en donde podrá ser leída tanto por la L2 como por la L1
- O puede enviar a la L1 este certificado que, en definitiva, no contiene la información, sino que es un, justamente, un elemento que certifica que dicha información esta disponible.
Como ya entenderás, la primera opción es más costosa: debería pagarse el gas
para enviar los datos de la L2 y la L1, más allá de que el secuenciador este
mandando información comprimida. Esto es, en efecto, lo que haría el
secuenciador si estuviese actuando dentro del protocolo de Arbitrum One,
utilizando Nitro. Pero si nos encontramos utilizando Arbitrum Nova y AnyTrust,
el camino seguido será el segundo: se mandará un DACert, evitando todos los
costos de la primera opción.
Para mayor claridad podemos pensarlo esquemáticamente de esta forma:
1) Si utilizas Ethereum como tu red principal para, digamos, relizar una
transacción, las tres tareas principales operativas se repartirían de la
siguiente manera:
-
EJECUCIÓN: ETHEREUM
DISPONIBILIDAD DE DATOS: ETHEREUM
CONSENSO: ETHEREUM - Es decir, todo quedaría en manos de Ethereum. Y esto, dada la congestión de Ethereum, tendría un costo, variable pero muchas veces elevado.
2) Si utilizas Arbitrum One para realizar dicha transacción, la
repartición de tareas se vería así:
EJECUCIÓN: ARBITRUM ONE
DISPONIBILIDAD DE DATOS: ETHEREUM
CONSENSO: ETHEREUM
3) Por último, si hicieses uso de Arbitrum Nova, aparecería un nuevo actor:
EJECUCIÓN: ARBITRUM NOVA
DISPONIBILIDAD DE DATOS: ARBITRUM NOVA (DAC)
CONSENSO: ETHEREUM
Como vemos, las tres opciones tienes sus beneficios y sus contras. Si utilizas
Ethereum no tendrás que cambiar de red, utilizar puentes, y mantendrás una
experiencia totalmente descentralizada. Pero corres el riesgo de pagar
comisiones de gas que, en ocasiones, serán muy costosas.
Si por el contrario decides utilizar Arbitrum One, mantendrás la misma seguridad
que utilizando Ethereum ya que el manejo de datos y el consenso de los mismos se
hallarán en Ethereum, pero a cambio tendrás la posibilidad de hacer tus
operaciones pagando muchísimo menos que si utilizaras Ethereum. La experiencia
sería casi igual de descentralizada.
Por último, si decidieras usar Arbitrum Nova y su protocolo AnyTrust, el costo
sería ínfimo pero, a cambio, perdería un poco de descentralización al
"depender", de alguna manera, del Comité y de la confianza que este te produzca.
El objetivo de protocolos que permiten operaciones muy, muy baratas, como
AnyTrust, es ofrecer opciones variadas para los usuarios. Por ejemplo, si
quisieras hacer una transacción de mucho dinero, probablemente quieras extremar
de manera total la seguridad, y utilizarás Arbitrum One. Si por el contrario la
transacción es menor o estas diseñando un videojuego que necesite costos
irrisorios, tu opción será Arbitrum Nova. En definitiva, es tu elección. Lo
importante sigue siendo lo siguiente: la posibilidad de operar de manera segura,
barata, y alineada en todo momento con el ecosistema de Ethereum.