区块链自问自答 day6
区块链自问自答 day6
比特币为什么要设置十分钟出块限制?
比特币将区块间隔设计为10min,是在更快速的交易确认和更低的分叉概率间做出妥协。更短的区块产生时间间隔让交易清算更快地完成,也会导致更加频繁的区块链分叉。相对地,更长地间隔减少分叉数量,却会导致更长地清算时间。
20世纪90年代,美国海军陆战队为了方便海外情报人员的联络,在海军研究实验室开始了基于互联网的匿名网络通信的研究。这项研究于2002年9月发布了一个测试版,此项目被命名为“洋葱路由项目”,简称Tor项目。2004年12月,此项目开源,从此进入公众的生活,并形成了之后的深网。
深网建立在互联网上,但又不能直接通过互联网访问,它里面的服务是匿名的。那么能否有匿名的现金系统?比特币就是在这样的一个环境下应运而生,它解决了深网中贸易支付的匿名问题。正是因为洋葱网络的刷新时间是10min,比特币打包区块的时间也设置为10min。
为何以太坊区块的生成平均时间只有15s?
以太坊采用了Ethash算法,使区块的生成时间减少到平均15s。
由于以太坊产生区块的速度比比特币产生区块的速度快很多,所以很容易产生合规但没有被加入主链中的区块,这种区块就叫做叔伯块。在以太坊中,产生叔伯块的矿工和将叔伯块包括在区块链中的矿工都能得到奖励。
矿工每包含一个叔伯块将获得(1/32)*5的额外奖励。
矿工产生叔伯块会获得(叔伯块ID+8-当前区块ID)*(5/8)的奖励。
将产生废块的算力包括进来,有效地增加了安全性,也使攻击者更不容易追上一个带有叔伯块的主链。同时,通过给叔伯块奖励,也避免出现像比特币那样算力高度集中的矿池,因为矿池相对来说不像单个挖矿节点那样容易产生废块。叔伯块的包含也不是毫无限制的,严格来说,叔伯块是在当前链接区块往前推最多6个“祖先”废块,每个区块最多能链接两个“叔伯块”。
以太坊采用一个与比特币不同的算法——贪婪最重观察树(Greedy Heaviest Observed Subtree,GHOST)来构建区块链。因为加了叔伯块的关系,严格来说,以太坊的区块链不是一个链条,更像是一棵树,但是具体交易数据等信息仍以主链为主。
以太坊中的贪婪最重观察树是什么?
与比特币中的最长链原则不同,以太坊使用GHOST协议,通过判断最重子树来决定主链。
简单来说,GHOST协议就是让我们必须选择一个在其上完成计算最多的路径。一个方法确定路径就是使用最近一个区块(叶子区块)的区块号,区块号代表着当前路径上总的区块数(不包含创世纪区块)。区块号越大,路径就会越长,就说明越多的挖矿算力被消耗在此路径上以达到叶子区块。使用这种推理就可以允许我们赞同当前状态的权威版本。
与最长链规则相比, GHOST的优点在于能够在网络延迟较高时降低攻击效率,同时最小化链重组的深度。原因是即使攻击者能够高效地在其分叉链上继续产生区块,尝试使该链成为最长链,GHOST也会选择另一条票数更高的分叉链。
Input: Block tree T
-
set B ← Genesis Block
-
if ChildrenT (B) = ∅ then return(B) and exit
-
else update B ← argmax |subtreeT (C)|C∈ChildrenT (B)
-
goto line 2
ChildrenT (B) 返回B的子块集合;subtreeT(C)返回以C为根树的重量
解决问题
解决了快速生成区块时区块链安全方面的矛盾,因为在区块生成速度过快时,由于网络延迟的原因会导致许多节点没有收到新的区块继续在以前的旧的区块上继续挖矿,从而导致网络中的废区块增多,这就会导致中心化的问题。
如果A是一个拥有全网30%算力的矿池而B拥有10%的算力,A将面临70%的时间都在产生作废区块的风险而B在90%的时间里都在产生作废区块。如果作废率高,A将简单地因为更高的算力份额而更有效率。因此,区块产生速度快的区块链很可能导致一个矿池拥有实际上能够控制挖矿过程的算力份额。
GHOST优点
- 安全性独立于出块速度,为GHOST的扩容提供了保证(不会因间隔时间的减少而导致安全性降低,最高可达200TPS)
- 解决孤块奖励问题,鼓励矿工参与出块
- 论证了盲目通过增加出块速率和区块大小,来提高TPS不可行
GHOST缺点
区块链可能会突然跨深度任意切换分叉
eth1链应对这种情况的方式是让用户假设矿工的区块需要多久才能被全网接收到,因此交易需要等待x个确认。
参考链接:
http://soliloquy0810.cn/2019/03/25/以太坊-GHOST协议
https://www.chaindd.com/3262942.html