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 2GHOST全稱為Greedy Heaviest-Observed Sub-Tree,即貪婪最重可觀察子樹協議。與Bitcoin中的最長鏈原則不同,以太坊使用GHOST協議,通過判斷最重子樹來決定主鏈。
算法描述
ChildrenT (B) 返回B的子塊集合;subtreeT(C)返回以C為根樹的重量
判斷B的子樹是否為空集,為空表明無子塊當前即為主鏈,則返回B塊並退出;
否則更新B為具有最重子樹的子塊;
跳轉到步驟2繼續尋找主鏈的下一區塊;
以太坊與比特幣的主鏈選擇
區塊weight為該區塊為樹根下有效區塊的數量(difficulty累加)
比特幣以太坊
叔塊獎勵
基本內容:
1.主鏈區塊獲得基礎獎勵(3Eth)
2.一個區塊最多引用兩個叔塊
3.包含一個叔塊可以獲得挖礦獎勵的1/32
計算公式:
((叔塊高度+8-當前塊的高度)/8 )*base rewardGHOST優點
1.安全性獨立於出塊速度,為GHOST的擴容提供了保證(不會因間隔時間的減少而導致安全性降低,最高可達200tps)
2.解決孤塊獎勵問題,鼓勵礦工參與出塊
3.論證了盲目通過增加出塊速率和區塊大小,來提高TPS不可行
小結
增加了對叔塊對獎勵,激勵礦工參與;
但目前的tps仍然不高(10~20),需要其他擴容方案的參與;