A Metasecudary disponibiliza este guia independente sobre Segurança em Blockchain. Ela é operada por ALCENITA SILVA TOMAZ, que não possui afiliação, parceria, endosso, patrocínio de marca ou autoridade para representar a Ethereum ou qualquer outra organização mencionada aqui.
Guia educativo
Guia de Segurança em Blockchain para Iniciantes
Construa um modelo mental claro sobre registros compartilhados, chaves criptográficas e as diferentes camadas de um sistema blockchain.
Publicado em
Atualizado em

A segurança de blockchain descreve como um registro compartilhado permanece consistente, como as alterações são autorizadas e onde o sistema depende de pessoas, software ou informações externas. Um ponto de partida útil é separar o livro-razão dos aplicativos ao seu redor. Uma rede pode aplicar suas regras corretamente enquanto um site explica mal uma solicitação. Uma assinatura pode ser matematicamente válida enquanto a instrução assinada difere do que o seu signatário pretendia.
Este guia desenvolve essa distinção a partir do zero. Ele usa exemplos neutros envolvendo registros de documentos e registros compartilhados. Ao final, as palavras conta, chave, assinatura, consenso, contrato e finalidade devem descrever diferentes funções em um sistema, cada uma com seus próprios limites.
O que realmente significa a segurança de blockchain
A segurança é mais fácil de entender quando se refere a uma propriedade específica. A integridade diz respeito a se as informações permanecem consistentes com as regras que as regem. A autorização diz respeito a quem ou o que pode solicitar uma alteração. A disponibilidade diz respeito a se os sistemas e dados necessários estão acessíveis. A confidencialidade diz respeito a quem pode ler as informações. Uma blockchain pública pode enfatizar a integridade e a autorização, oferecendo pouca confidencialidade para informações publicadas diretamente em seu registro compartilhado.
Essas propriedades estão relacionadas sem serem intercambiáveis. Uma interface indisponível pode impedir que alguém visualize um livro-razão que, de outro modo, estaria intacto. Um registro de documentos legível publicamente pode permanecer internamente consistente enquanto expõe detalhes que seus participantes consideravam privados. Uma solicitação autorizada corretamente ainda pode conter uma instrução não intencional. Descrever todas essas situações como uma única pergunta sobre se uma blockchain é segura faz perder as distinções que tornam o assunto compreensível.
Uma explicação precisa, portanto, nomeia o objeto e a propriedade: a consistência do histórico de uma rede, a confidencialidade de uma chave de assinatura ou a clareza de uma solicitação de aplicativo. A expressão ampla segurança de blockchain é um guarda-chuva para essas questões mais específicas.
O registro compartilhado e seu estado atual
Uma blockchain organiza registros em blocos que fazem referência a blocos anteriores. Um hash criptográfico ajuda a identificar o conteúdo de um bloco e a conectá-lo ao seu predecessor. A cadeia preserva um histórico ordenado, enquanto o estado atual descreve o resultado da aplicação das alterações aceitas. Na Ethereum, os blocos contêm transações ordenadas e informações necessárias para descrever o estado resultante. A documentação da Ethereum sobre blocos explica essa relação.
Imagine um registro que grava revisões de um catálogo de museu público. O histórico contém a sequência de revisões aceitas; o estado atual contém as entradas mais recentes do catálogo. Essas são duas visões do mesmo processo. Uma referência a uma entrada anterior estabelece a qual ponto do histórico uma revisão pertence. Ela não estabelece que a descrição feita pelo curador sobre uma pintura seja historicamente precisa.
Esse exemplo também separa o registro da interpretação. O livro-razão pode preservar exatamente qual descrição foi enviada. Se essa descrição era completa, justa ou correta, isso requer evidências além do livro-razão. Um registro duradouro pode preservar tanto afirmações precisas quanto erros.
Hashes identificam dados; eles não os explicam
Um hash criptográfico é um resultado compacto calculado a partir de dados. Ele é útil para identificar conteúdo e detectar alterações quando a comparação conta com uma referência confiável. Não é um resumo legível, um documento de identidade ou um julgamento sobre a qualidade do material subjacente. Duas pessoas que concordam com o hash de um documento podem concordar quanto aos bytes do documento sem concordar quanto ao seu significado.
Considere duas edições de uma página de catálogo. Mesmo uma pequena edição pode produzir um hash diferente. A diferença estabelece que as entradas diferem; ela não diz ao leitor se a edição corrigiu um erro ou introduziu um novo. Um hash também não disponibiliza o documento original. Alguém pode manter seu identificador mesmo depois que o próprio documento não estiver mais acessível.
Há um limite semelhante para a interpretação de carimbos de data/hora. O lugar de um registro em uma cadeia fornece evidências sobre a sequência registrada daquele sistema. Uma alegação de que um evento externo aconteceu em um momento específico ainda precisa de uma conexão confiável entre o evento e os dados registrados. Esses limites são importantes sempre que os registros de blockchain são descritos como provas.
Nós e o significado da verificação independente
Um nó participa da rede executando um software que processa informações da rede. A Ethereum distingue o software de execução, que verifica transações e mudanças de estado, do software de consenso, que participa da determinação da cadeia aceita. Diferentes implementações de clientes podem implementar as mesmas regras de protocolo. Um cliente é o software; um nó é uma instância que participa da rede. A documentação da Ethereum sobre nós e clientes descreve essas funções.
A distinção importa porque a verificação depende de quais informações um participante realmente verifica. Ler um resultado fornecido por outro computador é diferente de processar de forma independente as entradas que o produziram. Ambos podem ser úteis, mas estabelecem diferentes níveis de evidência. Uma interface pode exibir um saldo, uma entrada de catálogo ou o status de uma transação sem verificar de forma independente cada bloco relevante.
A verificação independente também tem condições. O software deve implementar as regras pretendidas, receber os dados necessários e operar em um ambiente funcional. A distribuição reduz a dependência de um único mantenedor de registros, mas não elimina a necessidade de correção de software ou de comunicação.
Consenso, ordenação e finalidade
Consenso é o processo pelo qual os participantes da rede chegam a um histórico aceito sob as regras de um protocolo. A Ethereum atualmente usa um mecanismo de consenso de prova de participação (proof-of-stake), com validadores participando de propostas de blocos e atestações. Suas regras também distinguem o topo em desenvolvimento da cadeia dos pontos de verificação finalizados. O mecanismo específico pertence à rede, de modo que as descrições de uma blockchain não se aplicam automaticamente a todas as outras blockchains. A documentação da Ethereum sobre mecanismos de consenso fornece o contexto técnico.
A finalidade responde a uma pergunta mais restrita do que saber se um evento foi verdadeiro: com que firmeza a rede aceitou uma parte específica de seu histórico sob suas premissas. Uma revisão de catálogo aceita pode ser final como um evento registrado, enquanto sua redação permanece aberta a uma correção posterior. A correção se torna outro evento registrado; o registro anterior não se torna historicamente invisível.
O consenso também não determina a identidade pública de um aplicativo, a precisão factual de um documento ou as intenções de uma pessoa. Ele coordena a aceitação de alterações válidas segundo o protocolo. Manter esse escopo claro evita atribuir à concordância da rede um significado que ela não possui.
Contas, endereços e chaves de assinatura
Uma conta é uma entidade representada no estado de uma rede. Um endereço identifica uma conta em um contexto específico. Uma chave privada de assinatura cria assinaturas criptográficas usadas pelo modelo de conta relevante para autorizar instruções. Uma carteira é uma interface para interagir com contas. A Ethereum distingue contas de propriedade externa de contas de contrato; as contas de contrato operam por meio de código em vez de terem uma chave privada própria. A documentação da Ethereum sobre contas explica a distinção.
No exemplo do catálogo, um endereço pode estar associado ao direito de enviar uma revisão. O endereço em si é uma informação visível. O meio de autorizar uma revisão pertence a uma categoria diferente. Ver o endereço não concede a autoridade de assinatura, e possuir autoridade de assinatura não estabelece um cargo no mundo real.
Os nomes exibidos ao lado dos endereços são outra camada. Um rótulo pode melhorar a legibilidade, mas sua precisão depende da fonte que o atribui. As regras de autorização do registro contábil e os rótulos de nome de um site respondem a perguntas diferentes. Uma explicação completa mantém identificadores de conta, autoridade de assinatura e identidade no mundo real separados.
Transações registram instruções, não intenções humanas
Uma transação é uma solicitação para alterar o estado de uma rede. No modelo de transação comum da Ethereum, os campos relevantes incluem o destino, os dados de entrada, um nonce e informações que regem os recursos de execução. Uma assinatura conecta a instrução à chave autorizadora. Uma transação pode invocar o código de um contrato, bem como alterar outro estado de conta. A documentação da Ethereum sobre transações descreve a estrutura formal.
Uma pessoa pode ter a intenção de atualizar a legenda de uma entrada de catálogo, enquanto uma instrução proposta contém um identificador de entrada diferente. A rede pode avaliar a instrução que recebe. Ela não pode inferir uma intenção não expressa nem comparar a solicitação com o que a pessoa imaginou. Uma assinatura válida é evidência da autorização de dados específicos, não evidência de que quem assinou compreendeu todas as consequências.
A redação em torno de uma instrução, portanto, importa independentemente da criptografia. A descrição de um aplicativo, a solicitação subjacente e a alteração de estado resultante são três coisas que podem ser comparadas. Tratá-las como objetos separados facilita a descrição de discrepâncias sem presumir que uma assinatura válida comprove um acordo com sentido real.
Recursos de execução e resultados bem-sucedidos
A Ethereum usa gas para medir o trabalho computacional. A execução consome recursos, e uma transação enviada pode falhar em concluir a alteração de estado pretendida enquanto ainda consome recursos de execução. O status do recibo de uma transação descreve um resultado de execução sob o protocolo; ele não certifica que o aplicativo alcançou todos os propósitos do mundo real declarados em seu site. A documentação da Ethereum sobre gas explica o modelo de recursos.
Para um catálogo compartilhado, uma solicitação concluída pode significar que um campo de registro foi alterado de acordo com a lógica do programa. Isso não significaria necessariamente que uma página web pública foi atualizada, que um arquivo relacionado estava disponível ou que um curador aprovou a redação. Esses resultados podem envolver sistemas fora da transação.
Uma explicação clara separa a criação da solicitação, a inclusão na rede, a execução, a finalidade e a exibição na interface. Esses estágios podem ocorrer em momentos diferentes. Um atraso ou incompatibilidade em um estágio deve ser descrito nesse estágio, em vez de ser transformado em uma conclusão infundada sobre toda a rede.
Contratos inteligentes e os limites do código
Um contrato inteligente é um programa implantado em uma blockchain que é executado de acordo com as regras da rede. Ele pode manter o estado e interagir com outros contratos. A palavra contrato, nesse contexto, descreve um componente técnico; ela não estabelece automaticamente um acordo jurídico nem demonstra que seu comportamento atende às expectativas do leitor. A introdução da Ethereum aos contratos inteligentes apresenta o modelo de programação.
Suponha que um programa de catálogo aceite revisões apenas de contas designadas. Seu comportamento depende de como essas permissões são implementadas, quais identificadores de entrada são aceitos e quais outros programas ele chama. Uma descrição legível afirmando que apenas curadores podem editar é uma alegação sobre o programa. A lógica implantada e as atribuições reais de permissão fornecem os detalhes técnicos por trás dessa afirmação.
Uma execução correta significa que a rede aplicou as instruções do programa de forma consistente. Isso não significa que as instruções eram as mais adequadas para os objetivos do museu. O design do programa e a execução na rede continuam sendo assuntos separados dentro da segurança de blockchain.
A verificação do código-fonte e a revisão de código respondem a perguntas diferentes
A verificação do código-fonte checa a relação entre a fonte publicada e o bytecode implantado. Ela torna o programa mais fácil de inspecionar, mas a correspondência do código-fonte não estabelece a ausência de defeitos de design. A verificação formal examina propriedades especificadas usando métodos matemáticos, com conclusões vinculadas ao modelo e às premissas. A documentação da Ethereum sobre verificação de contratos distingue esses termos.
Uma revisão ou auditoria de código possui, da mesma forma, um escopo, uma versão e um conjunto de métodos. Ela pode identificar problemas e documentar descobertas sem provar que todas as interações futuras serão corretas. A documentação de segurança da Ethereum trata explicitamente a revisão independente como uma parte de um processo de desenvolvimento mais amplo. A documentação da Ethereum sobre segurança de contratos explica essa limitação.
O leitor pode interpretar uma avaliação com mais precisão quando seu objeto está claro. Revisar um contrato de catálogo é diferente de revisar o site, seu armazenamento de arquivos, seu processo de administração e todos os outros programas que ele referencia.
Administração e como o comportamento pode mudar
Alguns aplicativos incluem funções ou mecanismos administrativos que alteram qual lógica de programa é usada. Os padrões de atualização da Ethereum podem preservar o estado de um contrato enquanto redirecionam a execução para uma implementação diferente. Isso difere de reescrever o registro histórico da blockchain. A documentação da Ethereum sobre atualizações de contratos explica essa distinção.
Em um registro de documentos, um administrador pode ter a capacidade de alterar a lista de editores permitidos. Essa autoridade pode ser implementada diretamente em um programa ou por meio de um programa associado. As perguntas úteis dizem respeito a quem detém a função, o que a função pode alterar e quais condições regem uma alteração. A mera presença de uma blockchain não responde a elas.
A imutabilidade, portanto, precisa de um objeto. Registros históricos, código implantado, comportamento do aplicativo, conteúdo web e atribuições administrativas não compartilham a mesma capacidade de alteração. Dizer que um aplicativo é imutável sem explicar qual componente permanece fixo pode ocultar diferenças substanciais em seu design.
Informações externas e disponibilidade de dados
Um programa em blockchain não conhece automaticamente fatos fora de sua rede. Um oráculo fornece informações externas por meio de um mecanismo definido. O acordo sobre a entrada registrada não estabelece, de forma independente, a precisão da observação original. Múltiplos provedores de dados podem ampliar o mecanismo, enquanto fontes originais compartilhadas ainda podem criar dependências comuns. A documentação da Ethereum sobre oráculos explica esse limite.
Para o catálogo, o programa pode registrar um resultado de inspeção fornecido por um banco de dados externo. A rede pode preservar o resultado enviado. Se a inspeção do banco de dados foi precisa permanece uma questão sobre esse processo externo. O registro e a observação têm responsabilidades diferentes.
A verificação também requer acesso a dados relevantes. Um compromisso compacto com os dados não é o mesmo que os próprios dados estarem disponíveis para verificação. A documentação de disponibilidade de dados do Ethereum distingue esse problema da correção da execução. A documentação do Ethereum sobre disponibilidade de dados fornece a explicação subjacente.
Interfaces, informações públicas e interpretação
Um explorador de blocos organiza as informações da blockchain em páginas legíveis. Ele pode adicionar rótulos e descrições decodificadas junto a registros de transações ou blocos. A apresentação legível ajuda a explicar os dados, mas a interpretação adicionada pertence ao explorador e não ao protocolo subjacente. A documentação do Ethereum sobre exploradores de blocos descreve as informações que eles apresentam.
Registros públicos podem revelar relações entre identificadores mesmo quando não contêm o nome de uma pessoa. Um editor de catálogo que associa publicamente um nome a um endereço adiciona um contexto que pode ser conectado a registros públicos anteriores. O pseudonimato descreve o uso de identificadores; ele não promete que esses identificadores permanecerão sem relação com pessoas do mundo real.
O conteúdo legível também possui um contexto temporal. Uma interface pode exibir um resultado anterior, uma interpretação incompleta ou uma visualização de uma rede diferente. Essas possibilidades dizem respeito ao caminho do registro até a exibição. Uma explicação equilibrada identifica esse caminho antes de tirar conclusões do que aparece em uma tela.
Um mapa prático das camadas
| Camada | O que as evidências podem estabelecer | O que permanece uma questão à parte |
|---|---|---|
| Rede | Aceitação sob as regras do protocolo | Precisão de uma alegação externa |
| Conta | Autorização sob seu modelo de conta | A identidade no mundo real de seu controlador |
| Programa | O comportamento da lógica implantada especificada | Se esse comportamento corresponde a todos os propósitos declarados |
| Interface | O que uma página específica apresenta | Se sua explicação corresponde aos dados subjacentes |
| Entrada externa | Quais informações foram fornecidas | A precisão da observação original |
O mapa ajuda a organizar uma explicação sem produzir uma pontuação única. Para qualquer exemplo, o leitor pode identificar o objeto, descrever sua autoridade, nomear a evidência e apontar a incerteza restante. Essa sequência se aplica a registros, credenciais, software compartilhado e outros usos de blockchain além de uma marca ou produto específico.
Um breve glossário
- Estado
- As informações atuais produzidas por alterações aceitas em uma rede.
- Bloco
- Uma coleção ordenada de registros e informações associadas vinculadas em uma cadeia.
- Hash
- Um resultado criptográfico compacto calculado a partir de dados de entrada.
- Assinatura
- Evidência criptográfica que vincula dados específicos a uma chave autorizadora.
- Consenso
- O processo de uma rede para aceitar um histórico comum sob suas regras.
- Finalidade
- A firmeza de aceitação definida pelo protocolo para uma parte desse histórico.
- Contrato inteligente
- Um programa implantado que opera sob as regras de execução da blockchain.
- Oráculo
- Um mecanismo que fornece informações originadas fora da blockchain.
Perguntas que iniciantes costumam fazer
O consenso prova que uma declaração é verdadeira?
Ele estabelece a aceitação pela rede sob regras especificadas. Uma descrição de catálogo ou uma medição externa requer suas próprias evidências. O registro e a precisão da declaração são objetos de investigação diferentes.
Uma assinatura válida prova compreensão?
Ela vincula os dados assinados à autoridade de assinatura no modelo criptográfico relevante. Ela não prova que o signatário leu uma explicação, compreendeu um programa ou pretendeu cada consequência da instrução.
Um único rótulo pode descrever todas as propriedades de segurança?
Um rótulo amplo deixa de fora os limites que importam. Uma descrição precisa identifica integridade, autorização, disponibilidade, confidencialidade ou apresentação e, em seguida, explica a qual componente e premissas a declaração se refere.
A abordagem editorial no Metasecudary, publicado por ALCENITA SILVA TOMAZ, é tornar esses limites legíveis. Neste artigo, ALCENITA SILVA TOMAZ usa um catálogo compartilhado como modelo explicativo para que a segurança da blockchain possa ser compreendida como um conjunto de responsabilidades, e não como uma promessa sem explicação.
Nossa perspectiva editorial
ALCENITA SILVA TOMAZ publica o Metasecudary de Imperatriz, Maranhão, Brasil, para um público internacional. Nossa publicação parte da distinção entre um registro e as circunstâncias que ele descreve. Uma rede pode tornar as informações registradas verificáveis, deixando as questões sobre sua origem, significado e uso lícito para pessoas e instituições. Essa distinção molda os exemplos deste guia.
Referências principais
Documentação oficial utilizada para verificar as explicações deste artigo. Seguir uma referência abre o site do editor original.