Electrum 2.0 introduz uma maneira melhorada de serializar transações. Este novo método permite aos utilizadores partilhar transacções não assinadas ou parcialmente assinadas com outros signatários ou armazená-las em dispositivos de armazenamento a frio.
A principal mudança neste formato de serialização é encontrada na entrada da transação. Especificamente, Electrum expande o pubkey
para incluir informações adicionais. Esta expansão permite que a carteira lide com transacções que ainda não estão totalmente assinadas, facilitando a gestão de configurações de várias assinaturas e operações de armazenamento a frio.
Chaves públicas alargadas
As chaves públicas padrão do Bitcoin começam com 0x02
, 0x03
, ou 0x04
. Estas são as chaves públicas normais comprimidas ou não comprimidas utilizadas nas transacções Bitcoin.
As chaves públicas alargadas começam por 0xFF
, 0xFE
, ou 0xFD
. Electrum usa-os para fornecer mais informações sobre a origem da chave e o caminho de derivação.
Existem três tipos de chaves públicas alargadas:
- Chaves que começam por
0xFF
são chaves públicas alargadas (xpubs) BIP32 com o seu percurso de derivação. - Chaves que começam por
0xFE
utilizam o método de derivação herdado da Electrum, combinando uma chave pública mestra e o seu caminho de derivação. - Chaves que começam por
0xFD
representam chaves públicas desconhecidas onde apenas o endereço Bitcoin é conhecido.
Tipos
- Derivação BIP32 (começa com
0xFF
): Este formato consiste numa chave pública alargada (xpub) com 78 bytes de comprimento, seguida do percurso de derivação BIP32. O caminho de derivação é representado como uma série de números inteiros de 4 bytes, sendo o comprimento total o dobro do número de etapas de derivação. - Derivação de Electrum Legado (começa com
0xFE
): Este formato mais antigo usa uma chave pública mestre (mpk) com 64 bytes de comprimento, seguida por um valor de derivação de 4 bytes. Este método é específico para versões anteriores do Electrum. - Apenas endereço Bitcoin (começa com
0xFD
): Este formato é utilizado quando a chave pública completa não está disponível, mas sabemos o endereço Bitcoin ou o seu script hash correspondente. Armazena o hash160 de 20 bytes do script de saída. Este formato pressupõe que o cossignatário pode fornecer a chave pública efectiva quando necessário.
Estes formatos alargados permitem à Electrum lidar com vários tipos de carteiras e métodos de derivação, suportando tanto carteiras hierárquicas modernas baseadas em BIP32 como estruturas de carteiras Electrum mais antigas. O formato 0xFD
também proporciona flexibilidade quando se trabalha 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 comprimidas: Estes começam por 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 ímpares (0x03
).
Chaves públicas não comprimidas: Estes começam por 0x04
, seguido de 64 bytes de dados. Este formato inclui tanto o x
e y
coordenadas do ponto da chave pública na curva elíptica.