A Electrum 2.0 apresenta uma maneira aprimorada de serializar transações. Esse novo método permite que os usuários compartilhem transações não assinadas ou parcialmente assinadas com outros signatários ou as armazenem em dispositivos de armazenamento a frio.
A principal mudança nesse formato de serialização é encontrada na entrada da transação. Especificamente, a Electrum expande o pubkey
para incluir informações adicionais. Essa expansão permite que a carteira manipule transações que ainda não foram totalmente assinadas, facilitando o gerenciamento de configurações de várias assinaturas e operações de armazenamento a frio.
Chaves públicas estendidas
As chaves públicas padrão do Bitcoin começam com 0x02
, 0x03
ou 0x04
. Essas são as chaves públicas normais compactadas ou descompactadas usadas nas transações de Bitcoin.
As chaves públicas estendidas começam com 0xFF
, 0xFE
ou 0xFD
. A Electrum os utiliza para fornecer mais informações sobre a origem da chave e o caminho de derivação.
Há três tipos de chaves públicas estendidas:
- Chaves que começam com
0xFF
são chaves públicas estendidas (xpubs) BIP32 com seu caminho de derivação. - Chaves que começam com
0xFE
usam o método de derivação herdado da Electrum, combinando uma chave pública mestre e seu caminho de derivação. - Chaves que começam com
0xFD
representam chaves públicas desconhecidas em que apenas o endereço de Bitcoin é conhecido.
Tipos
- Derivação do BIP32 (começa com
0xFF
): Esse formato consiste em uma chave pública estendida (xpub) com 78 bytes de comprimento, seguida pelo caminho de derivação do BIP32. O caminho de derivação é representado como uma série de números inteiros de 4 bytes, com o comprimento total sendo o dobro do número de etapas de derivação. - Derivação do Legacy Electrum (começa com
0xFE
): Esse formato mais antigo usa uma chave pública mestra (mpk) com 64 bytes de comprimento, seguida por um valor de derivação de 4 bytes. Esse método é específico das versões anteriores da Electrum. - Somente endereço de Bitcoin (começa com
0xFD
): Esse formato é usado quando a chave pública completa não está disponível, mas sabemos o endereço de Bitcoin ou o hash de script correspondente. Ele armazena o hash160 de 20 bytes do script de saída. Esse formato pressupõe que o cossignatário possa fornecer a chave pública real quando necessário.
Esses formatos estendidos permitem que a Electrum lide com vários tipos de carteiras e métodos de derivação, suportando tanto carteiras hierárquicas modernas baseadas em BIP32 quanto estruturas de carteiras Electrum mais antigas. Os 0xFD
O formato também oferece flexibilidade ao trabalhar com dados de transação parcialmente conhecidos.
Chaves públicas padrão
O Bitcoin usa formatos específicos para representar chaves públicas. Esses formatos são reconhecidos como padrão em toda a rede Bitcoin:
Chaves públicas compactadas: Começam com 0x02
ou 0x03
seguido de 32 bytes de dados. O byte inicial indica se o y
-A coordenada do ponto da chave pública na curva elíptica é par (0x02
) ou ímpar (0x03
).
Chaves públicas não compactadas: Começam com 0x04
seguido de 64 bytes de dados. Esse formato inclui tanto o x
e y
coordenadas do ponto da chave pública na curva elíptica.