Novo armazenamento de contrato inteligente ilimitado da Algorand

Dec 03 2022
Como você vai usar caixas na Algorand?
Os desenvolvedores com quem trabalho às vezes dizem “tudo é possível de construir”. Este é um aspecto empolgante do desenvolvimento de software e uma das grandes razões pelas quais as pessoas se apaixonam por programação - permite que você construa tudo o que imaginar.

Os desenvolvedores com quem trabalho às vezes dizem “ tudo é possível de construir”. Este é um aspecto empolgante do desenvolvimento de software e uma das grandes razões pelas quais as pessoas se apaixonam por programação - permite que você construa tudo o que imaginar.

Infelizmente, os engenheiros de blockchain são mais propensos a dizer “tudo é possível de construir…

…mas é difícil.
…mas é arriscado.
…mas vai ser caro administrar.”

Contratos inteligentes em blockchain são uma tecnologia nascente. Eles cumprem seu objetivo principal de permitir que as pessoas criem aplicativos distribuídos, mas continua sendo um caminho desafiador para o verdadeiro sucesso.

Por esses motivos, muitos aplicativos supostamente descentralizados em blockchain dependem, infelizmente, de serviços fora da cadeia para parte de sua implementação. O nascimento da “web 2.5” em vez da “web 3.0”, à medida que o mundo avança rumo à verdadeira descentralização.

Na Algorand, esse desafio é o mais importante, e todas as atualizações da Algorand Virtual Machine (AVM) atendem aos desenvolvedores que se baseiam em nosso blockchain. Nosso objetivo é facilitar o desenvolvimento de aplicativos seguros, de alto desempenho e totalmente descentralizados. Ponto final.

A versão 8 do AVM

Nosso último lançamento do AVM não é exceção. Introduzimos uma nova forma flexível de armazenamento para Smart Contracts: caixas. Um Contrato Inteligente pode criar quantas caixas precisar, do tamanho que precisar (até 32K), quando precisar.

Por exemplo, digamos que Alice queira oferecer um serviço oracle para preços de token. Ela cria um contrato inteligente que os usuários podem chamar para obter o preço atual de um token.

Dado o conjunto cada vez maior de tokens disponíveis na Algorand, sejam nativos ou em ponte, o contrato de oráculo de Alice precisará de uma quantidade crescente de armazenamento persistente ao longo do tempo.

As caixas são a solução perfeita: o contrato inteligente de Alice aloca uma caixa por token que rastreia.

Quando CoolCoin é criado, uma nova caixa “CoolCoin” pode ser criada pelo contrato oracle. Esta caixa armazenará o preço do CoolCoin. Esse valor pode ser lido e atualizado pelo contrato do oráculo de Alice posteriormente. Os usuários que desejam saber o preço do CoolCoin ligam para o contrato oracle para obter o preço.

Espero que isso pareça tão simples quanto é. As caixas oferecem uma maneira direta de implementar um mapa para armazenar todos os seus pares chave-valor.

Antes das caixas, os desenvolvedores do Smart Contract que precisavam de mais armazenamento tinham que recorrer a hacks como criar aplicativos ou contas fictícios apenas para poder usar seu estado, gerenciando cuidadosamente as permissões para evitar a introdução de vulnerabilidades no processo.

Quanto custam as caixas?

Obviamente, o armazenamento digital tem um custo e, no blockchain, é mais caro devido à sua natureza distribuída (e duplicativa).

Um exemplo ilustrativo simples: Alice e Bob acabaram de se casar e querem armazenar uma pequena foto de seu casamento na cadeia. Eles podem criar um contrato inteligente de gerenciamento de armazenamento que lhes permite criar uma caixa e armazenar a foto nela. Eles podem redigitar o contrato inteligente para uma de suas contas para que somente eles possam controlar a caixa.

Se eles armazenarem a foto de tamanho máximo que puderem (32K), isso custará cerca de 13 Algol, cerca de US$ 3–4 no momento da redação.

O armazenamento da Algorand é pago por um aumento no requisito de saldo mínimo de uma conta . Em outras palavras, Alice precisa manter pelo menos 13 Algol em sua conta de contrato para continuar armazenando a imagem lá. Se no futuro Alice e Bob se divorciarem e Alice quiser gravar digitalmente a fotografia do casamento, ela pode excluí-la e liberar seu 13 Algol para outros usos.

O que mais podemos fazer com caixas?

Apenas sobre qualquer coisa. As caixas apresentam um paradigma tão flexível e poderoso que é provável que a maioria dos contratos inteligentes use caixas daqui para frente.

Um exemplo convincente de uso de caixa é a proteção de replay para pontes. As pontes criptográficas são uma tecnologia poderosa que permite que o valor seja transferido entre blockchains - tornando o mundo criptográfico verdadeiramente sem fronteiras. No entanto, devido à complexidade de lidar com várias cadeias, as pontes devem ser projetadas com cuidado para não ficarem sujeitas a hacks. Um tipo de hack de ponte é um ataque de repetição .

Um ataque de repetição ocorre quando um invasor envia a mesma transação duas vezes. A mensagem duplicada parece correta, mas apenas uma delas deve passar.

Em um nível alto, uma ponte bloqueia um ativo na blockchain de envio e gera um ativo correspondente na blockchain de recebimento. Um ataque de repetição bem-sucedido em uma ponte duplicaria os ativos de cunhagem no blockchain de recebimento para um único ativo bloqueado no blockchain de envio.

Para se proteger contra ataques de repetição, o Smart Contract de cunhagem no blockchain receptor precisa rastrear todas as transações que já processou e verificar qualquer nova transação em relação a todas as transações antigas para garantir que não seja uma duplicata. Lembrar o que já foi executado anula o ataque.

Rastrear cada transação requer armazenamento proporcional ao número de transações processadas por uma ponte. Isso pode se tornar um número enorme se a ponte for bem-sucedida. As caixas são perfeitamente adequadas para necessidades de armazenamento ilimitadas como esta: Uma caixa por transação.

Outro caso de uso de interesse para caixas é um sistema de governança, conforme planejado para ser adotado pelo xBacked .

Digamos que um protocolo seja controlado por um conjunto de governadores que podem propor atualizações a serem votadas por todos os governadores. Pode haver muitos governadores e um governador individual pode fazer várias propostas, portanto, pode haver muitas propostas ativas em um determinado momento.

Os dados nesta situação não são mapeados naturalmente para o estado local ou global. Não seria possível armazenar todas as propostas no estado global de um aplicativo, pois ele é de tamanho limitado. Não seria possível armazenar cada proposta no estado local do proponente, pois um proponente pode fazer várias propostas que podem exceder o tamanho de seu estado local.

Com as caixas, a solução parece bastante simples: uma caixa por proposta, por exemplo, “Anne's Do Good Proposal”. A caixa contém o palavreado da proposta e as opções de votação.

Mas onde os próprios votos devem ser armazenados? O contrato precisa rastrear quem já votou para garantir que não vote novamente. Ele pode, assim, criar uma caixa por voto, por exemplo, “voto de Alice para a proposta de boas ações de Anne”. Esta seria uma caixa muito pequena, e haveria muitos deles (tantos quantos fossem os votos).

Sem as caixas, os desenvolvedores seriam forçados a fazer concessões, como permitir apenas um voto aberto por vez — de modo que as informações se encaixassem no estado global do contrato. Essas restrições não existem mais e as possibilidades técnicas abertas pelas caixas estão estimulando novas ideias em todo o ecossistema.

As caixas não apenas fortalecem os dapps existentes simplificando sua arquitetura, mas também permitem novos casos de uso e operações seguras de interoperabilidade. As caixas são um divisor de águas para a Algorand. O número de projetos que batem incansavelmente na minha porta para me perguntar quando as caixas estão sendo lançadas é apenas o indicador mais recente.

O AVM foi construído desde o início com o desenvolvimento seguro e de alto desempenho do Smart Contract em mente: swaps atômicos nativos, ativos, contratos inteligentes - e agora armazenamento ilimitado do Smart Contract. O AVM se tornou uma das plataformas de Contrato Inteligente mais poderosas e versáteis do mercado.

Para todos os detalhes técnicos sobre as caixas e como usá-las, consulte o artigo do portal do desenvolvedor:https://developer.algorand.org/articles/smart-contract-storage-boxes/