WEB3DEV

Cover image for Contratos inteligentes: imutabilidade e flexibilidade
Valter Lobo
Valter Lobo

Posted on

Contratos inteligentes: imutabilidade e flexibilidade

Os dados de um contrato inteligente podem ser alterados, mas uma vez que o código é implantado em um endereço na blockchain, torna-se imutável. Contudo, existem contratos inteligentes atualizáveis que permitem modificações no código sem a necessidade de descartá-los e reimplantá-los na blockchain.

A imutabilidade dos contratos inteligentes é atribuída ao armazenamento na blockchain, uma tecnologia de registro distribuído que garante a segurança e inalterabilidade dos dados. O código é criptografado e armazenado na blockchain, tornando-o ilegível e imutável sem a chave privada. Essa característica assegura a aplicação justa e transparente das regras contratuais, eliminando a necessidade de intermediários para garantir o cumprimento do acordo.

Um exemplo prático da imutabilidade em contratos inteligentes é observado em operações de swap em uma exchange descentralizada (DEX). Nesse ambiente, os usuários podem trocar tokens sem a intervenção de intermediários, graças à imutabilidade do contrato inteligente que governa a troca.

DEPLOYMENT OF A SMART CONTRACT

Os contratos inteligentes são imutáveis, mas existem técnicas para modificar o comportamento de alguns métodos. Uma dessas técnicas é o uso de contratos inteligentes atualizáveis.

Os contratos inteligentes atualizáveis são construídos utilizando técnicas como proxies e padrões específicos de desenvolvimento, onde a lógica do contrato é armazenada na blockchain, e a implementação é mantida em um local separado. Ao atualizar o código, a nova implementação é armazenada separadamente, e o proxy é atualizado para apontar para a nova implementação, mantendo o estado do contrato vinculado ao endereço original, mesmo com alterações na lógica.

proxy smart contract

Embora ofereçam benefícios, como a capacidade de corrigir bugs e melhorar o contrato sem migrar usuários, os contratos inteligentes atualizáveis também enfrentam desafios, incluindo a complexidade de desenvolvimento e o risco de bugs. Além disso, a dependência do mecanismo de atualização pode centralizar o controle e criar vulnerabilidades se implementado de maneira inadequada, resultando na perda da imutabilidade total, o que pode suscitar preocupações sobre confiança e transparência.

Oldest comments (0)