Blockchain Parte1

Blockchain pode ser interpretado como uma caderneta bancária, nela é registrado o histórico de todas as transações realizadas na nossa conta bancária.

Categoria de Tecnologia

Postado em 07 abril 2022

Atualizado em 21 julho 2022

Palavras-chave: cryptocurrency,criptomoeda,dinheiro,virtual,digital,blockchain,hash,sha256,criptografia,assimétrica,fintech

Visualizações: 1604

Antigamente, correspondências eram trocadas pelo correio. Cartas eram escritas em papel e transportadas manualmente. Dependendo da distância, poderiam demorar até semanas para a carta chegar até o seu destino.

Com a chegada da internet, tecnologias inovadoras foram criadas. Uma delas é o email. Com um email eletrônico, tornou-se possível mandar cartas de modo digital com extrema facilidade.

A criptomoeda também foi uma inovação no mundo digital. A criptomoeda pode ser utilizada como dinheiro para compras e vendas, de modo totalmente digital.

O que torna a criptomoeda tão eficiente e segura é o blockchain.

O que é blockchain?

Blockchain é base para muitas criptomoedas, como bitcoin. Graças à essa técnica é possível criar um sistema financeiro descentralizado extremamente seguro.

blockchain

Blockchain pode ser traduzida para “corrente de blocos”, podendo ser interpretado como uma caderneta bancária. Na caderneta bancária é registrado o histórico de todas as transações realizadas na nossa conta bancária. No blockchain isso funciona da mesma forma, porém a grande diferença é que todos os usuários usam a mesma caderneta.

Uma caderneta bancária compartilhada por muitos usuários não parece ser muito segura, pois usuários podem sacar mais dinheiro do que depositaram e isso seria um grande problema se de fato fosse possível.

Cada transação feita no blockchain corresponde à um bloco adicionado ao chain (corrente). Cada bloco possui uma assinatura digital. É essa assinatura digital que vai permitir você sacar apenas o dinheiro que você depositou. Essa quantia pode variar dependendo da oscilação da criptomoeda.

Imagine a seguinte situação:

PedroBlockchainLucasComprou R$10Comprou R$10PedroBlockchainLucas

Lucas e Pedro compraram 10 reais de criptomoeda cada um, gerando dois blocos que serão conectados ao final do blockchain.

...
Bloco1
Bloco2
- Bloco 1 Bloco 2
prevHash cf73e7…
hash cf73e7… 881b29…
dados 75aacb… 864fa8…
timestamp 1649404053 1649490453

prevHash = Hash do bloco anterior
hash = Hash do bloco atual
data = Todos os dados da transação
timestamp = Data da transação

Podemos observar que todos os dados são criptografados, por isso não conseguimos saber os dados da transação.

Para criptografar esses dados usamos um algoritmo matemático chamado hash. O hash é unidirecional, portanto não é possível descriptografar dados que já foram criptografados.

Existem vários tipos de hash, o hash utilizado no bitcoin é o SHA256. O SHA256 transforma qualquer mensagem em uma mensagem criptografada de 64 letras e números.
O número de mensagens criptografadas que podem ser geradas por esse algoritmo é astromicamente grande.

SHA256=2256 SHA256 = 2^{256}

Porém isso não é o bastante. Apesar da demora, uma mensagem criptografada por SHA256 pode ser adivinhada usando um computador que pode fazer mais de 1000 tentativas por segundo. O agressor usa mensagens aleatórias que são criptografadas até encontrar o mesmo hash do bloco anterior. Isso é possível porque se duas mensagens completamente iguais serem criptografadas, o resultado vai ser o mesmo.

Antes Depois
dicionariotec c951a…563
dicionariotec c951a…563

É possível observar que o resultado é exatamente igual. Se mudarmos uma letra, o resultado é totalmente diferente.

Antes Depois
dicionariotec c951a…563
dicionariotec1 098b6…983

Apesar de ser um algoritmo poderoso, o hash pode ser adivinhado.

Felizmente, há medidas para evitar esse tipo de ataque, usando criptografia assimétrica. Ou seja, adicionando mais uma camada de criptografia.

Antes dos dados serem criptografados, a chave privada do usuário que fez a transação irá ser adicionada aos dados. Assim, quando esse usuário quiser acessar essa transação no futuro ele terá que usar a chave pública que ele possui. A chave pública se tornará a assinatura digital. Se essa chave for perdida o acesso à transação também irá ser perdida.

Conclusão

Blockchain é um sistema simples com um mecanismo seguro e transparente.

Todas as transações são criptografadas e gravadas em forma de bloco. Esse bloco será adicionado a corrente, formando uma corrente longa contendo todas as informações de transações.

Projetos práticos

Integrando o PHP com Elasticsearch no desenvolvimento de um sistema de busca

Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.

Tutorial de programação do jogo da serpente em javascript

Programando o clássico jogo da serpente usando o framework p5.js. Tutorial indicado para iniciantes da programação que querem aprender os conceitos básico da área criando jogos.

Implementando um algoritmo de pathfinding

Implementando um programa que encontra a menor distância entre dois pontos dentro de um labirinto usando o algoritmo A* (a-estrela).

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Veja também

O usuário malicioso joga a isca e espera a vítima pacientemente

Phishing tem esse nome pois a vítima se torna só mais um peixe na rede. Ter conhecimento de phishing é o melhor jeito de evitar ser um desses peixes

Nunca se sabe quando tem alguém nos espionando no nosso computador

Um computador conectado à internet está exposto a diversos perigos. O spyware é um deles e é esse malware responsável por roubar contas de redes sociais.

Ativação de produto

O código de ativação de softwares tem como objetivo prevenir a pirataria e revenda de produtos sem o conhecimento e autorização do autor.

Armazenamento de áudio

A digitalização de um som é feito através de um conversor analógico-digital, que transforma uma grandeza contínua em uma grandeza discreta.

Blockchain Parte2

PoW atua como um intermediário não-humano entre os negociadores de criptomoedas. Em média, uma transação em bitcoin dura 10 minutos.

Assinatura Digital

A assinatura digital é utilizada para provar a legitimidade dos dados enviados, usando técnicas de hash e algoritmo de chave assimétrica.