BIP84是一个比特币改进提案,它定义了使用 P2WPKH(支付给见证人公钥哈希)脚本类型生成原生隔离见证地址的分层确定性 (HD) 钱包派生方案。
由 Pavol Rusnak 编写的 BIP-84 标准规范了兼容钱包如何从恢复种子生成比特币地址。其主网地址使用…… Bech32 编码格式,通常以 bc1q.
BIP-84 基于比特币的 SegWit 升级,降低了见证数据的交易权重成本。通过使用原生 SegWit 而非旧的传统或封装的 SegWit 格式,P2WPKH 交易在常见的单签名支出场景中可以占用更少的区块空间。
该方案对于钱包互操作性尤为重要。兼容的钱包可以遵循相同的派生规则,从相同的种子和派生路径中发现相同的账户和地址。
BIP84概览
| 特性 | Detail |
|---|---|
| BIP号码 | 84 |
| 作者 | 帕沃尔·鲁斯纳克 |
| 状态 | 部署 |
| 地址格式 | 原生 SegWit / Bech32 |
| 主网地址前缀 | bc1q |
| 脚本类型 | P2WPKH |
| 账户级派生路径 | m/84'/0'/0' |
| 完整推导路径 | m/84'/coin_type'/account'/change/address_index |
| 比特币主网币类型 | 0' |
| 主要目的 | 规范原生 SegWit 账户的地址派生方式 |
地址类型和费用比较
BIP-84 是几种比特币钱包派生标准之一。BIP-44 通常与传统的 P2PKH 地址相关联,BIP-49 与封装的 SegWit 地址相关联,而 BIP-86 与单密钥 Taproot 输出相关联。
下表比较了典型的单输入双输出交易的示例交易规模。实际规模取决于交易结构和签名细节。
| 地址类型 | 相关 BIP | 主网前缀 | 交易金额(约) | 与传统版本相比的相对规模 |
|---|---|---|---|---|
| 传统 P2PKH | BIP-44 | 1... | 226 伏 | 100% |
| 封装式 SegWit P2SH-P2WPKH | BIP-49 | 3... | 167 伏 | 74% |
| 原生 SegWit P2WPKH | BIP-84 | bc1q... | 141 伏 | 62% |
| Taproot P2TR,关键路径支出 | BIP-86 | bc1p... | 154 伏 | 68% |
这些估算基于一个具有一个输入和两个相关类型输出的类似交易。交易费用根据虚拟大小和每虚拟字节的聪(satoshis/vB)费率计算。在相同的费率下,较小的交易通常成本更低,但最便宜的交易格式可能因交易结构而异。
另请阅读:布雷顿森林体系
起源与历史
2017年:SegWit激活
比特币于 2017 年 8 月启用了隔离见证 (SegWit)。此次升级改变了见证数据在交易权重中的计算方式,并引入了新的交易结构,包括原生 P2WPKH 输出。
BIP-173 规定了原生 SegWit 见证输出的 Bech32 地址编码格式。
2017年12月:BIP-84发布
Pavol Rusnak 撰写了 BIP-84,旨在规范使用原生 SegWit P2WPKH 地址的 HD 钱包的派生方案。该提案引入了目标值。 84' 在推导路径中。
这为兼容的钱包提供了一种一致的方法,可以使用相同的种子创建和恢复原生 SegWit 账户。
2018 年及以后:更广泛的钱包支持
随着比特币钱包、硬件签名器、交易所和其他服务添加了对 SegWit 的原生支持,用户获得了更多通过 SegWit 接收和使用 BTC 的机会。 bc1q 地址。
不同钱包和服务的支持情况和默认设置各不相同。BIP-84 提供了一个标准,但并不要求每个钱包或交易所默认使用该标准。
2021:Taproot 和 BIP-86
比特币于 2021 年 11 月激活了 Taproot。随后,BIP-86 为单密钥 Pay-to-Taproot (P2TR) 输出提供了一个标准的推导方案。
Taproot 引入了与 P2WPKH 不同的支出和脚本功能。它的可用性意味着 BIP-84 并非最新的比特币地址派生标准,尽管它对于原生 SegWit 钱包仍然有用。
BIP-84 的工作原理
BIP-84 规定了 HD 钱包如何从主种子派生密钥和地址。它使用与 BIP-44 和 BIP-49 相同的总体层级结构,但分配方式不同。 84' 作为识别原生 SegWit P2WPKH 帐户的目的值。
推导路径为:
m/84'/coin_type'/account'/change/address_index
每个组件都有其特定的作用:
| 路径组件 | 意 |
|---|---|
m | HD钱包根目录下的主密钥 |
84' | 确定 BIP-84 推导方案 |
coin_type' | 识别加密货币;比特币主网使用 0' |
account' | 在钱包内选择账户。 |
change | 识别外部接收链(0)或内部变更链(1) |
address_index | 识别链中的特定地址 |
例如,比特币主网 BIP-84 账户中的第一个接收地址使用:
m/84'/0'/0'/0/0
对应的首次找零地址使用:
m/84'/0'/0'/1/0
在导出相关公钥后,钱包构建 P2WPKH 输出并使用 Bech32 对其地址进行编码。
为什么地址以……开头 bc1q
比特币主网原生 SegWit 版本 0 地址使用人类可读的前缀 bc 然后是 Bech32 分离器 1地址数据用于识别见证版本和程序。
P2WPKH 使用版本 0 的见证程序,其中包含一个 20 字节的公钥哈希值,从而生成我们熟悉的哈希值。 bc1q 地址格式。
Bech32校验和还有助于检测许多输入和转录错误。但它不能保证用户复制的地址与预期的收款人地址完全一致,因此在汇款前仍应核实地址。
另请阅读:以太坊改进提案(EIP)
BIP-84 简述
1. 比特币地址生成标准
可以将 BIP-84 视为一组指令,兼容的钱包遵循这些指令,从恢复种子生成原生 SegWit 比特币地址。
兼容的钱包不会各自发明自己的派生规则,而是使用相同的结构来识别相同的账户和地址。
2. 常见情况下交易成本更低
与同类传统交易相比,原生 SegWit 交易能更有效地利用比特币区块空间。在相同的手续费率下,这可以降低交易费用。
对于典型的单输入双输出交易,原生 SegWit 交易的开销可能比传统方式减少约 38%。具体的节省幅度取决于输入和输出的数量和类型。
3. 找回钱包
当选择正确的推导路径和账户时,兼容的钱包可以从相同的恢复种子重新生成 BIP-84 地址。
然而,仅仅拥有助记词并不能保证每个钱包都会自动显示资金。钱包必须支持相关的推导标准并能找到正确的账户。
4. 原生 SegWit 与 Taproot 的比较
BIP-84 生成 bc1q 原生 SegWit 地址。BIP-86 生成 bc1p 单密钥 Taproot 地址。
Taproot 支持更多消费条件和脚本功能,但并非所有简单交易都能自动降低成本。最合适的地址类型取决于钱包兼容性、消费需求和交易结构。
重要提示:请务必妥善备份您的恢复种子。切勿将其分享给钱包客服人员、网站或任何其他人。任何获得种子的人都可能访问相关资金。
实际例子
示例 1:创建原生 SegWit 钱包
场景:用户想要创建一个带有原生 SegWit 地址的比特币钱包。
实施: 用户在兼容的钱包中创建一个 BIP-84 账户。该钱包使用派生路径。 m/84'/0'/0' 第一个比特币主网账户及其下属的接收地址。
结果: 钱包生成 bc1q 接收地址,并且在支出资金时可以使用原生 SegWit 交易结构。
例2:比较交易费用
场景:用户正在比较从传统 SegWit 地址和原生 SegWit 地址发送 BTC 的预期成本。
实现方式:钱包会估算虚拟字节数来计算交易大小,并将其乘以适用的手续费率。
结果:同等规模的 SegWit 原生交易通常比传统交易占用更少的区块空间。实际的费用节省取决于交易的输入、输出以及网络状况。
示例 3:在另一个钱包中恢复帐户
场景:用户在丢失对原设备的访问权限后,需要在另一个应用程序中恢复比特币钱包。
实现方式:用户在兼容的钱包中恢复恢复种子,并选择 BIP-84 账户或正确的推导路径。
结果:只要种子、推导路径和账户信息正确,钱包就能重新生成账户地址并识别关联资金。使用不同推导标准的钱包可能不会自动显示同一账户。
BIP-84 的优势
| 企业优势 | 描述 |
|---|---|
| 减少交易规模 | 对于类似的交易,原生 SegWit 可以比传统格式降低费用。 |
| 标准化推导 | 兼容的钱包可以遵循相同的推导规则来识别账户和地址。 |
| 错误检测 | Bech32 包含一个校验和,旨在检测许多地址转录错误。 |
| 隔离见证支持 | P2WPKH 使用原生 SegWit 交易结构,并受益于见证数据权重规则。 |
| 钱包恢复 | 兼容的钱包可以从相同的种子和派生路径重新生成地址。 |
| 广泛的生态系统支持 | 许多现代比特币钱包和服务都支持原生 SegWit,但必要时应检查兼容性。 |
劣势与风险
| 劣势或风险 | 描述 |
|---|---|
| 传统兼容性 | 某些较旧的服务或钱包实现可能不支持原生 SegWit 地址。 |
| 恢复路径不匹配 | 如果钱包搜索错误的资金来源路径或账户,则可能无法显示资金。 |
| 地址格式混乱 | 用户可能会感到困惑 bc1q 具有原生 SegWit 地址的 bc1p Taproot 地址或更早版本 1... 和 3... 格式。 |
| 并非总是最小的交易 | Taproot 的输入金额可能比 P2WPKH 的输入金额要小,相对交易规模取决于输入和输出的数量。 |
| 种子短语曝光 | 任何能够获取恢复种子的人都可能推导出相关的私钥并花掉这些资金。 |
| 兼容性并非普遍存在。 | 标准化的衍生路径并不会强制每个钱包、交易所或服务都支持它。 |
风险管理技巧
1. 验证地址兼容性
在发送比特币之前,请确认接收钱包或交易所是否支持比特币。 bc1q 原生 SegWit 地址。大多数现代比特币服务都支持原生 SegWit 地址,但较旧或专用的系统可能存在限制。
2. 保留安全的恢复备份
将钱包的恢复种子离线存储在安全的地方。切勿在不熟悉的网站上输入恢复种子,也不要将其分享给任何声称提供支持的人。
3. 检查恢复期间的推导路径
如果恢复钱包后资金未显示,请确认应用程序支持 BIP-84 协议,并且已选择正确的账户和派生路径。不要想当然地认为余额缺失就意味着资金丢失。
4. 发货前请确认地址
仔细核对接收地址,并通过可信渠道进行验证。有效的校验和并不能证明该地址属于预期的收件人。
5. 使用实际交易数据比较费用
不要假设每 bc1q 交易价格将比其他任何交易都低。 bc1p 交易。比较您计划进行的交易的预估虚拟货币规模和手续费率。
关于 BIP-84 的常见问题
问:BIP-84是比特币的最佳地址格式吗?
BIP-84 是原生 SegWit P2WPKH 交易的广泛支持选择。它通常能为标准单签名支付提供良好的费用效率,并且具有广泛的钱包兼容性。
Taproot 是 BIP-86 标准定义的单密钥钱包,支持更多消费功能,并且在某些交易结构中可能更高效。但两种格式都不是适用于所有用例的最佳选择。
问:BIP-84 地址可以从旧式钱包接收比特币吗?
是的,前提是发送钱包支持向原生 SegWit 地址发送比特币。发送钱包通常不需要使用 BIP-84 协议本身来发送比特币。 bc1q 地址。
如果某项服务不支持原生 SegWit 地址,请先检查它是否支持其他兼容的比特币地址类型,然后再继续操作。
问:如何知道我的钱包是否使用 BIP-84 编码?
以……开头的比特币主网接收地址 bc1q 通常是一个原生的 SegWit P2WPKH 地址。一个以……开头的地址。 3 通常是一个 P2SH 地址,它可能封装了 SegWit,而以……开头的地址则是一个 P2SH 地址。 1 通常是遗留的 P2PKH。
地址前缀是有用的线索,但检查钱包的账户类型或派生路径是确认所用标准的更可靠的方法。
问:我可以将 BIP-44 或 BIP-49 切换到 BIP-84 吗?
许多钱包允许用户创建独立的 BIP-84 账户。如果钱包支持此功能,用户可以将资金从现有账户转移到新的原生 SegWit 地址。
某些钱包可能使用不同的推导路径,从同一个种子恢复多种账户类型。是否需要转账取决于钱包的功能和用户的设置。链上转账会产生网络费用。
问:BIP-84 能保证比特币交易的私密性吗?
不。BIP-84 规范了地址派生,并使用原生的 SegWit P2WPKH 输出。它本身并不提供交易匿名性,也无法阻止区块链分析。
比特币交易会被公开记录,地址重用或交易之间的关联可能会泄露钱包活动信息。
问:BIP-84地址比Taproot地址便宜吗?
并非所有情况都是如此。对于典型的单输入双输出交易,P2WPKH 交易可能比类似的 Taproot 密钥路径交易要小,因为 Taproot 的输出更大。
Taproot 输入通常花费较少,因此当交易包含多个输入时,相对成本可能会发生变化。交易的结构决定了最终的大小和费用。
相关条款
| 术语 | 关系 |
|---|---|
| BIP-49 | 定义封装的 SegWit P2WPKH 地址的 HD 钱包派生方案。 |
| BIP-44 | 定义与传统 P2PKH 账户关联的通用 HD 钱包派生结构。 |
| BIP-86 | 定义单密钥 Taproot 输出的派生方案。 |
| Bech32 | 用于原生 SegWit 版本 0 地址(例如 BIP-84 P2WPKH 地址)的地址编码格式。 |
| SegWit | 比特币协议升级引入了见证数据和原生 SegWit 使用的交易权重规则。 |
| 高清钱包 | 一个可以从主种子派生出多个密钥对和地址的钱包。 |
| 推导路径 | 用于从 HD 钱包中导出特定密钥或地址的结构化序列。 |
| P2WPKH | 为 BIP-84 账户标准化的原生 SegWit 脚本类型。 |
结语
BIP-84 规范了兼容的分层确定性钱包如何从恢复种子派生原生 SegWit P2WPKH 地址。 bc1q 地址格式支持高效的交易结构、标准化的账户恢复以及与现代比特币基础设施的广泛兼容性。
尽管 BIP-84 仍然是标准比特币支付的有效选择,但它并非唯一可用的地址格式。Taproot 提供了额外的支付功能,而最有效的方案取决于交易结构和钱包的要求。
用户在发送比特币之前,应确认地址兼容性,安全备份恢复种子,并核实交易详情。
本文仅供教育用途,不构成任何财务建议。









