Lesson 3

Segurança Blockchain

Nesta lição, forneceremos uma visão geral dos mecanismos de segurança na tecnologia blockchain e discutiremos como a segurança difere entre vários tipos de redes blockchain.

Visão geral dos mecanismos de segurança do blockchain

A tecnologia Blockchain oferece uma estrutura segura para dados, baseada em princípios de criptografia, descentralização e consenso. Essa combinação de recursos ajuda a garantir a confiança nas transações e oferece proteção contra adulteração de dados. Nesta lição, forneceremos uma visão geral dos mecanismos de segurança na tecnologia blockchain e discutiremos como a segurança difere entre vários tipos de redes blockchain.

Leia nosso curso específico e detalhado sobre segurança: Blockchain Security: Cryptography , Consensus , Hack

Se você é novo e quer apenas um conhecimento superficial do mundo da segurança blockchain, continue lendo abaixo!

Segurança Básica da Blockchain

  • Criptografia: A tecnologia Blockchain emprega técnicas criptográficas avançadas para proteger os dados. As transações são assinadas com chaves privadas, garantindo a autenticidade do remetente, enquanto as chaves públicas permitem a verificação da transação sem revelar a identidade do remetente.
  • Descentralização: as redes Blockchain distribuem dados por uma vasta rede de nós, eliminando um único ponto de falha. Essa descentralização garante que nenhum usuário possa alterar o registro das transações, aumentando a segurança geral do sistema.
  • Consenso: Um mecanismo de consenso valida e concorda com as transações dentro dos blocos, garantindo que cada transação seja verdadeira e correta. Esses mecanismos podem variar entre diferentes redes blockchain, mas seu objetivo principal é estabelecer confiança no sistema.

Diferenças de segurança nos tipos de blockchain

As redes Blockchain podem ser classificadas em redes públicas, privadas, com permissão e sem permissão com base na participação e acesso:

  1. Blockchains públicos: Blockchains públicos, como o Bitcoin, permitem que qualquer pessoa se junte e participe da rede. Os participantes podem permanecer anônimos e a rede depende de computadores conectados à Internet para validar transações e obter consenso por meio de um processo chamado “mineração”. Blockchains públicos têm controles de identidade e acesso limitados.

  2. Blockchains privados: em contraste, os blockchains privados limitam a participação a organizações conhecidas que formam uma rede privada e exclusiva para membros. Essas redes alcançam consenso por meio de “endosso seletivo”, em que usuários conhecidos validam as transações. Os controles de identidade e acesso são mais rigorosos em blockchains privados.

  3. Blockchains sem permissão: essas redes não impõem restrições aos processadores, permitindo que qualquer participante contribua para os processos de validação e consenso da rede.

  4. Blockchains com permissão: as redes com permissão concedem acesso apenas a um conjunto selecionado de usuários que recebem identidades usando certificados. Essas redes têm uma identidade mais robusta e controles de acesso em vigor.
    Ao desenvolver um aplicativo blockchain, é essencial determinar qual tipo de rede se alinha melhor com seus objetivos de negócios. As redes privadas e autorizadas oferecem mais controle e são preferíveis por motivos regulatórios e de conformidade. Em contraste, as redes públicas e sem permissão fornecem maior descentralização e distribuição. Compreendendo os vários mecanismos de segurança e tipos de rede, você pode selecionar a rede blockchain mais adequada para sua aplicação, garantindo segurança robusta e desempenho eficiente.

Identificação de técnicas criptográficas e funções hash

As funções hash criptográficas desempenham um papel essencial para garantir a segurança na tecnologia blockchain. Nesta lição, exploraremos funções hash criptográficas, como elas funcionam e suas aplicações em vários contextos, incluindo blockchain, segurança de senha e segurança de mensagem.

O que são funções hash criptográficas?

Uma função de hash criptográfica é uma função matemática que recebe dados de entrada de comprimento variável e retorna uma saída de comprimento fixo, conhecida como “valor de hash”. Essas funções combinam os recursos de passagem de mensagens das funções de hash regulares com propriedades de segurança adicionais.

Principais conclusões:

As funções hash criptográficas transformam um determinado conjunto de dados em uma cadeia de bits de tamanho fixo. Eles são usados em vários aplicativos, como criptomoedas, segurança de senha e segurança de mensagens.

As funções hash criptográficas são projetadas para serem seguras e fornecem as seguintes propriedades:

  • Sem colisão: dois hashes de entrada não devem ser mapeados para o mesmo hash de saída, reduzindo as chances de manipulação ou falsificação de dados.
  • Oculto: deve ser difícil adivinhar o valor de entrada para uma função de hash de sua saída, garantindo a confidencialidade dos dados.
  • Compatível com quebra-cabeças: deve ser difícil selecionar uma entrada que forneça uma saída pré-definida, promovendo uma ampla distribuição de valores de entrada.
    Essas propriedades são desejáveis, mas nem sempre alcançáveis na prática. No entanto, as funções hash criptográficas ainda são amplamente utilizadas para aumentar a segurança dos sistemas digitais.

Exemplos de funções e aplicativos de hash criptográfico:

  • Criptomoedas: funções de hash criptográficas são cruciais em criptomoedas para processamento seguro de transações. O Bitcoin, por exemplo, usa a função hash criptográfica SHA-256 em seu algoritmo. Merkle Trees, um tipo de hash tree, são usadas em criptomoedas para verificar com eficiência a validade de transações e blocos, agrupando transações e criando um único hash para cada grupo.
  • Verificação de senha: Armazenar senhas como texto simples é inseguro, portanto, a maioria dos sites armazena hashes de senha. Quando um usuário insere sua senha, o sistema faz o hash da entrada e a compara com o valor de hash armazenado para garantir uma correspondência.
  • Geração e Verificação de Assinatura: As assinaturas digitais verificam a autenticidade de documentos ou mensagens digitais. Um esquema de assinatura digital geralmente consiste em três algoritmos: um algoritmo de geração de chave, um algoritmo de assinatura e um algoritmo de verificação de assinatura.
  • Verificando a integridade de arquivos e mensagens: As funções de hash podem ser usadas para garantir a integridade de mensagens e arquivos transmitidos entre o remetente e o destinatário. Ao comparar o valor de hash calculado com um valor publicado, os destinatários podem confirmar que os dados não foram adulterados durante o trânsito.

Importância de proteger contratos inteligentes e chaves privadas

Proteger as chaves privadas é fundamental para manter a integridade e a confiança nos sistemas blockchain. As chaves privadas são usadas para assinar transações e, portanto, essenciais para controlar o acesso aos ativos da blockchain. No entanto, armazenar chaves privadas com segurança pode ser um desafio. Se uma chave privada for perdida ou roubada, os ativos associados a essa chave podem ficar permanentemente inacessíveis.

Computações Multipartidárias (MPCs)

Uma possível solução para esse problema de confiança é o uso de cálculos multipartidários (MPCs). Os MPCs permitem a divisão de uma chave privada entre vários participantes, descentralizando seu uso. Protocolos como gerações de chaves descentralizadas (DKGs) garantem que a chave privada nunca esteja totalmente presente em nenhum lugar e, desde que um número suficiente de participantes aja honestamente, o sistema permanece seguro. Projetos como o Axelar implementam essa abordagem para permitir a interoperabilidade entre diferentes blockchains.

Contratos inteligentes de conhecimento zero

Contratos inteligentes de conhecimento zero, ou zkapps, oferecem uma abordagem diferente. Nesses sistemas, um detentor de chave privada pode executar a lógica associada à chave privada localmente, como assinar uma transação Bitcoin. Graças às provas de conhecimento zero (ZKPs), outras pessoas podem verificar se a chave privada foi usada corretamente de acordo com o contrato sem conhecer a própria chave privada. No entanto, essa abordagem requer confiança no detentor da chave para não vazar a chave ou usá-la de forma maliciosa.

Abstração de conta

A abstração de contas é outra técnica que pode ser usada para aumentar a segurança das chaves privadas. A abstração de conta permite que contratos inteligentes mantenham chaves privadas e executem operações de assinatura. Essa abordagem oferece maior flexibilidade na criação de contratos inteligentes e reduz o risco de perda ou roubo de chaves.

Combinando MPC com provas de conhecimento zero:

Para expandir o escopo das operações seguras de contratos inteligentes, os pesquisadores propuseram combinar o MPC com provas de conhecimento zero. Esta abordagem permite a execução de qualquer programa de forma segura e verificável (via ZKPs), com diferentes partes do programa originadas de diferentes participantes (via MPC).

Um artigo recente intitulado “Experimentando com zk-SNARKs Colaborativos: Provas de Conhecimento Zero para Segredos Distribuídos” apresenta uma solução para combinar essas duas técnicas. Embora ainda não existam implementações on-chain, prevê-se que essa inovação possa abrir novas possibilidades para blockchains programáveis.

Ao explorar e implementar soluções inovadoras, como contratos inteligentes de conhecimento zero, cálculos multipartidários e a combinação de MPC com ZKPs, podemos avançar no campo da segurança de blockchain e desbloquear novos aplicativos para essa tecnologia transformadora.

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 3

Segurança Blockchain

Nesta lição, forneceremos uma visão geral dos mecanismos de segurança na tecnologia blockchain e discutiremos como a segurança difere entre vários tipos de redes blockchain.

Visão geral dos mecanismos de segurança do blockchain

A tecnologia Blockchain oferece uma estrutura segura para dados, baseada em princípios de criptografia, descentralização e consenso. Essa combinação de recursos ajuda a garantir a confiança nas transações e oferece proteção contra adulteração de dados. Nesta lição, forneceremos uma visão geral dos mecanismos de segurança na tecnologia blockchain e discutiremos como a segurança difere entre vários tipos de redes blockchain.

Leia nosso curso específico e detalhado sobre segurança: Blockchain Security: Cryptography , Consensus , Hack

Se você é novo e quer apenas um conhecimento superficial do mundo da segurança blockchain, continue lendo abaixo!

Segurança Básica da Blockchain

  • Criptografia: A tecnologia Blockchain emprega técnicas criptográficas avançadas para proteger os dados. As transações são assinadas com chaves privadas, garantindo a autenticidade do remetente, enquanto as chaves públicas permitem a verificação da transação sem revelar a identidade do remetente.
  • Descentralização: as redes Blockchain distribuem dados por uma vasta rede de nós, eliminando um único ponto de falha. Essa descentralização garante que nenhum usuário possa alterar o registro das transações, aumentando a segurança geral do sistema.
  • Consenso: Um mecanismo de consenso valida e concorda com as transações dentro dos blocos, garantindo que cada transação seja verdadeira e correta. Esses mecanismos podem variar entre diferentes redes blockchain, mas seu objetivo principal é estabelecer confiança no sistema.

Diferenças de segurança nos tipos de blockchain

As redes Blockchain podem ser classificadas em redes públicas, privadas, com permissão e sem permissão com base na participação e acesso:

  1. Blockchains públicos: Blockchains públicos, como o Bitcoin, permitem que qualquer pessoa se junte e participe da rede. Os participantes podem permanecer anônimos e a rede depende de computadores conectados à Internet para validar transações e obter consenso por meio de um processo chamado “mineração”. Blockchains públicos têm controles de identidade e acesso limitados.

  2. Blockchains privados: em contraste, os blockchains privados limitam a participação a organizações conhecidas que formam uma rede privada e exclusiva para membros. Essas redes alcançam consenso por meio de “endosso seletivo”, em que usuários conhecidos validam as transações. Os controles de identidade e acesso são mais rigorosos em blockchains privados.

  3. Blockchains sem permissão: essas redes não impõem restrições aos processadores, permitindo que qualquer participante contribua para os processos de validação e consenso da rede.

  4. Blockchains com permissão: as redes com permissão concedem acesso apenas a um conjunto selecionado de usuários que recebem identidades usando certificados. Essas redes têm uma identidade mais robusta e controles de acesso em vigor.
    Ao desenvolver um aplicativo blockchain, é essencial determinar qual tipo de rede se alinha melhor com seus objetivos de negócios. As redes privadas e autorizadas oferecem mais controle e são preferíveis por motivos regulatórios e de conformidade. Em contraste, as redes públicas e sem permissão fornecem maior descentralização e distribuição. Compreendendo os vários mecanismos de segurança e tipos de rede, você pode selecionar a rede blockchain mais adequada para sua aplicação, garantindo segurança robusta e desempenho eficiente.

Identificação de técnicas criptográficas e funções hash

As funções hash criptográficas desempenham um papel essencial para garantir a segurança na tecnologia blockchain. Nesta lição, exploraremos funções hash criptográficas, como elas funcionam e suas aplicações em vários contextos, incluindo blockchain, segurança de senha e segurança de mensagem.

O que são funções hash criptográficas?

Uma função de hash criptográfica é uma função matemática que recebe dados de entrada de comprimento variável e retorna uma saída de comprimento fixo, conhecida como “valor de hash”. Essas funções combinam os recursos de passagem de mensagens das funções de hash regulares com propriedades de segurança adicionais.

Principais conclusões:

As funções hash criptográficas transformam um determinado conjunto de dados em uma cadeia de bits de tamanho fixo. Eles são usados em vários aplicativos, como criptomoedas, segurança de senha e segurança de mensagens.

As funções hash criptográficas são projetadas para serem seguras e fornecem as seguintes propriedades:

  • Sem colisão: dois hashes de entrada não devem ser mapeados para o mesmo hash de saída, reduzindo as chances de manipulação ou falsificação de dados.
  • Oculto: deve ser difícil adivinhar o valor de entrada para uma função de hash de sua saída, garantindo a confidencialidade dos dados.
  • Compatível com quebra-cabeças: deve ser difícil selecionar uma entrada que forneça uma saída pré-definida, promovendo uma ampla distribuição de valores de entrada.
    Essas propriedades são desejáveis, mas nem sempre alcançáveis na prática. No entanto, as funções hash criptográficas ainda são amplamente utilizadas para aumentar a segurança dos sistemas digitais.

Exemplos de funções e aplicativos de hash criptográfico:

  • Criptomoedas: funções de hash criptográficas são cruciais em criptomoedas para processamento seguro de transações. O Bitcoin, por exemplo, usa a função hash criptográfica SHA-256 em seu algoritmo. Merkle Trees, um tipo de hash tree, são usadas em criptomoedas para verificar com eficiência a validade de transações e blocos, agrupando transações e criando um único hash para cada grupo.
  • Verificação de senha: Armazenar senhas como texto simples é inseguro, portanto, a maioria dos sites armazena hashes de senha. Quando um usuário insere sua senha, o sistema faz o hash da entrada e a compara com o valor de hash armazenado para garantir uma correspondência.
  • Geração e Verificação de Assinatura: As assinaturas digitais verificam a autenticidade de documentos ou mensagens digitais. Um esquema de assinatura digital geralmente consiste em três algoritmos: um algoritmo de geração de chave, um algoritmo de assinatura e um algoritmo de verificação de assinatura.
  • Verificando a integridade de arquivos e mensagens: As funções de hash podem ser usadas para garantir a integridade de mensagens e arquivos transmitidos entre o remetente e o destinatário. Ao comparar o valor de hash calculado com um valor publicado, os destinatários podem confirmar que os dados não foram adulterados durante o trânsito.

Importância de proteger contratos inteligentes e chaves privadas

Proteger as chaves privadas é fundamental para manter a integridade e a confiança nos sistemas blockchain. As chaves privadas são usadas para assinar transações e, portanto, essenciais para controlar o acesso aos ativos da blockchain. No entanto, armazenar chaves privadas com segurança pode ser um desafio. Se uma chave privada for perdida ou roubada, os ativos associados a essa chave podem ficar permanentemente inacessíveis.

Computações Multipartidárias (MPCs)

Uma possível solução para esse problema de confiança é o uso de cálculos multipartidários (MPCs). Os MPCs permitem a divisão de uma chave privada entre vários participantes, descentralizando seu uso. Protocolos como gerações de chaves descentralizadas (DKGs) garantem que a chave privada nunca esteja totalmente presente em nenhum lugar e, desde que um número suficiente de participantes aja honestamente, o sistema permanece seguro. Projetos como o Axelar implementam essa abordagem para permitir a interoperabilidade entre diferentes blockchains.

Contratos inteligentes de conhecimento zero

Contratos inteligentes de conhecimento zero, ou zkapps, oferecem uma abordagem diferente. Nesses sistemas, um detentor de chave privada pode executar a lógica associada à chave privada localmente, como assinar uma transação Bitcoin. Graças às provas de conhecimento zero (ZKPs), outras pessoas podem verificar se a chave privada foi usada corretamente de acordo com o contrato sem conhecer a própria chave privada. No entanto, essa abordagem requer confiança no detentor da chave para não vazar a chave ou usá-la de forma maliciosa.

Abstração de conta

A abstração de contas é outra técnica que pode ser usada para aumentar a segurança das chaves privadas. A abstração de conta permite que contratos inteligentes mantenham chaves privadas e executem operações de assinatura. Essa abordagem oferece maior flexibilidade na criação de contratos inteligentes e reduz o risco de perda ou roubo de chaves.

Combinando MPC com provas de conhecimento zero:

Para expandir o escopo das operações seguras de contratos inteligentes, os pesquisadores propuseram combinar o MPC com provas de conhecimento zero. Esta abordagem permite a execução de qualquer programa de forma segura e verificável (via ZKPs), com diferentes partes do programa originadas de diferentes participantes (via MPC).

Um artigo recente intitulado “Experimentando com zk-SNARKs Colaborativos: Provas de Conhecimento Zero para Segredos Distribuídos” apresenta uma solução para combinar essas duas técnicas. Embora ainda não existam implementações on-chain, prevê-se que essa inovação possa abrir novas possibilidades para blockchains programáveis.

Ao explorar e implementar soluções inovadoras, como contratos inteligentes de conhecimento zero, cálculos multipartidários e a combinação de MPC com ZKPs, podemos avançar no campo da segurança de blockchain e desbloquear novos aplicativos para essa tecnologia transformadora.

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.