GHOST全称为Greedy Heaviest-Observed Sub-Tree,即贪婪最重可观察子树协议。与Bitcoin中的最长链原则不同,以太坊使用GHOST协议,通过判断最重子树来决定主链。
算法描述
选择区块作为主链的算法
Input: Block tree T
1. set B ← Genesis Block
2. if ChildrenT (B) = ∅ then return(B) and exit
3. else update B ← argmax |subtreeT (C)|
C∈ChildrenT (B)
4. goto line 2
ChildrenT (B) 返回B的子块集合;subtreeT(C)返回以C为根树的重量从创世块开始,将B初始化为genesis block;
判断B的子树是否为空集,为空表明无子块当前即为主链,则返回B块并退出;
否则更新B为具有最重子树的子块;
跳转到步骤2继续寻找主链的下一区块;
以太坊与比特币的主链选择
区块weight为该区块为树根下有效区块的数量(difficulty累加)在上图可见,使用比特币中的最长链原则,0<-1B<-2D<-3F<-4C<-5B为最长主链;在以太坊中使用最重子树原则0<-1B<-2C<-3D<-4B为最重主链
叔块奖励
基本内容:
1.主链区块获得基础奖励(3Eth)
2.一个区块最多引用两个叔块
3.包含一个叔块可以获得挖矿奖励的1/32
计算公式:
((叔块高度+8-当前块的高度)/8 )*base reward
交易费用(transaction fee)不会分配给叔块,当前块高度与叔块高度相差为8(或以上)不能作为叔块,无奖励
GHOST优点
1.安全性独立于出块速度,为GHOST的扩容提供了保证(不会因间隔时间的减少而导致安全性降低,最高可达200tps)
2.解决孤块奖励问题,鼓励矿工参与出块
3.论证了盲目通过增加出块速率和区块大小,来提高TPS不可行
小结
ghost协议使用最重链原则,提高了系统安全性;
增加了对叔块对奖励,激励矿工参与;
但目前的tps仍然不高(10~20),需要其他扩容方案的参与;
参考链接:
http://www.jouypub.com/2018/9b19cff7135411bd37356e6c4f5f63b7/
https://github.com/nebulasio/consensus-survey/blob/master/ch/main.pdf
本文地址: https://www.xiguacaijing.com/news/baike/2019/7631.html
赞助商