词汇表概念
隔离见证(SegWit)是什么?比特币扩容升级详解
隔离见证(Segregated Witness,SegWit)是比特币协议于 2017 年 8 月 23 日激活的一次向后兼容的软分叉升级。它把交易中的密码学签名数据(见证)从主体中分离到单独区域,使交易 ID(TXID)固定下来,永久解决了交易延展性问题。由于见证数据在区块权重计算中只按四分之一计入,区块容量实际提升,手续费随之下降。SegWit 带来的延展性修复,是闪电网络和 2021 年 Taproot 升级的技术基础。从原生 SegWit(bech32,bc1 开头)地址发起的交易,手续费比传统地址约低 45%。
作者: COINOTAG Research Desk最后更新 参考资料
隔离见证(Segregated Witness,简称 SegWit)是比特币协议于 2017 年 8 月 23 日激活的一次升级。其核心思路是:把每笔交易中的密码学签名数据(英文称“witness”,即见证)从交易主体中分离出来,放到单独的区域。这样一来,签名不再影响交易 ID(TXID),区块容量实际上得到提升,困扰比特币开发者多年的交易延展性(malleability)漏洞也被永久修复。SegWit 通过不分裂链的软分叉方式实施,因此没有升级的旧节点仍会把新格式视为有效。
为什么需要隔离见证?
2016 至 2017 年间,比特币网络频频触及 1 MB 的固定区块大小上限。内存池(mempool)持续拥堵,交易确认时间变长,手续费飙升。社区围绕扩容争论两条路线:直接扩大区块,或者更高效地组织数据。
Core 开发者 Pieter Wuille 于 2016 年 10 月提出的 SegWit 选择了第二条路线。签名数据在交易验证之后不会再被重新哈希,也就是说,为了在同一区块中容纳更多交易,签名并不需要留在交易主体里。这一逻辑为无需硬分叉的扩容打开了大门。
如果想了解软分叉与硬分叉的区别,可以阅读我们深入讲解的软分叉与硬分叉指南。
对比示意图——传统比特币交易结构(scriptSig 与 scriptPubKey 在一起)与 SegWit 交易结构(见证数据放在独立区域)
隔离见证在技术上如何运作?
每笔比特币交易包含两个基本组成部分:
- scriptSig:授权花费的签名(解锁数据);
- scriptPubKey:与接收方私钥绑定的花费条件(锁定数据)。
在传统(legacy)交易中,这两部分被一起哈希以生成交易 ID(TXID)。因此,任何节点只要修改签名,就能改变 TXID——这就是“交易延展性”问题。
SegWit 把签名(见证)移出 TXID 的计算范围。签名改为存放在独立的树结构(见证数据区)中,只由支持 SegWit 的节点验证。旧节点忽略这一区域,仍把交易视为有效,从而实现向后兼容。
区块权重与 vByte 概念
SegWit 用区块权重体系取代了以字节计算的 1 MB 上限。每个区块的最大权重定为 400 万“权重单位”(WU)。计算方式如下:
- 普通交易数据:1 字节 = 4 WU;
- 见证(签名)数据:1 字节 = 1 WU(四分之一权重)。
这一折扣意味着见证数据在区块占用计算中所占的“空间”要小得多。最终,SegWit 区块的有效容量可达 2-4 MB,远超原来的 1 MB 上限。
“vByte”(虚拟字节)则是为了让用户直观理解权重体系而使用的计量单位:1 vByte = 4 WU。
对比表:传统交易与隔离见证
| 特性 | 传统(SegWit 之前) | SegWit |
|---|---|---|
| 签名位置 | 交易主体中 | 独立的见证区域 |
| 容量计量 | 1 MB 固定上限 | 400 万权重单位(有效约 2-4 MB) |
| 交易延展性 | 存在 | 已永久修复 |
| 多签哈希长度 | 160 位(P2SH) | 256 位(SHA-256) |
| 签名哈希扩展性 | 平方级(O(n²)) | 线性(O(n)) |
| 支持闪电网络 | 否 | 是 |
| 地址格式 | 以 1 开头 | 以 bc1 开头(bech32) |
手续费算例:传统交易与隔离见证对比
为了让节省的手续费更具体,来看一笔简单的单输入、双输出交易:
场景:一个钱包发送 BTC。
- 传统交易大小:250 字节
- 费率:20 sat/字节
- 传统手续费:250 × 20 = 5,000 聪
同一笔交易使用原生 SegWit(bech32)地址时:
- 签名数据约 150 字节 → 见证区按 1 WU/字节计算
- 其余主体约 100 字节 → 按 4 WU/字节计算
- 总权重:(100 × 4) + (150 × 1) = 550 WU
- 换算为 vByte:550 ÷ 4 = 137.5 vByte
- 费率:20 sat/vByte
- SegWit 手续费:137.5 × 20 = 2,750 聪
结论:同样的经济交易,手续费约低 45%。任何使用 bech32 地址的钱包都会自动获得这一节省。
折线图——2017 年底以来比特币交易中 SegWit 的采用率从 0% 升至 80% 以上
隔离见证带来的主要好处
1. 扩容(无需硬分叉)
见证折扣对区块权重的影响,实际扩大了比特币的交易容量;区块大小之争由此平息,网络在没有链分裂的情况下实现了扩容。
2. 修复交易延展性
在等待区块链确认期间修改交易的 TXID(延展性),会让支付追踪者困惑,也让二层协议几乎无法实现。SegWit 把签名移出 TXID 计算,彻底消除了这一攻击途径。
3. 闪电网络的基础
作为 Layer 2 方案的闪电网络,依赖多笔相互衔接的未确认交易来建立链下支付通道。这些交易的 TXID 必须保持不变,否则通道就会失效。延展性修复随 SegWit 到来,闪电网络此后才得以可靠地构建。
4. 增强多签安全
传统 P2SH 多签结构使用 160 位哈希函数,而 SegWit 原生脚本改用 256 位 SHA-256。这一改进把暴力破解的可能性降低到天文数字级别,让智能合约式的花费更加安全。
5. 签名哈希线性扩展
在传统体系中,签名大型交易时需要处理的数据量呈平方级增长(O(n²)),给验证多输入交易的节点带来沉重负担。SegWit 引入了每个字节只哈希一次的线性模型。
与 Taproot 的关系
SegWit 不仅是 2017 年之后的基础,也是 2021 年激活的 Taproot 升级的基础。Taproot 利用 SegWit 引入的脚本版本机制(script versioning),为比特币加入了 Schnorr 签名。这种架构上的延续,最直接地体现了比特币“在现有协议上逐层叠加”的思路:每次升级都建立在前一次之上。
想了解比特币挖矿和区块生产的技术基础,比特币挖矿指南是不错的起点。
风险与注意事项
- 旧钱包不兼容:部分旧钱包软件或服务可能无法向原生 SegWit(bech32,以 bc1 开头)地址转账。发起交易前,请确认接收平台是否支持 bech32。
- 地址格式混淆:比特币目前有三种格式:以 1 开头(传统)、以 3 开头(P2SH 包装的 SegWit)和以 bc1 开头(原生 SegWit)。转到不同格式不会导致资金丢失,但可能让你多付手续费。
- SegWit 不等于无限扩容:SegWit 提升了区块容量,但并没有让比特币无限扩展。高频支付仍需要闪电网络等二层方案。
- 节省需要主动选择:要享受 SegWit 的手续费优势,钱包必须生成并使用 bech32 地址。使用传统地址的钱包不会自动获得这一节省。
- 矿工门槛:SegWit 激活需要 95% 的矿工发出支持信号,这一门槛在 2017 年年中达到。类似的门槛机制也说明,未来的升级同样需要广泛共识。
想通过运行全节点参与比特币网络验证,可参考我们的如何运行比特币节点指南。
COINOTAG 观点
人们很容易把 SegWit 看作 2017 年就已结束的一场技术争论,但它的长期影响要深远得多。它修复了交易延展性,使闪电网络的构建成为可能,也为 Taproot 打开了大门。如今大多数比特币交易都采用 SegWit 格式——这种安静而坚定的采用,说明协议建立在多么稳固的基础之上。SegWit 也概括了比特币的变革哲学:不分裂网络、保持向后兼容、循序渐进地改进。
常见问题
隔离见证(SegWit)简单来说是什么?
SegWit 是一次协议升级,把比特币交易中的签名数据(见证)与交易主体的其余部分分开。签名约占一笔交易的六成,这一分离让区块能容纳更多交易并降低手续费。签名不再影响交易 ID(TXID),也让交易追踪更可靠,为闪电网络等二层方案铺平了道路。
SegWit 能降低比特币手续费吗?
能。见证(签名)数据在区块权重计算中只按四分之一计入,因此从原生 SegWit(bc1 开头)地址发起的交易,手续费通常比传统地址低 30% 到 45%。要获得这一节省,钱包需要生成 bech32 地址。
SegWit 是什么时候、如何激活的?
SegWit 于 2017 年 8 月 23 日在比特币主网激活。激活需要 95% 的矿工发出支持信号,这一门槛在 2017 年年中达到。由于它是向后兼容的软分叉升级,没有升级的旧节点仍可留在网络中。同一技术此前已于 2017 年 5 月在莱特币上测试过。
为什么闪电网络必须依赖 SegWit?
闪电网络建立在由未确认交易串联而成的支付通道之上,这些通道要可靠运行,交易 ID(TXID)就必须不可更改。SegWit 把签名移出 TXID 计算,永久修复了延展性问题,闪电网络的技术基础才得以成立。

