BIP: Bitcoin Improvement Proposal, 即比特币改进提案, 是为比特币协议提出的新功能、改进、或信息提交的标准化文档。 BIP 的目的是为比特币社区提供一个透明、结构化和协作的方式来讨论和实现比特币协议的改进和变更。改进提案通过 GitHub 库管理 。
BIP 主要分为以下几类:
BIP 从提出到实施,一般经历以下几个阶段:草案阶段(Draft)、候选阶段(Proposed)、最终阶段(Final)
如下是一个生命周期图:
BIP1: BIP 目的和指南
BIP2: BIP 流程,修订版
BIP8: 通过高度锁定的版本位
BIP9: 带有超时和延迟的版本位
BIP10: 多重签名交易分发
BIP11: M-of-N 标准交易
BIP12: OP_EVAL
BIP13: 支付到脚本哈希的地址格式
BIP14: 协议版本和用户代理
BIP15: 别名
BIP16: 支付到脚本哈希
BIP17: OP_CHECKHASHVERIFY (CHV)
BIP18: hashScriptCheck
BIP19: M-of-N 标准交易(低 SigOp)
BIP20: URI 方案
BIP21: URI 方案
BIP22: getblocktemplate - 基础
BIP23: getblocktemplate - 联合挖矿
BIP30: 重复交易
BIP31: Pong 消息
BIP32: 分层确定性钱包
BIP33: 分层节点
BIP34: 区块 v2,Coinbase 中的高度
BIP35: mempool 消息
BIP36: 自定义服务
BIP37: 连接 Bloom 过滤
BIP38: 密码保护的私钥
BIP39: 用于生成确定性密钥的助记词
BIP42: 比特币的有限货币供应
BIP43: 确定性钱包的用途字段
BIP44: 确定性钱包的多账户层次结构
BIP45: 确定性 P2SH 多重签名钱包的结构
BIP47: 分层确定性钱包的可重用支付代码
BIP48: 多重签名钱包的多脚本层次结构
BIP49: 基于 P2WPKH 嵌套在 P2SH 中的账户派生方案
BIP50: 2013 年 3 月链分叉事后分析
BIP52: 耐用、低能耗的比特币 PoW
BIP60: 固定长度的“版本”消息(中继交易字段)
BIP61: 拒绝 P2P 消息
BIP62: 处理可塑性
BIP64: getutxo 消息
BIP65: OP_CHECKLOCKTIMEVERIFY
BIP66: 严格的 DER 签名
BIP67: 通过公钥排序的确定性支付到脚本哈希多重签名地址
BIP68: 使用共识强制的序列号的相对锁定时间
BIP69: 交易输入和输出的字典索引
BIP70: 支付协议
BIP71: 支付协议 MIME 类型
BIP72: 比特币:支付协议的 URI 扩展
BIP73: 使用“Accept”头进行支付请求 URL 的响应类型协商
BIP74: 在支付协议中允许零值 OP_RETURN
BIP75: 使用支付协议加密的带外地址交换
BIP78: 一个简单的 Payjoin 提案
BIP79: Bustapay :: 一个实用的 coinjoin 协议
BIP80: 非染色投票池确定性多重签名钱包的层次结构
BIP81: 染色投票池确定性多重签名钱包的层次结构
BIP83: 动态分层确定性密钥树
BIP84: 基于 P2WPKH 账户的派生方案
BIP85: 从 BIP32 密钥链生成确定性熵
BIP86: 单密钥 P2TR 输出的密钥派生
BIP87: 确定性多重签名钱包的层次结构
BIP88: 分层确定性路径模板
BIP90: 埋藏部署
BIP91: 降低阈值的 Segwit MASF
BIP93: codex32:带校验和的 SSSS 感知 BIP32 种子
BIP98: 快速默克尔树
BIP99: 共识规则更改的动机和部署(软/硬分叉)
BIP100: 通过矿工投票动态最大区块大小
BIP101: 增加最大区块大小
BIP102: 区块大小增加到 2MB
BIP103: 区块大小随技术增长
BIP104: 'Block75' - 类似难度的最大区块大小
BIP105: 基于共识的区块大小重新定位算法
BIP106: 动态控制的比特币区块大小最大上限
BIP107: 区块大小的动态限制
BIP109: 两百万字节大小限制,带 sigop 和 sighash 限制
BIP111: NODE_BLOOM 服务位
BIP112: CHECKSEQUENCEVERIFY
BIP113: 锁定时间计算的中值时间过去
BIP114: 默克尔化抽象语法树
BIP115: 使用脚本的通用反重播保护
BIP116: MERKLEBRANCHVERIFY
BIP117: 尾调用执行语义
BIP118: Taproot 脚本的 SIGHASH_ANYPREVOUT
BIP119: CHECKTEMPLATEVERIFY
BIP120: 支付证明
BIP121: 支付证明 URI 方案
BIP122: 区块链引用/探索的 URI 方案
BIP123: BIP 分类
BIP124: 分层确定性脚本模板
BIP125: 选择性完全替换费用信号
BIP126: 异构输入脚本交易的最佳实践
BIP127: 简单的储备证明交易
BIP129: 比特币安全多重签名设置 (BSMS)
BIP130: sendheaders 消息
BIP131: “合并交易”规范(通配符输入)
BIP132: 基于委员会的 接受过程
BIP133: feefilter 消息
BIP134: 灵活交易
BIP135: 广义版本位投票
BIP136: Bech32 编码的交易位置引用
BIP137: 使用私钥签名消息
BIP140: 规范化 TXID
BIP141: 隔离见证(共识层)
BIP142: 隔离见证的地址格式
BIP143: 版本 0 见证程序的交易签名验证
BIP144: 隔离见证(对等服务)
BIP145: 隔离见证的 getblocktemplate 更新
BIP146: 处理签名编码的可塑性
BIP147: 处理虚拟堆栈元素的可塑性
BIP148: 强制激活 segwit 部署
BIP149: 隔离见证(第二次部署)
BIP150: 对等身份验证
BIP154: 通过对等指定挑战进行速率限制
BIP155: addrv2 消息
BIP156: 蒲公英 - 隐私增强路由
BIP157: 客户端区块过滤
BIP158: 轻客户端的紧凑区块过滤器
BIP159: NODE_NETWORK_LIMITED 服务位
BIP171: 货币/汇率信息 API
BIP173: 原生 v0-16 见证输出的 Base32 地址格式
BIP174: 部分签名的比特币交易格式
BIP175: 支付合约协议
BIP176: 比特单位
BIP178: 版本扩展 WIF
BIP179: 支付接收者标识符的名称
BIP180: 区块大小/重量欺诈证明
BIP197: 哈希时间锁定抵押合约
BIP199: 哈希时间锁定合约交易
BIP300: 算力托管(共识层)
BIP301: 盲合并挖矿(共识层)
BIP310: Stratum 协议扩展
BIP320: 通用用途的 nVersion 位
BIP322: 通用签名消息格式
BIP324: 版本2 P2P 加密传输协议
BIP325: Signet
BIP326: taproot 交易中的反费用狙击
BIP327: BIP340 兼容的多重签名的 MuSig2
BIP329: 钱包标签导出格式
BIP330: 交易公告对账
BIP331: 祖先包中继
BIP337: 压缩交易
BIP338: 禁用交易中继消息
BIP339: 基于 WTXID 的交易中继
BIP340: secp256k1 的 Schnorr 签名
BIP341: Taproot:SegWit 版本 1 支出规则
BIP342: Taproot 脚本的验证
BIP343: Taproot 部署的强制激活
BIP345: OP_VAULT
BIP347: Tapscript 中的 OP_CAT
BIP350: v1+ 见证地址的 Bech32m 格式
BIP351: 私人支付
BIP352: 静默支付
BIP353: DNS 支付指令
BIP370: PSBT 版本2
BIP371: PSBT 的 Taproot 字段
BIP372: PSBT 的支付合约调整字段
BIP380: 输出脚本描述符的一般操作
BIP381: 非 Segwit 输出脚本描述符
BIP382: Segwit 输出脚本描述符
BIP383: 多重签名输出脚本描述符
BIP384: combo() 输出脚本描述符
BIP385: raw() 和 addr() 输出脚本描述符
BIP386: tr() 输出脚本描述符
BIP387: Tapscript 多重签名输出脚本描述符
BIP388: 描述符钱包的钱包策略
BIP389: 多路径描述符密钥表达式
BIP431: 固定的拓扑限制