Se você lida com criptomoedas, certamente já entrou em contato com um blockchain em algum momento. Blockchains também são relevantes no gerenciamento da cadeia de suprimentos, logística, verificação de identidade e uma série de outros campos, então você pode ter usado essa tecnologia mesmo se não estiver em criptografia. Mas quais dados os blockchains armazenam? E, se esses blockchains forem públicos, você deveria se preocupar com o que há neles?
Uma rápida visão geral da tecnologia Blockchain
Antes de discutirmos os dados armazenados em blockchains, devemos primeiro examinar o que é um blockchain em termos simples, para que saibamos com que tipo de tecnologia estamos lidando.
Blockchains são melhor imaginados como cadeias virtuais de blocos, daí o nome. Cada bloco armazena dados usando hashing, um método criptográfico. Isso impede que indivíduos ilícitos explorem os dados da blockchain. Atingida a capacidade de um bloco e confirmada a entrada na rede, outro bloco começa a ser confirmado, seja por meio de
prova de trabalho, prova de aposta, ou outro mecanismo de consenso.Os blocos variam em tamanho, o que significa que a quantidade de informações que eles podem armazenar é diferente. Um bloco Bitcoin, por exemplo, tem apenas 1 MB de tamanho. O mesmo vale para Litecoin e Dogecoin. O Bitcoin Cash, no entanto, tem um tamanho de bloco muito maior de 32 MB, o que significa que mais transações podem ser armazenadas por bloco.
Blocos maiores geralmente dão lugar a tempos de transação mais rápidos e taxas mais baixas, mas não vamos entrar nesse elemento da tecnologia blockchain hoje. Em vez disso, vamos começar com o tipo de dados armazenados no blockchain.
Quais dados um bloco armazena?
O tipo específico de dados que um determinado bloco armazenará pode diferir dependendo da finalidade e da natureza do blockchain. Mas vamos usar o Bitcoin, um dos blockchains mais populares do mundo, para entender bem o armazenamento em blockchain.
Os blocos de Bitcoin são extraídos por meio do mecanismo de consenso de prova de trabalho, em que os mineradores usam hardware especializado para resolver problemas computacionais complexos. Até agora, mais de 760.000 blocos de Bitcoin foram minerados, com cerca de 900 BTC sendo colocados em circulação diariamente. Cada bloco coloca 6,25 BTC em circulação, o que equivale à recompensa elegível para o minerador, ou pool de mineração, que minera o bloco.
Bitcoin está chegando perto de seu limite de fornecimento de 21 milhões de BTC. Depois que esse limite for atingido, não será possível minerar mais BTC. Mas, à medida que as transações de Bitcoin continuam a ser realizadas, os blocos precisarão continuar a ser adicionados ao blockchain para manter o livro-razão imutável.
Os dados dentro de um bloco Bitcoin são hash usando o algoritmo de hash criptográfico SHA-256. Diferentes criptomoedas usam diferentes algoritmos de hash. Ethereum, por exemplo, usa Ethash. Muitos governos também usam SHA-256 para hash de dados.
Um bloco Bitcoin consiste em algumas seções diferentes. Vamos começar com o cabeçalho do bloco.
O Cabeçalho do Bloco
Um cabeçalho de bloco Bitcoin armazena o seguinte tipo de dados:
- Tempo de transação
- Nonce
- bits
- hashMerklRoot
- hashAnteriorBloco
- Versão
O tempo de transação contém um carimbo de data/hora que representa a hora em que a transação ocorreu. Blocos armazenam transações em ordem cronológica.
O nonce (abreviação de "número usado apenas uma vez") desempenha um papel muito importante no processo de mineração de prova de trabalho. Este é o número que um minerador deve atingir resolvendo problemas computacionais. Se um minerador resolver o nonce, ele poderá minerar o bloco com sucesso. Com o tempo, torna-se cada vez mais difícil minerar blocos à medida que a dificuldade de mineração do Bitcoin (ou seja, quão difícil é minerar um bloco) aumenta.
Em seguida, temos o bits. Este campo também se relaciona com o Bitcoin dificuldade de mineração, pois contém a própria dificuldade. Isso pode aumentar ou diminuir com o tempo. Se a dificuldade aumentar, um minerador deve usar mais poder de hash para minerar o bloco. Se diminuir, o mineiro pode usar menos. Claro, os mineradores preferem uma dificuldade menor, pois isso economiza energia e tempo. Em geral, se o número de mineiros aumenta, a dificuldade aumenta com ele.
O hashMerklRoot está associado a uma Merkle Root. Este é um método matemático usado para confirmar as informações em uma árvore Merkle, que é essencialmente uma estrutura de armazenamento de dados. As árvores Merkle usam criptografia para armazenar dados, sendo o hashMerklRoot o hash de todos os hashes das transações armazenadas em um determinado bloco.
hashAnteriorBloco, como o nome sugere, refere-se ao hash de 256 bits do bloco anterior. Cada bloco Bitcoin na cadeia contém o hash do bloco anterior.
Por último, você tem o versão. Este campo simplesmente se refere à versão do protocolo Bitcoin que foi usado. O protocolo Bitcoin usado hoje não é exatamente o mesmo usado quando o Bitcoin foi lançado pela primeira vez em 2008. Atualizações são feitas de vez em quando para melhorar certas partes da rede. A versão mais recente do protocolo é 70015, que foi introduzida em 2017. Esta atualização forneceu a capacidade de banir blocos compactos inválidos da cadeia.
O restante de um bloco Bitcoin
Mas as coisas não param no cabeçalho. Existem outros tipos de dados armazenados em cada bloco Bitcoin, incluindo:
- Tamanho do bloco
- Contador de transações
- número mágico
- Transações
Vamos começar com o tamanho do bloco. Este campo impõe um limite na quantidade de dados que podem ser armazenados em um bloco. Como afirmado anteriormente, o limite de tamanho de bloco do Bitcoin é de 1 MB, mas isso muda de cripto para cripto.
O contador de transações simplesmente conta o número de transações registradas em um determinado bloco Bitcoin. Não existe um número constante de transações que armazenam blocos, pois cada transação pode ter um tamanho diferente. Mas, em média, cada bloco Bitcoin contém entre 1.500 e 2.000 transações, mais ou menos algumas centenas de cada lado.
O número mágico tem um valor constante de 0xD9B4BEF9 e identifica o tipo de arquivo e a estrutura usados no bloco. Os números mágicos também funcionam como um identificador de rede para cada bloco. Este valor constante foi definido por Satoshi Nakamoto quando o Bitcoin foi criado.
O campo de transações lista todas as transações incluídas em qualquer bloco Bitcoin (ao contrário do campo contador de transações, que indica o número de transações no bloco). Como já discutimos, o número de transações armazenadas em um bloco não pode ultrapassar a capacidade de 1 MB.
O Blockchain armazena seus dados pessoais?
Seu nome, detalhes de contato, informações de pagamento e outros dados privados não são armazenados no blockchain. Os únicos dados relacionados a você são o endereço público da sua carteira. Na maioria dos cenários, isso é totalmente benigno. Mas ferramentas de rastreamento mais sofisticadas usadas por agências governamentais e outros analistas de blockchain podem descobrir sua identidade por meio de seu endereço, se tentarem o suficiente.
A maioria das criptomoedas existentes são pseudônimas e rastreável até certo ponto. É por isso que alguns preferem moedas de privacidade, como ZCash e Monero, pois podem ocultar o endereço da carteira ao negociar esses ativos.
Os dados do Blockchain desempenham um grande papel na rede
Sem dados de bloco, não haveria como registrar e rastrear transações, o que é uma parte inerentemente importante da tecnologia blockchain. Fornecer um livro-razão imutável fornece segurança e transparência, permitindo que os usuários verifiquem vários tipos de informações dentro da rede, como valores de transações,