Gostei do seu post
@choqueibtc . Vamos falar do
@narcelio hoje então? Quem é ele? Um FALSO cypherpunk, pois cypherpunk WRITE CODE. O maluco se autointitula "cypherpunk" na bio do X, e leigos e incautos que o conheceram no X juram que ele seria um "bitcoiner da primeira geração" (a galera tá achando que ele é FUNDADOR DO BITCOIN hahaahaha). Esse
@narcelio afirmou uma vez pra mim que bitcoin NUNCA teve nenhum bug que permitia geração de chave privada com entropia fraca, nesse post (print em anexo):
x.com/narcelio/status/194824…
Veja essa noticia: "SD Times Blog: Google admits an Android crypto PRNG flaw led to Bitcoin heist Last week, thieves hijacked Bitcoin transactions and stole approximately US$5,720 worth of Bitcoins from Android digital wallet apps. This week, we know how they did it. In a blog post yesterday by Android Security Engineer Alex Klyubin, Google revealed that flaws in Android’s Java and OpenSSL crypto PRNG (pseudorandom number generator) led to the theft of more than 55 Bitcoins." Fonte:
sdtimes.com/android/sd-times…
Ou seja, se o próprio google admitiu uso de OpenSSL com /dev/urandom, como fica? Ele desconhece a história, e sim, foram geradas muitas carteiras com android nessa epoca.
Se não era um problema do BITCOIN CORE devido a usar o LIXO do ECDSA, que foi desaconselhado pelo DJB aka
@hashbreaker desde 2009, pq diabos temos isso aqui no changelog do BITCOIN core v0.12.0 lançado em 2016 e pq foi criada a RFC 6979 e implementado no BITCOIN CORE? Fonte:
bitcoin.org/en/release/v0.12…
Vamos agora pra parte técnica? Acompanha aqui
@choqueibtc risos
Entre 2009 e 2013 o Bitcoin usava o OpenSSL como biblioteca de assinatura ECDSA, o que o tornava diretamente dependente da entropia provida pelo sistema operacional e do PRNG (pseudorandom number generator), interno da OpenSSL. Diversos ambientes, em especial Android e distribuições Linux com /dev/urandom mal semeado, geravam nonces com entropia insuficiente. Isso não é teoria, é histórico, em agosto de 2013 o Google admitiu publicamente um bug grave no PRNG do Android que permitiu o roubo direto de bitcoins de carteiras baseadas em OpenSSL. Foram MUITOS BTC roubados em carteiras de usuários, pois o nonce ECDSA era previsível e reutilizado, exatamente o cenário que o RFC 6979 veio corrigir.
Durante quatro anos inteiros, de 2009 a 2013, todas as transações Bitcoin assinadas com OpenSSL estavam potencialmente vulneráveis caso o ambiente de entropia fosse fraco, e isso incluía não só Android mas também servidores headless, Linux Desktop, carteiras de corretoras, carteiras de pools de mineração, containers e carteiras web que não inicializavam corretamente o PRNG. Em 2013, após o incidente, Pieter Wuille propôs o uso de nonces determinísticos conforme o RFC 6979, onde o nonce é derivado da chave privada e do hash da mensagem, eliminando a dependência do PRNG do sistema. Essa mudança só se consolidou em 2014, com a integração da libsecp256k1, e só se tornou padrão absoluto com o Bitcoin Core v0.12.0 em 2016, ou seja, por quase sete anos o ecossistema esteve exposto ao risco real de extração de chaves privadas via baixa entropia.
A alegação do
@narcelio de que nunca houve nenhum problema no bitcoin é desinformação, um desserviço! A vulnerabilidade é amplamente documentada, resultou em perdas reais de bitcoins de usuários e empresas, e foi um dos motivos pelos quais a comunidade abandonou o uso de OpenSSL no Bitcoin. Qualquer usuário que ainda possua carteiras antigas, especialmente criadas entre 2009 e 2013, ou importadas de sistemas Android e de distribuições Linux antigos deve IMEDIATAMENTE migrar seus fundos para novas carteiras que usem nonces determinísticos, RFC 6979, e a biblioteca libsecp256k1 moderna. Ignorar é burrice, e quem nega esses fatos simplesmente não entende a história do bitcoin, e não entende nada de segurança cibernética.
Eu fiz um código que varre a blockchain do bitcoin, e que te mostra wallets com mais de 3 transações assinadas com chave publica com entropia fraca na geração da wallet. O código fonte está aqui:
github.com/coffnix/maxicrypt…
Quem entende de computadores o mínimo, faz o seguinte, baixa ae o código altere as variaveis RPC_USER, RPC_PASS e DB_PATH, e roda assim, só pra eu testar um negoço aqui,rapidaum:
$ nohup time python $ ~/scanner_rpc_r_checker_on_disk_v1.py --range 0:922052 > ~/scan-btc/scanner_rpc_r_checker_on_disk_v1.log
maximalista bitconheiro é FODA! o cara vai pegar a esposa dando o RABO e vai jogar o colchão fora e aina vai perdoar a esposa. Capaz e ainda brigar com o amiguinho que mandou ele chegar mais cedo em casa pra pegar a esposa no pulo o traindo. risos