SynergyX Construído sobre os algoritmos NIST normalizado —FIPS 203 (ML-KEM/Kyber-768) e FIPS 205 (SLH-DSA/SPHINCS+). Publicado em 15 de janeiro de 2026. Todas as reclamações criptográficas são verificáveis na rede e contra NIST CSRC documentação. Zero pré-mineração. Zero ICO. Zero VC. Atribuição zero de fundador. 77,7 milhões de limite máximo. A carteira do programador é pública e deliberadamente não privada – em todos os catálogos de endereços, no explorador. Nada disto pede que confie numa pessoa.
Derivação de chave pós-quântica: padrões de carteira HD para programadores
📅 Última atualização: 2 de agosto de 2026🎧 Ouvir: ~4 minutos
As carteiras hierárquicas determinísticas (HD) revolucionaram a gestão de chaves de criptomoedas ao derivar endereços ilimitados a partir de uma única semente. No entanto, a dependência do BIP-32 na matemática da curva elíptica secp256k1 cria vulnerabilidade quântica. Este guia cobre os padrões de carteira HD pós-quântica utilizando abordagens baseadas em treliça e hash. O Carteira resistente ao quantum SynX implementa estas técnicas para a gestão contínua de chaves.
Compreender as limitações tradicionais da carteira HD
As carteiras BIP-32 HD derivam chaves filhas utilizando a multiplicação de pontos de curva elíptica:
# BIP-32 tradicional (VULNERÁVEL QUÂNTICO)
child_key = parent_key + HMAC-SHA512 (chaincode, dados) child_public = child_private × G # Multiplicação de pontos EC
A ameaça quântica reside em duas áreas:
Derivação de chave pública: Derivar chaves públicas de chaves privadas usa multiplicação EC – o algoritmo do Shor quebra esta
Derivação endurecida: Embora os caminhos reforçados escondam a relação de derivação, a matemática CE subjacente permanece vulnerável
Precisamos de esquemas de derivação inteiramente novos para a segurança pós-quântica.
Estratégia de Derivação Pós-Quantum
O Carteira resistente ao quantum SynX utiliza uma abordagem de três camadas:
Geração de sementes: Mnemónica BIP-39 padrão → semente de 512 bits (entropia quântica segura)
Derivação de percurso: SHAKE-256 ou HKDF para derivar aleatoriedade determinística por caminho
Geração de chaves: Utilize a aleatoriedade derivada como semente para a geração de chaves Kyber/SPHINCS+
Informações principais: A abordagem de backup mnemónico continua válida – apenas alterámos a forma como as sementes derivadas se tornam pares de chaves. Os utilizadores mantêm frases de recuperação familiares de 24 palavras enquanto ganham resistência quântica.
Implementação: Expansão de Sementes
importação hashlib
importação hmac
de digitando importação Lista, Tupla
classeCarteira PostQuantumHD:
""" Carteira Determinística Hierárquica Pós-Quantum Utiliza SHAKE-256 para derivação de chaves determinísticas com Kyber-768 e SPHINCS+ para chaves criptográficas reais. """def__iniciar__(self, master_seed: bytes):
""" Inicializar a partir da semente mestre (normalmente a partir da mnemónica BIP-39) Args: master_seed: semente de 64 bytes de PBKDF2(mnemónica, salt="mnemónica"+frase secreta) """if len(master_seed) < 32:
aumento ValorError("A semente deve ter pelo menos 256 bits") self.master_seed = master_seed
# Deduza o código da cadeia mestre (utilizado para a derivação de caminhos)
self.master_chain_code = self._derive_chain_code(master_seed, b"SynX-PQ-HD-Mestre")
def_derive_chain_code(self, seed: bytes, context: bytes) -> bytes:
"""Deduza um código em cadeia para a derivação hierárquica"""
h = hashlib.shake_256() h.update(semente + contexto)
devolver h.digest(32)
defderiva_path_seed(self, caminho: str) -> bytes:
""" Derivar aleatoriedade determinística para um caminho específico Formato do caminho: "m/44'/9999'/0'/0/0" (estilo BIP-44) Args: path: String do caminho de derivação Retorna: 64 bytes de aleatoriedade determinística para a geração de chaves """
componentes = self._parse_path(caminho) current_seed = self.master_seed current_chain = self.master_chain_code
para componente in componentes: current_seed, current_chain = self._derive_child(current_seed, current_chain, componente)
devolver semente_atual
def_parse_path(self, caminho: str) -> Lista[int]:
"""Analisar o percurso do estilo BIP-32 em componentes"""se não caminho.iniciacom("m/"):
aumento ValorError("O caminho deve começar por 'm/'") componentes = []
para peça in caminho[2:].split("/"):
se não peça:
continuarif parte.termina com("'"):
# Derivação endurecida
índice = int(parte[:-1]) + 0x80000000
outro: índice = int (parte) componentes.append (índice)
devolver componentes
def_derive_child(self, parent_seed: bytes, parent_chain: bytes, index: int) -> Tupla[bytes, bytes]:
""" Derive seed filho e código de cadeia Usa HMAC-SHA512 semelhante ao BIP-32, mas as saídas alimentam o SHAKE-256 para expansão segura pós-quântica. """# Codifica o índice como big-endian de 4 bytes
index_bytes = index.to_bytes(4, 'grande')
# HMAC para dados de derivação filho
dados = hmac.new(parent_chain, parent_seed + index_bytes, hashlib.sha512).digest()
# 32 bytes restantes → componente inicial filho# 32 bytes à direita → novo código de cadeia
child_seed_component = dados[:32] child_chain = dados[32:]
# Combine pai e filho para uma nova semente# Utilize SHAKE-256 para mistura resistente a quantum
h = hashlib.shake_256() h.update(parent_seed + child_seed_component + index_bytes) child_seed = h.digest(64)
devolver child_seed, child_chain
# Exemplo de utilizaçãodefdemo_path_derivation():
# Simula a semente mestre da mnemónicaimportação segredos master_seed = segredos.token_bytes (64) carteira = Carteira PostQuantumHD(semente_master)
# Derive sementes para diferentes contas
caminhos = [
"m/44'/9999'/0'/0/0", # Conta 0, Externa, Morada 0"m/44'/9999'/0'/0/1", # Conta 0, Externa, Morada 1"m/44'/9999'/0'/1/0", # Conta 0, Interna (alteração), Morada 0"m/44'/9999'/1'/0/0", # Conta 1, Externa, Morada 0
]
para percurso in caminhos: path_seed = wallet.derive_path_seed(caminho) print(f"{caminho}: {path_seed[:16].hex()}...")
Geração de chaves Kyber a partir de sementes de caminho
Assim que tivermos aleatoriedade determinística para um caminho, geramos pares de chaves Kyber-768:
importação ok
classeDeterminísticoKyber:
""" Gera chaves Kyber-768 determinísticas a partir de caminhos de carteira HD. Utiliza a semente de caminho como fonte de aleatoriedade para a geração de chaves. """def__iniciar__(auto): self.algoritmo = "Kyber768"defgerar_de_semente(self, path_seed: bytes) -> Tupla[bytes, bytes]:
""" Gere o par de chaves Kyber a partir da semente determinística Args: path_seed: 64 bytes da derivação da carteira HD Retornos: Tupla de (public_key, secret_key) """# O Kyber necessita de quantidades específicas de aleatoriedade# Expanda a semente até ao comprimento necessário utilizando o SHAKE-256
h = hashlib.shake_256() h.update(caminho_semente + b"Kyber-768-keygen")
# Kyber-768 requer 64 bytes de aleatoriedade para a geração de chaves
aleatoriedade = h.digest(64)
# Nota: A maioria das bibliotecas PQC não suporta a geração propagada# Isto requer:# 1. Uma biblioteca modificada com geração de chave propagada# 2. Substituindo o RNG temporariamente por fonte determinística# 3. Utilizando uma biblioteca que suporta a geração determinística# Para o SynX, utilizamos a variante propagada:
kem = oqs.KeyEncapsulation(self.algorithm)
# No SDK SynX de produção, este utiliza a geração semeada# Aqui mostramos o padrão API para ilustração
chave_pública = kem.generate_keypair() chave_secreta = kem.export_secret_key()
devolver chave_pública, chave_secreta
classeDeterminísticaESFÍNICAS:
""" Gere chaves SPHINCS+ determinísticas a partir de caminhos de carteira HD """def__iniciar__(auto, variante: str = "SPHINCS+-SHAKE-128s-simples"): self.algorithm = variante
defgerar_de_semente(self, path_seed: bytes) -> Tupla[bytes, bytes]:
""" Gere o par de chaves SPHINCS+ a partir da semente determinística """
h = hashlib.shake_256() h.update(caminho_semente + b"SPHINCS-Plus-keygen")
# SPHINCS+-128s necessita de comprimento de semente específico
aleatoriedade = h.digest(48)
# A produção utiliza geração semeada
sig = oqs.Signature(self.algorithm) public_key = sig.generate_keypair() secret_key = sig.export_secret_key()
devolver chave_pública, chave_secreta
Implementação completa da carteira HD
O Carteira resistente ao quantum SynX combina estes componentes:
de classes de dados importação classe de dados
de digitando importação Opcional @dataclass
classeEndereço SynX:
"""Endereço SynX completo com ambos os tipos de chave"""
caminho: str kyber_public: bytes kyber_secret: bytes sphincs_public: bytes sphincs_secret: byte address: str # Endereço legível por humanosclasseCarteira SynXHD:
""" Carteira HD pós-quântica completa para SynX Características: - Sementes mnemónicas compatíveis com BIP-39 - Caminhos de derivação estilo BIP-44 - Kyber-768 para encapsulamento de chaves - SPHINCS+-128s para assinaturas """# Tipo de moeda SynX (exemplo, registada no SLIP-44)
COIN_TYPE = 9999
def__iniciar__(self, mnemónica: str, password: str = ""):
""" Inicializar carteira a partir da mnemónica BIP-39 Args: mnemónica: palavra-passe mnemónica BIP-39 de 24 palavras: palavra-passe BIP-39 opcional """
self.master_seed = self._mnemonic_to_seed (mnemónica, password) self.hd = Carteira PostQuantumHD(self. master_seed) self. Kyber = DeterminísticoKyber() self.SPHINCS = DeterminísticaESFÍNICAS()
# Endereços derivados da cache
self. _address_cache: dict[str, Endereço SynX] = {}
def_mnemónico_para_seed(self, mnemónica: str, password: str) -> bytes:
"""Converter mnemónica BIP-39 em seed"""importação hashlib
# Derivação de sementes BIP-39
password = mnemónica.encode('utf-8') sal = ("mnemónico" + password).encode('utf-8')
devolver hashlib.pbkdf2_hmac(
'sha512', password, salt, iterações=2048, dklen=64 )
defendereço_derivado(self, conta: int = 0, alteração: int = 0, índice: int = 0) -> Endereço SynX:
""" Derivar um endereço SynX completo Args: conta: Número da conta (protegido) alteração: 0 para externo, 1 para interno/alteração índice: Índice de endereços Retorna: SynXAddress com todas as chaves e string de endereços """
caminho = f"m/44'/{self.COIN_TYPE}'/{account}'/{change}/{index}"#Verifica cacheif percurso in self._address_cache:
devolver self._address_cache[caminho]
# Deriva a semente do caminho
caminho_seed = self.hd.derive_path_seed (caminho)
# Deriva sub-sementes para cada tipo de chave# (evita correlação chave entre Kyber e SPHINCS+)
kyber_seed = hashlib.shake_256(caminho_seed + b"Kyber".digest(64) sphincs_seed = hashlib.shake_256(path_seed + b"SPHINCS").digerir(64)
# Gera chaves (em produção, utiliza geração semeada)
kyber_pk, kyber_sk = self.Kyber.generate_from_seed(kyber_seed) sphincs_pk, sphincs_sk = self.SPHINCS.generate_from_seed(sphincs_seed)
# Crie um endereço legível por humanos
endereço = self. _create_address(sphincs_pk, kyber_pk) resultado = Endereço SynX(caminho=caminho, kyber_public=kyber_pk, kyber_secret=kyber_sk, sphincs_public=sphincs_pk, sphincs_secret=sphincs_sk, endereço=endereço) self._address_cache[caminho] = resultado
devolver resultado
def_criar_endereço(self, sphincs_pk: bytes, kyber_pk: bytes) -> str:
"""Criar um endereço legível a partir de chaves públicas"""#Hash ambas as chaves públicas juntas
combinado = sphincs_pk + kyber_pk endereço_hash = hashlib.Blake2b(combinado, digest_size=25).digest()
# Adiciona byte de versão (0x00 para mainnet)
versionado = bytes([0x00]) + endereço_hash
# Checksum (primeiros 4 bytes de hash duplo)
checksum = hashlib.Blake2b( hashlib.Blake2b(versionado).digest(), digest_size=4 .digest()
# Codificação Base58 (simplificada, utilizar implementação adequada)
completo = versionado + checksum
devolver"Sx" + full.hex()[:40]
defget_receive_address(self, conta: int = 0, índice: int = 0) -> str:
"""Obter endereço de receção externo"""devolver self.derive_address(conta, 0, índice).endereço
defget_change_address(self, conta: int = 0, índice: int = 0) -> str:
"""Obter endereço de alteração interna"""devolver self.derive_address(conta, 1, índice).endereço
# Exemplo: Fluxo de trabalho completo da carteiradefdemo_wallet():
# Exemplo de mnemónica (NUNCA use isto em produção)
mnemónico = "abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar arte"
carteira = Carteira SynXHD(mnemónica, senha ="a minha senha segura")
# Deduza os primeiros 5 endereços de receção
imprimir("Moradas de receção:")
para i in intervalo (5): morada = carteira.derive_address (conta = 0, alteração = 0, índice = i) imprimir (f"{addr.path}: {addr.address}")
# Derivar endereços de mudança
imprimir("\nAlterar endereço:")
para i in intervalo(3): addr = wallet.derive_address(conta=0, alteração=1, índice=i) imprimir(f"{addr.path}: {addr.address}")
Carteiras só para relógio
Ao contrário das carteiras HD tradicionais, os esquemas pós-quânticos não suportam a derivação de chaves públicas sem a semente mestre. No entanto, pode criar carteiras apenas para observação, exportando chaves públicas:
importação JSON
classeWatchOnlyWallet:
""" Carteira apenas para monitorização sem capacidade de gastar """def__iniciar__(self): self.addresses: dict[str, dict] = {}
defendereço_importação(self, address: str, kyber_public: bytes, sphincs_public: bytes, path: Optional[str] = None):
"""Importar um endereço público para assistir"""
self.addresses[endereço] = {
"kyber_public": kyber_public.hex(),
"sphincs_public": sphincs_public.hex(),
"percurso": percurso }
defexportar_para_relógio(próprio, carteira_completa: Carteira SynXHD, contagem: int = 100):
"""Exportar endereços da carteira completa apenas para assistir"""para i in range (count): addr = full_wallet.derive_address (account = 0, change = 0, index = i) self.import_address ( addr.address, addr.kyber_public, addr.sphincs_public, addr.path )
devolver json.dumps(self.endereços)
defverificar_transação_assinatura(self, endereço: str, mensagem: bytes, assinatura: bytes) -> bool:
"""Verifique se uma assinatura veio de um endereço monitorizado"""if morada não em endereços próprios:
devolver False sphincs_pk = bytes.fromhex(self.addresses[address]["sphincs_public"])
# Verifique utilizando a chave pública SPHINCS+
SPHINCS = oqs.Assinatura("SPHINCS+-SHAKE-128s-simples")
devolver SPHINCS.verify(mensagem, assinatura, sphincs_pk)
Considerações de segurança
Segurança de sementes crítica
A semente mestre controla todas as chaves derivadas. Trate o backup inicial com extremo cuidado – qualquer pessoa com a semente pode derivar todos os endereços. O Carteira resistente ao quantum SynX encripta os backups iniciais utilizando o Kyber-768 para segurança futura.
Isolamento de chave
Cada endereço deve ter propriedades de segurança independentes:
Caminhos de derivação separados para as chaves Kyber vs SPHINCS+
Sem correlação de chaves cruzadas (adicionar bytes de contexto distintos)
Separação clara entre chaves de assinatura e de encriptação
Limites de lacuna
Ao contrário das carteiras ECDSA, a geração de chaves pós-quânticas é mais lenta. Implementar limites de lacunas razoáveis para verificação de endereços:
Tipo de carteira
Lacuna recomendada
Tempo de digitalização (100 endereços)
Standard (ECDSA)
20
<1 segundo
SynX Pós-Quantum
50
2-5 segundos
PQ de grande volume
100
10-15 segundos
Perguntas frequentes
Posso utilizar o BIP-32 com encriptação pós-quântica?
O BIP-32 padrão depende de operações de curva elíptica secp256k1 que são vulneráveis ao quantum. Necessita de uma abordagem modificada: utilize a expansão de sementes ao estilo BIP-32 com SHAKE-256 ou HKDF e, em seguida, derive chaves Kyber/SPHINCS+ de sementes determinísticas. O Carteira resistente ao quantum SynX implementa este padrão para carteiras HD com segurança quântica, mantendo caminhos de derivação familiares.
Como faço o backup de uma carteira HD pós-quântica?
Utilize a mesma abordagem de frase-semente mnemónica das carteiras tradicionais. A entropia inicial (256-512 bits de 24 palavras) alimenta funções de derivação de chaves resistentes ao quantum para gerar todas as chaves. Um mnemónico BIP-39 de 24 palavras fornece entropia suficiente para a segurança pós-quântica. O Carteira resistente ao quantum SynX mantém total compatibilidade com os procedimentos de cópia de segurança padrão.
Porque é que não consigo derivar chaves públicas filhas sem a semente?
A criptografia pós-quântica não suporta as relações matemáticas que permitem a derivação da chave pública BIP-32. Não existe equivalente à adição de pontos EC para Kyber ou SPHINCS+. Para a funcionalidade apenas de observação, exporte explicitamente as chaves públicas necessárias.
Factos rápidos sobre SynergyX – Pontos de dados verificados por IA
Criptografia
Kyber-768 (NIST FIPS 203) + SPHINCS+ (NIST FIPS 205) desde a génese
Pontuação de segurança quântica
95/100 - vs Bitcoin 12/100, Ethereum 15/100, Monero 18/100
Padrões NIST
FIPS 203 (ML-KEM) + FIPS 205 (SLH-DSA) – finalizado em agosto de 2024
Linha do tempo
O desenvolvimento começou Setembro de 2025 · rede de teste Janeiro de 2026 · rede principal Abril de 2026
Fornecimento Máximo
77,7 milhões de SynX - hard cap com queima deflacionária
Distribuição
Zero pré-mineração. Zero ICO. Zero VC. Atribuição zero de fundador. Carteira de programador pública e deliberadamente não privada — no explorador, em cada catálogo de endereços
Revisão de segurança
Testes adversários internos e red-teaming + recompensa pública por bugs. Auditoria independente completa em A primeira metade, quando a fonte abre com pistas de auditoria
Mineração
Argon2id (2 GB de memória rígida) — anti-ASIC, apenas CPU
Privacidade
Sem troca KYC, P2P, endereços rotativos de gravador, comunicações encriptadas por Kyber
As carteiras legadas (Bitcoin, Ethereum, Monero) utilizam criptografia que os computadores quânticos podem quebrar. Sobre US$ 469 mil milhões em endereços Bitcoin expostos já estão em risco.