Filecoin測試網第二階段已經進行了一月有餘,本周進行網路重置。一有重置必然會掀起算力大戰,排名、爆塊、挖礦效率...已經成為整個市場的默認目標。
為什麼?市場宣傳的需要使然。
但是這個時候,這些數據並不能真正說明問題。實際上,在當前的演算法下,算力高可能意味著吃虧,而且出塊權的計算方式仍在改變。
市場一覽
周五(6月19日) 8:00,Filecoin 測試網按計劃重置了。
因為很多改變與原實現不兼容,本次重置直接通過重置升級,好處是節省時間。這也是為了讓開發團隊集中精力在實現獎勵階段的實現上,而不用花很多時間來進行鏈的維護。
重置之後我們仍然看到,不少團隊的宣發還是集中在:
算力排名
出塊效率
Seal速度
可以理解,大家都需要做市場,做宣傳,推動生態發展。總要宣傳點什麼。
但是,在目前階段僅關注這幾個方面,可能會一些誤導:
廣大受眾並不一定能有一個準確的判斷
信息也並不一定準確
之所以這麼說,是因為就目前的實現而言:
算力佔比過高,實際上代幣收益是吃虧的;
在現在的網路中,算力佔比較小者理論上更佔優勢,但與網路狀況和同步效率關係較大;
Seal 速度展示了一定的優化能力,但是有時候和效率是相悖的;
Seal速度的展示是可以偽造的*(具體怎麼造請參考第二階段剛上線的時候的一些討論,當然也可以通過第三方進行挑戰的方式進行證明)。
*註:這裡並不是說一定有人偽造,只是說技術上可行。
為什麼這個階段大家還抓住這些點不放,重複之前的各種指標呢?可能是因為節奏被帶成這個樣子了,可惜的是這次沒人帶新節奏。
算力與出塊
為什麼說算力佔比過高,實際上代幣收益是吃虧的?因為在第二階段測試網中,演算法又變了。
判斷一個礦工能否贏得一輪挖礦權利依靠一個簡單判斷:
這裡 h(vrfout) 是一個隨機數;e 是預期每個高度的區塊數,目前設置為 5;myPower/totalPower 是礦工的算力佔比。
上面公式的意思是:如果你的算力佔比是 r = myPower/totalPower,那麼你獲得選舉的概率就是 r*e。
問題來了,因為 e=5,因此當你的算力超過20%時,你一定能夠贏得出塊權。
也就是說,無論你的算力是20%, 還是21%, 還是60%, 80%,理論上你都應該每一輪都能夠出塊,獲得區塊獎勵。這樣的話,超出20% 部分的算力就沒有意義了。
相反,如果你擁有 10% 的算力,理論上你應該擁有 50% 的出塊權,也就是有一半的機會出塊。
大家可以自己權衡一下,是否達到了這個指標。
另外,因為受到各種因素的干擾,實際成功出塊並加入最重鏈的幾率要小於理論出塊權的。
出塊與安全
為什麼改成現在這個樣子呢?一句話,為了穩定和安全作出的權衡。
這裡主要考慮如下幾個因素:
區塊獎勵和算力佔比成正比 - 公平性
Filecoin網路出塊更穩定,消息打包更完備 - 可擴展性
系統安全性提升 - 安全性
為達到這些目的,Filecoin團隊做了不少的探索。
在最初的設計和去年的開發網階段,基本上是考慮每一個高度平均一個區塊。這樣比較容易實現出塊和獎勵的公平性,但是空塊的輪次太多了。
於是,在測試網第一階段做出了一個簡單且有意思的改進:
增大每一個礦工的出塊率;
推出一個新概念:ExpectedBlocksPerEpech,也就是 e,目前這個值設為 5,也就是說每一輪的出塊數為 5;
並在其中採用了複雜的 GenerateCandidates 機制,按照sector的固定比例來計算;
推出選票制,按照選票來計算區塊獎勵。
無論一個礦工贏得幾張選票,出一個區塊就可以了。這個機制比較複雜。但是還是非常公平的。
但是,這種演算法仍然隱含著問題,主要是在算力增大的情況下,在一個區塊時間內的計算量呈線性增加,然而,區塊時間是固定的,計算量逐步增大不合理。
因此,測試網第二階段開始前,演算法進一步改進,就是去掉了選票制。每一個礦工出塊獎勵都一樣。但是,這裡出現了一個 20% 上限的問題。
POS的秘密
20%的上限,看起來不公平,因為對於大於20%算力的礦工而言肯定是吃虧了。
但是這個重要嗎?不重要。因為它對於算力小於20% 的礦工而言是公平的。如果全網每一個礦工的算力都小於 20%,就公平了。
也就是說,這個演算法實際上是設置了一條算力的軟上限——你可以超越這條線,但沒有一絲好處。
這樣的設置,對於去中心化而言反而是有幫助的。所以團隊在設計時對此並不在意。但是礦工卻需要很重視。
然而,在市場上我們卻看到這個上限確實被不少礦工有意無意地忽視了。
既然如此,這個演算法是否就沒問題了?其實不然。
這個演算法有一個很大的問題,沒有秘密了。
區塊鏈出塊的一個重要的安全因素就是隨機性和不可預測性,也就是秘密選舉。但是在目前的演算法中,一個算力達到20%以上的礦工每一輪理論上都可以贏得選舉,這就沒有秘密可言了。
沒有秘密,那很多事就好辦了。比如幾個大礦工一起做點壞事,那就太簡單了。
Filecoin的出塊權選舉是POS,其權益比例已經公開了,在這個秘密選舉的世界,公開的信息越多就越容易被利用。那麼如果一個演算法能夠被利用來推算出誰能夠肯定贏得選舉,這就不太妥當了。
沒有秘密的選舉,缺失了隨機性,就增加了一份危險。
更好的演算法
是的,我們需要更好的演算法、更安全,更隨機地選舉制,來保證鏈的安全。這個問題一旦提出,大家頭腦風暴一番,方案可能不少。比如:
還是加入選票制,減小大礦工的出塊幾率,提高選票權重來調節出塊獎勵
另外設置一個出塊權概率的上限(也就是把上面的軟上限進一步降低)
讓每一個礦工在每一個高度進行多輪選舉
......
我個人傾向於簡單地設置上限的方式來解決問題,這樣代碼改變較小,可以兼顧效率和工程實現。但出塊權不是小事,一定要慎重考慮和分析。
期待下一次的改進吧,應該很快就會發生了。
冷萃財經原創,作者:Awing,轉載請註明出處:https://www.lccjd.top/2020/06/21/filecoin%e6%b5%8b%e8%af%95%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e6%8a%a2%e7%ae%97%e5%8a%9b%e6%8e%92%e5%90%8d%ef%bc%9f/?variant=zh-tw
文章評論