O Dragão da Inflação acordou

Duas semanas atrás saiu o novo índice de inflação dos Estados Unidos, que mesmo tímido em 1,5% trouxe algum desconforto… Mas olhem o aumento das matérias primas…

A inflação americana, mais ou menos como a brasileira é medida por uma “cesta de produtos e serviços”. Só que eles mudam os produtos a cada estação na justificativa que o consumidor também faz essa mudança. O problema é que eles acabam comparando “laranjas com limões” e a metodologia não é exata.

Com a bolsa-covid sendo dada em todo o mundo, só nos EUA se imprimiu 25% a mais do que TODO DOLAR JÁ IMPRESSO ANTERIORMENTE e isso vai deixar o dragão da inflação super agitado.

Tudo vai subir de preço e/ou desvalorizar. Nosso dinheiro vai pro saco.

No primeiro momento o bitcoin vai sentir essa retração, mas quando o dragão pegar, será a única garantia contra a desvalorização. Lembro que o bitcoin é “anti-inflacionário” por diminuir sua emissão com o tempo e é um artigo já raríssimo: se cada milionário resolver comprar bitcoin, cada um só poderá comprar meio, porque temos 52 milhões de milionários e apenas 18 milhões e 600 mil bitcoin no dia de hoje, fora os perdidos forever…

Não é um aconselhamento financeiro, mas… estoque bitcoins.

Uma Blockchain para chamar de sua: Eu tenho!

Hoje o hype do momento são as criptomoedas e a blockchain. E o que é a tal de blockchain?

Se você procurar no goggle, logo depois dos anúncios das empresas que querem se apoderar da blockchain, como a IBM, vem a definição fria:

blockchain (também conhecido como “o protocolo da confiança”) é uma tecnologia de registro distribuído que visa a descentralização como medida de segurança.[1] São bases de registros e dados distribuídos e compartilhados que têm a função de criar um índice global para todas as transações que ocorrem em um determinado mercado. Funciona como um livro-razão, só que de forma pública, compartilhada e universal, que cria consenso e confiança na comunicação direta entre duas partes, ou seja, sem o intermédio de terceiros.

Então você não entende nada na prática, mas pelo menos sabe que essa coisa foi o que dá sustentabilidade para o Bitcoin e as demais criptomoedas e o Satoshi Nakamoto era um cara esperto, talvez o mais esperto, e quer saber mais!

Divido rapidamente aqui minha descoberta sobre a blockchain com vocês. A idéia é reunir num arquivo de tamanho limitado a 1 Megabyte transações de compra e venda de criptomoedas, incluindo o valor, o destinatário e a assinatura do emissor de cada transação e a referência do bloco anterior. Esse bloco, quando “fechado” é criptografado num padrão conhecido por SHA256 e deve ser escolhido um número (que vamos chamar de nounce) que faz o SHA256 do bloco ser menor do que um número hexadecimal que começa com um moooooooonte de zeros. Essa é a charada. Um esquema de tentativa e erro. Quem no mundo descobrir primeiro um “nounce” que resolve o enigma proposto, ganha a recompensa em bitcoins e o bloco validado é “ligado” aos demais blocos anteriores, formando assim a famosa Blockchain.

Os caras, depois de Satoshi, passaram a usar essa idéia de blockchain em diversas aplicações. As aplicações mais tradicionais e babacas, como substituição de cartórios, registros médicos e etc, não me interessam, por serem obviedades. Agora, as possibilidades de ligação das blockchains com sistemas inteligentes de informação, baseados em oráculos e sensores de IoT são as áreas que me chamam a atenção por serem realmente disruptivas: as DO´s, ou Organizações Descentralizadas, com aplicações de I.A. serão tudo no futuro e a segurança será realizada pela Blockchains.

Feito esse teaser para nerds e simpatizantes, falo agora da minha experiência prática na programação de uma blockchain para se chamar de minha: A RubisChain!

A linguagem base foi em PYTHON, principalmente por causa das bibliotecas fantásticas que ela tem, e também por eu estar usando PYTHON em vários outros projetos, inclusive o microPython, para os microconntroladores ESP32. No Python eu usei a funçao hashlib para codificar os blocos com o mesmo algoritmo de critografia SHA256 do Bitcoin.

O código gera um primeiro bloco zerado, e depois gera um “bloco” com dados aleatórios e a referência do bloco 0, o bloco Gênesis. A dificuldade matemática eu limitei a apenas 4 zeros, (if hash_operation[:4] == ‘0000’:), o que leva a descoberta do nounce correto em segundos, no meu notebook Core i5. Se aumentar para 5 zeros, já demora um pouco mais e com 6 zeros, leva minutos. Com 7 não tive saco de esperar. Nos blocos atuais do bitcoin a dificuldade está em 19 zeros! 0000000000000000000… Uau!!!

Para controlar a geração dos blocos e a verificação da blockchain inteira, eu usei uma biblioteca fantástica chamada FLASK. Essa biblioteca cria um servidor WEB e asim podemos interagir com nosso código através de um browser. Mas eu acho que usar browsers é “para os fracos”, então coloquei o aplicativo POSTMAN fazendo chamadas de APIs para o FLASK, que por sua vez, rodava as rotinas da blockchain em PYTHON.

“E funcionou, funcionou, funcionou. E funcionou, mais do que você imagina…”, citando uma velha música do Premeditando o Breque!

Abaixo vão uns prints do projeto:

código fonte – início (usei o Microsoft Visual Studio como IDE)

telas do POSTMAN – Criando os Blocos

telas do POSTMAN – Mostrando toda a BlockChain (no caso, dois blocos , além do bloco Gênesis, o primeiro…)

testando a Blackchain

Bem, essa foi APENAS a parte de geração dos blocos em uma corrente, aka a Blockchain.

A parte que eu acho mais complicada e que eu não entendo muita coisa é a parte da programação dos nodos da rede, com os protocolos de comunicação e as rotinas de consenso.

Mas isso fica para uma próxima oportunidade!

Fui! Divirtam-se com as blockchain e não deem muita bola pro Elon Musk.


Ah, por último, mas não por isso menos importante, esses conhecimentos eu adquiri principalmente no curso BLOCKCHAIN A-Z: APRENDA COMO CONSTRUIR SUA PRIMEIRA BLOCKCHAIN