SegWit是什么?比特币隔离见证、交易权重与地址格式完整解析


比特币钱包里的「Native SegWit」是什么?为什么有些地址以1 开头,有些是3、bc1q 或bc1p?

SegWit 是Bitcoin 的一项协议升级,调整部分交易资料的组织与计算方式。它与交易大小、手续费及地址格式都有关系,但不是另一种币,也不是把签章移到链外、不再验证。

本文说明隔离见证的用途,并帮助你区分交易规则、地址编码与钱包介面名称。

SegWit 是什么?隔离见证的意思

SegWit 是Segregated Witness 的缩写,中文通常称为「隔离见证」。 Witness 指用来满足花费条件的见证资料,在常见付款中可包含签章、公钥或相关脚本资料。

SegWit 将这类资料放入专门的见证结构,并透过区块中的承诺纳入验证,不是删除签章。

它于2017 年8 月24 日在Bitcoin 主网第481,824 个区块启用,属于软分叉升级。今天使用SegWit 地址,转移的仍然是同一个Bitcoin(比特币),并不会获得另一种「SegWit 币」。

SegWit 解决哪些问题?

调整见证资料与交易ID 的关系

交易ID(TxID)用来识别交易;如果付款内容没有实质改变,交易ID 却能因部分资料变动而改变,就会增加后续依赖交易的处理难度。

SegWit 的一项重要目的,是改善非刻意的交易可塑性(Transaction Malleability)。在符合相应条件、使用SegWit 花费的交易中,见证不纳入传统TxID 的计算,减少第三方变动见证造成交易ID 改变的问题。

这并不是宣称所有交易ID 永远固定,或所有形式的可塑性都被无条件消除。

改用交易权重衡量区块容量

SegWit 引入权重计算,对见证与非见证资料采用不同权重,让交易容量不能再单纯用旧式「全部原始位元组一样计算」理解。

它提高了区块容纳交易的弹性,但不是让所有交易数量固定增加四倍,也不保证每笔费用都降低相同百分比。

改善部分签章验证的效率

BIP 143 为版本0 见证程式设计签章摘要方式,减少重复杂凑的负担,并将输入金额纳入签章摘要。这也有助于离线签署装置核对交易金额与费用。

上述是协议与验证层面的改进,使用者不需手动处理杂凑,正常使用支持的钱包即可。

见证资料被移到链外了吗?

没有。见证资料仍由需要完整验证的节点取得并检查,也受到区块承诺保护。

「隔离」描述的是资料结构与识别方式的区分,不能理解为签章不占空间、免费储存,或不必验证。

它也不会让UTXO模型消失:交易依然花费先前输出,再建立新输出。

SegWit 的交易权重与vB 怎么算?

权重不是原始档案大小

依BIP 141,交易权重可以写成:

交易权重=基础大小× 3+总大小。

这里的基础大小是移除见证相关序列化资料后的计算大小;总大小则包含见证。计算出的单位称为Weight Unit(WU)。

虚拟大小(vB)=交易权重÷4,并向上取整。

简化算例

假设一笔交易基础大小为100 bytes、总大小为200 bytes:

项目 计算
权重 100×3+200=500 WU
虚拟大小 500÷4=125 vB
假设费率 10 sat/vB
费用 125×10=1,250 sat

这只是代入公式的示例,不是特定地址的固定交易大小,也不是当前费率。

比特币区块的权重上限为4,000,000 WU,不能直接改写成「每个区块固定有4 MB 一般交易资料」。实际容量与资料组成有关。

SegWit 为什么可能降低手续费?

一般费用试算会用「交易vB × sat/vB」。在可比的付款情境下,改用较有效率的输入形式,可能降低虚拟大小,进而在相同费率下降低总费用。

但真正花费还取决于输入与输出数量、花费条件,以及当时Mempool的费率竞争。

尤其要区分「这次支付到哪种地址」与「这次花费哪种先前输出」。收款地址主要决定这次新建立的输出形式,之后花费它时,才会出现对应的输入与见证结构。

因此,不能只看收款地址开头,就宣称本次付款一定省多少。

Legacy、Nested SegWit、Native SegWit 与Taproot 有什么不同?

下表以Bitcoin 主网常见形式为例。地址开头只供辨识,不可代替完整地址验证。

常见名称 主网常见开头 代表形式 需要留意
Legacy 1 常见为P2PKH 传统地址形式
Nested SegWit 3 SegWit 程式包在P2SH 里 3 开头也可能是其他P2SH 脚本
Native SegWit v0 bc1q P2WPKH 或P2WSH 使用Bech32 编码
Taproot bc1p 版本1 见证输出、常见为P2TR 使用Bech32m 编码

3 开头不一定就是SegWit

P2SH 是脚本杂凑输出形式,可以包装SegWit,也可用于其他脚本。因此,不能只看到3 就断定它一定是Nested SegWit。

bc1q 不代表只有一种花费条件

版本0 的Native SegWit 可以是P2WPKH,也可以是P2WSH,具体花费方式与资料量不同。不能把所有bc1q 交易当成完全相同大小。

bc1p 与bc1q 都不是另一条BTC 链

这些是Bitcoin 主网上的不同输出及地址形式,不代表切换至另一条区块链。不过,发送端仍必须能正确辨识并支持接收端提供的格式。

Bech32、Bech32m 与SegWit 是同一件事吗?

不是。 SegWit 是协议与交易结构;Bech32、Bech32m 是地址编码方式。

BIP 173 定义Bech32。后来BIP 350 规定版本0 见证地址继续使用Bech32,版本1 及以后使用Bech32m。

Bech32m 改进校验和设计,并非换了资产名称。主网常见bc1q 与bc1p,也应在钱包中依完整内容与校验规则检查。

不能自行修改地址开头来「转换格式」。新地址需要由钱包依相应输出与金钥资料生成。

Taproot 是SegWit 吗?

Taproot 是较后期的升级,BIP 341 将其定义为SegWit 版本1 的输出与花费规则,结合Schnorr 签章及脚本承诺等设计。

因此,可以从见证版本架构理解两者关系,但不能把Taproot 与2017 年原始版本0 SegWit 当成完全相同的功能。

也不能宣称Taproot 对所有付款都一定比Native SegWit 更便宜。费用与隐私效果需依具体花费路径及交易结构评估。

如何使用SegWit 地址收款与转帐?

步骤一:从自己的钱包取得收款地址

在钱包的Bitcoin 帐户或收款页查看地址类型。若有Native SegWit 等选项,可阅读该钱包对应说明;切换介面选项不等于旧资产自动搬家。

步骤二:确认发送端支持该地址

核对发送端选用Bitcoin 主网,并能辨识完整收款地址。若平台拒绝该格式,应查询官方支持情况,不要手动删字或修改开头。

步骤三:核对金额、费用与实收方式

自有钱包查看预估费用;交易所提币则查看平台确认页。平台提币费不一定随你选用的地址格式等比例下降。

步骤四:透过TxID 查看结果

交易广播后,查看收款输出及确认状态。采用SegWit 不代表略过确认流程。

旧地址的BTC 需要全部转到SegWit 吗?

SegWit 启用不会让原本符合规则的旧输出自动失效,也不要求所有持有人立即搬动资产。

若要把旧输出移至新的地址,需要建立实际链上交易并支付当次费用。是否值得调整,可比较钱包支持、未来用途、资金分散情况与当时费率。

对一般用户,更实用的起点是确认未来收款与付款流程,而不是为了名称更新就立即搬动全部资产。

SegWit 与Lightning Network 有什么关系?

SegWit 改善的交易ID 可塑性问题,有助于建立相互依赖的交易结构,也是Lightning Network 发展的重要基础之一。

但SegWit 不是Lightning Network。使用bc1q 地址进行一般链上付款,也不会自动变成闪电支付;两者的操作与结算方式需要分别理解。

SegWit 常见问题FAQ

SegWit 是新的比特币代币吗?

不是。它是Bitcoin 协议升级与相关交易形式,资产仍是BTC。

隔离见证会删除签章吗?

不会。见证资料仍受到承诺及验证,只是结构与计算方式不同。

所有3 开头地址都是SegWit 吗?

不是。 3 开头的P2SH 地址也可能对应其他脚本。

bc1q 与bc1p 都是Bitcoin 主网地址吗?

它们是主网常见见证地址开头,仍须验证完整地址与版本;不能只靠前缀判断地址一定有效。

使用SegWit 一定省固定比例手续费吗?

不是。费用取决于实际交易结构、虚拟大小及费率。

旧地址需要立即停用吗?

不需要因SegWit 升级就认定原有有效输出失效,是否更换应依钱包与用途判断。

可以手动把1 改成bc1q 吗?

不可以。地址格式不是改几个字元就能转换,应由钱包正确生成。

SegWit 和Taproot 是一样的吗?

不是。 Taproot 使用版本1 见证规则,与原始版本0 SegWit 的具体设计不同。

本文链接地址:https://www.wwsww.cn/jishu/42213.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。