什么是SegWit?
2017年,比特币面临一个几乎撕裂社区的问题。当时的网络每秒只能处理大约3笔交易,手续费飙升,区块已满,每个人都对如何解决这个问题有不同的想法。
最终胜出的解决方案是 SegWit,即隔离见证(Segregated Witness)的缩写。它由比特币核心的主要开发者之一 Pieter Wuille 提出,彻底改变了每笔比特币交易的结构。这并非小修小补,而是对数据在区块中的存储方式进行了根本性的重构。八年后,约 96% 的比特币交易都使用 SegWit 地址。如果你在过去几年里购买或发送过比特币,那么你几乎肯定在不知不觉中使用过它。
实际问题是什么?
让我来为你描绘一下2016年的景象。
比特币每个区块的大小上限为 1 MB。中本聪在 2010 年设置了这个限制,目的是为了阻止垃圾邮件攻击,而且一直没有被取消。区块大约每 10 分钟产生一个。按每个 1 MB 计算,每个区块大约可以处理 1650 笔交易。算下来,整个比特币网络每秒大约只能处理 2-3 笔交易。整个地球都在共享这么一条狭窄的管道。
顺便一提,Visa每秒处理65000笔交易。所以,是的,有问题。
到 2016 年底,每个区块都达到了 1 MB 的容量上限。当区块空间耗尽时,比特币用户开始竞相抬高交易手续费,试图贿赂矿工优先处理自己的交易。手续费飙升。发送价值 10 美元的比特币,手续费可能高达 15 美元。这完全不合理。
然后,还有一个更复杂的问题:交易可塑性。我尽量用简单易懂的方式解释。当你发送比特币时,网络会为这笔交易创建一个ID。在隔离见证(SegWit)出现之前,这个ID是由整个交易(包括签名)生成的。问题在于:有人可以截获你未确认的交易,篡改签名编码(技术上仍然有效),最终得到一个不同的ID,但对应的却是完全相同的付款。相同的发送方,相同的接收方,相同的金额,却拥有不同的ID。
为什么你应该关注这个问题?因为2014年损失了84万枚比特币的Mt. Gox交易所就是被这个漏洞攻击的。更重要的是,任何构建在比特币之上的二层系统(例如支付通道)都需要通过交易ID来引用交易。如果这些ID发生改变,整个系统就会崩溃。
比特币同时面临两个问题:区块太小,以及交易ID不可信。隔离见证(SegWit)一次性解决了这两个问题。
SegWit 的工作原理(无需计算机科学学位)
把比特币交易想象成一张支票。支票上写着谁付钱给谁,金额是多少。底部是你的签名,证明交易的合法性。在隔离见证(SegWit)出现之前,这两部分信息都被压缩到一个数据块里,而整个数据块都占用了 1 MB 的区块大小限制。
令 Pieter Wuille 感到困扰的是:签名数据几乎占据了每笔交易 65% 的空间。每个区块的大部分空间并非用于记录交易内容,而是用于记录某人确认交易合法性的证明。这让人觉得非常浪费。
他的想法是:将签名提取出来,放在一个名为“见证”的独立区域中。交易数据保留在主区块中,而见证数据则单独存储。网络上的每个节点仍然会检查它,只是在计算区块填充度时,它的权重不同。
实际情况如何?区块容量从大约 1650 笔交易增加到大约 2700 笔。比特币的交易速度从每秒 2-3 笔跃升至每秒 7-10 笔左右。与 Visa 相比,这仍然微不足道。但对于一个因自身成功而举步维艰的网络来说,这无疑是一次喘息的机会。

块重:新的数学
巧妙之处就在这里。最直接的做法是将 1MB 的限制改为 2MB。但这会造成硬分叉。比特币网络上的每个节点都需要更新,否则就会掉链。硬分叉很麻烦,会造成用户流失。
Pieter Wuille提出了一个更巧妙的方案。SegWit不再以原始字节数来衡量区块大小,而是使用“区块权重”。常规交易数据每字节计为4个权重单位,见证数据每字节计为1个权重单位。总权重单位上限为400万个。
这在实践中意味着什么?没有见证数据的区块大小仍然上限为 1 MB,与以往一样。老节点不会发现任何异常。理论上,包含 SegWit 交易的区块可以接近 4 MB。但在实际应用中,大多数区块的大小在 1.5 到 2 MB 之间。
妙处就在于:SegWit 是以软分叉的形式发布的。未升级的节点依然正常运行,只是无法看到新部分中的见证数据。比特币区块链并未分裂,不存在“旧比特币”和“新比特币”之分。一条链,一个网络,向下兼容。单凭这一点,就是一项远未得到足够认可的工程成就。
| SegWit 之前 | SegWit之后 |
|---|---|
| 块大小:最大 1 MB | 模块重量:最大 400 万重量单位 |
| 每个区块约 1650 笔交易 | 每个区块约 2700 笔交易 |
| 2-3 TPS | 7-10吨/秒 |
| 区块内的签名数据 | 签名数据位于单独的证人字段中 |
| 交易ID包含签名 | 仅基于核心数据的交易 ID |
交易延展性修复
人们一直在讨论区块大小的问题。没错,这确实是当时最受关注的问题。但我认为交易延展性的修复才是更重要的部分,而开发者圈子以外的大多数人对此几乎一无所知。
事情是这样的。在隔离见证(SegWit)出现之前,当你的比特币钱包创建一笔交易时,交易ID(称为TXID)是由交易中的所有内容计算得出的,包括签名。而奇怪的地方在于:数字签名可以用多种有效格式表示。相同的签名,相同的所有权证明,但字节序列略有不同。
这意味着有人可以截获你未确认的交易,用另一种同样有效的方式重新编码签名,然后广播出去。网络会确认修改后的版本。发送方、接收方和金额都一样,但交易ID却完全不同。
我知道,这听起来很奇怪,但至关重要。想象一下,你构建了一个系统,其中步骤 B 引用了步骤 A 的 ID。如果有人在步骤 A 提交后、确认前更改了其 ID,那么步骤 B 就会失效,整个逻辑链也会崩溃。
SegWit 通过仅使用非见证部分计算 TXID 解决了这个问题。签名现在位于见证字段中,与 ID 分开。任何人都无法篡改它。交易 ID 被永久锁定。
SegWit 和闪电网络
这就是修复延展性问题的重要性所在。闪电网络是比特币计划每秒处理数百万笔支付的方式。你我之间会建立一个支付通道。我们在主区块链之外互相发送比特币。交易完成后,只有最终的净余额会在链上结算。这样一来,比特币区块链上只需要一笔交易,而不是数百笔。
闪电网络的工作原理是构建一系列相互关联的交易链,这些交易链通过彼此的ID进行引用。如果有人在交易过程中更改了某个ID,那么保护你的退款交易就会失效,你可能会蒙受损失。整个支付通道的概念都依赖于ID的稳定性。
SegWit 让比特币网络稳定下来。就这么简单。如果没有这个修复,闪电网络部署起来风险太大。而没有闪电网络,比特币的交易速度将永远停留在每秒 7-10 笔。那不是支付网络,那是巨鲸的结算层。
我的理解是这样的:SegWit 不仅仅是一次升级,它更是基础。2021 年的 Taproot、闪电网络,甚至 2023 年的 Ordinals 铭文,都离不开 2017 年 8 月的结构性变革。
地址格式:传统格式、包装格式和原生 SegWit
你有没有注意到有些比特币地址以“1”开头,有些以“3”开头,还有些以“bc1”开头?这就是SegWit升级显示在你的钱包里了。
以“1”开头的地址是旧格式的,没有隔离见证(SegWit),手续费最高。如果您的钱包仍然显示这些地址,请更新软件。
以“3”开头的地址都经过了SegWit封装。比特币交易内部使用SegWit,但经过封装后,即使是以前从未听说过SegWit的旧钱包也能向其发送比特币。这种方式比传统方式更便宜,但并非最经济的选择。
以“bc1q”开头的地址是原生SegWit地址,也称为Bech32地址。这是最好的选择:手续费最低,错误检查机制最完善(地址格式能更好地检测拼写错误),而且目前96%的交易都使用这种地址。
您可能还会看到“bc1p”地址。这些是Taproot,它是2021年基于SegWit的升级版本。虽然与主题无关,但了解它们的存在还是很有价值的。
| 地址类型 | 以……开始 | 费用级别 | SegWit? |
|---|---|---|---|
| 传承(P2PKH) | 1 | 最高 | 不 |
| 封装隔离见证(P2SH) | 3 | 中等的 | 是的(已包装) |
| 原生 SegWit (Bech32) | bc1q | 最低 | 是的(母语) |
| 主根(Bech32m) | bc1p | 最低 | 是的 + 主根 |
你实际能节省多少费用?
这正是我的非技术朋友们真正想知道的:到底便宜多少?
Unchained 计算得出,标准的单签名 SegWit 交易相比传统方式可节省约 53% 的手续费。如果使用 2/3 多重签名设置(托管中常见),则可节省约 64% 的手续费。这并非四舍五入误差。在交易繁忙的日子里,传统方式用户每笔交易需支付 30 美元,而使用原生 SegWit,您每笔交易只需支付不到 15 美元。
为什么?还是区块权重计算的问题。见证数据占用 0.25 个虚拟字节,而不是 1 个。你的交易在区块中占用的空间更少,矿工收取的费用也更低。就这么简单。
如果你的比特币钱包仍然提供以“1”开头的地址,那么每次发送都相当于白白浪费钱。切换到原生隔离见证(SegWit)吧,只需五分钟。Coinbase、Ledger、Trezor、BlueWallet、Sparrow 等钱包都支持 SegWit,没有任何缺点。

争议点:为什么 SegWit 差点没能实现?
说实话,这部分比技术本身更有意思。SegWit 在正式发布前差点夭折。
这场争论表面上很简单。一方,也就是所谓的“大阻碍者”,想要把区块大小限制从1MB提高到8MB甚至更高。更大的空间,更多的交易。这似乎是个简单的解决方案。全球最大的比特币矿机制造商比特大陆(Bitmain)大力支持这一阵营。有人指责比特大陆反对隔离见证(SegWit),因为SegWit会扼杀ASICBOOST——这项隐藏在比特大陆矿机芯片中的秘密技术,使其在速度上超越了竞争对手。比特大陆否认了这一说法。但加密货币世界并不相信他们。
另一阵营主要由比特币核心开发者和在家运行完整节点的用户组成。他们的论点是:区块大小增加 8 倍,运行节点就需要 8 倍的带宽、存储空间和处理能力。几年后,只有数据中心和矿场才能负担得起验证比特币区块链的费用。去中心化悄然消亡。
我当时一直在实时关注这件事,感觉比特币真的可能撑不过这场争论。人们在推特、Reddit 和各种会议上互相指责。甚至在纽约还举行了一次闭门会议(所谓的“纽约协议”),一些公司试图达成一项协议,将隔离见证(SegWit)与未来区块大小的增加结合起来。但这项协议最终也失败了。
实际情况是:SegWit于2017年8月1日作为用户激活的软分叉正式启用。反对SegWit的比特币矿工当天就分叉创建了比特币现金(BCH)。BCH采用8MB区块大小(现在是32MB),并且没有使用SegWit。它至今仍然存在,交易价格仅为比特币的一小部分。
8月1日被一些人称为“比特币独立日”。其意义在于,节点运营商而非矿业公司,对比特币的规则拥有最终决定权。这一先例比SegWit升级本身的任何一行代码都更为重要。
今天采用 SegWit
争论已经结束。到2025年,96%的比特币交易都将使用隔离见证(SegWit)。所有主流钱包都支持它,所有交易所也都支持它。如果你还在使用旧地址,唯一的解释就是你的软件多年未更新。
SegWit 的升级也为后续的一切打开了大门。Taproot 于 2021 年 11 月发布,并在 SegWit 的结构之上添加了 Schnorr 签名。Ordinals 于 2023 年出现,开始将 JPEG 图像填充到 SegWit 创建的见证数据空间中。人们对最后这一举措褒贬不一,但重点在于:SegWit 创建了这个空间,而开发者们则填充了它。
那么,SegWit 对你个人重要吗?如果你使用比特币,答案是肯定的。打开你的钱包设置,检查你的地址格式。如果地址以“bc1q”开头,那就没问题。如果以“1”开头,你应该立即切换。SegWit 可以降低手续费,在网络拥堵时提供更快的确认速度,并完全支持闪电网络支付。
你日常生活中根本不会想到SegWit。它就像地板下的管道系统一样,不会引起你的注意。但如果2017年没有人安装它,现在整栋房子可能早就被淹了。