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.
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:
A 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