主页 > imtoken安卓版 > 比特币改进提案如何运作 |意见

比特币改进提案如何运作 |意见

imtoken安卓版 2023-05-17 06:06:24

比特币是去中心化和开源的,这意味着没有中央权威来决定协议升级。因此,任何人都可以参与他们的代码修改、变更议程。本文介绍什么是BIP(Bitcoin Improvement Proposals),并详细展示BIP协议的治理是如何运作的?

为什么我需要 BIP?

比特币发展初期,没有社区成员讨论、提出有效建议、得到认可和实施的制度。

比特币的维护和迭代更新由核心开发者负责。中本聪在初期编写了比特币的基本框架,但系统可能出现的运行问题以及为适应实际需要而需要进行的升级是不可避免的。早期出现这些情况时,中本聪经常亲自处理。中本聪退出后,维护和迭代更新的任务落到了最初的比特币核心开发者身上。

随着社区的扩大,社区讨论会导致技术上的分歧。当时,比特币核心开发者只是一个小团体。如果有任何改变,他们会直接在内部讨论和发布。但是,当社区发展壮大时,这种方法很容易导致技术差异。协议控制太多,这将是比特币失败的最终原因。因此,提出了一个BIP(Bitcoin Improvement Proposal)。

两个版本的 BIP

BIP0001 于 2011 年 8 月 19 日实施。BIP(Bitcoin Improvement Proposals),这个概念由 Amir Taaki 于 2011 年 8 月 19 日首次提出,该提案成为第一个 BIP。 BIP0001定义了BIP的基本流程。

BIP0002 由 Luke Dashjr 于 2016 年 2 月 3 日提出。BIP0001 基本满足了当时社区对开发过程形式化的需求,但由于很多细节没有详细描述,部分规范已经过时,BIP0002在此基础上进行了迭代,最终实现并替换了BIP0001作为当前使用的BIP规范。

在提交 BIP 之前我应该​​做什么?

当你对比特币有具体的新想法时,确认你的想法适合BIP,一些小更新或bug修复,直接去具体项目开发提交问题,成为BIP还不够.

首先,通过在相关论坛上公开验证想法来节省时间。在编写 BIP 之前,请将您的想法公开在适当的位置,无论是比特币邮箱列表 (bitcoindev@lists.linuxfoundation.org) 还是 Bitocoindev IRC 或相关技术论坛,供大家发表评论。这样做的好处是您可以节省自己的潜在时间,并在大量工作之前找出您的想法是否存在问题。

此外,重要的是要询问这个想法是否以前没有被提出过。很多人提出了很多关于比特币的想法,但最后都因为各种原因都被拒绝了。所以你的想法可能之前已经提出过,但没有成功实施。如果是这种情况,请找出它没有实施的原因,如果无法修复,请不要在注定要被拒绝的事情上花费太多时间。

此外,请确保您的想法适用于整个社区。有时这个想法本身看起来不错,但对大多数比特币社区来说并不适用,而且这个想法最终会被拒绝。

BIP 的格式要求

当您在社区中发布了想法并觉得有机会被接受时,您就可以开始编写 BIP 草案了。但是BIP有严格的格式要求,不按格式写就直接返回。

合格的 BIP 草案需要包含以下内容:

Preamble:包含BIP基础数据的preamble,需要以特定格式书写

摘要:要解决的技术问题的简要说明(约200字)

版权:在某些版权条款下需要明确许可

动机:清楚解释为什么现有协议不足以解决此 BIP 正在解决的问题

规范:技术规范应足够详细地描述任何新功能的语法和语义。

理由:描述设计的动机以及为什么做出这个特定的设计决策来补充规范

向后兼容性:所有引入向后不兼容性的 BIP 都必须包含描述这些不兼容性及其严重性的部分。 BIP 必须说明作者打算如何处理这些不兼容性。如果没有足够的向后兼容性论述,BIP 提交可能会被彻底拒绝。

参考实施:参考实施必须在获得“最终”状态之前完成,但不需要在 BIP 被接受之前完成。

合格的BIP草稿也需要注意格式

前言格式需要注意:

BIP: //BIP编号,如果是草稿阶段,填“?”

* Layer: //记录BIP作用于哪个层级,BIP123中有不同层级的定义

Title: //BIP 的标题,最多 44 个字符

作者://作者的姓名和电子邮件地址

* Discussions-To: // BIP 讨论的邮件列表地址

* Comments-Summary: //BIP收到的评论摘要

Comments-URI: //查看BIP评论的wiki地址

状态:

撤回 |决赛 |替换 | Obsolete> //表示当前BIP处于什么状态

Type: //表示BIP的类型

Created: //BIP 被分配标签的日期

License: //使用的License证书

* License-Code: //许可证代码

* Post-History: //发布时间(发布到比特币邮件列表)

* Requires: //依赖的 BIP 编号

* Replaces: //替换的BIP编号

* Superseded-By: //哪个 BIP 替换它

除了标有*的内容外,其他都是必填项

BIP的附件格式需要注意。 BIP 可能包含图表等附件,这些附件应包含在该 BIP 的子目录中,并且必须命名为 BIP-XXXX-Y.ext,其中“XXXX”是 BIP 编号,“Y”是序列号(从1), "ext" 替换为实际的文件扩展名(例如 "png"")。

BIP 审核流程

一旦完成 BIP 草案,需要将完整的文档提交到比特币开发邮件列表,每个订阅者都会收到您的提案。

在社区中公布 BIP 草案并重新审视完整的提案。此时您需要再次为该 BIP 草案打开社区。上次公开讨论只是一个想法,这次是为了完整的提案。

再次修改 BIP 草案并将其发送给编辑。尝试引导社区成员成为您的 BIP 的倡导者并积极听取社区成员的意见,然后再次修改您的 BIP。当您准备好时,是时候将您的 BIP 发送到 BIP 编辑器了。目前的 BIP 编辑是 Luke Dashjr,可以通过 luke_bipeditor@dashjr.org 与他联系。

BIP 编辑的角色

当 BIP 编辑收到 BIP 的新草稿时,他会执行以下操作:

检查整个 BIP 是否准备就绪。一个现成的 BIP 有两个特点:完整和健全。也就是说,草案内容完全符合规范,没有漏洞,经得起推敲。

检查标题是否准确描述了内容

检查比特币开发邮件列表是否有先前的帖子供公众讨论

检查动机是否得到充分描述并解决向后兼容性

检查序言中的Layer标签是否按照规范正确分配

检查许可证是否在限制范围内

如果 BIP 编辑器认为你的 BIP 没有准备好,它会解释原因并发回给你。重新编辑修改BIP编辑器给出的描述后,可以再次发送。

打磨后,您可以向 BIPs git 存储库提交拉取请求。收到拉取请求后,BIP 编辑器将执行以下操作:

为您的 BIP 分配一个 BIP 编号,您的 BIP 就正式诞生了!

标记您的 BIP 类型(标准跟踪、信息、流程)

合并您的拉取请求并将 BIP 添加到 BIP 存储库中

在 README.mediawiki 中列出您的 BIP,每个人都可以轻松查看新闻

此时,您的 BIP 将再次公开,以供进一步的社区反馈。

共有三种类型的 BIP:

标准跟踪 BIP:描述影响大多数或所有比特币实现的任何更改,例如对网络协议的更改、对块或交易有效性规则的更改,或任何影响使用比特币或增加的应用程序互操作性的更改。

信息性 BIP:描述比特币设计问题,或向比特币社区提供一般指南或信息,但不提出新功能。信息性 BIP 不一定代表比特币社区的共识或建议,因此用户和实施者可以自由地忽略信息性 BIP 或听从他们的建议。

流程 BIP:描述围绕比特币的流程,或提议对流程(或其中的事件)进行更改。流程 BIP 类似于“标准跟踪 BIP”,但在比特币协议本身之外运行。流程 BIP 可能会提出实施方案,但它们不会特定于比特币的代码库;它们通常还需要社区共识;与信息性 BIP 不同,它们不仅仅是建议,用户一般不能随意忽略它们。流程、指导方针、决策流程的变更,以及比特币开发中使用的工具或环境的变更都是流程 BIP。

BIP的最终实现过程

在您的 BIP 经过审核并将其纳入 BIP 存储库后,请花时间宣传您的 BIP。毕竟,你自己的想法会在社区中实现并付诸实践,这会给你带来很大的成就感。

流程BIP和信息BIP将在本月剩余时间进行讨论比特币是用什么技术实现的,如果没有异议,将生效。那么如果是流程 BIP 和信息 BIP比特币是用什么技术实现的,只要在邮件列表上讨论一个多月后没有未解决的异议,我们就可以确定 BIP 已经达成了大部分共识,并且BIP 将更改为“激活”,真正适用于比特币社区。

标准跟踪 BIP 更加复杂和谨慎。您的目标是将 BIP 状态从“草稿”更改为“最终实施”。

在BIP123中,标准BIP分为四层五类:

共识层

软分叉

硬分叉

对等服务层

API/RPC 层

应用层

不同分类的BIP达到“最终实现”状态所需的条件不一致。

软分叉 BIP 严格要求矿工的多数票。考虑到矿池的存在,一般需要95%的选票。

硬分叉 BIP 更加严格,需要整个比特币社区的成员采用,尤其是那些使用比特币买卖商品、存储和交易比特币的人。基本上,它需要比特币社区所有成员的批准才能实现硬分叉。达成这样的共识是极其困难的。因此,比特币历史上从未有过比特币真正的硬分叉升级。

点对点服务 BIP 要求至少 1% 的公共监控节点使用 BIP 一个月

API/RPC 和应用层 BIP 由至少两个独立且兼容的软件实现。

上述过程非常复杂冗长,往往是多方博弈的结果。作为BIP的拥有者,这个阶段你需要做的就是不断地推广你的BIP,接触更多的社区成员,努力推广你的设计理念,解释你的BIP将如何对比特币产生积极的影响社区。争取更多的社区成员成为你的BIP倡导者,一步步实现你的BIP。

BIP 状态更改为“最终实施”将是您最大的奖励。