9.6Bite酱🔥比特币软件、区块、交易版本升级及BIP9规范
视频长度:2分16秒
请(((WiFi)))下观看(科技每日推送)
https://v.qq.com/txp/iframe/player.html?width=500&height=375&auto=0&vid=x03358afzry
◆ ◆ ◆相关文章 ◆ ◆
8.8Bite酱🔥CCTV13介绍比特币构想,币圈3种共识投票
您看此视频用
比特币版本的升级知识
马龙(玛雅)
先来看看几个很知名的产品的版本情况。
苹果手机的版本号
iPhone开发代号“Purple 2”
iPhone 2G、3G、3GS
iPhone4及iPhone 4S
iPhone5、 5S 、5C
iPhone6、6 Plus、6S、6S Plus、SE
iPhone 7及iPhone7 plus
Android在正式发行之前,最开始拥有两个内部测试版本,并且以各著名的机器人名称来对其进行命名,它们分别是:
阿童木(Android Beta),
发条机器人(Android 1.0)。
后来考虑到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本代号的命名方法,且按照26个字母数序:
纸杯蛋糕(Cupcake,Android 1.5),
甜甜圈(Donut,Android 1.6),
松饼(Eclair,Android 2.0/2.1),
冻酸奶(Froyo,Android 2.2),
姜饼(Gingerbread,Android 2.3),
蜂巢(Honeycomb,Android 3.0),
冰激凌三明治(Ice Cream Sandwich, Android4.0),
果冻豆(Jelly Bean,Android 4.1/4.2),
奇巧(KitKat,Android 4.4),
棒棒糖(Lollipop,Android 5.0),
棉花糖(Marshmallow,Android 6.0),
牛轧糖(Nougat,Android 7.0)。
版本号 | 开发代号 | 版本 | 发布日期 |
---|---|---|---|
1.0 | Interface Manager | Windows 1.0 | 1985-11-20 |
NT 3.1 | NTOS/2 | Windows NT 3.1 | 1993-7-27 |
4.0 | Chicago芝加哥 | Windows 95 | 1995-8-24 |
4.1 | Memphis孟斐斯 | Windows 98 | 1998-6-25 |
NT 5.0 | Windows NT 5.0 | Windows 2000 | 2000-2-17 |
4.9 | Millennium千禧年 | Windows ME | 2000-9-14 |
NT 5.1 NT 5.2(64位) | Whistler 惠斯勒 | WindowsXP | 2001-10-25 |
NT 5.2 | Whistler Server | Windows Server 2003 | 2003-4-24 |
NT 6.0 | Longhorn长角 | Windows Vista | 2005-7-27 |
NT 6.0 | Longhorn Server | Windows Server 2008 | 2008-2-27 |
NT 6.1 | Blackcomb黑梳山,Vienna维也纳,Windows 7 | Windows 7 | 2009-10-22 |
NT 6.1 | Vail小费 | Windows Home Server 2011 | 2011-04-05 |
NT 6.2 | Windows 8 | Windows 8 | 2012-10-25 |
NT 6.2 | Windows Server 8 | Windows Server 2012 | 2012-9-4 |
NT 6.3 | Windows Blue | Windows 8.1 | 2013-10-18 |
NT 10.0 | Windows Threshold | Windows 10 | 2015-7-29 |
NT10.1 | Windows10 Autumn Update | Windows10 Update 1 | 2015-10-29 |
NT10.2 | Windows Redstone | Windows10 Redstone | 2015-12-17 |
通过上面列举可以看到苹果版本号是简单的数字增加,有时数字加字母。安卓则是有趣味地用了一些甜品名称首字母顺序,目前最新是Android N,可推测下一个版本号会是Android O再下一个是Android P。而微软的操作系统版本号较综合,有个主序内核版本号,开发代号和外部发布的版本号。早期用年份和短名如很知名的XP,后来可能是受到苹果版本号影响,开始真接换用简洁的数字,Win7,Win8和现在的Win10。你可能会问Win9呢?答:斩华雄去了。其实真实答案是为了避免和早期的Win95/98产生混淆,因此直接跳过了。
每个知名的产品,都会有各种各样的版本号。有些是开发代号,有些是项目号,有些是产品发布号。用这些各种各样的版本号,各家公司是有很多自己的理由,汇总总结如下。
1.1 研发与市场需求
最通常的情况,一款产品在内部开始构思和研发时就要取好名称,而在发布前根据产品情况、市场情况才能最终决定市场名,像人的乳名和正式始名。没必要也较难在项目刚研发时就完全确定未来产品市场号,所以代号用于项目开发过程中内部交流,简短可方便交流沟通(比如在圈内交流时每次说Satoshi 0.13.1版本,不如直接说SW版本简单)。在正式发布时,再根据市场决定是用在产品上,还是再起个新的对外的产品代号。
1.2 技术保密需求
新技术的研发,有时会有保密的需求,尤其一些保密严格的公司。可为某代号项目工作,却不知道这项工作具体用在什么产品上。例如苹果就曾经被列为高度机密的项目,命名为“Project Purple”(紫色项目)来开发一个保密项目。一些没必要让其知道细节又需要让辅助开发的员工,只要让其知道其在为Purple项目的一个子模块工作即可,至于整个Purple项目具体是什么,其可以不知。等以后解密后才再知道,原来其就是知名的iPhone手机项目。若不弄个代号,可能提前泄密苹果在研发做手机了。
1.3 工作热情需求
长期为一个版本号工作较容易失去激情,因此弄一些版本代号更好记、更便捷、更朗朗上口,在组织内部和粉丝群体里交流比念版本更方便更有趣。很多公司员工和用户会觉得有个开发代号会比较酷。可以比如各种动物代号、星系代号、水果代号等等。常换版本代号比只是单纯的数字增加,更能激发工作动力。有时也能区分工作小组,例如Core、Classic和BU即是版本又是开发团队。
2.1 软件版本历史
比特币QT钱包软件版本历史来自Github.com
https://bitcoin.org/en/version-history
2016-10-27 - Bitcoin Core version 0.13.1(SegWit)
2016-09-19 - Bitcoin Classic 1.1.1
2016-08-27 - Bitcoin XT Release 0.11.0F
2016-08-23 - Bitcoin Core version 0.13.0
2016-08-18 - Bitcoin Unlimited V0.12.1 c
2016-07-27 - Bitcoin Unlimited V0.12.1 b
2016-06-22 - Bitcoin Classic 1.1.0
2016-05-31 - Bitcoin Classic 0.12.1
2016-04-15 - Bitcoin Core version 0.12.1
2016-03-08 - Bitcoin Classic 0.12.0
2016-02-23 - Bitcoin Core version 0.12.0
2016-02-13 - Bitcoin XT Release 0.11.0E
2016-02-09 - Bitcoin Classic 0.11.2
可从上面的版本发布和下图看到,2016年是比特币版本的最多最杂的一年,各种fork版本Classic,Unlimited纷纷诞生崛起,XT版本虽然已经几乎没有节点了但也发出了E版本和F版本。目前最新的同时也是节点比最多的版本是由Core推出的0.13.1版本,约35%左右全节点占比。因0.13.1版本主要加入了Segregated Witness隔离验证软分叉,因此大家一般也称其为SW版本。
2015-12-09 - Bitcoin XT 0.11D
2015-11-13 - Bitcoin Core version 0.11.2
2015-10-15 - Bitcoin Core version 0.11.1
2015-10-14 - Bitcoin Core version 0.10.3
2015-10-10 - Bitcoin XT 0.11C
2015-09-08 - Bitcoin XT 0.11B
2015-08-06 - Bitcoin XT 0.11A
2015-07-12 - Bitcoin Core version 0.11.0
2015-05-19 - Bitcoin Core version 0.10.2
2015-04-27 - Bitcoin Core version 0.10.1
2015-02-16 - Bitcoin Core version 0.10.0
2015-01-15 - Bitcoin XT 0.10rc3
2015年年初正式发布的XT版本,打破了Bitcoin只有单一开发团队和版本的历史。同时也正式标志着扩容之争从观点分歧之争阶段,演变为了版本之争阶段,但是比特币区块链上目前各个版本还是兼容的,并没有链分叉,更加没有分裂币种。除了软扩容路线的Core版本外,其它版本一般均是支持硬扩容路线。从下图最新节点占比上来看目前Core版本还是占主流达85.11%,算力区块上也是大多数矿池都在使用Core版本的比特币软件。
2014-09-27 - Bitcoin Core version 0.9.3
2014-06-19 - Bitcoin Core version 0.9.2.1
2014-06-16 - Bitcoin Core version 0.9.2
2014-04-08 - Bitcoin Core version 0.9.1
2014-03-19 - Bitcoin Core version 0.9.0
2013-12-09 - Bitcoin-Qt version 0.8.6
2013-09-13 - Bitcoin-Qt version 0.8.5
2013-09-03 - Bitcoin-Qt version 0.8.4
2013-06-25 - Bitcoin-Qt version 0.8.3
2013-05-29 - Bitcoin-Qt version 0.8.2
2013-03-18 - Bitcoin-Qt version 0.8.1
2013-02-19 - Bitcoin-Qt version 0.8.0
2012-12-14 - Bitcoin-Qt version 0.7.2
2012-10-19 - Bitcoin-Qt version 0.7.1
2012-09-17 - Bitcoin-Qt version 0.7.0
2012-06-25 - Bitcoin-Qt version 0.6.3
2012-05-08 - Bitcoin-Qt version 0.6.2
2012-05-04 - Bitcoin-Qt version 0.6.1
2012-03-30 - Bitcoin-Qt version 0.6.0
2012-03-16 - Bitcoin-Qt version 0.5.3.1
2012-03-14 - Bitcoin-Qt version 0.5.3
2012-01-09 - Bitcoin-Qt version 0.5.2
2011-12-15 - Bitcoin-Qt version 0.5.1
2011-11-21 - Bitcoin-Qt version 0.5.0
2011-09-23 - Bitcoin version 0.4.0
2011-07-08 - Bitcoin version 0.3.24
2011-06-14 - Bitcoin version 0.3.23
2011-06-05 - Bitcoin version 0.3.22
2011-04-27 - Bitcoin version 0.3.21
早期的比特币软件版本升级简单地序号增加,称号从最开始直接Bitcoin,到Bitcoin-Qt(QT是技术,一种跨平台的C++图形用户界面应用程序框架。现在的各比特币fork版本,其实都是属于QT版本,BitQT.com),再到Bitcoin Core。值得注意的是除最新Classic外,各个版本版本序号的第一个版本数字都是0,就是说目前还没有到Bitcoin 1.0.0。由此可见比特币版本升级的谨慎。我觉得若SegWit能激活,LN闪电网络能成功运行,那时既有高安全的主链,又有快速秒速确认的闪电,且区块结构也得到根本优化,那时是完善的点对点电子现金系统,应该可以正式进入Bitcoin 1.0时代了。
2.2 区块版本号历史
区块链中的区块版本,见下链接下图。
https://btc.com/stats/block-ver
虽然软件版本众多但是他们都是生成相兼容的版本的区块。就像Office Word的软件子版本众多,但都是生成*.doc文件,然后后来才升级到*.docx,只进行了一次升级。
比特币的区块版本如图所示,进行了v1、v2、v3到v4的版本升级,而在v4之后的目前,是升级到BIP9规范来控制版本升级。
在实施BIP9之前是块版本号version逐个增加,当近1000个块中的版本超过95%都是新版本时,则触发启用新特性,在之后不再接收旧版本号的块。但是有个问题是需要耗的时间太长,最快的v3到v4也用了一个半月左右的时间,并且一次只能表决一个特性升级。最新的BIP9下可以解决。
块版本号version为4字节,即32个1或0比特位。如下:
二进制格式:
001 0 0000 000000000000000000000000
---- -------------------------------
固定保留 29个特性标识位
在BIP9中前3个固定为001,后面的29个对应于29个特性升级,置为1表示支持此特性,因此可以最多29个特性升级并行同时投票支持更新。
若要支持BIP68/112/113
软分叉,那么区块版本号是: 0x20000001
,二进制为:0010 0000 0000 0000 0000 0000 0000 0001
。
若要支持SegWit
软分叉,那么区块版本号是: 0x20000002
,二进制为:0010 0000 0000 0000 0000 0000 0000 0010
。
若要支持BIP109
(Classic 2MB)硬分叉,那么区块版本号是:0x30000000
,二进制为:0011 0000 0000 0000 0000 0000 0000 0000
。
若想同时去支持SegWit
软分叉和BIP109
(Classic 2MB)硬分叉,那么区块版本号是:0x30000002
,二进制为:0011 0000 0000 0000 0000 0000 0000 0010
。
目前Unlimited
硬分叉还没有正式加入BIP9,未在29个特性标识位中选则一个,而只Coinbase中留言投票,用BIP9默认未进行投票的区块版本号: 0x20000000
,二进制为:0010 0000 0000 0000 0000 0000 0000 0000
。
2.3 交易版本号历史
区块中每笔具体交易的版本号也是4个字节,默认为0x01000000,目前自诞生以来没有修改过。下图是交易的数据结构,整理自《Master Bitcoin》的表5-1、表5-2和表5-3。
隔离验证交易
为了实现兼容之前节点,其继续维持版本号,仅仅对上图中的红框中的内容移动到外面。从而达到压缩交易,节省区块空间的目的。验证脚本字段的数据移动到区块外面,隔离放在区块外的验证块中。除此之外并没有太多其它的改动,并不是像有些人说的那样把比特币交易格式都完全重新构架。
因为一个交易中,红框的解锁验证脚本往往占很大空间,将其隔离出去后,可以提升大约70%的额外空间,就是说相当于软扩容到1.7MB。另外隔离出来放到验证块,而原数据区块1MB而和验证块可能需要0.8MB甚至几MB,就是说隔离验证并不是节省存储空间,而只是节省区块的空间,增加1MB能打包进去的交易量。将验证隔离掉后交易ID也能固定下来,从而解决交易可锻性问题,进而为后期的闪电网络和侧链技术等打下技术基础。
灵活弹性交易
这个是由Classic开发的,并其好像是打算升级交易版本号到 0x04版本。Tom Zander是弹性交易的提出者和创建者。目前在Bitcoin Classic的最新版本中已经整合了这个特性,但应该是尚未激活。相关介绍看视频和链接:
http://www.8btc.com/tan90d92 / tan90d93
http://zander.github.io/posts/Flexible_Transactions/
视频长度:12分24秒
请(((WiFi)))下观看(闪电HSL字幕)
http://mp.weixin.qq.com/s/awLuW1a57oAZDtH6F2LnTw
Flexible Transaction will look like this;
TxStart (Version) | 0x04 | TX-ID data | |
inputs | TX-ID I try to spent | 1 + 32 bytes | |
Index in prev TX-ID | var int | ||
outputs | TX-out Value (in Satoshis) | var int | |
TX-out script | byte array | ||
inputs | TX-in-script (Witness data) | byte array | WID-data |
TxEnd | 0x2C |
根据目前的了解知识和上图,弹性交易并没有将验证数据隔离,而是放到了交易后面,并且好像是将输入输出计数器、脚本尺寸、输入后面的未准确定义含义的Sequence序列号以及交易最后的nLockTime时间戳等等先全部删除,然后前面是纯输入和纯输出数据,后面是验证数据Witness,以及可以弹性定义需要的其他数据。其描述是兼容的软分叉,但是如此颠覆整个中本聪交易构架的交易格式,我觉得有可能很难真正地完全兼容之前版本的软分叉来实现。
开发者测试了187000个最近的交易,并检查了这个改变会对交易的大小有什么影响。交易从平均值1712字节下降到1660字节,中间值从333个字节下降到318个字节,节省空间效果并不明显。 而其说后期删除验证数据后能75%,这是和隔离验证效果接近的,不过灵活弹性好像没有给验证的隔离存储空间,若删除好像就是完全删除了,并且其它删除的字段太多,较担心有可能会有一些安全隐患,要谨慎些多多做测试和足够共识下再激活。
升级规范BIP9的特征:支持多个特性同时升级、新增投票时间区间、新增锁定期,具体见下链接和下图。
https://news.btc.com/m/228
https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki
BIP9的升级特性所处状态有:
定义DEFINED :每个特性的升级设定,会定义写到某一个软件版本中,从不同升级特性从29个特性标识位中选定一个。如:BIP68/112/113
软分叉选了最后1个特性标识位,SegWit
软分叉定义选了倒数第2个特性标识位。同时还定义激活门槛,启动时间,结束时间和锁定时间等。
DEFINED is the first state that each soft fork starts out as. The genesis block is by definition in this state for each deployment.
启动STARTED :过了启动时间后,会开始定期地收集区块版本的投票情况。若在结束时间前,能达到激活门槛,则进入锁定,否则进入失败。
STARTED for blocks past the starttime.
锁定LOCKED_IN :收集到足够占比超过激活门槛的区块时进入,而一旦进入锁定状态,不再看是否区块投票降低,必然会在锁定期过后将来激活。锁定期一般设为2016个块,大约两周时间。
LOCKED_IN for one retarget period after the first retarget period with STARTED blocks of which at least threshold have the associated bit set in nVersion.
激活ACTIVE :锁定的区块数量达到时,进入激活正式启用新特性。
ACTIVE for all blocks after the LOCKED_IN retarget period.
失败FAILED:时间过了定义的结束时间,仍没有达到激活门槛的区块占比,一般95%区块,那么则进入失败状态。
FAILED for one retarget period past the timeout time, if LOCKED_IN was not reached.
上图中为目前三个BIP9的升级示例:
绿色的线是BIP68/112/113
软分叉,区块支持很快达到95%门槛而目前已经成功激活。
紫色的线是BIP109(Classic)
硬分叉,目前区块支持还很低很低,不超10%,目前不到1%,估计不太可能达到75%门槛而可能会失败。
蓝色的线是BIP141/143/144/145(SegWit)
软分叉,区块支持目前很快超过了20%,而要求达到95%才激活,还要看未来的支持算力情况。目前国内国池支持SW,其他矿池多在观望中。矿工若支持SW可以切算力过去。具体SegWit隔离验证软分叉的近期的区块支持情况,见下图:
这个网址还收集的各币圈公司和项目的支持情况。目前有77家币圈公司和项目计划支持SW隔离验证,其中有28家已经做好了准备,25家正在准备中。
Segwit Ready: 28, work-in-progress: 25, planned: 24
更多版本资料见BitQT.com
另外注意BU版本目前是不支持BIP9升级规范的,其只是简单地遵守最长链,哪条链长就简单承认跟随哪条链。从而理论上有51%算力就能激活硬分叉新特性的可能,因其是硬分叉有可能有观点分歧其它49%算力可能不认同不跟随,从而有分裂币圈风险。呼吁BU能采用规范的BIP9进行升级投票,从29个中选定一个自己的特性标识位,给出较高激活门槛,最好95%,让矿工算力公开投票。
8.4Bite酱🔥对BU无限版本建议进行的限制,无规矩不成方圆
欢迎转载若转请保留下面打赏
◆ ◆ ◆ ◆ ◆
请关注Bite酱观看更多视频,可赞留言交流。
---== 币知识 ==---
赏原创:9.3Bite酱🔥CCTV13:特殊失窃物一高科技产品比特币矿机
赏原创:9.2Bite酱🔥如果有一天,我突然失忆,怎样把比特币留下来
赏原创:8.6Bite酱🔥什么是比特币,什么是狗狗币,什么是区块链
赏原创:8.8Bite酱🔥CCTV13介绍比特币构想,币圈3种共识投票
赏原创:8.7Bite酱🔥链上收发比特币,如何能做到快速确认到帐?
赏原创:8.3Bite酱🔥什么是共识,什么是分叉,什么是兼容性?
赏原创:5.9Bite酱一未来公交闪电:揭秘比特币区块链虽满却未堵
赏原创:7.Bite酱一咋币减半呢
---== 币生态 ==---
赏原创:9.5Bite酱🔥比特币版本《元首的愤怒》点评解读为啥怒?
赏原创:8.9Bite酱🔥致敬中本聪,币圈利益分配模式演进之路
赏原创:6.Bite酱一币圈布道者
赏原创:8.4Bite酱🔥对BU无限版本建议进行的限制,无规矩不成方圆
赏原创:7.6Bite酱🔥一个币圈一个币与一个币圈两币或多币
赏原创:6.6Bite酱一CCTV2:详细客观报道比特币达7分钟
---== 币思考 ==---
赏原创:9.4Bite酱🔥比特币巅峰之战:投票前终极辩论及8个点评
赏原创:7.8Bite酱🔥脑洞实验:比特币硬分叉导致分裂后的各种可能
赏原创:7.9Bite酱🔥百万张银行卡可被盗刷与某平台近12万比特币被盗币
赏原创:6.8Bite酱一细算币历史🔥暴涨暴跌幅度 30%弱爆了
赏原创:6.5Bite酱一几个知名加密电子币长线价格走势图分析
---== 币应用==---
赏原创:9.1Bite酱🔥美国大选投票,可用区块链技术确保投票公正
赏原创:7.5Bite酱🔥直播行业未来与电子币主播打赏应用前景
赏原创:7.1Bite酱一欧洲杯🏆葡萄牙vs法国的区块链投票应用
赏原创:6.7Bite酱一DACA:首次区块链投票用于较大型选举
您的赏赞和支持是创作更高质量内容的动力!
免责声明:【我们尊重原创。视频和图片素材,版权属于原作者。若涉及版权问题,敬请联系处理】