Title: 比特币改进提议(BIP)科普,你知道有哪些BIP落地了吗? Post by: Aimee1993 on March 30, 2017, 12:27:11 PM 最近有一项新的比特币改进提议(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 <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 标题 作者 类型 状态 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 |