A criptografia é a espinha dorsal por trás da segurança da blockchain. Com o lançamento do Bitcoin em 2009 veio a chegada do blockchain, onde era dito quase impossível de ser comprometida ou invadida por hacks.
Mais de uma década depois, blockchain realmente se tornou altamente seguro, mas ainda não perfeito.
Alguns fatores que garantem a resiliência da blockchain a invasões e ataques maliciosos são seu design distribuído, verificação de transações baseada em consenso e imutabilidade de registros.
O principal fator subjacente que torna a tecnologia blockchain altamente segura é a criptografia; especificamente, comunicações digitais seguras baseadas em criptografia.
O que é a criptografia?
A criptografia é um campo de estudo interdisciplinar que visa desenvolver comunicações privadas seguras na presença de potenciais terceiros maliciosos.
Simplificando, é uma maneira de codificar as mensagens enviadas entre as partes para que apenas o remetente e o destinatário possam entender a mensagem.
O que é a criptografia na blockchain?
Dentro do contexto da tecnologia blockchain, a criptografia é usada para vários propósitos:
- Para desenvolver a troca segura de dados entre dois nós de transação, como uma carteira enviando criptomoedas para a carteira de outro usuário
- Para verificar as transações na rede por nós de mineração
- Para garantir a imutabilidade dos registros no blockchain
- Para fins de aplicativos específicos, como garantir a confidencialidade dos dados em contratos inteligentes
Criptografia e Descriptografia Blockchain
Existem dois componentes principais para uma troca criptográfica de dados:
- Criptografia, que é o processo de transformar uma mensagem de texto simples em uma forma enigmática que não pode ser lida ou compreendida por terceiros. O remetente da mensagem a criptografa para transmissão segura.
- Descriptografia, que é o processo de transformar a mensagem criptografada de volta ao formato de texto simples. O receptor descriptografa a mensagem quando ela foi entregue com segurança a eles.
O algoritmo que é usado para criptografar e descriptografar os dados é chamado de cifra. Um exemplo de cifra primitiva pode ser quando cada letra em uma troca de mensagens é substituída por um dígito referente à posição dessa letra no alfabeto, de modo que 01 se refira a A, 02 a B, 26 a Z e assim por diante. Por exemplo, nesta cifra simples, “08-09” se referiria a “Oi”.
A criptografia real da mensagem de “Oi” a “08-09” e a descriptografia subsequente de “08-09” a “Oi” é feita usando uma chave criptográfica – um dado que criptografa e descriptografa mensagens com base em um algoritmo/cifra.
Felizmente, a blockchain e outros sistemas computadorizados modernos usam algoritmos de criptografia muito mais sofisticados e seguros do que nosso exemplo simples. Abordaremos isso mais adiante no artigo.
Os Principais Tipos de Criptografias
Existem três tipos principais de criptografia, encriptações e decriptações utilizadas por sistemas modernos:
Criptografia simétrica
Sob essa forma de criptografia, a mesma chave é usada para criptografar e descriptografar a comunicação entre as partes. Em nosso exemplo simplificado, a mesma chave (o mapeamento de letras para números) é necessária para transformar “Hi” em “08-09” e, em seguida, descriptografar “08-09” de volta para “Hi”.
A criptografia simétrica é a mais simples das três formas de criptografia moderna. Sua vantagem é a alta velocidade de execução.
No entanto, a criptografia simétrica tem uma séria limitação, se a chave se tornar conhecida por terceiros mal-intencionados, toda a comunicação será comprometida. Isso torna impraticável o uso com uma tecnologia descentralizada, como blockchain.
Criptografia assimétrica
Também conhecida como criptografia de chave pública: essa forma de criptografia usa um par de chaves, uma chave pública e uma chave privada, para proteger a comunicação. A chave pública é usada para criptografar a mensagem pelo remetente, enquanto a chave privada é usada para descriptografar a mensagem pelo receptor.
Ambas as chaves pertencem ao receptor da comunicação. A chave pública pode ser usada por qualquer pessoa para criptografar uma mensagem e enviá-la para o endereço da carteira do destinatário.
Na verdade, chaves públicas e endereços de carteira são conceitos intimamente interligados. Na maioria das blockchains públicas como Bitcoin (BTC), um endereço de carteira é a versão com hash da chave pública do usuário.
Quando a mensagem é entregue na carteira, o receptor usa sua chave privada para descriptografar e ler a mensagem. A chave privada do destinatário é conhecida apenas por eles, não pelo remetente nem por qualquer outra pessoa na rede.
O uso do pareamento de chave público-privada torna a criptografia assimétrica uma forma mais segura de troca criptográfica em comparação com a simétrica, ou seja, criptografia de chave única.
Criptografia com função hash
Considerado um tipo de criptografia altamente seguro, a função hash (resumo) não usa chaves. O hashing usa um algoritmo para receber uma entrada de qualquer tamanho e produzir uma saída de tamanho fixo.
Existem várias funções de hash diferentes em uso, das quais apenas algumas (conhecidas como “funções hash criptográficas”) são consideradas seguras o suficiente para fins de criptografia. Por exemplo, o Bitcoin usa a função SHA-256, enquanto a criptografia de hash do Ethereum é baseada no KECCAK-256.
As funções de hash criptográfico possuem várias características que as tornam ideais para criptografia segura:
- Elas têm chances extremamente baixas de ocorrência de colisões. Isso significa que as chances de duas entradas diferentes levarem à mesma saída com hash são astronomicamente pequenas, impossibilitando ataques de força bruta
- A mensagem original não pode sofrer engenharia reversa da saída de hash.
- Eles são determinísticos, ou seja, qualquer entrada produzirá a mesma saída quando executada pela função hash.
- Mesmo uma pequena alteração feita na entrada, como inverter um único bit de 0 para 1, produzirá um hash de saída completamente diferente
Algoritmo Hash (Fonte: Networkencyclopedia.com)
Dos três tipos de criptografia, a criptografia simétrica praticamente nunca é usada nas redes blockchain populares estabelecidas. A criptografia assimétrica e o hashing, no entanto, são amplamente utilizados na tecnologia blockchain.
Uso de Criptografia na Blockchain
A criptografia assimétrica é usada no blockchain para permitir transações seguras de nó a nó, ou ponto a ponto. Sempre que você envia ou recebe criptomoedas ou tokens de ou para outra carteira na rede, suas transações são protegidas com criptografia assimétrica.
A criptografia hash tem um uso ainda mais amplo na blockchain. O uso do hashing é feito para criptografar as chaves públicas dos usuários em endereços de blockchain.
Quando uma chave pública para um novo usuário é criada, ela é executada por meio de uma função de hash para gerar o endereço da carteira correspondente na rede. Isso adiciona uma camada extra de segurança ao sistema de endereços do blockchain.
A função Hash também é usado na mineração de blockchain em redes Prova de Trabalho (PoW). A mineração refere-se à verificação de transações na rede pelos “nós de mineração” participantes. Quando ocorre uma transação na blockchain, sua autenticidade deve ser verificada por vários usuários da rede chamados mineradores.
Cada bloco de dados de transação contém um número único gerado por meio da função hash. Os Nós de mineração na rede dedicam um poder computacional considerável para resolver um quebra-cabeça matemático a fim de encontrar outro número, chamado de “nonce”. Uma vez adicionado ao hash do bloco a ser verificado, o nonce ajudará a concluir a verificação.
Os algoritmos de hash, portanto, servem como a espinha dorsal da verificação de dados por meio da mineração em blockchains. Eles também são usados para vincular registros na rede em uma cadeia imutável. Cada bloco de dados na rede contém seu próprio código de hash exclusivo e o hash do bloco anterior.
Isso garante que qualquer tentativa de alteração em um bloco de dados exigirá alterações em todos os blocos anteriores da cadeia, uma tarefa impossível para todos os propósitos práticos. Esse encadeamento por meio de códigos hash é um recurso de segurança fundamental na tecnologia blockchain.
Além do uso central padrão de criptografia assimétrica e da função hash em blockchain, existem áreas específicas dentro do ecossistema blockchain em que a criptografia é útil. Uma dessas áreas são os contratos inteligentes ou smart contracts.
Os contratos inteligentes são criptografados?
Devido à natureza pública da maioria das blockchains, os contratos inteligentes são facilmente visualizados por qualquer participante da rede e, portanto, carecem do recurso principal de confidencialidade frequentemente procurado na contratação.
À medida que os contratos inteligentes se tornam mais comuns, a criptografia baseada em algoritmos de hash será usada mais amplamente para proteger dados contratuais confidenciais.
Tecnologias Blockchain como Hawk são uma área emergente de desenvolvimento destinada a garantir a privacidade e confidencialidade dos contratos inteligentes de blockchain.
Hawk é um protocolo que oculta criptograficamente informações confidenciais importantes em um contrato inteligente da visão do público na blockchain. Em essência, tecnologias e protocolos como o Hawk são todos baseados em alguma forma de criptografia hash.
Aqui está um resumo dos métodos de criptografia comumente usados em diferentes aspectos do blockchain:
Uso em Blockchain | Tipo de Criptografia |
Transações entre nós (por exemplo, compra e venda de moedas e tokens) | Assimétrica |
Mineração/Verificação de transações | Hash |
Imutabilidade/segurança de registros no blockchain | Hash |
Proteção de dados em contratos inteligentes | Hash |
Conclusão
Dos três tipos de métodos de criptografia – simétrico, assimétrico e hash, a tecnlologia blockchain usa os dois últimos. A criptografia simétrica raramente é usada em blockchains devido às suas características de segurança comparativamente ruins e inadequação para aplicativos descentralizados.
A criptografia assimétrica, baseada em um par de chaves públicas e privadas, está no centro da garantia de segurança nas transações de usuário para usuário.
A criptografia hash é usada para vários processos críticos que garantem a segurança geral do blockchain. Hashing é usado na verificação de transações por meio de mineração; manter a imutabilidade dos registros no blockchain; e também para aplicações especializadas, como garantia de confidencialidade e privacidade de dados em contratos inteligentes. Além disso, o hash também é usado na conversão de chaves públicas em endereços de blockchain.
Plataformas blockchain populares como Bitcoin ou Ethereum usam algoritmos de hash seguros e de alta qualidade, como SHA-256 e KECCAK-256. O uso desses algoritmos sofisticados garante que seus blockchains estejam entre as redes digitais mais seguras atualmente existentes.
No momento, a proteção criptográfica de dados em contratos inteligentes é uma área mais recente de desenvolvimento para a tecnologia blockchain. A criptografia baseada em algoritmos hash se tornará cada vez mais importante à medida que os contratos inteligentes ganham popularidade.