quarta-feira, 4 de janeiro de 2023

Conceitos Bitcoin

O Criador do Bitcoin, Satoshi Nakamoto, no white paper em 2008 se referiu como uma “versão ponto a ponto de dinheiro eletrônico, permitindo que pagamentos online fossem enviados diretamente de uma parte a outra sem passar por instituição financeira.” Ao descrever blockchain, escreveu que “a rede marca data/hora das transações, colocando-as em cadeia contínua de prova de trabalho baseada em hash, formando registro inalterado sem refazer a prova de trabalho. A cadeia mais longa não serve apenas como prova da sequência de eventos testemunhados, mas prova que veio do maior pool de energia da CPU.” Caso a maior parte do poder computacional, 51% ou mais, seja controlada por 'nós' que não abrigam intenção maliciosa de cooperar para atacar ou corromper a rede, a blockchain ficará mais longa ultrapassando invasores e, no white paper, observa que os 'nós' podem se juntar novamente à rede e, têm que aceitar cadeia mais longa como prova de transações que ocorreram enquanto estavam fora.

Para entender mais sobre como as transações funcionam na blockchain, um exemplo sobre como a blockchain Bitcoin é programada para funcionar. Convencionalmente para enviar R$ 1 mil de um usuário a outro, notifica-se o banco, entidade centralizada ao iniciar a transação e, após verificação de fundos para realizar a transação, o banco atualiza seu banco de dados sendo que o saldo no banco de dados deduzido em R$ 1 mil e o saldo do receptor aumentado no mesmo valor, neste exemplo, presume-se utilização do mesmo banco. Para enviar Bitcoins, o processo é diferente, aqui, entidade centralizada como um banco não realiza verificações e não atualiza saldos pois inexiste entidade singular responsável por isso e, em vez disso, os 'nós' daquela blockchain específica estarão envolvidos na transação decorrente ao design descentralizado. Para enviar um Bitcoin, o usuário deve saber a chave pública do receptor e, em seguida, transmitir mensagem na rede para que outros 'nós' possam vê-la, sendo que os 'nós', ou usuários, resolvem um quebra-cabeça estabelecido pelo protocolo exigindo que façam hash de transações e outras informações no bloco, processo conhecido como mineração e aqueles que executam a tarefa são chamados de mineradores que devem manter o hash dos dados, modificado a cada vez, até que uma solução válida seja encontrada ao quebra-cabeça e o Bitcoin possa ser enviado ao receptor. Ao encontrar a solução válida à transferência bem-sucedida de Bitcoin, cria-se um novo bloco, gerando recompensa de bloco ao minerador responsável e a transação adicionada ao blockchain do Bitcoin, com todos os outros 'nós' validando e atualizando suas cópias do razão para refletí-la, daí, a carteira de criptografia do usuário é atualizada para mostrar que enviou um Bitcoin, enquanto a carteira de criptografia do receptor é atualizada para mostrar que recebeu um Bitcoin, sendo impedido de enviar o mesmo Bitcoin a outra pessoa, conhecido como gasto duplo.

Moral da Nota: para receber Bitcoin ou outro tipo de dinheiro/criptomoeda na blockchain, o usuário precisa de uma chave pública e uma chave privada. A criptografia de chave pública prova propriedade dos fundos e, neste caso, o usuário precisa saber o endereço público do receptor gerado a partir da chave pública para que possa enviar o Bitcoin, sendo que a chave privada, deve ser mantida em segredo como senha que permite acesso pelo proprietário. A chave pública é derivada da chave privada sendo quase impossível fazer engenharia reversa do processo para obter a chave privada. Se o usuário não revelou sua chave privada só ele pode acessar e gastar o Bitcoin enviado a ele. Neste conceito se inserem, por exemplo, a Ethereum, uma das blockchains mais populares, distribuída e descentralizada, permitindo usuários executar código de programação de aplicativos descentralizados, ou, o Ripple que permite liquidações brutas em tempo real, câmbio e remessas através da blockchain.