Electrum 2.0 引入了一种改进的交易序列化方法。这种新方法允许用户与其他签名者共享未签名或部分签名的交易,或将其存储在冷存储设备中。
这种序列化格式的主要变化在于交易输入。具体来说,Electrum 扩展了 pubkey
字段以包含更多信息。这一扩展使钱包能够处理尚未完全签名的交易,从而更容易管理多签名设置和冷存储操作。
扩展公用钥匙
标准的比特币公钥以 0x02
, 0x03
或 0x04
.这些是比特币交易中使用的普通压缩或未压缩公钥。
扩展公钥以 0xFF
, 0xFE
或 0xFD
.Electrum 利用这些信息提供更多关于密钥来源和衍生路径的信息。
扩展公开密钥有三种类型:
- 以
0xFF
是 BIP32 扩展公钥 (xpubs) 及其派生路径。 - 以
0xFE
使用 Electrum 传统的派生方法,将主公开密钥与其派生路径相结合。 - 以
0xFD
代表未知公钥,其中只有比特币地址是已知的。
类型
- BIP32 衍生 (以
0xFF
):这种格式包括一个 78 字节长的扩展公钥 (xpub),然后是 BIP32 派生路径。派生路径由一系列 4 字节整数组成,总长度是派生步骤数的两倍。 - 遗留的伊勒克鲁姆衍生物 (以
0xFE
):这种旧格式使用 64 字节长的主公钥 (mpk),然后是 4 字节的派生值。这种方法适用于早期版本的 Electrum。 - 仅比特币地址 (以
0xFD
):当没有完整的公钥,但我们知道比特币地址或其对应的脚本哈希值时,就会使用这种格式。它存储输出脚本的 20 字节哈希值 160。该格式假定共同签名人可以在需要时提供实际的公钥。
这些扩展格式允许 Electrum 处理各种钱包类型和衍生方法,同时支持基于 BIP32 的现代分层钱包和老式 Electrum 钱包结构。电子钱包 0xFD
在处理部分已知的交易数据时,该格式也提供了灵活性。
标准公用钥匙
比特币使用特定的格式来表示公钥。这些格式是整个比特币网络公认的标准格式:
压缩公钥:开头为 0x02
或 0x03
之后是 32 个字节的数据。起始字节表示 y
-公开密钥在椭圆曲线上的点坐标是偶数 (0x02
)或奇数(0x03
).
未压缩的公开密钥:开头为 0x04
然后是 64 字节的数据。这种格式包括 x
和 y
公开密钥在椭圆曲线上的坐标点。