O que é uma máquina de estados em cripto?
Uma máquina de estados é um sistema que passa de um estado válido para outro estado válido quando recebe uma entrada e aplica um conjunto fixo de regras.Em criptomoedas, uma máquina de estados é o modelo central que explica como uma blockchain atualiza saldos, contas, contratos inteligentes, UTXOs, registros de validadores e outros dados on-chain.O estado é a condição atual da blockchain.A entrada normalmente é uma transação, bloco, mensagem ou chamada de contrato inteligente.A função de transição é a lógica do protocolo que decide se a entrada é válida e como o estado deve mudar.Se a mesma entrada válida for aplicada ao mesmo estado inicial, todos os nós honestos deverão chegar ao mesmo estado final.Esse comportamento determinístico permite que milhares de computadores independentes concordem com uma blockchain compartilhada sem confiar em um banco de dados central.O whitepaper do Ethereum descreve o estado do Ethereum como sendo composto por contas e descreve transições de estado como transferências de valor e informação entre contas.
Em termos simples, uma máquina de estados de blockchain é o mecanismo de regras que transforma dados antigos da blockchain mais novas transações em um novo estado da blockchain.Por que as máquinas de estados são importantes na blockchain
As máquinas de estados são importantes porque as blockchains são sistemas compartilhados que precisam produzir o mesmo resultado em muitos computadores diferentes.Uma blockchain não pode depender de um servidor de uma única empresa para dizer qual é o saldo ou valor de contrato correto.Em vez disso, a rede precisa de regras que cada nó possa executar de forma independente.Quando um bloco é proposto, os nós verificam as transações nesse bloco e aplicam as regras do protocolo.Se as transações do bloco levarem a um novo estado válido, o bloco poderá ser aceito.Se as transações violarem as regras, os nós honestos rejeitarão o bloco.É assim que as blockchains preservam a integridade mesmo quando muitos participantes não se conhecem nem confiam uns nos outros.Uma máquina de estados também ajuda os usuários a entender por que apenas o histórico da blockchain não é suficiente.As transações registram o que os usuários tentaram fazer, mas a máquina de estados decide o que essas transações realmente alteraram.O resultado final é um novo estado que todos os nós honestos podem reproduzir.Estado, entrada e função de transição
Toda máquina de estados de blockchain tem três partes básicas: estado, entrada e função de transição.O estado é o conjunto atual de dados que a blockchain precisa para processar novas ações.Em uma blockchain baseada em contas, o estado pode incluir saldos de contas, nonces, código de contratos e armazenamento de contratos.Em uma blockchain baseada em UTXO, o estado pode incluir o conjunto de saídas de transações não gastas que ainda podem ser utilizadas.A entrada é a nova ação enviada ao sistema.Na maioria das redes cripto, a entrada mais comum é uma transação assinada.A função de transição é o conjunto de regras que verifica a entrada e atualiza o estado.Por exemplo, uma transação pode ser válida somente se a assinatura estiver correta, o remetente tiver saldo suficiente, o nonce estiver correto e a taxa for paga.Se todas as regras forem atendidas, a máquina de estados aplica a transação e cria um novo estado.Se qualquer regra obrigatória falhar, a transição de estado será rejeitada ou a transação falhará de acordo com as regras do protocolo.Blockchain como máquina de estados replicada
Uma blockchain é frequentemente descrita como uma máquina de estados replicada porque muitos nós mantêm cópias do mesmo estado e aplicam as mesmas transações na mesma ordem.Replicação significa que muitos computadores mantêm e atualizam o sistema, em vez de um servidor central.Máquina de estados significa que esses computadores seguem as mesmas regras determinísticas de transição.A ordem das transações é importante porque aplicar as mesmas transações em uma ordem diferente pode produzir um resultado diferente.Os mecanismos de consenso ajudam a rede a concordar com a ordem de blocos e transações.Depois que a ordem é acordada, cada nó pode executar as transações e calcular o novo estado.A documentação do CometBFT descreve o CometBFT como um software que realiza replicação de máquina de estados tolerante a falhas bizantinas para máquinas de estados finitas determinísticas.
Essa descrição captura a ideia geral por trás de muitos sistemas de blockchain.O consenso concorda com as entradas ordenadas, enquanto a máquina de estados aplica essas entradas para produzir o próximo estado.Uma blockchain funciona apenas quando ambas as partes estão corretas.Determinismo em máquinas de estados cripto
Determinismo significa que a mesma entrada aplicada ao mesmo estado sempre produz a mesma saída.Máquinas de estados cripto devem ser determinísticas porque nós independentes precisam chegar ao mesmo resultado.Se um nó calcular um resultado diferente de outro nó honesto, a rede poderá se dividir ou rejeitar blocos.Por isso, contratos inteligentes não podem depender de números aleatórios comuns de um computador local.Também é por isso que as blockchains definem regras exatas para contabilização de gas, assinaturas, aritmética, atualizações de armazenamento e ordenação de transações.Mesmo pequenas diferenças de execução podem ser perigosas se alterarem a raiz de estado final ou o resultado do livro-razão.O determinismo é especialmente importante para plataformas de contratos inteligentes porque o código dos contratos pode lidar com grandes quantidades de valor.Uma função de contrato deve produzir o mesmo resultado para cada validador que a execute sob as mesmas condições.Isso torna a programação em blockchain mais rigorosa do que a programação web comum.Uma máquina de estados só é confiável quando suas regras de transição são previsíveis e reproduzíveis.Ethereum como máquina de estados
O Ethereum é um dos exemplos mais claros de uma máquina de estados de blockchain.O whitepaper do Ethereum descreve o Ethereum como tendo um estado composto por contas, em que cada conta contém um nonce, saldo, código de contrato e armazenamento.As transações acionam transições de estado ao mover valor, criar contratos, chamar contratos ou alterar o armazenamento de contratos.A Ethereum Virtual Machine, ou EVM, é o ambiente de execução que processa código de contratos inteligentes.A documentação oficial da EVM do Ethereum descreve a EVM como um ambiente virtual descentralizado que executa código de maneira consistente e segura em todos os nós do Ethereum.
Isso significa que a EVM é parte do mecanismo de transição de estado do Ethereum.Quando uma transação chama um contrato inteligente, a EVM executa as instruções do contrato e calcula as alterações de estado resultantes.Essas alterações podem incluir atualizações de saldos, gravações de armazenamento, logs, criação de contratos e consumo de gas.Se todos os nós executarem a mesma transação a partir do mesmo estado inicial, todos os nós honestos deverão chegar ao mesmo estado final.É por isso que o Ethereum pode oferecer suporte a aplicativos programáveis sem depender de um servidor central de aplicativos.O estado global do Ethereum
O estado global do Ethereum é o estado atual de todas as contas do Ethereum.Ele inclui contas externamente controladas por chaves privadas e contas de contratos controladas por código.A documentação da Merkle Patricia Trie do Ethereum explica que o Ethereum tem uma trie de estado global atualizada sempre que um cliente processa um bloco.
Essa trie de estado produz uma raiz de estado que representa um compromisso com o estado global atual.A raiz de estado é armazenada no cabeçalho do bloco.Se um saldo de conta ou valor de armazenamento de contrato mudar, a raiz de estado resultante deverá mudar.Isso fornece ao Ethereum uma impressão digital criptográfica compacta de todo o estado após cada bloco.A máquina de estados atualiza o estado global, e a raiz de estado permite que os nós verifiquem se concordam com o resultado.Esse modelo conecta execução, armazenamento e consenso.Sem um estado global compartilhado, os contratos inteligentes do Ethereum não teriam um ambiente comum do qual ler e no qual gravar.Bitcoin como máquina de estados
O Bitcoin também é uma máquina de estados, mas usa um modelo de estado diferente do Ethereum.O Bitcoin não usa um sistema global de contas como o Ethereum.Em vez disso, o Bitcoin usa o modelo UTXO, no qual o estado atual que pode ser gasto é o conjunto de saídas de transações não gastas.O guia do desenvolvedor do Bitcoin sobre transações explica que as transações gastam saídas de transações não gastas e criam novas saídas.
Uma transação de Bitcoin só é válida se gastar UTXOs existentes que ainda não foram gastos.Quando uma transação válida é aceita, os UTXOs consumidos são removidos do conjunto disponível para gasto.As novas saídas criadas pela transação tornam-se novos UTXOs.Isso significa que a função de transição de estado do Bitcoin atualiza o conjunto de UTXOs.A máquina de estados do Bitcoin é menos geral do que o modelo de contratos inteligentes do Ethereum, mas ainda é um sistema determinístico para atualizar o estado de propriedade.A ideia central é a mesma: transações válidas levam o sistema de um estado válido ao próximo.Modelo de contas vs. máquina de estados UTXO
O modelo de contas e o modelo UTXO são duas formas diferentes de projetar uma máquina de estados de blockchain.No modelo de contas, o estado contém contas e saldos.Uma transação de um usuário para outro geralmente reduz o saldo do remetente e aumenta o saldo do destinatário.Plataformas de contratos inteligentes frequentemente usam modelos baseados em contas porque os contratos precisam de armazenamento persistente e atualizações diretas de estado.No modelo UTXO, o estado contém saídas não gastas, em vez de saldos de contas.Uma transação consome saídas antigas e cria novas saídas.As carteiras podem exibir um saldo simples, mas esse saldo geralmente é calculado a partir das saídas disponíveis para gasto do usuário.O modelo de contas pode parecer mais intuitivo para desenvolvedores de aplicativos.O modelo UTXO pode tornar algumas formas de validação paralela e rastreamento de coins mais naturais.Ambos os modelos são máquinas de estados porque ambos definem estados válidos e transições de estado válidas.Contratos inteligentes e máquinas de estados
Contratos inteligentes são programas executados dentro de uma máquina de estados de blockchain.Um contrato inteligente pode armazenar dados, aplicar regras, receber ativos, enviar ativos e interagir com outros contratos.Quando um usuário chama um contrato inteligente, a blockchain não apenas registra uma mensagem.A rede executa o código do contrato e atualiza o estado de acordo com o resultado.Por exemplo, um contrato de transferência de tokens pode reduzir o saldo de tokens de um usuário e aumentar o de outro usuário dentro do armazenamento do contrato.Um contrato de empréstimo pode atualizar saldos de garantia, saldos de dívida, índices de juros e estados de liquidação.Um contrato de exchange descentralizada pode atualizar reservas de pool de liquidez e posições dos usuários.Todas essas ações são transições de estado.Como os contratos inteligentes podem manter valor real, sua lógica de transição de estado deve ser determinística, segura e cuidadosamente testada.Um erro nas regras de transição de estado de um contrato pode resultar em perda de fundos ou comportamento incorreto do aplicativo.Máquina de estados e consenso
Uma máquina de estados não é o mesmo que um mecanismo de consenso.A máquina de estados define como o estado muda quando as transações são aplicadas.O consenso define como a rede concorda sobre quais transações e blocos devem ser aplicados.Uma blockchain precisa de ambos.Se uma rede tiver uma máquina de estados válida, mas não tiver consenso, os nós poderão aplicar ordens diferentes de transações e chegar a estados diferentes.Se uma rede tiver consenso, mas uma máquina de estados defeituosa, os nós poderão concordar com blocos que produzem resultados inseguros ou incorretos.O consenso escolhe o fluxo de entradas ordenado.A máquina de estados executa esse fluxo de entradas.O estado final estará correto somente quando as regras de ordenação e execução estiverem corretas.Essa distinção ajuda os usuários a entender por que as blockchains têm tanto regras de validadores quanto regras de execução.Função de transição de estado
A função de transição de estado é a regra formal que mapeia um estado antigo e uma entrada para um novo estado.Em notação simples, ela pode ser descrita como o novo estado sendo igual à função de transição aplicada ao estado antigo e à transação.Em uma rede cripto, essa função verifica assinaturas, saldos, nonces, taxas, limites de gas, código de contratos e regras específicas do protocolo.Se a entrada for válida, a função produz um novo estado válido.Se a entrada for inválida, a função a rejeita ou marca a execução como falha de acordo com as regras da rede.A função de transição de estado do Ethereum pode incluir execução da EVM, contabilização de gas, atualizações de armazenamento e logs de eventos.A função de transição de estado do Bitcoin verifica se as entradas gastam UTXOs válidos e se as saídas seguem as regras de script e valor.Outras blockchains podem definir transições de estado por meio de módulos, pallets, objetos Move, recursos ou lógica específica de aplicativos.A função de transição é o núcleo da máquina de estados.Ela é o motivo pelo qual uma blockchain pode avançar sem que operadores humanos atualizem manualmente os saldos.Replicação de máquina de estados
Replicação de máquina de estados é o processo de executar a mesma máquina de estados determinística em várias máquinas para que permaneçam sincronizadas.Em sistemas de blockchain, isso significa que muitos nós processam as mesmas transações ordenadas e calculam os mesmos resultados.Esse modelo é útil porque oferece tolerância a falhas.Se um nó ficar offline, outros nós ainda mantêm e atualizam o estado.Se um nó mentir, outros nós poderão rejeitar resultados inválidos.Se um usuário quiser verificar o sistema, poderá executar um nó e conferir pessoalmente as transições de estado.O CometBFT é um exemplo sólido dessa ideia porque sua documentação descreve explicitamente a replicação de máquina de estados BFT para máquinas de estados finitas determinísticas.Muitos modelos de appchains e blockchains modulares separam o consenso da lógica de aplicativos usando essa ideia.A camada de consenso ordena as transações, enquanto a máquina de estados do aplicativo define o significado dessas transações.Essa separação permite que os desenvolvedores criem aplicativos de blockchain personalizados enquanto dependem de um mecanismo de consenso para replicação.Máquinas de estados específicas de aplicativos
Uma blockchain específica de aplicativo é uma blockchain criada para um aplicativo ou caso de uso específico.Nesse modelo, a máquina de estados da blockchain pode ser personalizada em torno das regras do aplicativo.Uma cadeia de pagamentos pode definir saldos e transferências simples.Uma cadeia de exchange descentralizada pode definir livros de ordens, pools de liquidez e regras de correspondência.Uma cadeia de jogos pode definir jogadores, itens, partidas e recompensas.Uma cadeia de governança pode definir propostas, votos, delegações e regras de tesouraria.Isso é diferente de uma plataforma de contratos inteligentes de propósito geral, em que muitos aplicativos compartilham um ambiente de execução.Máquinas de estados específicas de aplicativos podem ser mais eficientes porque não precisam oferecer suporte a todos os casos de uso possíveis.Elas também podem ser mais fáceis de analisar porque suas regras são focadas.O trade-off é que podem ter menos composabilidade geral do que uma plataforma compartilhada de contratos inteligentes.Máquina de estados e máquinas virtuais
Uma máquina virtual de blockchain é o ambiente de execução que executa código dentro da máquina de estados.A EVM é o exemplo mais conhecido.Outros ecossistemas de blockchain usam máquinas virtuais ou ambientes de execução diferentes.Uma máquina virtual define como instruções são interpretadas, como a memória funciona, como o armazenamento é acessado, como o gas é cobrado e como erros são tratados.A máquina de estados usa a máquina virtual para processar transações programáveis.Por exemplo, quando o Ethereum executa uma chamada de contrato inteligente, a EVM executa o bytecode e produz as alterações de estado.A máquina virtual deve ser determinística para que todos os nós calculem o mesmo resultado.Uma máquina virtual não é toda a blockchain, mas é uma parte essencial da camada de execução.A máquina de estados da blockchain inclui a máquina virtual, regras de contas, regras de taxas, regras de transações e regras de atualização de estado.Compreender essa relação ajuda desenvolvedores a entender por que ambientes de execução são críticos para o consenso.Máquina de estados e gas
Gas é o sistema de precificação usado por muitas blockchains de contratos inteligentes para limitar e cobrar pela execução.A documentação de gas do Ethereum explica que gas se refere à unidade que mede a quantidade de esforço computacional necessário para executar operações no Ethereum.
O gas faz parte da máquina de estados porque a execução de transações consome recursos.Sem limites de gas, uma transação poderia ser executada indefinidamente ou consumir computação demais.O gas torna a computação mensurável e impede que usuários obriguem todos os nós a realizar trabalho ilimitado gratuitamente.O gas também afeta transições de estado porque uma transação pode falhar se ficar sem gas.Mesmo quando a execução falha, as taxas ainda podem ser pagas porque os nós gastaram recursos tentando executar a transação.Desenvolvedores de contratos inteligentes devem entender o gas porque transições de estado ineficientes podem ser caras para os usuários.Os usuários devem entender o gas porque as taxas de transação fazem parte do custo de alterar o estado da blockchain.O gas mostra que as máquinas de estados devem gerenciar tanto a correção quanto o uso de recursos.Máquina de estados e raízes de estado
Muitas blockchains usam compromissos criptográficos para resumir o estado após cada bloco.No Ethereum, a raiz de estado representa um compromisso com o estado global após a execução das transações.Uma raiz de estado não é o próprio estado.Ela é um compromisso compacto baseado em hash com o estado.Se os nós processarem o mesmo bloco e calcularem a mesma raiz de estado, terão evidências de que concordam com o estado resultante.Se um nó calcular uma raiz de estado diferente, há algo errado com o bloco, a execução ou a implementação do cliente.As raízes de estado também permitem provas de que valores específicos existiam em um estado comprometido.Isso é importante para clientes leves, bridges, auditores e sistemas cross-chain.Uma máquina de estados atualiza dados, e a raiz de estado ajuda a provar quais são esses dados atualizados.É assim que as blockchains conectam resultados de execução à verificação criptográfica.Máquina de estados e nós
Os nós são os computadores reais que executam o software da blockchain e mantêm a máquina de estados.A introdução técnica do Ethereum explica que os nós armazenam o estado da EVM e se comunicam entre si para propagar alterações de estado.
Um nó completo verifica blocos executando transações e conferindo se o estado resultante é válido.Um validador ou produtor de blocos pode propor novos blocos, mas outros nós ainda precisam verificá-los.Essa verificação independente é um dos principais motivos pelos quais as blockchains podem minimizar a necessidade de confiança.Usuários que executam seus próprios nós não precisam confiar em um servidor de terceiros para conhecer o estado atual.Eles podem calcular o estado por conta própria a partir dos blocos aceitos.No entanto, executar um nó exige hardware, largura de banda, armazenamento e manutenção.O crescimento do estado pode tornar os nós mais difíceis de operar com o tempo.Por isso, o design da máquina de estados afeta a descentralização, além da execução.Máquina de estados e finalidade
Finalidade significa que uma transição de estado é considerada liquidada e muito difícil ou impossível de reverter sob os pressupostos do protocolo.Antes da finalidade, uma transação pode estar incluída em um bloco, mas ainda enfrentar risco de reorganização.Após a finalidade, os usuários podem ter maior confiança de que a transição de estado permanecerá parte da cadeia canônica.Blockchains diferentes definem finalidade de formas diferentes.Algumas cadeias têm finalidade probabilística, em que a confiança aumenta à medida que mais blocos são adicionados.Algumas cadeias têm finalidade econômica ou no estilo BFT, em que validadores se comprometem com blocos sob regras de slashing ou consenso.A finalidade é importante porque uma máquina de estados pode temporariamente ter históricos possíveis concorrentes durante forks.O consenso resolve qual histórico se torna canônico.Os usuários geralmente se importam não apenas com o fato de uma transição de estado ter ocorrido, mas também com ela permanecer aceita.Uma máquina de estados de blockchain se torna útil para finanças somente quando os usuários podem confiar que as mudanças de estado foram liquidadas.Máquina de estados e forks
Um fork pode ocorrer quando diferentes nós seguem temporária ou permanentemente históricos de blocos diferentes.Se dois históricos incluírem transações diferentes, poderão produzir estados diferentes.As regras de consenso decidem qual cadeia é canônica de acordo com o protocolo.Forks temporários podem ocorrer naturalmente em redes descentralizadas.Forks permanentes podem ocorrer quando comunidades ou clientes de software seguem intencionalmente regras de protocolo diferentes.Um fork de máquina de estados é sério porque pode criar duas versões separadas de saldos, contratos e histórico do livro-razão.Se duas redes compartilham o histórico até um ponto de fork, elas compartilham o mesmo estado inicial nesse ponto.Após o fork, ordens de transação diferentes ou regras diferentes podem criar estados diferentes.Por isso, atualizações de protocolo devem ser coordenadas cuidadosamente.Todos os participantes honestos que desejam permanecer na mesma rede devem executar regras compatíveis de transição de estado.Máquina de estados e erros em contratos inteligentes
Erros em contratos inteligentes são perigosos porque contratos fazem parte da máquina de estados da blockchain.Um erro pode definir uma transição de estado não intencional.Por exemplo, um contrato pode permitir que um atacante saque mais fundos do que o previsto.Um contrato pode atualizar saldos na ordem errada.Um contrato pode não verificar a autorização antes de alterar o estado.Um contrato pode permitir reentrância, erros aritméticos ou comportamento de atualização inseguro.Depois que uma transação é aceita, a alteração de estado resultante pode ser difícil ou impossível de reverter sem coordenação social extraordinária.Por isso, auditoria, testes, verificação formal e design cuidadoso de contratos inteligentes são importantes.A máquina de estados da blockchain executará fielmente uma lógica de contrato válida, mesmo que essa lógica seja economicamente prejudicial.Portanto, a correção do código faz parte da segurança do estado.Máquina de estados e oráculos
Oráculos fornecem dados externos a aplicativos de blockchain.Eles são importantes porque uma máquina de estados de blockchain não consegue conhecer diretamente fatos off-chain por conta própria.Por exemplo, um contrato de empréstimo pode precisar do preço de um token.Um mercado de previsão pode precisar do resultado de um evento.Um sistema de ativos sintéticos pode precisar de um índice de referência.O oráculo envia dados que se tornam uma entrada para a máquina de estados.Se os dados do oráculo estiverem errados, atrasados, manipulados ou indisponíveis, a transição de estado resultante poderá estar errada.Isso significa que o design de oráculos é essencial para aplicativos que dependem de informações do mundo real.Uma máquina de estados determinística só pode processar deterministicamente os dados que recebe.Ela não pode garantir que dados off-chain sejam verdadeiros, a menos que o sistema de oráculo seja confiável e seguro.Máquina de estados e crescimento excessivo de estado
O crescimento excessivo de estado ocorre quando o estado ativo da blockchain cresce demais.Cada conta, slot de armazenamento, contrato, ordem, posição e entrada de dados pode aumentar o estado que os nós precisam manter.Um estado maior pode aumentar os requisitos de armazenamento dos nós, o tempo de sincronização, a carga do banco de dados e o custo de hardware.Se menos pessoas puderem executar nós, a descentralização poderá ser prejudicada.Por isso, muitas blockchains cobram taxas ou depósitos por armazenamento persistente.O crescimento excessivo de estado é um problema de máquina de estados porque cada transição de estado pode adicionar, modificar ou remover dados.Uma máquina de estados bem projetada deve desincentivar o crescimento inútil de estado, enquanto continua oferecendo suporte a aplicativos úteis.Taxas de gas, aluguel de armazenamento, expiração de estado, poda e melhorias em compromissos de estado estão todos relacionados a esse problema.Quanto mais poderosa se torna uma máquina de estados de blockchain, mais cuidadosamente ela deve gerenciar o estado de longo prazo.Escalabilidade não se refere apenas a transações por segundo, mas também ao crescimento sustentável do estado.Máquina de estados e redes de Layer 2
Redes de Layer 2 também usam máquinas de estados.Um rollup, por exemplo, tem seu próprio estado, que muda à medida que os usuários enviam transações.O rollup pode publicar dados de transações, raízes de estado, provas de validade ou dados de provas de fraude em uma camada base.A camada base não necessariamente executa diretamente cada transação de Layer 2.Em vez disso, ela ajuda a liquidar ou verificar o estado da Layer 2 de acordo com o modelo do rollup.Isso significa que uma Layer 2 pode ser entendida como outra máquina de estados conectada a uma máquina de estados de Layer 1.O design entre camadas é complexo porque os usuários precisam ter confiança de que as transições de estado da Layer 2 são válidas e podem ser sacadas.Disponibilidade de dados, sistemas de prova, bridges, sequenciadores e regras de liquidação são todos importantes.A escalabilidade de Layer 2 não elimina máquinas de estados.Ela adiciona máquinas de estados mais especializadas, que dependem da segurança da camada base de formas diferentes.Máquina de estados e bridges
Bridges conectam máquinas de estados entre cadeias ou camadas.Uma bridge pode precisar provar que um evento, mensagem ou transição de estado ocorreu em uma cadeia antes de liberar ou emitir ativos em outra.Isso é difícil porque cada blockchain tem seu próprio consenso, regras de finalidade, modelo de estado e sistema de prova.Uma bridge que interpreta incorretamente o estado pode se tornar insegura.Por exemplo, uma bridge pode aceitar uma mensagem antes de sua finalidade.Ela pode depender de um conjunto fraco de validadores.Ela pode não verificar a raiz de estado ou prova correta.Ela pode conter erros de contratos inteligentes na máquina de estados receptora.Portanto, as bridges são um dos pontos de maior risco em que máquinas de estados interagem.Os usuários não devem presumir que os ativos tenham a mesma segurança após atravessarem máquinas de estados diferentes.Máquina de estados e governança
A governança pode alterar as regras de uma máquina de estados de blockchain.Uma atualização de protocolo pode adicionar novos tipos de transação, mudar custos de gas, modificar regras de staking, introduzir novos opcodes ou ajustar o preço de armazenamento.Essas mudanças afetam como as futuras transições de estado funcionam.Portanto, decisões de governança não são apenas decisões políticas ou sociais.Elas são mudanças no mecanismo de regras que define o comportamento válido da blockchain.Se um processo de governança for fraco, apressado ou capturado, poderá prejudicar a segurança da máquina de estados.Se um processo de governança for claro e bem testado, poderá ajudar a rede a evoluir.As atualizações devem ser implementadas cuidadosamente em todos os softwares clientes.Se os clientes discordarem sobre regras de transição, a rede poderá sofrer um fork.Uma boa governança protege a continuidade da máquina de estados compartilhada.Máquina de estados e carteiras
As carteiras são interfaces de usuário para interagir com máquinas de estados de blockchain.Quando uma carteira exibe um saldo, ela está lendo o estado ou dados indexados derivados do estado.Quando uma carteira pede que o usuário assine uma transação, ela está preparando uma entrada para a máquina de estados.Quando um usuário aprova um token, faz swap de um ativo ou cria um NFT, a carteira ajuda a enviar uma ação que altera o estado.Por isso, os avisos da carteira são tão importantes.Um usuário deve entender qual alteração de estado está autorizando antes de assinar.Uma transação maliciosa pode alterar aprovações, transferir ativos, chamar contratos ou conceder permissões.A blockchain executará instruções válidas e assinadas mesmo que o usuário não tenha entendido a interface.Portanto, a segurança da carteira consiste em ajudar usuários a criar entradas para a máquina de estados com segurança.Uma boa carteira torna as transições de estado compreensíveis antes que ocorram.Máquina de estados e saldos de tokens
Os saldos de tokens frequentemente são valores de estado dentro de contratos inteligentes.Em uma plataforma de contratos inteligentes baseada em contas, um contrato de token pode armazenar um mapeamento de endereços de usuários para saldos.Quando ocorre uma transferência de token, o contrato atualiza esse mapeamento interno de saldos.O usuário pode ver o resultado como uma simples mudança de saldo em uma carteira.Nos bastidores, trata-se de uma transição de estado no nível do contrato.Isso significa que os saldos de tokens nem sempre são o mesmo tipo de estado que os saldos de coins nativas.O saldo de uma coin nativa pode fazer parte do estado da conta base.O saldo de um token pode fazer parte do estado de armazenamento de um contrato.Essa distinção é importante para provas, indexação, exibição em carteiras e risco de contratos inteligentes.Se o contrato de token tiver lógica insegura, a máquina de estados do token poderá se comportar de forma inesperada.Máquina de estados e NFTs
Os tokens não fungíveis (NFTs) também dependem de máquinas de estados.Um contrato NFT armazena informações de propriedade de IDs de tokens exclusivos.Quando um NFT é transferido, o contrato atualiza qual endereço possui o ID do token.Quando um NFT é criado, o contrato cria um novo registro de propriedade.Quando um NFT é queimado, o contrato remove ou marca o token de acordo com suas regras.Os metadados podem ser armazenados on-chain ou referenciados por sistemas externos.A máquina de estados decide se uma transferência é válida, quem pode aprová-la e como a propriedade muda.Por isso, a segurança de NFTs depende da lógica do contrato, além da custódia da carteira.Um NFT não é apenas uma imagem ou item colecionável.Ele também é um registro de estado controlado por regras de contratos inteligentes.Entender máquinas de estados ajuda os usuários a compreender o que a propriedade de NFTs realmente significa on-chain.Benefícios das máquinas de estados em cripto
O primeiro benefício de uma máquina de estados de blockchain é a verificação compartilhada.Qualquer pessoa que execute um software de nó compatível pode verificar se as transições de estado são válidas.O segundo benefício é a execução determinística.Todos os nós honestos podem chegar ao mesmo resultado a partir do mesmo estado inicial e entradas ordenadas.O terceiro benefício é a programabilidade.Plataformas de contratos inteligentes permitem que desenvolvedores definam transições de estado no nível do aplicativo.O quarto benefício é a transparência.Blockchains públicas permitem que usuários inspecionem transações, raízes de estado, armazenamento de contratos e resultados de execução, dependendo da cadeia e das ferramentas.O quinto benefício é a tolerância a falhas.Muitos nós podem replicar a máquina de estados, reduzindo a dependência de um único servidor.O sexto benefício é a composabilidade.Os aplicativos podem interagir com estado compartilhado quando a plataforma oferece suporte seguro a isso.Esses benefícios explicam por que máquinas de estados são fundamentais para o design de blockchains públicas.Limitações das máquinas de estados em cripto
A primeira limitação é a complexidade.Os usuários frequentemente não entendem as transições de estado que estão assinando.A segunda limitação é o crescimento do estado.O estado persistente pode se tornar caro para os nós armazenarem e verificarem.A terceira limitação é o custo de execução.Em muitas blockchains, todos os nós podem precisar processar a mesma transação que altera o estado.A quarta limitação é o risco de atualização.Alterar regras de transição pode criar erros ou forks se não for tratado cuidadosamente.A quinta limitação é o risco de aplicativos.Máquinas de estados de contratos inteligentes podem conter lógica defeituosa mesmo quando a cadeia base funciona corretamente.A sexta limitação é o risco de dados externos.Oráculos podem inserir informações erradas em sistemas que, de outra forma, seriam determinísticos.Essas limitações mostram por que o design de máquinas de estados exige disciplina de engenharia, revisão de segurança e interfaces de usuário claras.Equívocos comuns sobre máquinas de estados
Um equívoco comum é que uma blockchain é apenas um banco de dados.Uma blockchain também é uma máquina de estados porque define regras para alterações válidas de estado.Outro equívoco é que consenso e execução são a mesma coisa.O consenso ordena blocos e transações, enquanto a execução aplica regras de transição de estado.Um terceiro equívoco é que contratos inteligentes são executados em um servidor central.Contratos inteligentes são executados por nós de acordo com as regras determinísticas da máquina de estados da blockchain.Um quarto equívoco é que histórico de transações e estado atual são iguais.O histórico de transações registra entradas, enquanto o estado registra o resultado atual depois que essas entradas são processadas.Um quinto equívoco é que a execução determinística garante bons resultados.O determinismo garante resultados consistentes, mas o resultado ainda pode ser prejudicial se a lógica do contrato ou os dados de entrada forem falhos.Boas práticas para desenvolvedores
Projete contratos inteligentes como máquinas de estados explícitas, com estados, transições e condições de falha claros.Teste cada transição de estado em condições normais e hostis.Use controles de acesso com cuidado, pois transições de estado não autorizadas podem ser catastróficas.Evite depender de comportamento não determinístico na execução da blockchain.Minimize o armazenamento persistente desnecessário, pois o crescimento do estado aumenta os custos para usuários e nós.Use eventos para sinais históricos quando o estado ativo não for necessário.Modele casos extremos, como chamadas com falha, reentrância, execução parcial, falhas de oráculos e caminhos de atualização.Documente o que cada função altera no estado.Revise os custos de gas, pois transições de estado que gravam no armazenamento podem ser caras.Trate a lógica de máquina de estados como código crítico para a segurança.Boas práticas para usuários
Leia cuidadosamente os avisos da carteira antes de assinar transações.Entenda que assinar uma transação pode alterar permanentemente o estado da blockchain.Verifique quais permissões uma aprovação de token concede a um contrato.Use interfaces confiáveis ao interagir com contratos inteligentes.Comece com pequenas transações ao testar um novo aplicativo.Verifique endereços de contratos e evite assinar mensagens desconhecidas.Entenda que transações com falha ainda podem gerar taxas em algumas redes.Lembre-se de que o estado da blockchain pode ser transparente, mas transparência não garante segurança.Tenha cuidado com bridges, pois elas conectam máquinas de estados diferentes com pressupostos diferentes.Use ferramentas de segurança e revogue aprovações desnecessárias quando apropriado.FAQ
O que significa máquina de estados em cripto?
Em cripto, uma máquina de estados é o sistema de regras que recebe o estado atual da blockchain e transações válidas como entrada, produzindo então um novo estado da blockchain.Por que uma blockchain é chamada de máquina de estados?
Uma blockchain é chamada de máquina de estados porque passa repetidamente de um estado válido para o próximo ao aplicar transações ordenadas sob regras fixas de protocolo.O que é o estado de uma blockchain?
O estado de uma blockchain é o conjunto atual de dados necessário para processar novas transações, como saldos, contas, armazenamento de contratos, UTXOs e registros de validadores.O que é uma transição de estado?
Uma transição de estado é a mudança de um estado de blockchain para outro após o processamento de uma transação, bloco ou mensagem válida.O Ethereum é uma máquina de estados?
Sim. O Ethereum pode ser entendido como uma máquina de estados baseada em transações, na qual transações e chamadas de contratos inteligentes atualizam o estado global.O Bitcoin é uma máquina de estados?
Sim. O Bitcoin pode ser entendido como uma máquina de estados baseada em UTXO, na qual transações válidas consomem saídas não gastas e criam novas saídas não gastas.O que é replicação de máquina de estados?
Replicação de máquina de estados significa executar a mesma máquina de estados determinística em várias máquinas para que processem as mesmas entradas ordenadas e mantenham o mesmo estado.Qual é a diferença entre consenso e uma máquina de estados?
O consenso concorda com a ordem das transações, enquanto a máquina de estados aplica as transações ordenadas para atualizar o estado da blockchain.Por que máquinas de estados de blockchain devem ser determinísticas?
Elas devem ser determinísticas para que todos os nós honestos possam calcular o mesmo resultado a partir do mesmo estado inicial e da mesma ordem de transações.Como os contratos inteligentes se relacionam com máquinas de estados?
Contratos inteligentes definem regras no nível do aplicativo que atualizam o estado da blockchain quando os usuários enviam transações válidas ou chamadas de contratos.Conclusão
Uma máquina de estados é uma das ideias mais importantes por trás das redes de criptomoedas.Ela explica como as blockchains passam de um estado válido para outro ao aplicar transações sob regras determinísticas.O Bitcoin usa uma máquina de estados baseada em UTXO, na qual transações válidas gastam saídas antigas e criam novas saídas.O Ethereum usa uma máquina de estados baseada em contas, na qual contas, saldos, código de contratos e armazenamento são atualizados por transações e execução da EVM.Mecanismos de consenso e máquinas de estados trabalham juntos, mas desempenham funções diferentes.O consenso ordena as entradas, enquanto a máquina de estados executa as regras e produz o novo estado.Esse modelo torna blockchains públicas verificáveis porque muitos nós independentes podem processar os mesmos dados ordenados e verificar se chegam ao mesmo resultado.Máquinas de estados também tornam contratos inteligentes possíveis porque aplicativos podem definir regras programáveis para alterar dados on-chain.No entanto, máquinas de estados criam riscos reais quando a lógica de contratos inteligentes está errada, entradas de oráculos são ruins, o estado cresce demais ou os usuários assinam transações que não entendem.Para desenvolvedores, a mentalidade de máquina de estados ajuda a produzir contratos mais seguros, regras mais claras e testes melhores.Para usuários, ela ajuda a explicar por que cada transação assinada é uma instrução que pode alterar saldos, permissões, propriedade ou estado de aplicativos.No contexto de glossário cripto, State Machine significa o sistema determinístico de regras que processa transações de blockchain e atualiza a rede de um estado válido para o próximo.A principal conclusão é que uma blockchain não é apenas um registro de transações passadas, mas uma máquina de estados replicada que permite que muitos nós independentes concordem com a verdade atual de uma economia digital.Você também pode gostar
HOT
Criptomoedas que estão em alta atualmente e ganhando atenção significativa do mercado
TOP volume
As criptomoedas com o maior volume de negociação
Recém-adicionados
Criptomoedas listadas recentemente que estão disponíveis para negociação

