在比特币发展的历程中,每一次技术革新都承载着社区对扩容、安全和效率的不懈追求,隔离见证(Segregated Witness,简称SegWit)无疑是其中里程碑式的升级,它不仅解决了比特币网络长期存在的某些痛点,也为我们理解比特币地址的演进提供了新的视角,本文将深入探讨隔离见证与普通比特币地址之间的关系、区别及其带来的深远影响。
初识比特币“普通地址”:未升级的基石
在隔离见证激活之前,我们日常使用的比特币地址,绝大多数是基于“传统脚本”的,通常被称为“普通地址”或“非隔离见证地址”,最常见的形式包括:
- P2PKH (Pay-to-Public-Key-Hash) 地址: 以“1”开头的地址,
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa,这是比特币最早也是最广为人知的地址类型,它锁定资金到某个公钥的哈希值,收款方需用对应的私钥签名进行交易。 - P2SH (Pay-to-Script-Hash) 地址: 以“3”开头的地址,
3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy,这种地址允许更复杂的脚本逻辑(如多重签名),将脚本本身进行哈希,交易时才提供脚本和签名,增加了灵活性。
这些“普通地址”构成了比特币网络的基础,它们的工作方式是将交易签名(Signature)和脚本(Script)数据一同打包到交易输入的“脚本签名”(ScriptSig)字段中,这种方式简单直接,但随着交易量的增长,其局限性也逐渐显现:
- 签名数据膨胀交易大小: 签名数据占比较大,且相对固定,使得每个交易的基础数据量较大,降低了区块空间的利用效率。
- 签名可延展性(Signature Malleability): 由于签名数据在交易输入中,攻击者可以通过微调签名而不影响交易有效性,从而改变交易ID(TXID),这给二层解决方案(如闪电网络)的通道状态管理带来了困扰,也可能影响交易的最终确认。
隔离见证(SegWit):釜底抽薪的革新
为了解决上述问题,隔离见证应运而生,它并非创造一种全新的“地址”,而是一种对交易结构和验证规则的升级,其核心思想在于“隔离”与“见证”:
- 隔离(Segregate): 将交易中的签名数据和脚本数据(合称为“见证数据”,Witness Data)从原有的“脚本签名”(ScriptSig)字段中分离出来,单独存储在交易的一个新的“见证”(Witness)字段中。
- 见证(Witness): 见证数据被隔离后,原有的脚本签名字段变小,使得交易本身的基础体积减小,更重要的是,见证数据不参与交易ID(TXID)的计算,从而彻底解决了签名可延展性问题。
SegWit如何影响地址?原生地址与兼容地址
隔离见证的引入,催生了新的地址格式,这些地址能够更充分地利用SegWit的优势:
-
Bech32 地址(原生SegWit地址):
