¿Qué es Arbitrum AnyTrust y para qué se puede usar?
Ya conocimos Stylus y como su funcionalidad como “traductor” de lenguajes puede ayudar a la aceleración del desarrollo dentro del ecosistema de Arbitrum, otorgando las herramientas necesarias para que developers en otros lenguajes como Rust, C o C++ puedan compilar sus códigos dentro de la EVM sin necesidad de aprender otro idioma de cero como Solidity.
¿Qué es Arbitrum Anytrust?
Los rollups han sido revolucionarios. Heredan la seguridad de la capa de Ethereum, mientras proveen una forma mucho más barata de transaccionar gracias a su capacidad para poder procesar una mayor cantidad de transacciones.
Hay aplicaciones que para poder tener un negocio viable utilizando blockchain necesitan costos de transacción ultrabajos, una industria como estas es el gaming. Para este tipo de aplicaciones, Arbitrum desarrollo las cadenas AnyTrust, las cuales permiten costos de operación mucho menores y retiros más rápidos, todo por un poco de confianza.
Arbitrum construyo AnyTrust como una opción alternativa para aquellos que la quieran usar, esto no significa que cambiaran el estado "trustless" de su rollup Arbitrum One.
Anytrust funciona de una manera muy sencilla, la cadena es operada por un comité de nodos, este comité trabaja bajo la idea de que el mínimo de los nodos son honestos. Por ejemplo, un comité de 20 nodos que trabaja la suposición de que solo 2 nodos son honestos es mucho más sencillo que una capa dos convencionales que requiere que más de 2/3 de los miembros (14 de 20) sean honestos. Anytrust encontró la manera de reducir ese requerimiento de 14 a solo 2 gracias a una funcionalidad llamada "fallback to rollup" construida sobre Ethereum. Vamos a explicarlo mejor.
¿Cómo funciona la seguridad en Anytrust?
Hay dos ventajas para el usuario asumiendo que los validadores y los miembros del comité son honestos.
- No habrá necesidad de reportar la data de la transacción a la capa 1, en su lugar los nodos pueden depender del comité para proveer esa data si es necesario. Con la promesa del comité de proveer con esa información, es seguro solamente mandar el hash del batch de transacciones a la capa 1 de Ethereum. Esto genera ahorros considerables.
- Los retiros a la L1 son inmediatos, siempre y cuando el comité apruebe las transacciones.
Anytrust sacrifica descentralización por tener costos de transacción ultrabajos. Muchas veces la descentralización es un taboo en cripto y es poco entendida, hay veces donde un sacrificio en descentralización tiene sentido. Para cosas como gaming no es tan grave que una red falle, por ejemplo si un día tienes 7 vidas en tu juego y al otro día tienes 6 por un error en la red. En casos de uso financieros es fundamental la descentralización porque perder dinero por un error de red no es una opción.
¿Qué pasa si algo sale mal? Fallback to rollup
¿Qué pasa si algo sale mal, si el comité no firma nada o si varios miembros del comité se desconectan? En ese caso la cadena seguirá operando de manera normal, regresando al protocolo estándar del rollup. De ser necesario, Arbitrum AnyTrust puede recaer a la arquitectura normal de Arbitrum (sin el comité) y seguir operando normalmente, con los fees normales del rollup y el periodo de espera de retiro de 7-8 días.
¿Por qué es seguro el comité?
La premisa es la siguiente, con 20 miembros y por lo menos dos honestos, lo que sea, que sea firmado por 19 miembros debe ser correcto, porque por lo menos dos miembros son honestos y solo un miembro puede quedar fuera del quorum, por lo que el quorum debe tener, por lo menos, un miembro honesto.
En general, con N miembros, y K asumidos como honestos, el quorum serían N+1-K miembros.
Entonces, si el quorum firma la promesa de proveer con información que respalde un batch de transacciones, sabremos que esa información estará disponible para cualquiera que decida revisarla, así es seguro solo publicar el hash de la información en lugar de la información completa en la capa 1.
Similarmente, si el quorum firma un "state transition" en particular, ese state transition puede ser aceptado sin esperar al periodo de prueba y procesar los retiros inmediatamente.
Si el quorum no está disponible, entonces ninguna de esas dos cosas puede pasar, pero la cadena seguirá operando bajo los estándares del rollup normal de Arbitrum.
Ya vimos como funciona teóricamente las cadenas de Anytrust, ahora vamos al lado técnico y ver como podemos crear nuestra propia chain con el Arbitrum SDK.
Anytrust con Remix
Requisitos previos
- Metamask o tu wallet de preferencia
- ETH Sepolia en Arbitrum
- Remix, nuestro editor de código online para contratos inteligentes.
Para este manual no es requerido instalar ninguna herramienta, todo se realizará desde nuestro navegador.
Link de herramientas.
Remix IDE: https://remix.ethereum.org/
Metamask: https://metamask.io/
Fauset: https://www.alchemy.com/faucets/arbitrum-sepolia
Primeros pasos
Creamos un wallet, recuerden que utilizaremos un wallet sin fondos reales, es super importe que sea para desarrollo.
Para llegar ahí solo desbloqueamos nuestra wallet, iremos a la barra de navegación.
Damos un click sobre el nombre de nuestra dirección actual, desplegará una lista de wallets.
En el botón inferior podemos dar un click y agregar una nueva wallet, podemos usar una cuenta ya existente, pero recomendamos crear una nueva cuenta con propósito de desarrollo.
Y listo, es momento de cargar ETH en Arbitrum sepolia.
Yo les recomiendo que usen el siguiente faucet: https://www.alchemy.com/faucets/arbitrum-sepolia
Simplemente, copiamos y pegamos la dirección de nuestra billetera de desarrollo
Pegamos dentro de la faucet
Listo cargamos ETH, sobre la testnet Arbitrum Sepolia.
Ahora es momento de abrir Remix.
Les dejo el siguiente link: https://remix.ethereum.org/
Al abrirlo en nuestro navegador veremos algo así.
Ahora es momento de codificar y desplegar.
Crear el Smart Contract.
Les contaré de manera superrápida que hace este contrato. Este contrato inteligente permite a los usuarios almacenar y consultar sus estados de ánimo en la cadena de bloques de Ethereum de forma segura y transparente.
Aquí está una descripción general de lo que hace este contrato:
- Registro de estados de ánimo: Los usuarios pueden agregar entradas al diario especificando su estado de ánimo en un momento dado. Cada entrada consiste en una cadena de caracteres que representa el estado de ánimo del usuario y una marca de tiempo que indica cuándo se registró ese estado.
- Almacenamiento descentralizado: Las entradas del diario se almacenan de forma descentralizada en la cadena de bloques de Ethereum, lo que garantiza la inmutabilidad y la transparencia de los datos. Cada usuario tiene su propio diario, y las entradas están asociadas con sus direcciones Ethereum.
- Consulta de estados de ánimo: Los usuarios pueden consultar la última entrada de su diario para ver su estado de ánimo más reciente. Esto les permite realizar un seguimiento de cómo han estado sintiéndose a lo largo del tiempo.
- Eliminación de entradas: El propietario del contrato (la dirección que lo desplegó) tiene la capacidad de eliminar entradas específicas del diario de un usuario. Esto puede ser útil en caso de que se necesite corregir un error o eliminar información sensible.
- Constructor: El constructor es una función especial que se ejecuta una vez cuando se despliega el contrato en la cadena de bloques. En este contrato, el constructor se utiliza para inicializar la variable owner con la dirección del remitente del mensaje que desplegó el contrato.
- addMood: Esta función permite a los usuarios añadir una entrada al diario de estados de ánimo. Toma como parámetro _mood, que es una cadena de caracteres que representa el estado de ánimo que el usuario desea añadir al diario. Crea una nueva estructura DiaryEntry con el estado de ánimo y la marca de tiempo actual, y luego la agrega al mapeo diaryEntries asociada con la dirección del remitente del mensaje. Finalmente, emite un evento MoodSet para registrar el cambio de estado.
- getLastMood: Esta función permite a los usuarios obtener la última entrada del diario de estados de ánimo de un usuario específico. Toma como parámetro _user, que es la dirección del usuario del cual se desea obtener el estado de ánimo más reciente. Verifica si hay entradas en el diario del usuario y devuelve el estado de ánimo y la marca de tiempo de la última entrada.
- deleteEntry: Esta función permite al propietario del contrato eliminar una entrada específica del diario de estados de ánimo de un usuario. Toma como parámetros _user, que es la dirección del usuario cuya entrada se eliminará, y _index, que es el índice de la entrada que se eliminará del diario del usuario. Verifica que el remitente del mensaje sea el propietario del contrato y que el índice proporcionado sea válido antes de eliminar la entrada del diario.
Sobre nuestro editor de código se puede ver así nuestro contrato inteligente.
Después de codificar, es momento de compilar, en la barra lateral izquierda, damos un click sobre el icono, solidity compiler, con en la siguiente imagen.
Seleccionamos el compilador, yo estoy utilizando, 0.8.24, listo lo podemos compilar para luego desplegar nuestro contrato.
Super, es momento de probar y desplegar nuestro diario onchain, daremos un click en el botón de run and deploy.
Luego de la confirmación, en nuestra terminal veremos lo siguiente
Listo, tenemos nuestro contrato inteligente desplegado, pero ¿cómo interactúo con mi diario?
Para testearlo en la misma pestaña, de deploy, existe un visualizador donde podremos interactuar con nuestro contrato inteligente. Si les interesa un tutorial más a fondo de como interactuar con el contrato desplegado, déjanos un comentario en nuestras redes.
Los rollups han sido revolucionarios. Heredan la seguridad de la capa de Ethereum, mientras proveen una forma mucho más barata de transaccionar gracias a su capacidad para poder procesar una mayor cantidad de transacciones. Hay aplicaciones que para poder tener un negocio viable utilizando blockchain necesitan costos de transacción ultra bajos, una industria como estas es el gaming. Para este tipo de aplicaciones, Arbitrum desarrollo las cadenas AnyTrust, las cuales permiten costos de operación mucho menores y retiros más rápidos, todo por un poco de confianza.
Ha sido un viaje largo, aprendimos funamentalmente que es Arbitrum y como funciona y nos metimos de lleno a las herramientas para desarrolladores como Orbit, para lanzar tu propia blockchain o Anytrust; una solución para servicios blockchain enfocados en la industria gamer.
Ya vimos los básicos de Arbitrum y la tecnología de su rollup; ahora empezaremos a construir sobre Arbitrum y a utilizar las herramientas que nos dan para poder crear soluciones sustentables y escalables con el objetivo de ayudar a la comunidad de Arbitrum a continuar creciendo y seguir desarrollándose. Acompáñanos a descubrir la primera de estas herramientas. Arbitrum Stylus.
Hola comunidad de espacio cripto espero se encuentren muy bien, les saluda su dev de confianza; Eder. En este artículo haremos un viaje al planeta Orbit, que se encuentra en la galaxia de Arbitrum dentro del universo de Ethereum. Yo, su capitán por hoy, les acompañaré en este viaje; iremos desentrañando cada rincón de Orbit, desde una explicación de cómo funciona, hasta tener nuestra propia cadena corriendo en nuestra computadora, mejor conocida como una (devnet) 🫡🚀
En el artículo pasado conocimos Arbitrum, sus fundadores, su historia y sus primeros pasos como una L2. Esta serie de artículos tienen un enfoque en el ecosistema del desarrollo, con eso en mente y ya conociendo un poco a Arbitrum ahora si entraremos al lado técnico de la red, como funciona y que hace a Arbitrum especial. Al final de este escrito habrás comprendido como funciona el rollup de Arbitrum y como utilizarlo gracias a nuestro pequeño tutorial.
Te damos la bienvenida a esta serie de artículos donde nos sumergiremos en el profundo ecosistema de Arbitrum, centrándonos especialmente en el desarrollo y las herramientas que ofrece para construir un futuro sólido en la web3.