Author

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

hero member
Activity: 630
Merit: 500
最近有一项新的比特币改进提议(BIP)因其具有非常大的争议性而被社区广泛关注,它就是BIP 148 (隔离见证部署强制激活),其涉及到一种新的软分叉方式——UASF(用户激活软分叉)。根据这一提案的描述显示,如果现有的隔离见证部署在2017年8月1日之前无法激活,那么该BIP将在2017年8月1日至2017年11月15日午夜之间的一个时间点激活。但如果现有的隔离见证部署激活,那这个BIP将停止被激活。
对此,社区内就有人将其解读为:CORE已经放弃95%算力投票共识,将在8月1号无条件强制激活隔离验证。
这里就有一个误区,会有人把草案阶段的提案理解成CORE的共识,也就是Final(落地)阶段。
为了避免让大家产生不必要的误会,这里王司徒有必要科普一下BIP从提出到落地需要经历的步骤,以及当前究竟有哪些BIP。
 
1.BIP提交及审核过程是怎样的?
想要提交BIP,首先应该把自己的想法或文件发布到邮件列表。在经过讨论之后,发起者需要通过电子邮件联系Luke Dashjr <[email protected]>。经过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   标题   作者   类型   状态
1
BIP Purpose and Guidelines   Amir Taaki   Process   Replaced
2
BIP process, revised   Luke Dashjr   Process   Active
9
Version bits with timeout and delay   Pieter Wuille, Peter Todd, Greg Maxwell, Rusty Russell   Informational   Final
10
Applications   Multi-Sig Transaction Distribution   Alan Reiner   Informational   Withdrawn
11
Applications   M-of-N Standard Transactions   Gavin Andresen   Standard   Final
12
Consensus (soft fork)   OP_EVAL   Gavin Andresen   Standard   Withdrawn
13
Applications   Address Format for pay-to-script-hash   Gavin Andresen   Standard   Final
14
Peer Services   Protocol Version and User Agent   Amir Taaki, Patrick Strateman   Standard   Final
15
Applications   Aliases   Amir Taaki   Standard   Deferred
16
Consensus (soft fork)   Pay to Script Hash   Gavin Andresen   Standard   Final
17
Consensus (soft fork)   OP_CHECKHASHVERIFY (CHV)   Luke Dashjr   Standard   Withdrawn
18
Consensus (soft fork)   hashScriptCheck   Luke Dashjr   Standard   Proposed
19
Applications   M-of-N Standard Transactions (Low SigOp)   Luke Dashjr   Standard   Draft
20
Applications   URI Scheme   Luke Dashjr   Standard   Replaced
21
Applications   URI Scheme   Nils Schneider, Matt Corallo   Standard   Final
22
API/RPC   getblocktemplate – Fundamentals   Luke Dashjr   Standard   Final
23
API/RPC   getblocktemplate – Pooled Mining   Luke Dashjr   Standard   Final
30
Consensus (soft fork)   Duplicate transactions   Pieter Wuille   Standard   Final
31
Peer Services   Pong message   Mike Hearn   Standard   Final
32
Applications   Hierarchical Deterministic Wallets   Pieter Wuille   Informational   Final
33
Peer Services   Stratized Nodes   Amir Taaki   Standard   Draft
34
Consensus (soft fork)   Block v2, Height in Coinbase   Gavin Andresen   Standard   Final
35
Peer Services   mempool message   Jeff Garzik   Standard   Final
36
Peer Services   Custom Services   Stefan Thomas   Standard   Draft
37
Peer Services   Connection Bloom filtering   Mike Hearn, Matt Corallo   Standard   Final
38
Applications   Passphrase-protected private key   Mike Caldwell, Aaron Voisine   Standard   Draft
39
Applications   Mnemonic code for generating deterministic keys   Marek Palatinus, Pavol Rusnak, Aaron Voisine, Sean Bowe   Standard   Proposed
40
API/RPC   Stratum wire protocol   Marek Palatinus   Standard   BIP number allocated
41
API/RPC   Stratum mining protocol   Marek Palatinus   Standard   BIP number allocated
42
Consensus (soft fork)   A finite monetary supply for Bitcoin   Pieter Wuille   Standard   Draft
43
Applications   Purpose Field for Deterministic Wallets   Marek Palatinus, Pavol Rusnak   Informational   Draft
44
Applications   Multi-Account Hierarchy for Deterministic Wallets   Marek Palatinus, Pavol Rusnak   Standard   Proposed
45
Applications   Structure for Deterministic P2SH Multisignature Wallets   Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia   Standard   Proposed
47
Applications   Reusable Payment Codes for Hierarchical Deterministic Wallets   Justus Ranvier   Informational   Draft
49
Applications   Derivation scheme for P2WPKH-nested-in-P2SH based accounts   Daniel Weigl   Informational   Draft
50
March 2013 Chain Fork Post-Mortem   Gavin Andresen   Informational   Final
60
Peer Services   Fixed Length “version” Message (Relay-Transactions Field)   Amir Taaki   Standard   Draft
61
Peer Services   Reject P2P message   Gavin Andresen   Standard   Final
62
Consensus (soft fork)   Dealing with malleability   Pieter Wuille   Standard   Withdrawn
63
Applications   Stealth Addresses   Peter Todd   Standard   BIP number allocated
64
Peer Services   getutxo message   Mike Hearn   Standard   Draft
65
Consensus (soft fork)   OP_CHECKLOCKTIMEVERIFY   Peter Todd   Standard   Final
66
Consensus (soft fork)   Strict DER signatures   Pieter Wuille   Standard   Final
67
Applications   Deterministic Pay-to-script-hash multi-signature addresses through public key sorting   Thomas Kerin, Jean-Pierre Rupp, Ruben de Vries   Standard   Proposed
68
Consensus (soft fork)   Relative lock-time using consensus-enforced sequence numbers   Mark Friedenbach, BtcDrak, Nicolas Dorier, kinoshitajona   Standard   Final
69
Applications   Lexicographical Indexing of Transaction Inputs and Outputs   Kristov Atlas   Informational   Proposed
70
Applications   Payment Protocol   Gavin Andresen, Mike Hearn   Standard   Final
71
Applications   Payment Protocol MIME types   Gavin Andresen   Standard   Final
72
Applications   bitcoin: uri extensions for Payment Protocol   Gavin Andresen   Standard   Final
73
Applications   Use “Accept” header for response type negotiation with Payment Request URLs   Stephen Pair   Standard   Final
74
Applications   Allow zero value OP_RETURN in Payment Protocol   Toby Padilla   Standard   Draft
75
Applications   Out of Band Address Exchange using Payment Protocol Encryption   Justin Newton, Matt David, Aaron Voisine, James MacWhyte   Standard   Draft
80
Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets   Justus Ranvier, Jimmy Song   Informational   Deferred
81
Hierarchy for Colored Voting Pool Deterministic Multisig Wallets   Justus Ranvier, Jimmy Song   Informational   Deferred
83
Applications   Dynamic Hierarchical Deterministic Key Trees   Eric Lombrozo   Standard   Draft
90
Consensus (hard fork)   Buried Deployments   Suhas Daftuar   Informational   Draft
99
Motivation and deployment of consensus rule changes ([soft/hard]forks)   Jorge Timón   Informational   Draft
101
Consensus (hard fork)   Increase maximum block size   Gavin Andresen   Standard   Withdrawn
102
Consensus (hard fork)   Block size increase to 2MB   Jeff Garzik   Standard   Draft
103
Consensus (hard fork)   Block size following technological growth   Pieter Wuille   Standard   Draft
104
Consensus (hard fork)   ‘Block75′ – Max block size like difficulty   t.khan   Standard   Draft
105
Consensus (hard fork)   Consensus based block size retargeting algorithm   BtcDrak   Standard   Draft
106
Consensus (hard fork)   Dynamically Controlled Bitcoin Block Size Max Cap   Upal Chakraborty   Standard   Draft
107
Consensus (hard fork)   Dynamic limit on the block size   Washington Y. Sanchez   Standard   Draft
109
Consensus (hard fork)   Two million byte size limit with sigop and sighash limits   Gavin Andresen   Standard   Rejected
111
Peer Services   NODE_BLOOM service bit   Matt Corallo, Peter Todd   Standard   Proposed
112
Consensus (soft fork)   CHECKSEQUENCEVERIFY   BtcDrak, Mark Friedenbach, Eric Lombrozo   Standard   Final
113
Consensus (soft fork)   Median time-past as endpoint for lock-time calculations   Thomas Kerin, Mark Friedenbach   Standard   Final
114
Consensus (soft fork)   Merkelized Abstract Syntax Tree   Johnson Lau   Standard   Draft
120
Applications   Proof of Payment   Kalle Rosenbaum   Standard   Draft
121
Applications   Proof of Payment URI scheme   Kalle Rosenbaum   Standard   Draft
122
Applications   URI scheme for Blockchain references / exploration   Marco Pontello   Standard   Draft
123
BIP Classification   Eric Lombrozo   Process   Active
124
Applications   Hierarchical Deterministic Script Templates   Eric Lombrozo, William Swanson   Informational   Draft
125
Applications   Opt-in Full Replace-by-Fee Signaling   David A. Harding, Peter Todd   Standard   Proposed
126
Best Practices for Heterogeneous Input Script Transactions   Kristov Atlas   Informational   Draft
130
Peer Services   sendheaders message   Suhas Daftuar   Standard   Proposed
131
Consensus (hard fork)   “Coalescing Transaction” Specification (wildcard inputs)   Chris Priest   Standard   Draft
132
Committee-based BIP Acceptance Process   Andy Chase   Process   Withdrawn
133
Peer Services   feefilter message   Alex Morcos   Standard   Draft
134
Consensus (hard fork)   Flexible Transactions   Tom Zander   Standard   Draft
140
Consensus (soft fork)   Normalized TXID   Christian Decker   Standard   Draft
141
Consensus (soft fork)   Segregated Witness (Consensus layer)   Eric Lombrozo, Johnson Lau, Pieter Wuille   Standard   Draft
142
Applications   Address Format for Segregated Witness   Johnson Lau   Standard   Deferred
143
Consensus (soft fork)   Transaction Signature Verification for Version 0 Witness Program   Johnson Lau, Pieter Wuille   Standard   Draft
144
Peer Services   Segregated Witness (Peer Services)   Eric Lombrozo, Pieter Wuille   Standard   Draft
145
API/RPC   getblocktemplate Updates for Segregated Witness   Luke Dashjr   Standard   Draft
146
Consensus (soft fork)   Dealing with signature encoding malleability   Johnson Lau, Pieter Wuille   Standard   Draft
147
Consensus (soft fork)   Dealing with dummy stack element malleability   Johnson Lau   Standard   Draft
148
Consensus (soft fork)   Mandatory activation of segwit deployment   Shaolin Fry   Standard   Draft
150
Peer Services   Peer Authentication   Jonas Schnelli   Standard   Draft
151
Peer Services   Peer-to-Peer Communication Encryption   Jonas Schnelli   Standard   Draft
152
Peer Services   Compact Block Relay   Matt Corallo   Standard   Draft
171
Applications   Currency/exchange rate information API   Luke Dashjr   Standard   Draft
180
Peer Services   Block size/weight fraud proof   Luke Dashjr   Standard   Draft
199
Applications   Hashed Time-Locked Contract transactions   Sean Bowe, Daira Hopwood   Standard   Draft

有意思的是,在所有的BIP当中,唯一一个处于Rejected(拒绝)状态的BIP,就是Gavin Andresen提出的BIP109。
讲到这里,读者对BIP也应该有所了解了,关于BIP我们应该要理性对待,只有在进入Active(激活)状态时,我们才认为它是被Core接受的。(本文纯科普,不代表个人立场)
原文出处:http://www.8btc.com/bitcoin-bip
Jump to: