比特币改进提议(BIP)科普,你知道有哪些BIP落地了吗?

2017-03-31 09:35 来源:巴比特资讯 阅读:6160
最近有一项新的比特币改进提议(BIP)因其具有非常大的争议性而被社区广泛关注,它就是BIP 148 (隔离见证部署强制激活),其涉及到一种新的软分叉方式——UASF(用户激活软分叉)。

最近有一项新的比特币改进提议(BIP)因其具有非常大的争议性而被社区广泛关注,它就是BIP 148 (隔离见证部署强制激活),其涉及到一种新的软分叉方式——UASF(用户激活软分叉)。根据这一提案的描述显示,如果现有的隔离见证部署在2017年8月1日之前无法激活,那么该BIP将在2017年8月1日至2017年11月15日午夜之间的一个时间点激活。但如果现有的隔离见证部署激活,那这个BIP将停止被激活。

对此,社区内就有人将其解读为:CORE已经放弃95%算力投票共识,将在8月1号无条件强制激活隔离验证。

这里就有一个误区,会有人把草案阶段的提案理解成CORE的共识,也就是Final(落地)阶段。

为了避免让大家产生不必要的误会,这里王司徒有必要科普一下BIP从提出到落地需要经历的步骤,以及当前究竟有哪些BIP。

Bitcoin Improvement Proposal

1.BIP提交及审核过程是怎样的?

想要提交BIP,首先应该把自己的想法或文件发布到邮件列表。在经过讨论之后,发起者需要通过电子邮件联系Luke Dashjr <luke_bipeditor@dashjr.org>。经过Luke Dashjr的编辑和通过之后,BIP就会在 https://github.com/bitcoin/bips 发布了。

根据规则,任何人都是可以提交BIP的,注意,在https://github.com/bitcoin/bips 页面上发布一个BIP,并不代表它已被正式接受,当其状态变为激活(Active)时才算正式被接受。而想要让一个BIP正式激活,这需要经过开发者社区的协商同意。

而当前BIP的状态一共可分为9种,它们分别是Proposed (提出)、Draft(草案)、Active(激活)、Final(落地)、Replaced(被替代)、Withdrawn(撤掉)、Deferred(推迟)、BIP number allocated (BIP编号被分配)、Rejected(拒绝)。

巴比特论坛版主玛雅则根据他自己的理解将这个过程分为了7步:

第1步:想法,任何一个人都可以通过任何途径渠道,如论坛,推特等等,提出自己改进初步想法,来争取更多人支持认同。
第2步:提案,可以汇总社区讨论的建议,以较规范的格式,详细地描述方案,形成一个BIP提案文件提交。
第3步:正式提案,对较重要或者认可的人较多的BIP提案分配序号。以便方便大家讨论区分这个提案,有序号的提案算是正式提案。
第4步:落实代码,一些开发者会依据BIP正式提案的构思,落实成具体的代码。并且在测试网络上进行严格的测试。以确保代码尽量没有Bug。
第5步:激活设定,代码没有问题后,根据《BIP9升级规范》,设定激活门槛,分配激活标记位,缓冲时间等。
第6步:发布版本,若足够多的人签名同意,那么会吸纳此BIP代码在最新版本中发布包含这个BIP代码的版本,但是处于未激活状态。
第7步:激活,等待达到BIP9设的激活门槛后,方案正式激活生效。实测是否方案成功。若出现问题可能回到上一版本。

而当前极具争议的BIP 148,目前只是处在草案阶段(Draft),并且根据多位开发者的反应,这一草案能够激活的可能性非常低。

目前落地(Final)的 BIP有哪些?

附当前已落地(Final)应用的BIP列表:

BIP 支持软件版本 标题
9 v0.12.1 版本位超时与延迟(Version bits with timeout and delay)
作者:(Pieter Wuille, Peter Todd, Greg Maxwell, Rusty Russell)
11 v0.6.0 M-of-N标准交易(M-of-N Standard Transactions)
作者:(Gavin Andresen)
13 v0.6.0 pay-to-script-hash 地址格式(Address Format for pay-to-script-hash)
作者:(Gavin Andresen)
14 v0.6.0 协议版本及用户代理(Protocol Version and User Agent)
作者:(Amir Taaki, Patrick Strateman)
16 v0.6.0 Pay To Script Hash
作者:(Gavin Andresen)
21 v0.6.0 URI计划(URI Scheme)
作者: (Nils Schneider, Matt Corallo)
22 v0.7.0 getblocktemplate
作者:(Luke Dashjr)
23 v0.10.0 getblocktemplate – Pooled Mining
作者:(Luke Dashjr)
30 v0.6.0 重复交易(Duplicate transactions)
作者:(Pieter Wuille)
31 v0.6.1 PONG消息(Pong message)
作者: (Mike Hearn)
34 v0.7.0 v2版区块,coinbase高度(Block v2, Height in coinbase)
作者: (Gavin Andresen)
35 v0.7.0 内存池消息(mempool message)
作者:(Jeff Garzik)
37 v0.8.0 布鲁姆过滤(Bloom filtering)
作者: (Mike Hearn, Matt Corallo)
42 v0.9.2 比特币有限货币供应(A finite monetary supply for Bitcoin)
作者: (Pieter Wuille)
61 v0.9.0 “拒绝”P2P消息(“reject” P2P message)
作者:(Gavin Andresen)
65 v0.10.4 OP_CHECKLOCKTIMEVERIFY
作者:(Peter Todd)
68 v0.12.1 使用共识执行序列号的相对锁定时间(Relative lock-time using consensus-enforced sequence numbers)
作者: (Mark Friedenbach, BtcDrak, Nicolas Dorier, kinoshitajona)
66 v0.10.0 Strict DER签名(Strict DER signatures)
作者: (Pieter Wuille)
70 v0.9.0 支付协议(Payment protocol)
作者: (Gavin Andresen, Mike Hearn)
71 v0.9.0 支付协议MIME类型(Payment protocol MIME types)
作者: (Gavin Andresen)
72 v0.9.0 支付协议的URI扩展(URI extensions for Payment Protocol)
作者: (Gavin Andresen)
111 v0.12.0 节点_布鲁姆服务位(NODE_BLOOM service bit)
作者:(Matt Corallo, Peter Todd)
112 v0.12.1 OP_CHECKSEQUENCEVERIFY
作者:(BtcDrak, Mark Friedenbach, Eric Lombrozo)
113 v0.12.1 过去中位时间(Median Time Past)
作者:(Thomas Kerin, Mark Friedenbach)
125 v0.12.0 Opt-in Full 费用替代Opt-in Full Replace-by-Fee Signaling
作者:(David A. Harding, Peter Todd)
130 v0.12.0 Sendheaders消息(Sendheaders message)
作者: (Suhas Daftuar)
141 v0.13.0 隔离见证 (共识层)
作者: (Eric Lombrozo, Johnson Lau, Pieter Wuille)
143 v0.13.0 用于Version 0见证程序的交易签名验证(Transaction Signature Verification for Version 0 Witness Program)
作者: (Johnson Lau, Pieter Wuille)
144 v0.13.0 隔离见证(对等服务—— Peer Services)
作者:(Eric Lombrozo, Pieter Wuille)
145 v0.13.0 用于隔离见证的getblocktemplate更新 (getblocktemplate Updates for Segregated Witness)
作者: (Luke Dashjr)
147 v0.13.1 处理虚拟栈元素的可塑性 (Dealing with dummy stack element malleability)
作者:(Johnson Lau)

按开发者参与的BIP进入Final阶段次数从高到低进行排序,那么Top 5依次分别是 Gavin Andresen (8次)、Pieter Wuille(7次)、Peter Todd(4次)、Luke Dashjr(3次)以及Johnson Lau(3次)。

当前有哪些BIP?

附当前所有BIP的列表:

BIP编号Layer标题作者类型状态
1BIP Purpose and GuidelinesAmir TaakiProcessReplaced
2BIP process, revisedLuke DashjrProcessActive
9Version bits with timeout and delayPieter Wuille, Peter Todd, Greg Maxwell, Rusty RussellInformationalFinal
10ApplicationsMulti-Sig Transaction DistributionAlan ReinerInformationalWithdrawn
11ApplicationsM-of-N Standard TransactionsGavin AndresenStandardFinal
12Consensus (soft fork)OP_EVALGavin AndresenStandardWithdrawn
13ApplicationsAddress Format for pay-to-script-hashGavin AndresenStandardFinal
14Peer ServicesProtocol Version and User AgentAmir Taaki, Patrick StratemanStandardFinal
15ApplicationsAliasesAmir TaakiStandardDeferred
16Consensus (soft fork)Pay to Script HashGavin AndresenStandardFinal
17Consensus (soft fork)OP_CHECKHASHVERIFY (CHV)Luke DashjrStandardWithdrawn
18Consensus (soft fork)hashScriptCheckLuke DashjrStandardProposed
19ApplicationsM-of-N Standard Transactions (Low SigOp)Luke DashjrStandardDraft
20ApplicationsURI SchemeLuke DashjrStandardReplaced
21ApplicationsURI SchemeNils Schneider, Matt CoralloStandardFinal
22API/RPCgetblocktemplate – FundamentalsLuke DashjrStandardFinal
23API/RPCgetblocktemplate – Pooled MiningLuke DashjrStandardFinal
30Consensus (soft fork)Duplicate transactionsPieter WuilleStandardFinal
31Peer ServicesPong messageMike HearnStandardFinal
32ApplicationsHierarchical Deterministic WalletsPieter WuilleInformationalFinal
33Peer ServicesStratized NodesAmir TaakiStandardDraft
34Consensus (soft fork)Block v2, Height in CoinbaseGavin AndresenStandardFinal
35Peer Servicesmempool messageJeff GarzikStandardFinal
36Peer ServicesCustom ServicesStefan ThomasStandardDraft
37Peer ServicesConnection Bloom filteringMike Hearn, Matt CoralloStandardFinal
38ApplicationsPassphrase-protected private keyMike Caldwell, Aaron VoisineStandardDraft
39ApplicationsMnemonic code for generating deterministic keysMarek Palatinus, Pavol Rusnak, Aaron Voisine, Sean BoweStandardProposed
40API/RPCStratum wire protocolMarek PalatinusStandardBIP number allocated
41API/RPCStratum mining protocolMarek PalatinusStandardBIP number allocated
42Consensus (soft fork)A finite monetary supply for BitcoinPieter WuilleStandardDraft
43ApplicationsPurpose Field for Deterministic WalletsMarek Palatinus, Pavol RusnakInformationalDraft
44ApplicationsMulti-Account Hierarchy for Deterministic WalletsMarek Palatinus, Pavol RusnakStandardProposed
45ApplicationsStructure for Deterministic P2SH Multisignature WalletsManuel Araoz, Ryan X. Charles, Matias Alejo GarciaStandardProposed
47ApplicationsReusable Payment Codes for Hierarchical Deterministic WalletsJustus RanvierInformationalDraft
49ApplicationsDerivation scheme for P2WPKH-nested-in-P2SH based accountsDaniel WeiglInformationalDraft
50March 2013 Chain Fork Post-MortemGavin AndresenInformationalFinal
60Peer ServicesFixed Length “version” Message (Relay-Transactions Field)Amir TaakiStandardDraft
61Peer ServicesReject P2P messageGavin AndresenStandardFinal
62Consensus (soft fork)Dealing with malleabilityPieter WuilleStandardWithdrawn
63ApplicationsStealth AddressesPeter ToddStandardBIP number allocated
64Peer Servicesgetutxo messageMike HearnStandardDraft
65Consensus (soft fork)OP_CHECKLOCKTIMEVERIFYPeter ToddStandardFinal
66Consensus (soft fork)Strict DER signaturesPieter WuilleStandardFinal
67ApplicationsDeterministic Pay-to-script-hash multi-signature addresses through public key sortingThomas Kerin, Jean-Pierre Rupp, Ruben de VriesStandardProposed
68Consensus (soft fork)Relative lock-time using consensus-enforced sequence numbersMark Friedenbach, BtcDrak, Nicolas Dorier, kinoshitajonaStandardFinal
69ApplicationsLexicographical Indexing of Transaction Inputs and OutputsKristov AtlasInformationalProposed
70ApplicationsPayment ProtocolGavin Andresen, Mike HearnStandardFinal
71ApplicationsPayment Protocol MIME typesGavin AndresenStandardFinal
72Applicationsbitcoin: uri extensions for Payment ProtocolGavin AndresenStandardFinal
73ApplicationsUse “Accept” header for response type negotiation with Payment Request URLsStephen PairStandardFinal
74ApplicationsAllow zero value OP_RETURN in Payment ProtocolToby PadillaStandardDraft
75ApplicationsOut of Band Address Exchange using Payment Protocol EncryptionJustin Newton, Matt David, Aaron Voisine, James MacWhyteStandardDraft
80Hierarchy for Non-Colored Voting Pool Deterministic Multisig WalletsJustus Ranvier, Jimmy SongInformationalDeferred
81Hierarchy for Colored Voting Pool Deterministic Multisig WalletsJustus Ranvier, Jimmy SongInformationalDeferred
83ApplicationsDynamic Hierarchical Deterministic Key TreesEric LombrozoStandardDraft
90Consensus (hard fork)Buried DeploymentsSuhas DaftuarInformationalDraft
99Motivation and deployment of consensus rule changes ([soft/hard]forks)Jorge TimónInformationalDraft
101Consensus (hard fork)Increase maximum block sizeGavin AndresenStandardWithdrawn
102Consensus (hard fork)Block size increase to 2MBJeff GarzikStandardDraft
103Consensus (hard fork)Block size following technological growthPieter WuilleStandardDraft
104Consensus (hard fork)‘Block75′ – Max block size like difficultyt.khanStandardDraft
105Consensus (hard fork)Consensus based block size retargeting algorithmBtcDrakStandardDraft
106Consensus (hard fork)Dynamically Controlled Bitcoin Block Size Max CapUpal ChakrabortyStandardDraft
107Consensus (hard fork)Dynamic limit on the block sizeWashington Y. SanchezStandardDraft
109Consensus (hard fork)Two million byte size limit with sigop and sighash limitsGavin AndresenStandardRejected
111Peer ServicesNODE_BLOOM service bitMatt Corallo, Peter ToddStandardProposed
112Consensus (soft fork)CHECKSEQUENCEVERIFYBtcDrak, Mark Friedenbach, Eric LombrozoStandardFinal
113Consensus (soft fork)Median time-past as endpoint for lock-time calculationsThomas Kerin, Mark FriedenbachStandardFinal
114Consensus (soft fork)Merkelized Abstract Syntax TreeJohnson LauStandardDraft
120ApplicationsProof of PaymentKalle RosenbaumStandardDraft
121ApplicationsProof of Payment URI schemeKalle RosenbaumStandardDraft
122ApplicationsURI scheme for Blockchain references / explorationMarco PontelloStandardDraft
123BIP ClassificationEric LombrozoProcessActive
124ApplicationsHierarchical Deterministic Script TemplatesEric Lombrozo, William SwansonInformationalDraft
125ApplicationsOpt-in Full Replace-by-Fee SignalingDavid A. Harding, Peter ToddStandardProposed
126Best Practices for Heterogeneous Input Script TransactionsKristov AtlasInformationalDraft
130Peer Servicessendheaders messageSuhas DaftuarStandardProposed
131Consensus (hard fork)“Coalescing Transaction” Specification (wildcard inputs)Chris PriestStandardDraft
132Committee-based BIP Acceptance ProcessAndy ChaseProcessWithdrawn
133Peer Servicesfeefilter messageAlex MorcosStandardDraft
134Consensus (hard fork)Flexible TransactionsTom ZanderStandardDraft
140Consensus (soft fork)Normalized TXIDChristian DeckerStandardDraft
141Consensus (soft fork)Segregated Witness (Consensus layer)Eric Lombrozo, Johnson Lau, Pieter WuilleStandardDraft
142ApplicationsAddress Format for Segregated WitnessJohnson LauStandardDeferred
143Consensus (soft fork)Transaction Signature Verification for Version 0 Witness ProgramJohnson Lau, Pieter WuilleStandardDraft
144Peer ServicesSegregated Witness (Peer Services)Eric Lombrozo, Pieter WuilleStandardDraft
145API/RPCgetblocktemplate Updates for Segregated WitnessLuke DashjrStandardDraft
146Consensus (soft fork)Dealing with signature encoding malleabilityJohnson Lau, Pieter WuilleStandardDraft
147Consensus (soft fork)Dealing with dummy stack element malleabilityJohnson LauStandardDraft
148Consensus (soft fork)Mandatory activation of segwit deploymentShaolin FryStandardDraft
150Peer ServicesPeer AuthenticationJonas SchnelliStandardDraft
151Peer ServicesPeer-to-Peer Communication EncryptionJonas SchnelliStandardDraft
152Peer ServicesCompact Block RelayMatt CoralloStandardDraft
171ApplicationsCurrency/exchange rate information APILuke DashjrStandardDraft
180Peer ServicesBlock size/weight fraud proofLuke DashjrStandardDraft
199ApplicationsHashed Time-Locked Contract transactionsSean Bowe, Daira HopwoodStandardDraft

有意思的是,在所有的BIP当中,唯一一个处于Rejected(拒绝)状态的BIP,就是Gavin Andresen提出的BIP109。

讲到这里,读者对BIP也应该有所了解了,关于BIP我们应该要理性对待,只有在进入Active(激活)状态时,我们才认为它是被Core接受的。(本文纯科普,不代表个人立场)

声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

点击阅读全文