协议演进 / BIP/比特币改进提案 / BIP-2

BIP-2 BIP 流程(修订版)

修订 BIP-1 的提案流程:把三类 BIP、状态推进的可核验标准、评论机制与许可规则写清楚,让状态尽量反映真实采用情况。本 BIP 目前处于已关闭状态。

一、档案卡

档案卡
编号BIP-2
标题BIP process, revised
作者Luke Dashjr <[email protected]>
指定日期2016-02-03
类型Process(流程类)
状态Closed(已关闭)
替代BIP-1
接替文档Proposed-Replacement: BIP-3
阅读版https://bips.dev/2
官方原文https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki

二、放在哪一族

流程族的第二代文档。它替代 BIP-1,把初版里含糊的地方逐项收紧;文件头里又已标注 Proposed-Replacement 为 BIP-3,现行流程以 BIP-3 为准。

分层字段(Layer)来自 BIP-123 的分类——BIP-2 把 Layer 写进文件头模板,并注明启用本 BIP 即意味着启用 BIP-123。

读这一族要分清三件事:仓库收录、状态标注、网络实际采用。BIP-2 只管前两件的规矩,第三件由实现与用户自愿选择决定。

三、它要解决什么

BIP-1 定下了制度框架,但留了几个模糊点:

BIP-2 的目标不是另起炉灶,而是给同一套制度补上可核验的判定标准与更合适的许可清单。

四、规则本身

4.1 工作流(与 BIP-1 一脉相承的部分)

4.2 三类 BIP 与文件结构

类型仍为三类:Standards Track(标准类,影响多数或全部实现的改动,由设计文档与参考实现两部分组成)、Informational(信息类,提供指南或信息,不代表社区共识,用户可忽略)、Process(流程类,管协议之外的流程,通常需要社区共识,用户一般不能随意忽略;meta-BIP 属此类)。

每份 BIP 应包含:Preamble(文件头)、Abstract、Copyright、Specification、Motivation、Rationale、Backwards Compatibility、Reference Implementation。其中参考实现必须在标为 Final 之前完成,但不必在被接受之前完成。

文件头必填顺序为 BIP、Title、Author、Status、Type、Created、License,可选 Layer、Discussions-To、Requires、Replaces、Superseded-By 等。Title 上限 44 个字符;作者须写真实姓名与邮箱。辅助文件放进该 BIP 的子目录,或命名为 BIP-XXXX-Y.ext。

4.3 状态推进:给 Final 定客观标准

这是 BIP-2 相对 BIP-1 最大的改动。

原文也强调:上述标准是用来判断状态是否如实,而不是用来反对或拒绝一份 BIP 的理由;若某 BIP 事实上已被明确采用却没满足字面标准,仍应更新为 Final。

4.4 评论机制(BIP Comments)

BIP-2 新引入评论页制度:每份 BIP 在文件头链接一个公开 wiki 评论页(放在 Comments 命名空间,如 Comments:BIP-0001),自认有资格的评审者把最终意见按“意见 –姓名, 日期”格式贴在那里;未完成的 BIP 应先在邮件列表讨论。BIP 本身可汇总评论基调写入 Comments-Summary(如 No comments yet、Unanimously Recommended 等)。原文明确:评论与状态是两个互不相关的指标,不应互相直接影响——设评论页的初衷,正是防止“有编号就被当成好主意”。

4.5 许可

新 BIP 必须在文件头 License 字段列出至少一个可接受许可,列表是“或”的关系。推荐:BSD-2-Clause、BSD-3-Clause、CC0-1.0、FSFAP;可接受但不推荐的包括 Apache-2.0、MIT、GPL-2.0+ 等;名单之外的许可不可用。代码可与正文分开许可,用 License-Code 字段。相对 BIP-1 的变化还包括:Accepted 改名为 Proposed、升 Proposed 前须有实现(如适用)、删除 Resolution 字段(去中心化系统里没有能作最终裁决的权威)等。

五、谁必须动

普通持币人:无直接变化。BIP-2 不改协议、不改交易格式。

BIP 作者:负担最重——先公开探路、收集反馈、按新文件头与许可规则写作,升状态时拿出可核验的采用证据。

编辑:订阅开发邮件列表,逐项检查标题、动机、向后兼容、Layer、许可等,做编号、合并与状态维护等行政工作;只能单方面做拼写、断链等纯编辑性修改。

实现者与软件项目:被鼓励公布自己支持哪些 BIP(如 Bitcoin Core 的 doc/bips.md),以便状态变更有据可查。

六、现在算不算数,以及一个常见误读

BIP-2 状态为 Closed。它的文件头标注 Replaces BIP-1、Proposed-Replacement 为 BIP-3;现行流程以已 Deployed 的 BIP-3 为准——状态收束为四档、评论机制废除、Standards Track 改称 Specification 等,都是 BIP-3 在 BIP-2 基础上的再修订。读 BIP-2,是为了看清“状态要反映真实采用”这条原则是怎么被写成具体标准的。

常见误读:

“一份 BIP 标成 Final,就是官方批准、全网必须执行。”

不对。BIP-2 自己在理由部分写明:BIP 流程不追求成为一种强制性的“治理”,只提供一个协作仓库,供人们自愿采用或不采用;Final 只是对“已经事实上被采用”这一现实的如实标注,不是命令。

七、延伸

本页内容整理自 bitcoin/bips 仓库与 bips.dev,事实已与仓库核对;解读仅供学习参考。