Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Geração de Endereços Bitcoin com Entropia Otimizada

Geração de Endereços Bitcoin com Entropia Otimizada

Publicado por em


@CanalQb no YouTube


@CanalQb

Geração de Endereços Bitcoin com Entropia Otimizada


Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.



Geração de Endereços Bitcoin com Entropia Otimizada

Neste artigo, apresentamos um script em Python que busca gerar chaves privadas de forma aleatória e controlada, calculando a entropia binária de cada chave e identificando padrões com potencial segurança criptográfica para endereços Bitcoin. O objetivo principal é testar intervalos binários e verificar se as chaves geradas resultam em endereços válidos e com entropia adequada.

Conceito de Entropia em Criptografia

A entropia mede o grau de aleatoriedade em uma sequência binária. Quanto maior a entropia, mais imprevisível e segura tende a ser a chave. O cálculo baseia-se na distribuição dos bits "0" e "1", e uma entropia próxima a 1.0 (em um sistema binário) é considerada ideal para segurança.

Objetivo do Script

  • Gerar intervalos binários aleatórios;
  • Calcular a entropia de cada sequência binária;
  • Validar a geração de chaves privadas em WIF (Wallet Import Format);
  • Verificar se a chave resulta em um endereço Bitcoin válido e específico.

Script Python Completo

import math
import gc
import random
import time
from bit import Key

def validar_sequencia(seq):
    return '000000' not in seq and '111111' not in seq and '00' in seq

def calculate_binary_entropy(bits):
    bits = bits.lstrip("0")
    bit_counts = {'0': bits.count('0'), '1': bits.count('1')}
    total_bits = len(bits)

    if bit_counts['0'] == 0 or bit_counts['1'] == 0:
        return 0.0

    probabilities = [bit_counts[b] / total_bits for b in '01']
    entropy = -sum(p * math.log2(p) for p in probabilities)
    return entropy

def salvar_progresso(ia):
    with open('progresso.txt', 'w') as f:
        f.write(str(ia))

def ler_progresso():
    try:
        with open('progresso.txt', 'r') as f:
            return int(f.read())
    except FileNotFoundError:
        return 1

inicio_bin = '100000000000000000000000000000000000000000000000000000000000000000000'
fim_bin = '111111111111111111111111111111111111111111111111111111111111111111111'

ab = 0 
ia = ler_progresso()
ab = 0

while True:
    random.seed(time.time_ns())
    ab += ia
    quantidade_de_partes = ia + ab

    inicio = int(inicio_bin, 2)
    fim = int(fim_bin, 2) + 1

    if quantidade_de_partes == 0:
        for parte_inicio in range(inicio, fim + 1):
            parte_fim = parte_inicio
            intervalo_binario = (bin(parte_inicio)[2:], bin(parte_fim)[2:])

            entropy = calculate_binary_entropy(intervalo_binario[0])
            int_key = int(intervalo_binario[0], 2)
            key = Key.from_int(int_key)
            wif = key.to_wif()
            target = key.address  
            hex_key = key.to_bytes().hex()

            print(f" {quantidade_de_partes} Parte: \t{intervalo_binario[0]} - Entropia: {entropy} - Wif: {wif} - {target}", end='\r')

    else:
        intervalos = []
        for _ in range(quantidade_de_partes):
            parte_inicio = random.randint(inicio, fim - 2)
            parte_fim = random.randint(parte_inicio + 1, fim - 1)
            intervalo_binario = (bin(parte_inicio)[2:], bin(parte_fim)[2:])
            intervalos.append(intervalo_binario)

        wif = "-"
        target = "-"
        ini = "-"

        for idx, (ini, fin) in enumerate(intervalos):
            if not validar_sequencia(ini):
                continue

            entropy = calculate_binary_entropy(ini)
            if 0.9 < entropy < 1:
                int_key = int(ini, 2)
                key = Key.from_int(int_key)
                wif = key.to_wif()
                target = key.address

                if target == '19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG':
                    print('\nAchou!')

                    salvar_progresso(ia + 1)

                    with open('achou.txt', 'a') as f:
                        f.write(f"Loop: {ia}\n")
                        f.write(f"Chave binária: {ini}\n")
                        f.write(f"Entropia: {entropy}\n")
                        f.write(f"WIF: {wif}\n")
                        f.write(f"Endereço: {target}\n")
                        f.write('-' * 60 + '\n')
                    break

    print(f"{ab} linhas em {quantidade_de_partes}: {ini} - Wif: {wif} - {target}", end='\r')

    if ia % 100000 == 0:
        salvar_progresso(ia + 1)
        print(f"\nProgresso salvo no loop {ia}")

    if ia >= 1000000:
        ia = 1
        ab = 0
        salvar_progresso(ia)
        print("\nReiniciando loop...")

    else:
        ia += 1

    gc.collect()

Observações Importantes

  • O script utiliza a biblioteca bit para gerar chaves privadas, endereços e WIFs.
  • O sistema verifica se uma chave gerada corresponde a um endereço alvo específico.
  • Progresso é salvo automaticamente a cada 100.000 iterações, garantindo continuidade do processo.

Requisitos

  • Python 3.8 ou superior
  • Instalar a biblioteca bit: pip install bit

Segurança e Ética

Embora o código seja válido e didático, é importante lembrar que qualquer tentativa de gerar endereços já existentes (mesmo por entropia) é computacionalmente inviável e eticamente questionável. Este conteúdo é exclusivamente para fins educacionais e de pesquisa em segurança digital.

Aviso: Este conteúdo não constitui recomendação de investimento. Sempre avalie individualmente o risco e evite operar ou investir recursos sem conhecimento técnico apropriado.

Marcadores: Airdrop Blogger Cripto IA Jogos Python Script Sistemas Tutorial

© junho 30, 2025 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários