
BlockChain Security Construction
Neste artigo, apresentamos principalmente vários aspectos da auditoria de cadeia pública que merecem atenção. Para auditores de segurança e desenvolvedores de cadeias públicas, este é um projeto digno de referência e reflexão.
Antes de apresentar a construção do sistema de cadeia pública, vamos dar uma olhada na arquitetura do blockchain:
Era Blockchain 1.0:
Arquitetura: conforme mostrado na figura abaixo
Produtos representativos: bitcoin, reborn coin, dogcoin, Leyte coin, MasterCard coin, etc

Era Blockchain 2.0:
Arquitetura: conforme mostrado na figura abaixo
Produtos representativos: Ethereum, lisk, hyperledger, etc
Principais mudanças:

Era Blockchain 2.0
Arquitetura: conforme mostrado na figura abaixo
Produtos representativos: EOS, VaR, AE, ash, ELA, dfinity
Principais mudanças: os cenários de aplicação do blockchain em todos os setores da sociedade fora do setor financeiro podem atender a uma lógica de negócios mais complexa

A seguir, faremos uma breve introdução aos problemas dignos de consideração na construção de segurança da cadeia pública blockchain, de acordo com a arquitetura do blockchain. Cerca de 75% dos problemas já causaram incidentes de segurança em cadeias públicas, sendo também alguns pontos dignos de atenção na auditoria de segurança de cadeias públicas. Aqui, nós os apresentamos na forma de perguntas para despertar nossa reflexão. Se você quiser discutir mais a fundo, pode fazê-lo diretamente na issue:
A camada de dados é a tecnologia da camada inferior, e suas principais funções são armazenamento de dados, implementação de contas e transações e segurança. O armazenamento de dados é baseado principalmente na árvore de Merkle, que é realizada pela estrutura de bloco e cadeia. A maioria deles é persistida por banco de dados kV, como bitcoin e leveldb adotados pela Ethereum.
A camada de dados merece reflexão sobre os seguintes pontos:
O principal objetivo da camada de rede é realizar a interação de informações entre os nós da rede blockchain. A essência do blockchain é uma rede ponto a ponto (P2P). Cada nó pode receber informações e também produzir informações. Os nós mantêm a comunicação ao manter um blockchain comum. Na rede blockchain, cada nó pode criar um novo bloco. Depois que o novo bloco é criado, outros nós serão notificados por broadcast. Por sua vez, outros nós verificarão o nó. Quando mais de 51% dos usuários da rede blockchain passarem pela verificação, o novo bloco será adicionado à cadeia principal.
Há vários pontos que merecem reflexão sobre a camada de rede
O design do algoritmo de descoberta de nós da cadeia pública é razoável?
O design dos nós da cadeia pública é razoável?
O design do mecanismo de punição é razoável?
O design do protocolo de comunicação é razoável?
O design do processamento de solicitações do nó da cadeia pública é razoável?
Há um limite no tamanho do pacote de processamento de solicitações?
O design do mecanismo de comunicação de transações da cadeia pública é razoável?
O mecanismo de sincronização de dados de blocos é razoável?
O design da lógica de processamento de transações é razoável?
A camada de consenso permite que nós altamente dispersos cheguem a um consenso sobre a eficácia dos dados do bloco em um sistema descentralizado. Todo blockchain em execução precisa de um algoritmo de consenso para garantir a eficácia e a ordem da saída dos blocos. Os algoritmos de consenso comuns incluem pow, POS, dpos, Poa, POC, etc.
No nível de consenso, devemos considerar os seguintes pontos:
O design do algoritmo de consenso da cadeia pública é seguro?
O design da verificação de consenso da cadeia pública é razoável?
O design do confisco de consenso da cadeia pública é razoável?
O design da taxa de serviço da cadeia pública é razoável?
O design de mineração da cadeia pública é razoável?
O design de ajuste dinâmico da dificuldade do bloco é razoável?
O design da lógica de verificação da dificuldade do bloco é razoável?
Design de reorganização da cadeia, reinicialização da cadeia, bifurcação da cadeia, etc?
O objetivo da camada de incentivo da cadeia pública é fornecer certas medidas de incentivo para encorajar os nós a participarem da verificação de segurança do blockchain e garantir o equilíbrio e o desenvolvimento saudável do ecossistema blockchain. Na cadeia pública descentralizada, é necessário estabelecer o mecanismo de incentivo correspondente para encorajar os nós de contabilidade participantes que cumprem as regras, e estabelecer o mecanismo de punição para punir os nós de contabilidade participantes que não cumprem as regras. A camada de incentivo do blockchain introduz fatores econômicos no sistema tecnológico do blockchain, o que melhora a eficiência da cooperação organizacional e da troca de valores dentro do ecossistema. O mecanismo de incentivo da cadeia pública é um mecanismo importante para garantir o desenvolvimento virtuoso do blockchain.
Há vários pontos dignos de nossa consideração sobre o nível de incentivo
O design do mecanismo de emissão da cadeia pública é razoável?
O design do mecanismo de punição da cadeia pública é razoável?
A camada de contrato encapsula todos os tipos de códigos de script e algoritmos do sistema blockchain, bem como os contratos inteligentes mais complexos gerados a partir deles. Se os três níveis de dados, rede e consenso, como a "máquina virtual" subjacente do blockchain, assumem respectivamente as funções de representação de dados, disseminação de dados e verificação de dados, a camada de contrato é a lógica de negócios e o algoritmo baseados na máquina virtual do blockchain, que é a base para realizar a programação flexível e a operação de dados do sistema blockchain. A maioria das criptomoedas digitais, incluindo bitcoin, usa código de script simples não Turing completo para programar e controlar o processo de transação, o que também é o rudimento do contrato inteligente. Com o desenvolvimento da tecnologia, existem linguagens de script Turing completas, como a Ethereum, que podem realizar contratos inteligentes mais complexos e flexíveis. O blockchain pode suportar muitas aplicações de sistemas financeiros e sociais macro.
Devemos considerar os seguintes pontos sobre a camada de contrato: