网赚论坛

 找回密码
 免费注册
查看: 355|回复: 0
打印 上一主题 下一主题

用户激活软分叉

[复制链接]

14

主题

15

帖子

56

积分

Ⅰ级财主

Rank: 1

积分
56
跳转到指定楼层
楼主
发表于 2018-2-2 14:25:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是关于软分叉激活机制的一些想法。过去我们使用IsSuperMajority,现在用BIP9作为软分叉的激活方法,都是通过绝大多数算力引发节点开始实施新的规则。基于算力的激活是一个最简单直接的方法,但却也有很多限制。

首先,这需要信任算力在激活后会验证新的规则。BIP66软分叉是一个案例,95%算力表示准备就绪,但实际上大约一半没有真正的验证新规则,且错误的在无效块上挖矿

其次,矿工投票有天然的否决权,允许一小部分算力阻止节点激活。到目前为止,软分叉利用挖矿相对中心化。但当算力变得更加去中心化,“升级惯性”的现象将否决大多数升级。

升级惯性对于广泛部署的软件是不可避免的,以微软Windows XP为例,尽管微软已经在2009停止支持,且被4个新的软件取代了:Vista、Win7、Win8和Win10,然而此时仍有5.72%在运行WindowsXP。

第三,现有的软分叉激活方式被普遍误解为算力在提议上进行投票,而且已很难在社区纠正这个误解。算力的角色是选择有效的交易,产生有效的区块,增长区块链。从事经济活动而进行完全校验节点则确保区块是有效的。节点根据他们运营的软件定义有效性,但是矿工决定哪些有效的交易包含进区块链中。

因此,软叉规则实际上是由节点强制执行的,而不是矿工。当然,矿工可以选择不打包使用新的软分叉功能的交易,但他们不能产生对于软分叉是无效的块。P2SH软分叉是一个很好的例子,未升级的矿工把P2SH看作可以不带签名就花费的有效交易。然而这样的交易打包在一个区块中,该块将是无效的,矿工将失去块奖励和矿工费。

这种所谓的“审查”式软分叉不需要节点主动参与,因为大于51%的算力已经能够把包含黑名单中的交易的区块作为孤块。由于这不是关于有效性的变化,节点将自动接受受审查的区块链。

第四,由大多数矿工激活软分叉为他们带来不必要的注意,也令事性变得不必要地政治化。由于被误解为投票,矿工可能会感到为社区利益作“决定”的压力:谁设置了信号,谁没有设置信号,都会成为一个巨大的公众焦点。有些矿工可能没有升级,或可能不喜欢参与软分叉,这是他们的权利。然而,这样的矿工却成为否决每个人的激活理由,虽然软分叉是一个可选的功能!这种情况违背了比特币系统的自愿性质:在各级参与是自愿的,通过平衡的激励保持诚实。

由于矿工已经拥有协议级的权限选择他们喜欢的任意交易(不打包他们不喜欢的交易),最好的解决方法是让矿工可以选择不参与激活一些他们不用的功能,但又不需要把软分叉否决。

这里讨论的替代方案是“标志日激活”,节点在未来的预定时间开始执行新规则。这种方法比基于算力激活需要一个较长的准备时间,但提供了一些优点,也许提供了一个更好的权衡。

软分叉在激活后仍然是可选的。例如,P2SH,比特币生态系统中的许多参与者仍然不使用P2SH。只有11%的比特币存储在P2SH地址。矿工依然可以自由的不打包P2SH交易,但仍会验证交易,以防止大意地打包了无效的交易,导致他们的块被拒绝。作为精心设计的软分叉的一个额外的安全措施,这些交易应该是非标准而不会被打包;如果矿工刻意把一些无效的交易打包,这是和自己的经济利益作对。

由于比特币系统的激励依靠自我验证,经济节点(矿工和用户)都应该确保他们的节点是安全的,确保当前规则是有效执行的。他们可以把他们的网络放在全节点后面,而全节点会过滤掉无效的交易和区块(所谓的防火墙或边界节点)。

用户激活软分叉是开放式的。矿工不是必须产生新版本的区块,未升级矿工的区块也不会被孤立,不像IsSuperMajority软分叉(如bip34,bip66,bip65-cltv)会强制矿工升级。

BIP9 ”versionbits“软分叉的激活方法也允许未升级的矿工在激活后无需强制升级,因为他们的区块不会变为孤块。最近的一个案例是,“CSV”软分叉激活的BIP68、BIP112和BIP113。只要他们不产生无效块,CSV软叉允许未升级的矿工继续挖矿。

矿工仍然会自行决定打包哪笔交易。然而,不管他们是否打包使用新规则的交易,他们也有强烈的动机校验新规则:如果他们不这样做,他们可能会受到一个愿意浪费12.5个币创建一个无效块的无赖矿工攻击,而在一个无效的链上挖矿,发生类似于BIP66事件。

用户激活软叉是双赢的,因为它增加了一个选项,有些人想要的同时也不损害其他人。即使只有10%的用户想要的功能,只要收益超过了技术风险,拒绝别人的选择的能力是不合理的。

我的建议是两全其美的。由于用户激活软分叉需要一个相对长的时间,我们可以结合BIP9给一个选项,由算力协调激活,或者在标志日激活。在这两种情况下,我们都可以利用BIP9预警系统。变化相对简单,只需要增加一个激活时间参数,在BIP9部署超时结束之前把BIP9状态转为LOCKED_IN。

建议:

https://gist.github.com/shaolinf ... b966da0c0b1682ea2ab

参考:

[1]: https://bitcoin.org/en/alert/2015-07-04-spv-mining

[2]: http://p2sh.info/dashboard/db/p2 ... mp;to=1488030912918

英文原文:

[bitcoin-dev] Moving towards user activated soft fork activation

https://lists.linuxfoundation.or ... ebruary/013643.html

翻译:龙少

声明:

这是LTC开发者shaolinfry在[bitcoin-dev]邮件组中的邮件,我翻译后,仅供参考,以原文为准,且不代表core的观点。

来自:http://weibo.com/ttarticle/p/show?id=2309404081198967206187
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

广告合作|Archiver|手机版|小黑屋|财富吧

GMT+8, 2024-11-2 01:21 , Processed in 0.296401 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.1

© 2014-2021 财富吧

快速回复 返回顶部 返回列表