石榴礦池李白:Chia核心原理介紹

買賣虛擬貨幣


本期影片主要和大家分享一下當前火熱的專案chia。由於市場情緒高漲,硬碟價格暴漲甚至被礦工們搶至脫銷。在這瘋狂的背後,大家也面臨著新興事物的出現而帶來的資訊不對稱。


一直以來,石榴礦池秉持著“公開·透明”的區塊鏈精神。本期影片李白將為大家詳細解析chia的核心原理,為大家揭開chia的神秘面紗。

chia背景


chia(奇亞)官網:https://www.chia.net/

區塊瀏覽器:https://www.chiaexplorer.com/

github原始碼庫:https://github.com/chia-network

綠皮書:https://www.chia.net/assets/chiagreenpaper.pdf


p盤


chia的封裝過程,俗稱p盤(英文plot),它的輸入主要是一些隨機數(輸入資料量很小,幾乎沒有資料),配合farmer和pool兩個公鑰,經過1-4個階段的plot過程,最後輸出101.3gib的plot檔案。


從這個過程可知,chia設計之初就不是為了儲存,這是其和filecoin的最大區別。chia標榜是btc的替代品,主要還是起到了去中心化記賬,數字貨幣的作用。但和btc的主要區別是:btc中比拼的是算力,而chia比的是硬碟,硬碟多,儲存空間大,獲得代幣的概率就大。
綜上所述,我們知道:

  • chia沒法儲存資料
  • chia封裝無時間要求
  • chia封裝對硬體要求更低:近5g記憶體要求
  • 少量執行緒、高頻率、高io
  • 暫時無法透過gpu加速


p盤硬體


chia挖礦對硬體的要求較低,但由於chia挖礦過熱以及資訊的不透明造成相關的硬體價格漲幅過高。其實從整體分析chia p盤的硬體選擇是非常寬泛的,建議礦工們從價效比的角度去理性選擇,以下是石榴礦池對其硬體相關條件的總結,僅供參考:

  • 高頻率的cpu
  • 高iops的ssd


(1)332gib的臨時檔案

(2)1.6-1.8tib的ssd寫入 官方硬體推薦:https://github.com/chia-network/chia-blockchain/wiki/reference-plotting-hardware

由於硬體價格相對便宜,入場門檻較低,使得chia全網算力增長更快。而在chia的挖礦中,硬碟的支出佔比高,p盤封裝機佔比少,大家可以根據硬體市場情況靈活選擇高價效比的配置。plot檔案結構
一個plot檔案包括:

  • plot id
  • farmer public key(礦工公鑰)
  • pool public key(礦池公鑰)

爆塊


從上文可知,chia產生的檔案數量很大,算力很容易達到1p。在chia挖礦中,沒有window post,只有winner post,所以即使是儲存丟失也不會造成懲罰,而且也沒有前置抵押,因此門檻較低,整個過程中只有爆塊。 chia透過兩輪的篩選得到出塊權,儘可能減少資料讀取量:

  • 根據plot id 篩第一輪

  • 根據一個葉子篩第二輪(需要做七次定址操作,大約70ms時間):


經過以上兩輪,礦工獲得了winner。在此基礎上讀取完整資料並生成證明:

  • 讀一個滿二叉樹
  • 64個葉子


timelord


chia爆塊的第一個輸入challenge是一個隨機數,在鏈上每10s產生一個,並且提前不可知。在filecoin中是透過drand服務去得到隨機數,而chia中是透過vdf得到。 vdf的特性:


  • 計算難驗證易
  • 計算時間恆定難以最佳化
  • 最佳化後可以影響爆塊率

(vdf實現圖)


 timelord是用來跑vdf,產生challenge的。一定程度上保證只有在規定時間內才能獲得下一個challenge。如果礦工跑vdf的速度遠快於官方,將能提前知道challenge,這將影響挖礦的爆塊率,否則沒有必要啟用timelord,礦工可直接在鏈上的廣播中獲得challenge。


區塊簽名


plot檔案生成時需要繫結farmer公鑰和pool公鑰,來表示算力歸屬。出塊時要用兩個私鑰進行簽名:

  • farmer決定7/8的收益
  • pool決定1/8的收益

以上可知,官方在設計之初已強制將挖礦收益以一定比例分配給礦工和礦池。回到礦池平滑分賬的本質,正常情況下應該將挖礦的所有收益全部給礦池,然後礦池再進行平滑分賬,以確保加入礦池的礦工收益。從chia出塊的私鑰簽名設計可知其離礦池本質還是有很長的距離。 

在p盤過程中產生的plot檔案需要立即繫結farmer key和pool key,也就是說這樣的算力檔案的歸屬權是不能更換的,在p盤的過程中就已經決定了這份算力檔案屬於誰,只有誰的簽名才有用,才能獲取收益。這在常規意義的礦池中是不符合邏輯的,如果算力歸屬不能更換,假設三種情況:


  • 如果礦池獨享私鑰,則任人宰割
  • 如果共享私鑰,則存在風險
  • 如果一邊持有一個私鑰,則達不到平滑收益的目的


chia礦池方案目前還不完善,官方也在部落格中提到:等到開發完chia轉賬將進一步完善礦池方案,這也是官方下一階段重點研發的方向。所以現階段市面上的礦池方案可能都存在一定的風險,或是無法真正達到礦池平滑分賬的目的。


分叉攻擊


上文提到,如果礦池和礦工共享私鑰,則可能存在分叉風險,下面具體聊一聊。 

分叉是指:在非pow的區塊鏈裡,礦工可以在同一高度產生多個block。 

在eth2.0或者filecoin中,如果礦工在同一高度產生兩個block,將會受到質押懲罰。 在chia中,它將一個block拆成兩部分:trunk+foliage。trunk包含了block中的關鍵資料,當礦工獲得出塊權時,trunk是已經確定不會再改變的,而foliage是可改變的。此時如果發起分叉攻擊,trunk是無法改變的,只能攻擊foliage。這樣相對保護了鏈的穩定性。 

但是如果farmer key洩露,將存在產生另一個foliage的風險,此時鏈上就面臨了分叉攻擊。但是目前分叉攻擊只會影響收益,不會影響共識。


總結


(1)p完的盤永久繫結farmer public key和pool public key,決定收益的歸屬,無法更換。

(2)透過最佳化vdf計算速度,爆塊環節存在最佳化空間。

(3)礦池很重要,因為分散式的挖礦,平滑收益是急切需求。

(4)目前沒有靠譜的礦池方案,但官方會作為研發重點。

(5)整個專案數學層面紮實,應用設計上還有所欠缺,期待後續迭代。

評價


基於以上,石榴礦池李白對chia的評價:

  • 有史以來第一個沒實現轉賬功能就上主網的鏈
  • 也是有史以來第一個邏輯不嚴謹就能達到如此高度的鏈
  • 有重要的意義

(1)節能

(2)proof of hardware


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;