Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
November 29, 2021 01:12 am GMT

Aprendendo em pblico: blockchain e criptomoedas

Tenho ouvido em todas minhas bolhas sociais sobre criptomoedas, bitcoin e NFT, mas no entendo nada do assunto. E penso que eu que trabalho com programao deveria ter um bom entendimento. Ento j hora de acabar com isso! Aqui neste primeiro post eu vou registrar minhas perguntas e respostas que for encontrando, tentando documentar a minha linha de raciocnio durante meu aprendizado.

As perguntas iniciais que tenho em mente so:

  • O que e como funciona a blockchain?
  • O que criptomoeda e bitcoin?
  • Por que criptomoeda tem valor?
  • Por que o valor das criptomoedas variam tanto?
  • Por que hoje as criptomoedas esto valendo muito?
  • O que NFT?
  • Criptomoeda realmente a moeda do futuro ou existe outra soluo?

Ento vamos comear entendendo o que blockchain.

Bom, depois de ler alguns artigos[1][2] e assistir alguns vdeos[3], o que tenho a dizer com minhas palavras que blockchain uma base de dados que registra o histrico de transaes e que armazena esses dados de forma descentralizada, ou seja, esses histricos no ficam armazenados em apenas um computador, mas sim em todos os computadores que utilizam esse banco de dados.

Aqui vai minha primeira epifania: o blockchain uma tecnologia inicialmente independente do bitcoin ou qualquer criptomoeda.

Vou dar um exemplo prtico: Joana tem um carro e ela vai vend-lo para Maria. Para isso, aps o negcio fechado entre as duas, Joana deve fazer todo o processo de transferncia de titularidade do veculo no Departamento Estadual de Trnsito (DETRANs), que detem um banco de dados nacional onde tem o registro de que Joana a atual proprietria do carro. Ao fazer a transferncia, vai ficar registrado no histrico do veculo que Joana vendeu o carro para Maria.

Perceba uma coisa: o banco de dados de propriedade do DETRAN e s ele pode verificar que seus dados no foram corrompidos. E se Paulo, um hacker muito talentoso, quisesse passar o carro de Joana para seu prprio nome? Ele simplesmente invadiria o sistema do DETRAN e trocaria o registro para seu nome e pronto, ningum contestaria os dados.

O blockchain resolve esses dois principais problemas: a centralizao e a corrupo dos dados.

Vamos entender como o blockchain descentraliza o armazenamento dos dados.

Funcionaria assim: cada pessoa teria uma cpia completa do banco de dados em seu computador e cada mudana que acontecesse seria refletida no computador de todo mundo atravs da internet. Ento no exemplo acima, a Joana, ao invs de ir no DETRAN, simplesmente abriria o seu computador, entraria com sua conta e senha no sistema e alteraria a titularidade do seu carro para Maria e essa transao surtiria efeito no computador de todo mundo.

Por que a descentralizao uma coisa boa?
Geralmente, a descentralizao sempre bom pois assim o controle no fica na mo de apenas uma instituio ou pessoa. No caso de um banco de dados, tambm h o fato de que se este fosse armazenado num nico servidor do DETRAN ele estaria sujeito a perda de todos os seus registros caso acontecesse algum acidente corrompendo seus dados. Mas tendo uma cpia completa em cada computador, a corrupo dos dados teria que ocorrer em todos os computadores.

E sobre a corrupo dos dados?
Blockchain significa corrente de blocos e, assim como em uma corrente, a quebra de um nico n compromete a corrente inteira.

O que so esses blocos de dados?
Cada bloco de dados da blockchain composto por trs fatores:
Os seus dados: as transaes, como por exemplo Joana vendeu o carro para Maria.
A sua impresso digital, que em computao chamada de hash.
E a impresso digital (hash) do bloco anterior.

Sendo assim, a corrente formada pela ligao que cada bloco tem com o bloco anterior.
A voc me pergunta: t, mas o que esse tal de hash? Pois bem, o hash uma cadeia de 64 letras e nmeros que formada a partir de um dado. No nosso caso, estamos usando o dado Joana vendeu o carro para Maria. O hash para o nosso dado o seguinte (gerado aqui):

1d4140f617daa6fca841970bc05654f99a8e4ff37cda82acfb6331c5d54ae383

Bem doido, n? O que faz o hash ser to especial que existe um nico para cada dado, seja ele qual for. Isso calculado atravs de um algoritmo chamado SHA256, que eu ainda no sei como funciona, mas qualquer dia vou querer dar uma olhada mais a fundo.

Ento voltando cadeia: se um bloco tem o seu hash e o do bloco anterior, caso haja alguma alterao no bloco anterior, todos os blocos posteriores vo acusar que tem coisa errada ali. Por isso a segurana contra corrupo.

Se voc for neste link, pode ver qual o hash gerado para o dado que escrever.

Vou experimentar mais um pouco: meu primeiro bloco de dados vai ter as seguintes informaes:
O seu dado: Joana comprou um carro;
O hash do bloco anterior vai ser 00000 pois no existe bloco anterior.
Seu prprio hash: 6dece74df8d16ac04568a4f6374daa7e0647a25662813d99bd7eb47c7689a1b7

Print do bloco um

Agora meu segundo bloco vai ter as seguintes informaes:
Joana vendeu seu carro para Maria
Hash anterior: 6dece74df8d16ac04568a4f6374daa7e0647a25662813d99bd7eb47c7689a1b7
Seu Hash: 0a3353754007af8414bfb31ad4aca356120151453686e517fdd2e82d09c3d278

Print do bloco 2

Se o primeiro bloco tiver qualquer alterao, o seu hash vai mudar. E como o segundo bloco tem registrado o hash original do primeiro bloco, ele vai comparar com o hash alterado e vai acusar que tem informao alterada ali!
Ento dessa forma a cadeia de blocos garante que seus dados no foram corrompidos.

Navegando por este site de demonstrao de blockchain[4], voc pode encontrar as pginas que demonstram melhor e tambm os vdeos de explicao, que eu achei timos vale dar uma olhada.

Ao assistir os vdeos que falei ali em cima, me deparei com alguns outros conceitos:

  • A assinatura de bloco
  • O nmero Nonce
  • E a minerao de um bloco

Esses trs conceitos so interligados, ento sero explicados juntos.

Sabemos que uma rede blockchain no depende de um nico servidor, sendo assim, qualquer um com acesso a rede pode gravar dados na blockchain. claro que cada um deve ter sua conta e senha para fazer qualquer operao, mas mesmo assim, usurios maliciosos podem fazer uma coisa chamada ataque de negao de servio (tambm conhecido como DoS Attack, um acrnimo em ingls para Denial of Service). Esse tipo de ataque consiste em enviar vrios dados para a rede fazendo com que esta se sobrecarregue e ento trave ou pare de responder. E para prevenir este ataque a blockchain requer que quem quer enviar dados rede tenha um trabalho computacional. Aqui nos deparamos com o conceito de Prova de trabalho.

Essa prova de trabalho consiste em encontrar um nmero que, ao ser adicionado ao corpo do bloco a ser criado, gere um hash especfico.

Este nmero mgico chamado de nonce[5], acrnimo para number once, ou nmero nico, pois ele realmente o nico nmero que pode satisfazer uma condio.

E o ato de procurar esse nmero chamado de minerao.

Vamos voltar ao exemplo de Joana vendendo seu carro.

Image description

Na imagem acima, que do site j citado para demonstraes de blockchain, Temos um bloco que tem nmero 1, tem o nonce 72608, o dado Joana vendeu seu carro para Maria e o seu hash. O bloco est vermelho pois o seu hash no satisfaz a condio, que no caso que o hash deve comear com quatro dgitos zeros. Essa condio varia com o tempo para dificultar ou facilitar a prova de trabalho.
Ento, para chegar ao hash que satisfaa a condio, o computador vai testando vrios nmeros que, junto com o dado e o nmero do bloco, vo gerar um hash que inicie com quatro zeros.

Ao clicar no boto mine, vamos minerar e chegar ao resultado correto.

Image description

Agora nosso bloco est verde, indicando que foi validado, ou assinado, e o seu nonce 62449, fazendo com que o seu hash inicie com 4 dgitos zeros.

Se voc for no site e testar, ver que ao clicar em Mine demora pelo menos um segundo para chegar ao resultado correto, ou seja, no um nmero fcil de ser calculado e isso impede que algum com ms intenes tente publicar milhares de blocos de uma s vez na rede.

E aqui me veio um esclarecimento bem grande: a minerao necessria apenas por causa da camada de segurana. O que eu quero dizer que, a lgica base da blockchain, que registra dados em cadeia, no precisa encontrar um nmero que satisfaa uma condio. Isso era uma coisa que me deixava beem confuso esse conceito de minerar bitcoin. Olha s, na real o que minerado o nonce!

Bom, acredito que aqui j cheguei num novo nvel de entendimento sobre a blockchain e com novas perguntas que tentarei entender no prximo post:
Se o que minerado o nonce, por que existe a confuso de minerar bitcoin?
O que acontece se dois computadores descobrirem o noce ao mesmo tempo?

Fico por aqui e at o prximo post!

[1] https://pt.wikipedia.org/wiki/Blockchain
[2] https://blog.nubank.com.br/o-que-e-blockchain/
[3] https://www.youtube.com/watch?v=dkElPTevoR4
[4] https://andersbrownworth.com/blockchain/
[5] https://youtu.be/rZaGbEcs7ag


Original Link: https://dev.to/mrsaxobeat/aprendendo-em-publico-blockchain-e-criptomoedas-19ll

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To