quarta-feira, 30 de junho de 2021

Dados distribuídos

Blockchain é banco de dados público e distribuído, criptograficamente protegido, com data e hora de todas as transações que ocorreram na rede como no Bitcoin por exemplo. Quanto ao, "Distribuído", significa que informações na blockchain são transmitidas e gravadas nos nós da rede, inexistindo banco de dados central, com qualquer usuário podendo consultar as transações e verificar quantos bitcoins, por exemplo, pertenceram a qualquer endereço específico e em qualquer momento, dando transparência, evitando duplo gasto sem necessidade de autoridade central confiável. A blockchain bitcoin, por exemplo, se apoia no esforço de mineração em que usuários colocam o poder da computação na resolução de problema matemático que os recompensará com bitcoins, ao passo que ao mesmo tempo produzem hashes que protegem os blocos de dados na cadeia. Conceitualmente, hashes são cadeias de dados produzidos criptograficamente, tornando informações na blockchain impossíveis de adulteração. 

Desenvolvida originalmente ao bitcoin, a blockchain é base de outras criptomoedas sendo usada para outros tipos de registro de dados, quer dizer, os blocos na blockchain podem conter informações sobre identidade, datas ou fatos considerados relevantes à transação. Dois usuários ao participarem de transação bitcoin, implicam que informações sobre a transação sejam transmitidas das respectivas carteiras à outros usuários ou nós na rede. As informações são assinadas digitalmente com data e hora, podendo ser publicamente visualizada permitindo conhecer quem enviou o dinheiro e quem o recebeu, quanto e quando. Examinadas as informações pelos nós, devem ser confirmadas e verificadas se são legítimas com cada um atualizando a cópia blockchain nos respectivos computadores incluindo os novos dados. Os dados são empacotados em um bloco ao lado de dados de outras transações que ocorrem no mesmo momento, sendo que um bloco é como um pacote de um megabyte de informações cronologicamente ordenadas sobre as transações e conectados em ordem de criação para formar a blockchain.

Moral da Nota: quando um novo bloco é criado, as informações são passadas por função hash criando um hash que é uma string única de caracteres identificando determinada informação, quer dizer, para cada bloco específico há um hash específico de modo que os hashes são semelhantes a carimbos especializados matemáticamente vinculados aos blocos correspondentes como se cada bloco tivesse uma ID ou código produzido por algorítmos, em suma, não há dois hashes iguais porque não há dois blocos iguais. Ao ser adicionado um novo bloco à cadeia, o hash do último bloco é incluído nos dados do novo, desse modo, cada bloco contém não apenas informações sobre determinada transação, como no caso do bitcoin, mas com referência às informações do bloco anterior. O bloco anterior contém o hash do bloco anterior e assim sucessivamente cada bloco fazendo referência a blocos anteriores, resumindo, um traço de cada bloco é configurado no hash dos blocos seguintes ligando-os todos em uma cadeia que remonta ao bloco gênese. A violação de dados no bloco único exigiria poder de computação suficiente para editar hashes de todos os blocos subsequentes na cadeia e quanto mais abaixo um bloco estiver na cadeia, mais poder de computação será necessário para editar os dados nele. Imaginando que os blocos são gerados a velocidade constante de 1 bloco/dez minutos é virtualmente impossível editar um bloco, tornando a fraude e o gasto duplo altamente improváveis. Em suma, mineiros sempre vincularão novos blocos ao último bloco da cadeia com um hash fazendo referência a ele, um novo bloco só é considerado válido se conter informações sobre todos os elos da cadeia anterior e uma cópia da cadeia só é válida se começar com o bloco gênesis.