Conceitos básicos de blockchain (exemplo de iteração com React + Formik)
Tags: blockchain, react, javascript
Published: 2021-01-29 20:50:33

O mundo hoje presa por segurança e privacidade, principalmente no meio econômico. E foi nesse meio que se popularizou a blockchain. Neste artigo vamos entender alguns conceitos básicos desse ecossistema e uma implementação em React utilizando Formik que irá interagir com a rede.

Este artigo é um artefato gerado da apresentação interna da empresa [WA Project](waproject.com.br) e que tem como autores [Marcus Vinicius](https://github.com/5ucr4m), [Claudio Neto](https://github.com/claudionts) e [Ricardo Zorzal](https://github.com/rzorzal)


#O que é Blockchain afinal ?

É um conjunto de transações colocados em blocos protegidos por criptografia formando uma grande corrente e são espalhados por vários computadores. A blockchain é pública e qualquer pessoa pode verificar e auditar as transações.

Todas os blocos da blockchain são validados por pessoas que utilizam poder computacional para calcular o hash de cada bloco para garantir que as informações são verdadeiras e imutáveis. Dentro de cada bloco também encontramos o hash do bloco anterior, o que garante que informações não serão inseridas entre os blocos.

Todos os blocos que são inseridos, são validados pela maioria da rede, ou seja, pelo menos 50%+1  da rede deve concordar que aquela transação é legítima e correta.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/btmdbicsv7rn16lucfyd.png)

#Métodos de validação de transações

###PoW - Proof-of-Work (Poder computacional)
  
  Esse método faz com que as transações sejam difíceis de provar a veracidade, gastando muito poder computacional, ou seja, ele faz o computador usar muito do seu CPU para realizar os cálculos de validação e provar a veracidade do nó.

###PoS - Proof of Stake (Quantidade de Ativos)

  Esse outro usa a quantidade de ativos (tokens). Quanto mais ativos o usuário possuir, maior a chance de ele ser um validador da transação. Assim faz com que não gaste tanto poder computacional, consequentemente menos energia elétrica, mas o usuário ficaria com boa parte dos tokens destinados à essa finalidade.

#Aplicações da blockchain

- Aplicações financeiras

- Contratos inteligentes

- Serviços de cartórios e documentos.

- DNS descentralizado.

#Aplicações reais

- **Arcade.City** - Uma espécie de Uber peer-to-peer

- **Direct.One** - Uso de blockchain para criação de documentos digitais e envio de mensagens transacionais com validade jurídica

- **Nasdaq** - Emissão de título privados via blockchain

- **The DAO - Decentralized Autonomous Organization**: Companhia de venture capital baseada em blockchain ( Fundo de investimento )


#Ná prática, como funciona?

Para demonstrar o funcionamento, criamos um repositório que implementa uma votação usando esse serviço e um exemplo usando React + Formik que irá interagir com a blockchain.

[Blockchain](https://github.com/rzorzal/blockchain-vote-exemple)
[React + Formik](https://github.com/claudionts/blockchain-frontend)

Se quiserem aprender um pouco mais sobre o desenvolvimento do front-end, é só [clicar aqui](https://dev.to/claudionts/utilizando-o-formik-context-15na)!

Essa é uma tecnologia para se ficar de olho em 2021. Muitos sistemas vem crescendo e com o mundo se importante cada vez mais com privacidade e segurança muitas soluções usando blockchain podem vir a surgir. Acreditamos que ficar de olho e entender minimamente o que é e onde pode chegar essa ferramenta, poderá facilitar o desenvolvimento, nos tornando desenvolvedores cada vez melhores.