“Boxes”: almacenamiento ilimitado en los contratos inteligentes de Algorand

¿Cómo vas a usar boxes en Algorand? Los desarrolladores con los que trabajo a veces dicen que «todo es posible de construir». Este es un aspecto emocionante del desarrollo de software y una de las principales razones por las que la gente se enamora de la programación: te permite construir todo lo que puedas imaginar.

Los contratos inteligentes en blockchain

Desafortunadamente, es probable que los ingenieros en blockchain digan:

«cualquier cosa es posible de construir…
…pero es difícil.
…pero es arriesgado.
… pero va a ser costoso de mantener”.

Los contratos inteligentes en blockchain son una tecnología incipiente. Cumplen su objetivo principal al permitir que las personas creen aplicaciones distribuidas, pero sigue siendo un camino desafiante hacia el verdadero éxito.

Por estas razones, muchas aplicaciones supuestamente descentralizadas en blockchain dependen, lamentablemente, de servicios fuera de la cadena para parte de su implementación. Dando como resultado el nacimiento de la «Web 2.5» en lugar de la «Web 3.0», a medida que el mundo avanza hacia la verdadera descentralización.

En Algorand, este desafío es lo más importante, y cada actualización de la máquina virtual de Algorand (AVM) sirve a los desarrolladores que se basan en nuestra blockchain. Nuestro objetivo es facilitar el desarrollo de aplicaciones seguras, eficaces y totalmente descentralizadas.

El lanzamiento de AVM 8

Nuestro último lanzamiento de AVM no es una excepción. Hemos introducido una nueva forma flexible de almacenamiento para Smart Contracts: boxes. Un Smart Contract puede crear tantas boxes como necesite, del tamaño que necesite (hasta 32K) y cuando las necesite.

Por ejemplo, supongamos que Alice quiere ofrecer un servicio de Oracle a precios simbólicos. Ella crea un contrato inteligente al que los usuarios pueden llamar para obtener el precio actual de un token.

Dado el conjunto cada vez mayor de tokens disponibles en Algorand, ya sean nativos o puenteados, el contrato Oracle de Alice necesitará una cantidad cada vez mayor de almacenamiento persistente a lo largo del tiempo.

Las “boxes” son la solución perfecta: el contrato inteligente de Alice asigna una “box” por token que rastrea.

Cuando se crea CoolCoin, el contrato Oracle puede crear una nueva “box” «CoolCoin». Este cuadro almacenará el precio de CoolCoin. Este valor puede ser leído y actualizado por el contrato de Oracle de Alice a partir de entonces. Los usuarios que quieran saber el precio de CoolCoin, llaman al contrato de Oracle para obtener el precio.

Esperemos que esto suene tan sencillo como lo es. Ofrecen una forma directa de implementar un mapa para almacenar todos sus pares “clave-valor”.

Antes de las “boxes”, los desarrolladores de Smart Contract que necesitaban más almacenamiento tenían que recurrir a trucos como crear aplicaciones o cuentas ficticias solo para poder usar su estado, administrando cuidadosamente los permisos para evitar introducir vulnerabilidades en el proceso.

¿Cuánto cuestan las “boxes”?

Por supuesto, el almacenamiento digital tiene un costo, y en blockchain es más costoso debido a su naturaleza distribuida (y duplicada).

Un ejemplo ilustrativo simple: Alice y Bob se acaban de casar. Quieren guardar una pequeña foto de su boda en la blockchain. Pueden crear un contrato inteligente para administrar el almacenamiento que les permita crear una “box” y almacenar la foto en ella. Pueden volver a introducir el contrato inteligente en una de sus cuentas para que solo ellos puedan controlar esta “box”.

Si almacenan la foto de tamaño máximo que pueden (32K), les costará alrededor de 13 ALGOs, aproximadamente US$ 3-4 al momento de escribir estas líneas.

El almacenamiento de Algorand se paga mediante un aumento del requisito de saldo mínimo de una cuenta. En otras palabras, Alice necesita mantener al menos 13 ALGOs en su cuenta de contrato para continuar almacenando la imagen allí. Si en el futuro Alice y Bob se divorcian, y Alice quiere quemar digitalmente la fotografía de su boda, puede eliminarla y liberar sus 13 ALGOs para otros usos.

¿Qué más podemos hacer con las “boxes”?

Casi cualquier cosa. Las “boxes” presentan un paradigma tan flexible y poderoso que es probable que la mayoría de los contratos inteligentes las utilicen en el futuro.

Un ejemplo convincente del uso de “boxes” es la protección de reproducción para bridges. Los bridges criptográficos son una tecnología poderosa que permite transferir valor a través de la red blockchain, lo que hace que el mundo criptográfico realmente no tenga fronteras. Sin embargo, debido a la complejidad de tratar con múltiples blockchains, los bridges deben diseñarse cuidadosamente para que no estén sujetos a piratería. Un tipo de ataque al bridge es un “ataque de repetición”.

Un ataque de repetición es cuando un atacante envía la misma transacción dos veces. El mensaje duplicado parece correcto, pero solo uno de ellos debería pasar.

En un alto nivel, un bridge bloquea un activo en la blockchain de envío y acuña un activo correspondiente en la de recepción. Un ataque de repetición exitoso en un bridge, duplicaría los activos de acuñación en la red receptora para un único activo bloqueado en la cadena de bloques emisora.

Para protegerse contra los ataques de repetición, el contrato inteligente de acuñación en la blockchain receptora debe rastrear cada transacción que ya ha procesado y verificar cualquier transacción nueva con todas las transacciones anteriores, asegurándose de que no sea un duplicado. Recordar lo que ya se ha ejecutado derrota el ataque.

El seguimiento de cada transacción requiere un almacenamiento proporcional al número de transacciones que procesa un bridge. Esto puede convertirse en un número enorme si el bridge tiene éxito. Las “boxes” se adaptan perfectamente a necesidades de almacenamiento ilimitadas como esta: una box por transacción.

Otro caso de uso de interés para las boxes es un sistema de gobierno, como está previsto que adopte xBacked.

Digamos que un protocolo está controlado por un conjunto de gobernadores que pueden proponer actualizaciones para que sean votadas por todos los gobernadores. Puede haber muchos gobernadores, y un gobernador individual puede hacer varias propuestas, por lo que puede haber muchas propuestas activas en un momento dado.

Los datos en esta situación no se asignan naturalmente al estado local o global. No sería posible almacenar todas las propuestas en el estado global de una aplicación, ya que tiene un tamaño limitado. No sería posible tampoco almacenar cada propuesta en el estado local del proponente, ya que un proponente puede hacer varias propuestas que podrían exceder el tamaño de su estado local.

Con las boxes, la solución parece bastante simple: una box por propuesta, por ejemplo, “Propuesta de hacer el bien de Anne”. La box contiene el texto de la propuesta y las opciones de voto.

Pero, ¿dónde deben almacenarse los votos en sí? El contrato debe rastrear quién ya ha votado para asegurarse de que no vuelvan a votar. Por lo tanto, puede crear una box por voto, por ejemplo, «Voto de Alicia para la propuesta de Ana». Esta sería una box muy pequeña, y habría muchas de ellas (tantos como votos).

Sin boxes, los desarrolladores se habrían visto obligados a hacer compromisos como permitir solo un voto abierto a la vez, de modo que la información se ajuste al estado global del contrato. Estas limitaciones ya no existen, y las posibilidades técnicas que abren las boxes están estimulando nuevas ideas en todo el ecosistema.

Las boxes no solo fortalecen las dApps existentes al simplificar su arquitectura, sino que también permiten nuevos casos de uso y operaciones seguras de interoperabilidad. Las boxes son un cambio de juego para Algorand. La cantidad de proyectos que han estado llamando sin descanso a mi puerta para preguntarme cuándo se lanzarán las boxes, es solo el último indicador.

El AVM se creó desde el principio teniendo en cuenta el desarrollo de contratos inteligentes seguros y de alto rendimiento: intercambios atómicos nativos, activos, contratos inteligentes y, ahora, almacenamiento ilimitado de contratos inteligentes. AVM se ha convertido en una de las plataformas de contratos inteligentes más potentes y versátiles del sector.

Para obtener todos los detalles técnicos sobre las boxes y cómo usarlas, consulta el artículo del portal para desarrolladores: https://developer.algorand.org/articles/smart-contract-storage-boxes/


Este artículo ha sido escrito originalmente por Ana Kenyon, publicado en https://medium.com y traducido por AlgoLatam.

Original Article: https://medium.com/algorand/what-are-you-putting-in-your-box-fea2f3f4520b

Deja una respuesta

Tu dirección de correo electrónico no será publicada.