解读区块链白皮书金马带你定投区块链区块链研习社

《以太坊白皮书》解读四:以太坊其他

2017-07-26  本文已影响2444人  云天明ytm_ltd

改进版幽灵协议的实施

“幽灵“协议("Greedy Heaviest Observed Subtree" (GHOST) protocol)是由Yonatan Sompolinsky 和 Aviv Zohar在2013年12月引入的创新。幽灵协议提出的动机是当前快速确认的块链因为区块的高作废率而受到低安全性困扰.

其实就是区块广播到全网是需要时间的,如果矿工A挖出了一个区块,在广播到全网得到确认之前,矿工B挖出了另外一个区块,矿工B的区块就会作废(其中必定包含重复的交易)。
如此还会带来中心化问题,矿工A的算力强,矿工B的算力弱,那么在高作废率情况下,A的区块产出率就会比B高。
解决方案是推出叔区块概念。计算工作量证明时,不仅包括当前区块的祖区块,父区块,还要包括祖先块的作废的后代区块(以太坊术语中称之为“叔区块”),将他们进行综合考虑。但是这只下探到第五层,是简化版本的幽灵协议。也就是说,废区块只能以叔区块的身份被其父母的第二代至第五代后辈区块,而不是更远关系的后辈区块。

以太坊付给以“叔区块”身份为新块确认作出贡献的废区块87.5%的奖励,把它们纳入计算的“侄子区块”将获得奖励的12.5%,不过,交易费用不奖励给叔区块。

费用(fees)

交易费的作用是防止资源被滥用。

比特币使用的默认方法是纯自愿的交易费用,依靠矿工担当守门人并设定动态的最低费用。因为这种方法是“基于市场的”,使得矿工和交易发送者能够按供需来决定价格,所以这种方法在比特币社区被很顺利地接受了。

但是有一个问题,交易中大部分成本不是矿工产生的,而是其他第三方产生的。所以容易发生“公地悲剧(Tragedy of the commons)”。

公地作为一项资源或财产有许多拥有者,他们中的每一个都有使用权,但没有权利阻止其他人使用,而每一个人都倾向于过度使用,从而造成资源的枯竭。过度砍伐的森林、过度捕捞的渔业资源及污染严重的河流和空气,都是“公地悲剧”的典型例子。之所以叫悲剧,是因为每个当事人都知道资源将由于过度使用而枯竭,但每个人对阻止事态的继续恶化都感到无能为力。而且都抱着“及时捞一把”的心态加剧事态的恶化。公共物品因产权难以界定而被竞争性地过度使用或侵占是必然的结果。这一个概念经常运用在区域经济学,跨边界资源管理等学术领域。(摘自百度百科)

解决问题的办法是建立了一个浮动的上限:没有区块能够包含比BLK_LIMIT_FACTOR 倍长期指数移动平均值更多的操作数。BLK_LIMIT_FACTOR 和 EMA_FACTOR 是暂且被设为 65536 和 1.5 的常数,但可能会在更深入的分析后调整。

计算和图灵完备

图灵完备意味着EVM代码可以实现任何可以想象的计算,包括无限循环,循环的方法是通过JUMP 指令可以让程序跳回至代码前面某处,还有合约可以调用其它合约,有通过递归实现循环的潜力。
但是循环的问题就是会不会无限循环无法停止?以太坊的方案是通过为每一个交易设定运行执行的最大计算步数来解决问题,如果超过则计算被恢复原状但依然要支付费用。
具体来讲,就是:
1、即使无限循环导致gas耗尽结束,恶意发起者也得支付交易费。
2、发起者需要明确startgas,限制可执行步数,这样矿工提前知道计算将耗费过多的步数。
3、合约只执行一步,如果因为恶意停止,合约执行部分将会回滚至最初。
4、图灵完备可以通过设置最高可执行步数来避免逻辑炸弹,相比图灵不完备,图灵完备更加灵活,而且管理方便。

货币和发行

以太币扮演双重角色,为各种数字资产交易提供主要的流动性,更重要的是提供了了支付交易费用的一种机制。
以太币面值:
1: 伟wei
10^12: 萨博szabo
10^15: 芬尼finney
10^18: 以太ether

发行模式:

发售期每个BTC兑换1337-2000个以太币;0.099x 属于早起贡献者(x为发行总量),还有0.099x 供研发费用;自上线时起每年都将有0.26x(x为发售总量)被矿工挖出。

发行分解

估计每年有一个比较固定的以太币遗失率,因此大体来说,和比特币一样以太币的供应量增长率长期来看也趋于零。

以太币长期供应量增长率

挖矿的去中心化

以太坊的挖矿是为每1000个随机数随机产生唯一哈希的函数,是采用足够宽的计算域,去除专用硬件的优势。以太坊还设计挖矿需要访问整个区块链,迫使矿工存储完成的区块链或者至少能够验证每笔交易。这样通过通过增加网络中的全节点数量也有助于抵御中心化。

扩展性

区块链过大将会造成中心化,比如如果块链大小增加至比如100TB,可能的场景将是只有非常小数目的大商家会运行全节点,而常规用户使用轻的SPV节点。
以太坊的策略:
1、矿工必须是全节点,这样保证全节点数量。
2、区块链中包含每笔轻节点交易的中间状态树的根,只要有一个诚实节点,就可以通过一个验证协议避免中心化。不正确的区块的状态和格式会有问题,验证节点就会联合帕特里夏树节点的子集一起验证,避免恶意欺骗。
3、恶意矿工发布不完整区块进行攻击,造成没有足够的信息去确定区块是否正确。解决方案是质疑-回应协议。验证节点发起质疑,轻节点就会取消对该区块的信任,直到矿工节点或者验证节点宣布该区块正确。

end
参考内容:
《以太坊白皮书》

上一篇下一篇

猜你喜欢

热点阅读