時間:2023-06-18|瀏覽:283
上一篇文章中,我們探討了StefanDziembowski的PoC形式化模型和證明的討論,本篇文章著重討論BurstCoin實際運行的PoC完備系統的算法細節,涵蓋Plot文件和出塊流程兩個方面。
PoC硬盤利用與Plot文件 Plot文件是每個參與出塊的節點或礦工需要在硬盤中存儲的文件,其內容由大量特定結構的Hash值組成。Plot文件包含以下基本概念:
- Shabal256:BurstCoin所使用的Hash算法,相比SHA256等其他算法,Shabal需要更多CPU計算時間和計算量。 - Nonce:Plot文件中擁有固定編號的基本單元,由256KB的數據構成,是礦工用來參與PoC過程的基礎邏輯單元。 - Scoop:每個Nonce由4096個Scoop構成,同樣擁有編號,其編號范圍為0-4095。每個Scoop包含2個Hash值,也即一個Nonce包含8192個Hash值。
Nonce的生成流程如下:
- Nonce文件的種子由AccountId(即BurstCoin網絡中的用戶地址或者用戶Id)與NonceId(即Nonce編號)組成,經過第一次Hash,生成Hash#8191,即Nonce中的編號為8191的Hash值。 - #8190Hash值由之前一個#8191Hash值與AccountId,NonceId生成。 - #8189Hash值由之前兩個#8191Hash,#8190Hash值與AccountId,NonceId生成,依次類推,每下個Hash值,都有其之前計算的所有Hash值與AccountId,NonceId生成。如果過程中超過了4096個bytes,則取最近生成的4096bytes由Hash#0-8191與AccountId,NonceId共同生成,之后對8192個Hash值都分別對其進行異或操作,作為每個Hash最終的值。 - 得到了8192個Hash值后,Scoop文件的結構如圖所示。
這同時也是礦工參與挖礦的最低門檻,即只要有大于等于1個Nonce文件即可參與挖礦。而根據BurstCoin全網算力估計,需要約117億個Nonce,但一般家用主機只能存儲200萬個Nonce,因此低算力往往以參加礦池的形式參與挖礦。
PoC的共識與出塊 PoC共識的完整挖礦流程包括GenHash的生成、ScoopNumber的計算、target和deadline的計算、交易打包及區塊鑄造和廣播。
值得一提的是,BurstCoin的區塊負載大小限制為176KB,平均可以承載19k個左右的交易,理論tps上限約為80,與其他PoW類型的區塊鏈系統相類似。
結合StefanDziembowski的模型,我們可以探討BurstCoin是否可以納入其框架之下,并分享某些核心問題的解決方案。
鏈博科技致力于分享區塊鏈領域的底層技術知識,同時從產業結合角度深入思考,推進區塊鏈落地項目的建設,并為企業提供
熱點:區塊鏈