礦工打包一個區塊需要提供一個焚燬交易和一個由區塊頭計算出來的雜湊值。設這筆焚燬交易中包含m個儲值幣和n個雜湊幣,計算出來的雜湊值為H。
四、抵禦大礦池
由於挖礦收益的不穩定性,礦工有充分的動機結成礦池來對沖風險。對小礦工而言,出塊概率越低風險越大。如果我們能夠降低出塊難度,那麼這將有助於減小礦工結成大礦池的動機。由康奈爾大學Rafael Pass和Elaine Shi建立的水果鏈(FruitChains)[1]較好地解決了這個問題。我在水果鏈的基礎上提出了適用於本共識的方案。
在這個區塊鏈中有兩種型別的區塊:主鏈區塊和水果。事先規定不大的整數N和k(比如N=10)。
水果是一種特殊的區塊,它被包含在主鏈區塊中。水果與主鏈區塊一樣包含區塊頭和交易。水果的區塊頭中包含水果的標識(與主鏈區塊區分開)、之前的某一個主鏈區塊的雜湊值、一筆焚燬交易、水果區塊頭的雜湊值和其它資訊。水果的區塊頭指向的主鏈區塊與水果被包含的主鏈區塊之間間隔不應當超過k個區塊。水果的區塊大小不應當超過主鏈區塊大小限制的1/N。
主鏈區塊按順序包含區塊頭、不超過N-2個水果和交易。主鏈區塊頭中包含前一個主鏈區塊的雜湊值、一筆焚燬交易、主鏈區塊頭的雜湊值和其它資訊。
設主鏈區塊的總區塊難度為D,包含了M(M≤N-2)個水果。主鏈區塊中每個水果的挖礦難度為D/N,不得包含不符合該條件的水果。主鏈區塊的挖礦難度(不考慮水果)為D(N-M)/N。
水果中的交易不得與它的區塊頭指向的主鏈區塊以及之前區塊中的交易衝突,不得與自身交易衝突。但是,同被包含的不同水果中的交易可能會出現衝突,水果中的交易也可能與它的區塊頭指向的主鏈區塊之後、它被包含的主鏈區塊之前的主鏈區塊中的交易衝突。如果發生衝突,那麼按照打包的順序,先被打包的交易為有效交易,無效交易會被忽略。
礦工獎勵與雜湊幣銷燬的規則可照上一章內容類推。
我將這個共識機制稱為帶水果的工作量和資本量證明(Proof of Work and Capital with Fruits),簡稱PoWCF。
五、亞穩定幣
從長期來看,儲值幣嚴格通縮,雜湊幣嚴格且嚴重通脹。這兩種幣都不是理想的貨幣。一個自然的想法就是,將兩種幣對沖來生成更理想的貨幣。我將這兩種幣的資產池的流動性代幣作為這種貨幣。使用者可以向資產池等比例地注入兩種資產來獲得流動性代幣。
經過簡單計算可知,當其中一種資產的價格短時間內變為原來的r倍時,其流動性代幣的價格僅為原來的倍。可見,流動性代幣能夠很好地抹平價格波動。
我將這種價格相對穩定的流動性代幣稱為亞穩定幣。
六、抵禦礦池?
我注意到,有些區塊鏈專案引進了抵禦礦池的挖礦演算法。其原理是,打包時必須要使用私鑰,因此礦池中的礦工可能會竊取出塊獎勵。這種方案是很容易被擊破的。一個簡單的辦法就是保證金模式:礦工必須事先向礦池質押一筆保證金,並且每個礦工都在不同的地址上挖礦,如果礦工竊取出塊獎勵,那麼保證金就會被沒收。實際上,小礦工連續出塊的概率非常小,因此由於連續出塊而造成的礦池的損失幾乎可以忽略不計。另外,對礦工作實名認證的做法也可以解決這個問題。
且不論抵禦礦池在技術上是否可行,抵禦礦池這種想法本身是否合理呢?乍一看,抵禦礦池實現了更好的去中心化,所以這是非常合理的。細想一下,其實不然。
Ittay Eyal和Emin Gün Sirer發表了一篇令人震驚的論文[2],論述了大礦工如何獲得不正當優勢。在算力極度分散的狀態下,作惡的大礦工會吸引越來越多的小礦工在作惡的鏈上挖礦,而不是在誠實的鏈上挖礦。
這一點也可以用政治來作類比。一般而言,只有強者才能制衡強者。一群過度分散的弱者對抗強者往往是以卵擊石,即使它有一個民主的形式。所以,現代成熟的西方國家通常會採用聯邦治理模式而非大一統的人民直選模式。實際上,抵禦礦池的想法與法家的弱民主張頗有幾分相似。
過度集中是災難,過度分散是更加嚴重的災難。兩害相權取其輕。我認為,不抵禦礦池是更加不壞的選擇。
所以,雖然我主張抵禦大礦池,但是我不贊成抵禦礦池。
七、其它去中心化技術
1.激勵使用者執行節點,如Monero的RPC-Pay。
2.小區塊和第2層網路,如Bitcoin。
3.壓縮區塊,如Bullet Proofs。
4.改進挖礦演算法,降低生產ASIC礦機的門檻。
5.改進底層通訊協議。
6.支援輕量客戶端,以增加節點數量。
7.對儲存空間徵稅,如Nervos和Ergo。
8.專案的社羣化運作。
綜合應用以上技術能夠實現更徹底的去中心化。
本文來源於社羣夥伴:gentledog