A. 門羅幣難挖嗎
門羅幣比較難挖。
門羅幣挖礦的礦池,就是門羅幣分步在網路中的一個一個節點,選擇礦池的時候,礦池的整體算力,延時性都很重要。如果礦池算力不高,怎麼挖都不能爆塊,則沒有收益!因為礦池是在爆塊的時候才會根據你的算力貢獻,給予獎勵。門羅幣挖礦門檻低,容易上手,並且 cpu 和顯卡都行。且沒有性能要求。任何可正常運行的電腦都行。
B. eth網路延遲高影響收益嗎
有影響。
挖礦看中的就是速度快慢,如果一個礦池出現了延時的情況,那麼對於投資者來講影響還是比較大的。
延遲是141.9000毫秒這個延遲在廣域網中屬於正常現象。收益方面,Ezilme通過無縫切換技術挖Zil來增加以太坊礦工的。
C. 挖礦延遲率高會影響收益嗎
有影響。一般來講,挖礦看中的就是速度快慢,如果一個礦池出現了延時的情況,那麼對於投資者來講影響還是比較大的。延遲是141.9000毫秒 這個延遲在廣域網中屬於正常現象。收益方面,Ezil.me通過無縫切換技術挖Zil來增加以太坊礦工的收入,注意這里不是傳統的雙挖,而是「一個接一個」 ,也就是在ETH或ETC開採回合結束以後(每兩到三個小時),礦池會自動切換到ZIL,在ZIL挖礦回合結束之後,礦池立即切換回ETH或ETC。
拓展資料
一、 哪個礦池比較好
1、螞蟻礦池。螞蟻礦池是比特大陸投入很多資源開發的高效的數字貨幣礦池,致力於為礦工提供更友好的界面、更完善的功能、更方面的使用和更豐厚透明的收益,並為數字貨幣的發展做出更多的貢獻。螞蟻礦池是一家高效的數字貨幣礦池,致力於為礦工提供更友好的界面、更完善的功能、更方便的使用和更豐厚透明的收益,螞蟻礦池提供比特幣、萊特幣、以太坊等多種數字貨幣的挖礦服務,並支持PPS、PPLNS、SOLO等多種付款方式。
2、F2Pool。魚池,2013年4月創立於北京,是全球領先的綜合性數字貨幣礦池。魚池擁有一支由高學歷、高技術、高素質的國內頂尖人才組成的團隊,創始人神魚、王純,作為國內首批從事區塊鏈行業的意見領袖,帶領團隊打造了領先的數字貨幣挖礦平台。業務遍布全球多個國家和地區,帶領了區塊鏈行業的快速發展。我們期待年輕而充滿朝氣的新成員加入,並肩為全球區塊鏈事業作出貢獻。
3、BTC.com。BTC.com是全球領先的比特幣數據服務商與礦池、錢包解決方案提供商。自2015年起,BTC.com團隊從區塊瀏覽器等行業基礎設施入手,致力於在各個細分領域建立新標准,錢包、礦池、行情、資訊等領域均能見到BTC.com品牌的身影。BTC.com團隊成員均來自於國內一線互聯網公司,近年來持續服務於比特幣礦機與挖礦行業,擁有多年系統設計、開發維護、運營管理經驗。伴隨著BTC.com團隊與品牌的成長,可以預見到,未來還將帶給比特幣用戶更多的驚喜。
4、微比特。微比特是一家專業的數字貨幣技術服務提供商,服務范圍包括數字貨幣交易平台以及數字貨幣礦池、雲挖礦合約等。其於2016年5月成立,同年6月上線比特幣礦池,11月上線雲挖礦產品。2017年3月,微比特獲得由比特大陸領投的2000萬人民幣A輪融資以拓展交易所業務。6月,微比特正式推出數字貨幣交易平台。
D. 常見的共識演算法介紹
在非同步系統中,需要主機之間進行狀態復制,以保證每個主機達成一致的狀態共識。而在非同步系統中,主機之間可能出現故障,因此需要在默認不可靠的非同步網路中定義容錯協議,以確保各個主機達到安全可靠的狀態共識。
共識演算法其實就是一組規則,設置一組條件,篩選出具有代表性的節點。在區塊鏈系統中,存在很多這樣的篩選方案,如在公有鏈中的POW、Pos、DPOS等,而在不需要貨幣體系的許可鏈或私有鏈中,絕對信任的節點、高效的需求是公有鏈共識演算法不能提供的,對於這樣的區塊鏈,傳統的一致性共識演算法成為首選,如PBFT、PAXOS、RAFT等。
目錄
一、BFT(拜占庭容錯技術)
二、PBFT(實用拜占庭容錯演算法)
三、PAXOS
四、Raft
五、POW(工作量證明)
六、POS(權益證明)
七、DPOS(委任權益證明)
八、Ripple
拜占庭弄錯技術是一類分布式計算領域的容錯技術。拜占庭假設是由於硬體錯誤、網路擁塞或中斷以及遭到惡意攻擊的原因,計算機和網路出現不可預測的行為。拜占庭容錯用來處理這種異常行為,並滿足所要解決問題的規范。
拜占庭容錯系統是一個擁有n台節點的系統,整個系統對於每一個請求,滿足以下條件:
1)所有非拜占庭節點使用相同的輸入信息,產生同樣的結果;
2)如果輸入的信息正確,那麼所有非拜占庭節點必須接收這個信息,並計算相應的結果。
拜占庭系統普遍採用的假設條件包括:
1)拜占庭節點的行為可以是任意的,拜占庭節點之間可以共謀;
2)節點之間的錯誤是不相關的;
3)節點之間通過非同步網路連接,網路中的消息可能丟失、亂序並延時到達,但大部分協議假設消息在有限的時間里能傳達到目的地;
4)伺服器之間傳遞的信息,第三方可以嗅探到,但是不能篡改、偽造信息的內容和驗證信息的完整性。
拜占庭容錯由於其理論上的可行性而缺乏實用性,另外還需要額外的時鍾同步機制支持,演算法的復雜度也是隨節點的增加而指數級增加。
實用拜占庭容錯降低了拜占庭協議的運行復雜度,從指數級別降低到多項式級別。
PBFT是一種狀態機副本復制演算法,即服務作為狀態機進行建模,狀態機在分布式系統的不同節點進行副本復制。PBFT要求共同維護一個狀態。需要運行三類基本協議,包括一致性協議、檢查點協議和視圖更換協議。
一致性協議。一致性協議至少包含若干個階段:請求(request)、序號分配(pre-prepare)和響應(reply),可能包含相互交互(prepare),序號確認(commit)等階段。
PBFT通信模式中,每個客戶端的請求需要經過5個階段。由於客戶端不能從伺服器端獲得任何伺服器運行狀態的信息,PBFT中主節點是否發生錯誤只能由伺服器監測。如果伺服器在一段時間內都不能完成客戶端的請求,則會觸發視圖更換協議。
整個協議的基本過程如下:
1)客戶端發送請求,激活主節點的服務操作。
2)當主節點接收請求後,啟動三階段的協議以向各從節點廣播請求。
[2.1]序號分配階段,主節點給請求賦值一個序列號n,廣播序號分配消息和客戶端的請求消息m,並將構造PRE-PREPARE消息給各從節點;
[2.2]交互階段,從節點接收PRE-PREPARE消息,向其他服務節點廣播PREPARE消息;
[2.3]序號確認階段,各節點對視圖內的請求和次序進行驗證後,廣播COMMIT消息,執行收到的客戶端的請求並給客戶端以響應。
3)客戶端等待來自不同節點的響應,若有m+1個響應相同,則該響應即為運算的結果。
PBFT一般適合有對強一致性有要求的私有鏈和聯盟鏈,例如,在IBM主導的區塊鏈超級賬本項目中,PBFT是一個可選的共識協議。在Hyperledger的Fabric項目中,共識模塊被設計成可插拔的模塊,支持像PBFT、Raft等共識演算法。
在有些分布式場景下,其假設條件不需要考慮拜占庭故障,而只是處理一般的死機故障。在這種情況下,採用Paxos等協議會更加高效。。PAXOS是一種基於消息傳遞且具有高度容錯特性的一致性演算法。
PAXOS中有三類角色Proposer、Acceptor及Learner,主要交互過程在Proposer和Acceptor之間。演算法流程分為兩個階段:
phase 1
a) proposer向網路內超過半數的acceptor發送prepare消息
b) acceptor正常情況下回復promise消息
phase 2
a) 在有足夠多acceptor回復promise消息時,proposer發送accept消息
b) 正常情況下acceptor回復accepted消息
流程圖如圖所示:
PAXOS協議用於微信PaxosStore中,每分鍾調用Paxos協議過程數十億次量級。
Paxos是Lamport設計的保持分布式系統一致性的協議。但由於Paxos非常復雜,比較難以理解,因此後來出現了各種不同的實現和變種。Raft是由Stanford提出的一種更易理解的一致性演算法,意在取代目前廣為使用的Paxos演算法。
Raft最初是一個用於管理復制日誌的共識演算法,它是在非拜占庭故障下達成共識的強一致協議。Raft實現共識過程如下:首先選舉一個leader,leader從客戶端接收記賬請求、完成記賬操作、生成區塊,並復制到其他記賬節點。leader有完全的管理記賬權利,例如,leader能夠決定是否接受新的交易記錄項而無需考慮其他的記賬節點,leader可能失效或與其他節點失去聯系,這時,重新選出新的leader。
在Raft中,每個節點會處於以下三種狀態中的一種:
(1)follower:所有結點都以follower的狀態開始。如果沒收到leader消息則會變成candidate狀態;
(2)candidate:會向其他結點「拉選票」,如果得到大部分的票則成為leader。這個過程就叫做Leader選舉(Leader Election);
(3)leader:所有對系統的修改都會先經過leader。每個修改都會寫一條日誌(log entry)。leader收到修改請求後的過程如下:此過程叫做日誌復制(Log Replication)
1)復制日誌到所有follower結點
2)大部分結點響應時才提交日誌
3)通知所有follower結點日誌已提交
4)所有follower也提交日誌
5)現在整個系統處於一致的狀態
Raft階段主要分為兩個,首先是leader選舉過程,然後在選舉出來的leader基礎上進行正常操作,比如日誌復制、記賬等。
(1)leader選舉
當follower在選舉時間內未收到leader的消息,則轉換為candidate狀態。在Raft系統中:
1)任何一個伺服器都可以成為候選者candidate,只要它向其他伺服器follower發出選舉自己的請求。
2)如果其他伺服器同意了,發出OK。如果在這個過程中,有一個follower宕機,沒有收到請求選舉的要求,此時候選者可以自己選自己,只要達到N/2+1的大多數票,候選人還是可以成為leader的。
3)這樣這個候選者就成為了leader領導人,它可以向選民也就是follower發出指令,比如進行記賬。
4)以後通過心跳消息進行記賬的通知。
5)一旦這個leader崩潰了,那麼follower中有一個成為候選者,並發出邀票選舉。
6)follower同意後,其成為leader,繼續承擔記賬等指導工作。
(2)日誌復制
記賬步驟如下所示:
1)假設leader已經選出,這時客戶端發出增加一個日誌的要求;
2)leader要求follower遵從他的指令,將這個新的日誌內容追加到各自日誌中;
3)大多數follower伺服器將交易記錄寫入賬本後,確認追加成功,發出確認成功信息;
4)在下一個心跳消息中,leader會通知所有follower更新確認的項目。
對於每個新的交易記錄,重復上述過程。
在這一過程中,若發生網路通信故障,使得leader不能訪問大多數follower了,那麼leader只能正常更新它能訪問的那些follower伺服器。而大多數的伺服器follower因為沒有了leader,他們將重新選舉一個候選者作為leader,然後這個leader作為代表與外界打交道,如果外界要求其添加新的交易記錄,這個新的leader就按上述步驟通知大多數follower。當網路通信恢復,原先的leader就變成follower,在失聯階段,這個老leader的任何更新都不能算確認,必須全部回滾,接收新的leader的新的更新。
在去中心賬本系統中,每個加入這個系統的節點都要保存一份完整的賬本,但每個節點卻不能同時記賬,因為節點處於不同的環境,接收不同的信息,如果同時記賬,必然導致賬本的不一致。因此通過同時來決定那個節點擁有記賬權。
在比特幣系統中,大約每10分鍾進行一輪算力競賽,競賽的勝利者,就獲得一次記賬的權力,並向其他節點同步新增賬本信息。
PoW系統的主要特徵是計算的不對稱性。工作端要做一定難度的工作才能得出一個結果,而驗證方卻很容易通過結果來檢查工作端是不是做了相應的工作。該工作量的要求是,在某個字元串後面連接一個稱為nonce的整數值串,對連接後的字元串進行SHA256哈希運算,如果得到的哈希結果(以十六進制的形式表示)是以若干個0開頭的,則驗證通過。
比特幣網路中任何一個節點,如果想生成一個新的區塊並寫入區塊鏈,必須解出比特幣網路出的PoW問題。關鍵的3個要素是 工作量證明函數、區塊及難度值 。工作量證明函數是這道題的計算方法,區塊決定了這道題的輸入數據,難度值決定了這道題所需要的計算量。
(1)工作量證明函數就是<u style="box-sizing: border-box;"> SHA256 </u>
比特幣的區塊由區塊頭及該區塊所包含的交易列表組成。擁有80位元組固定長度的區塊頭,就是用於比特幣工作量證明的輸入字元串。
(2)難度的調整是在每個完整節點中獨立自動發生的。每2016個區塊,所有節點都會按統一的公式自動調整難度。如果區塊產生的速率比10分鍾快則增加難度,比10分鍾慢則降低難度。
公式可以總結為:新難度值=舊難度值×(過去2016個區塊花費時長/20160分鍾)
工作量證明需要有一個目標值。比特幣工作量證明的目標值(Target)的計算公式:目標值=最大目標值/難度值
其中最大目標值為一個恆定值:
目標值的大小與難度值成反比。比特幣工作量證明的達成就是礦工計算出來的 區塊哈希值必須小於目標值 。
(3)PoW能否解決拜占庭將軍問題
比特幣的PoW共識演算法是一種概率性的拜占庭協議(Probabilistic BA)
當不誠實的算力小於網路總算力的50%時,同時挖礦難度比較高(在大約10分鍾出一個區塊情況下)比特幣網路達到一致性的概念會隨確認區塊的數目增多而呈指數型增加。但當不誠實算力具一定規模,甚至不用接近50%的時候,比特幣的共識演算法並不能保證正確性,也就是,不能保證大多數的區塊由誠實節點來提供。
比特幣的共識演算法不適合於私有鏈和聯盟鏈。其原因首先是它是一個最終一致性共識演算法,不是一個強一致性共識演算法。第二個原因是其共識效率低。
擴展知識: 一致性
嚴格一致性,是在系統不發生任何故障,而且所有節點之間的通信無需任何時間這種理想的條件下,才能達到。這個時候整個系統就等價於一台機器了。在現實中,是不可能達到的。
強一致性,當分布式系統中更新操作完成之後,任何多個進程或線程,訪問系統都會獲得最新的值。
弱一致性,是指系統並不保證後續進程或線程的訪問都會返回最新的更新的值。系統在數據成功寫入之後,不承諾立即可以讀到最新寫入的值,也不會具體承諾多久讀到。但是會盡可能保證在某個時間級別(秒級)之後。可以讓數據達到一致性狀態。
最終一致性是弱一致性的特定形式。系統保證在沒有後續更新的前提下,系統最終返回上一次更新操作的值。也就是說,如果經過一段時間後要求能訪問到更新後的數據,則是最終一致性。
在股權證明PoS模式下,有一個名詞叫幣齡,每個幣每天產生1幣齡,比如你持有100個幣,總共持有了30天,那麼,此時你的幣齡就為3000,這個時候,如果你發現了一個PoS區塊,你的幣齡就會被清空為0。你每被清空365幣齡,你將會從區塊中獲得0.05個幣的利息(假定利息可理解為年利率5%),那麼在這個案例中,利息 = 3000 * 5% / 365 = 0.41個幣,這下就很有意思了,持幣有利息。
點點幣(Peercoin)是首先採用權益證明的貨幣。,點點幣的權益證明機制結合了隨機化與幣齡的概念,未使用至少30天的幣可以參與競爭下一區塊,越久和越大的幣集有更大的可能去簽名下一區塊。一旦幣的權益被用於簽名一個區塊,則幣齡將清為零,這樣必須等待至少30日才能簽署另一區塊。
PoS機制雖然考慮到了PoW的不足,但依據權益結余來選擇,會導致首富賬戶的權力更大,有可能支配記賬權。股份授權證明機制(Delegated Proof of Stake,DPoS)的出現正是基於解決PoW機制和PoS機制的這類不足。
比特股(Bitshare)是一類採用DPoS機制的密碼貨幣。它的原理是,讓每一個持有比特股的人進行投票,由此產生101位代表 , 我們可以將其理解為101個超級節點或者礦池,而這101個超級節點彼此的權利是完全相等的。如果代表不能履行他們的職責(當輪到他們時,沒能生成區塊),他們會被除名,網路會選出新的超級節點來取代他們。
比特股引入了見證人這個概念,見證人可以生成區塊,每一個持有比特股的人都可以投票選舉見證人。得到總同意票數中的前N個(N通常定義為101)候選者可以當選為見證人,當選見證人的個數(N)需滿足:至少一半的參與投票者相信N已經充分地去中心化。
見證人的候選名單每個維護周期(1天)更新一次。見證人然後隨機排列,每個見證人按序有2秒的許可權時間生成區塊,若見證人在給定的時間片不能生成區塊,區塊生成許可權交給下一個時間片對應的見證人。
比特股還設計了另外一類競選,代表競選。選出的代表擁有提出改變網路參數的特權,包括交易費用、區塊大小、見證人費用和區塊區間。若大多數代表同意所提出的改變,持股人有兩周的審查期,這期間可以罷免代表並廢止所提出的改變。這一設計確保代表技術上沒有直接修改參數的權利以及所有的網路參數的改變最終需得到持股人的同意。
Ripple(瑞波)是一種基於互聯網的開源支付協議,在Ripple的網路中,交易由客戶端(應用)發起,經過追蹤節點(tracking node)或驗證節點(validating node)把交易廣播到整個網路中。
追蹤節點的主要功能是分發交易信息以及響應客戶端的賬本請求。驗證節點除包含追蹤節點的所有功能外,還能夠通過共識協議,在賬本中增加新的賬本實例數據。
Ripple的共識達成發生在驗證節點之間,每個驗證節點都預先配置了一份可信任節點名單,稱為UNL(Unique Node List)。在名單上的節點可對交易達成進行投票。每隔幾秒,Ripple網路將進行如下共識過程:
1)每個驗證節點會不斷收到從網路發送過來的交易,通過與本地賬本數據驗證後,不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidate set)。交易候選集裡面還包括之前共識過程無法確認而遺留下來的交易。
2)每個驗證節點把自己的交易候選集作為提案發送給其他驗證節點。
3)驗證節點在收到其他節點發來的提案後,如果不是來自UNL上的節點,則忽略該提案;如果是來自UNL上的節點,就會對比提案中的交易和本地的交易候選集,如果有相同的交易,該交易就獲得一票。在一定時間內,當交易獲得超過50%的票數時,則該交易進入下一輪。沒有超過50%的交易,將留待下一次共識過程去確認。
4)驗證節點把超過50%票數的交易作為提案發給其他節點,同時提高所需票數的閾值到60%,重復步驟3)、步驟4),直到閾值達到80%。
5)驗證節點把經過80%UNL節點確認的交易正式寫入本地的賬本數據中,稱為最後關閉賬本(Last Closed Ledger),即賬本最後(最新)的狀態。
在Ripple的共識演算法中,參與投票節點的身份是事先知道的。該共識演算法只適合於許可權鏈(Permissioned chain)的場景。Ripple共識演算法的拜占庭容錯(BFT)能力為(n-1)/5,即可以容忍整個網路中20%的節點出現拜占庭錯誤而不影響正確的共識。
在區塊鏈網路中,由於應用場景的不同,所設計的目標各異,不同的區塊鏈系統採用了不同的共識演算法。一般來說,在私有鏈和聯盟鏈情況下,對一致性、正確性有很強的要求。一般來說要採用強一致性的共識演算法。而在公有鏈情況下,對一致性和正確性通常沒法做到百分之百,通常採用最終一致性(Eventual Consistency)的共識演算法。
共識演算法的選擇與應用場景高度相關,可信環境使用paxos 或者raft,帶許可的聯盟可使用pbft ,非許可鏈可以是pow,pos,ripple共識等,根據對手方信任度分級,自由選擇共識機制。
E. 挖礦接受率低怎麼回事
通過架設比特幣節點獲利的過程,被人們形象地稱為 「挖礦」(mining),而參與建設節
點的那些人被人們稱為 「礦工」(miners)。因為 「搶紅包」 是有一定運氣因素存在的
行為,所以,礦工們會集中挖礦,方式是把自己的節點算力集中到一個「礦池」(mining pool)之中,以便增加自己搶紅包時的運氣。
礦機挖礦接受率低通常有以下幾種情況:
1. 網路通信問題導致丟包、延時問題,請檢查網線和網路情況。
礦機通過連接礦池進行礦池,礦池定時給礦機分發job,礦機隨之將share提交給礦池,這個過程中涉及大量的數據傳輸。網路情況對礦機的算力和拒絕率有直接的影響。
您可以通過以下方法確認網路情況:
1)將電腦連接至礦機所在的區域網
2)在電腦上打開cmd命令提示符
3) 輸入ping+空格+幣印礦池某幣種挖礦地址,比如我想確認礦機連接幣印礦池大零幣ZEC北京節點的網路情況,可輸入ping zec-bj.ss.poolin.com,並按回車鍵獲取結果。
通常ping值在50ms內都是一個比較正常的范圍。
2. 礦機溫度過高
礦機溫度過高同樣會影響礦機的算力和拒絕率,特別是在炎熱的夏季。如下截圖中的溫度基本正常。不同的礦機對最高溫度適應情況不同,通常在90-100以下的溫度還是比較正常的。具體的需要根據不同的機型進行確認。
3.固件問題,部分礦機可能因為固件問題導致拒絕率普遍偏高。出現類似情況,可咨詢礦機廠商。
4.挖礦系統或軟體有問題,用原版Claymore軟體跑一下,看運行界面,有沒有紅色字提醒超頻過了或者其他錯誤的;
F. e池直連延時200毫秒以上影響收益嗎
超過200毫秒是有影響的。
礦池延時的正常范圍是141.9000毫秒,這個延遲在廣域網中屬於正常現象。超過200毫秒對於投資者來講影響還是比較大的,一般來講,挖礦看中的就是速度快慢,延時高意味著算力降低,同樣別人一分鍾挖到的礦也許你得五分鍾。
一般在家減少網路延遲採用的手段是。
1、電腦網線盡量短一些,水晶頭做的盡量好一些。
2、電話線要檢查一下,盡量減少接頭。但是這些僅僅就是理論方法。現在我們在家訪問網站的網路延遲比較大,基本原因都因為網路服務商的網路線路和網路設備的原因。
G. FileCoin: 有用的工作量證明
有用的工作量證明(Proof of Useful Work)是由著名的去中心化存儲項目 FileCoin 在它的白皮書里提出來的一個概念。工作量證明,Proof of Work,POW 是實現區塊鏈的一個重要共識方式,FileCoin 要實現一個基於區塊鏈的存儲平台。所以它也要做共識,它選擇的就是工作量證明共識。
首先我們來解釋一下常規的工作量證明。它是區塊鏈實現共識的一種方式。是比特幣採用的方式,所以,工作量證明就是俗稱的「挖礦」。比特幣做為一個去中心化的點對點交易系統,要在不同的節點上維護一個共同的完全相同的帳本,來記錄所有的交易,而且確保交易不會重復,不會一筆錢多花,就需要一個維護這個賬本一致性的規則。大家一起遵守這個規則,就是共識。區塊鏈常用的方法是,把這個賬本分成很多頁,每個頁就是一個區塊。每個區塊由一個節點來記賬,然後分發給其他節點復制,這樣所有節點上的賬本都是一樣的。但是每個區塊都由哪個節點來記錄,就需要一個大家都能遵守的規則。比特幣採用的方法,是讓所有的節點做一道簡單的數學題,題目很簡單,但是計算量很大,一般要10分鍾左右才能做出答案來。得到答案雖然很費時間,但是驗證答案是否正確很容易。然後所有的節點同時做題,第一個做出來的節點,就得到下一個區塊的記賬權。因為每個區塊都只有唯一一個最早做出題的節點,所以,每個區塊的記賬權是唯一的,而且也是很容易被其他節點驗證的。節點一旦驗證到其他節點得到了區塊記賬權,就必須復制區塊,加到本地區塊鏈中,同時開始下一個區塊記賬權的競爭。通過這種方式,比特幣就能確保所有節點的區塊鏈是一致的。
節點通過大量計算競爭區塊記賬權的的過程,就是工作量證明。所以,工作量證明系統(或者說協議、函數),是一種應對拒絕服務攻擊和其他服務濫用的經濟對策。它要求發起者進行一定量的運算,也就意味著需要消耗計算機一定的時間。這個概念由 Cynthia Dwork 和 Moni Naor 1993 年在學術論文中首次提出。而工作量證明(POW)這個名詞,則是在 1999 年 Markus Jakobsson 和 Ari Juels 的文章中才被真正提出。
實現區塊鏈共識的方式還有很多,如POS,DPOS,POA,PBFT等等,但是工作量證明是唯一被時間驗證過(11年)的在公鏈上運行的區塊鏈共識機制。
工作量證明存在一個什麼樣的問題呢?還是用比特幣為例。比特幣節點為了獲取出塊權做得那個數學題,叫哈希運算。計算量非常大,每一台參與比特幣挖礦的礦機都要時刻進行這個計算,耗費大量的電力。這個計算不像其他的如大數據處理的計算,可以產生一些價值,它的唯一目的,就是競爭出一個節點,成為下一區塊的出塊者。目前比特幣每年消耗電量約25.5億瓦,這相當於全球電量的0.5%,是愛爾蘭一年的耗電量。反對POW的人紛紛指責挖礦將電力資源浪費在虛無縹緲的數字貨幣上,還稱之為自由主義的「泔水」。
但是,認為POW是浪費的電的人不知道,正是能源和算力打造了比特幣安全不可攻破的體系。
一張100元的現金不只是你我認為他值100,而是整個社會群體都認為他值100,價值就是來自於共識。比特幣是社區行為,來自不同國家的人聚集到社區,用互聯網來建立秩序,它的意義也是來自於群體共識,只要大家都相信比特幣有價值,只共識存在,那麼他就有價值,和法幣一模一樣。所以產生價值認同並不一定需要國家來驅動,比特幣改革了一種傳遞信任的載體和媒介,千百年來,人類社會通過多少流血戰爭建立的政權和共識,現在兵不血刃,只是耗費些電力就實現,豈不是更先進。
總結而言,要想設計一個去中心化而且安全的數字貨幣,能源和算力是必要的代價。工作量證明是以去中心化形式構建安全產權認證系統的唯一方案。所以認為POW是浪費的電的人不知道,正是能源和算力打造了比特幣安全不可攻破的體系。現在比特幣全網算力已經達到一個非常恐怖的地步,任何人想要發動51%算力攻擊已經是不可能的事情了,POW演算法使比特幣系統牢不可破。
為締造價值而產生的消耗不叫浪費。
但是,如此多的算力,是否可以用來創造更多的價值呢?用 FileCoin 的話說,工作量證明,還有沒有其他用途呢?
FileCoin 是分布式存儲行業的明星項目。他的開發團隊 Protocol Lab 就是開發 IPFS 協議的團隊,以至於很多人都分不清FileCoin 和 IPFS 的區別。可以說是2017年 FileCoin 的1CO,把這個行業推向巔峰,也引出了一系列的同類型項目。本文無意於贊譽或者貶低這個項目,只想結合自己從事這個行業的經驗,表達一些自己的觀點,盡量做到客觀公正。希望對從事這個行業的人有一些啟發。
FileCoin 在白皮書中提出要實現一個有用的工作量證明,實際上就是認可了,要打造一個安全不可攻破的區塊鏈,就必須消耗工作量。但是,他們不希望為這個工作量做出的計算完全被浪費,所以想把這個工作量利用起來。所以,他們想到的方法是,在工作量證明裡加入存儲空間的使用率。這樣,所有的節點為了形成共識,就必須提供存儲空間來存文件。這個存儲空間就可以存用戶數據,就是有用的。
那我們來看一下FileCoin是怎樣實現這種有用的工作量證明共識的。
Filecoin採用的共識機制並不是簡單的工作量證明,而是一種叫做預期共識(Expected Consensus,簡稱 EC)的機制。和其他主流共識機制目標一樣,讓礦工爭奪某一個高度唯一的出塊權而獲得獎勵。這個獲得出塊權的礦工叫做 Leader。在每一輪的出塊爭奪中,為了保證賬本的可靠性,都有一個唯一的 leader 來進行記賬。
也就是說,共識的核心就是選擇誰來當 Leader。選 Leader 的方式一般有兩種,互動式或者非互動式。互動式是要礦工之間互相投票的。比如 PBFT 就是互動式的,幾個參與選舉的人通過互發信息,得到多數票( 超過 2/3 )的人就是 Leader。預期共識採用了非互動式的方式來選舉 Leader。參與的各方根本不給彼此發消息,而是每個節點各自獨立私下進行運算。最後某個節點說,我贏得了選舉,然後提供一個證明,其他人可以很容易就驗證,他確實贏得了選舉。這個驗證方法就是零知識證明。
預期共識機制會為區塊鏈網路預設一個出塊的期望值。比如每1個紀元(epoch)生成1個區塊(block),但也有一個紀元可能出現空塊或多個區塊的情況。所以在 Filecoin 中,每個高度不是一個區塊,而是一個區塊集,叫做 TipSet,這個 TipSet 中可能包含了多個區塊。所以實際上 Filecoin 是 TipSet 鏈。預期共識無法保證每一輪只選舉出一個 Leader,所以會出現一輪中有多個 Leader 的可能,這樣鏈式結構就變成了DAG的網狀結構。所以 FileCoin 還會對 block 賦權重,實現有效收斂。
FileCoin 採用的 EC 共識有一個好處。對於傳統的 POS 共識機制來說,有一個重大問題就是無法控制分叉。也就是說,由於挖礦成本低,參與者可以同時挖多個鏈獲取利益。而預期共識對這一點做了設計,那就是通過權重和抵押機制來促使礦工選擇一條最好的鏈,對同時挖多個鏈的礦工進行懲罰,這樣可以非常快速地促進收斂。這說明 POW 和 POS 共同使用會是一種好的方式。
每一個礦工獲得出塊的可能與其當前有效存儲量佔全網總存儲量正相關。這種期望共識機制其實是更像是 POS 權益證明,只是它將POS里邊的權益(Staking)換成了有效存儲佔比。但是礦工的有效存儲從何而來呢?是通過存儲用戶數據得來。如何證明礦工存儲了用戶的數據,FileCoin 創造出一個新的證明機制叫 POST 時空復制證明。這個 POST 就是 FileCoin 的工作量了。把耗電的算力換成存儲有用數據的存儲空間,無意義的軍備競爭變成了存儲服務市場競爭。這確實是 FileCoin 的進步之處。只不過,為了成功的出塊,礦工通過預期共識被選為出塊節點後,必須在一個塊的時間里(現在是45秒)做個 POST 證明,成功提交,才能出塊。否則就失去機會。所以,為了確保礦工能在指定時間內出塊,最終官方還是決定要使用 GPU。雖然這 GPU 不是像工作量證明那樣一直不停的工作,但是在整個實現共識的過程中還是出現了跟有用的工作量證明思想相違背的耗能計算。
還有,談到預期共識的時候,我們說到每一個紀元出塊都不是一個塊,而是一組塊,那麼紀元這個概念就很重要了。怎麼控制紀元呢?每個礦工在參與選舉前,需要先生成一個 Ticket,這個 Ticket 實際上是一個隨機數,他需要走一個 VDF 和 VRF 的流程,這個 VDF 全稱 Verifiable Delay Function,可驗證的延時函數。他的計算流程是串列的,需要花費一定的時間,並且這個時間無法通過多核並行的方式進行縮減。這保證了每個礦工產生 Ticket 時必須要消耗的時間,沒有人可以通過優化硬體的方式來獲得加速。聽上去這函數很完美,可是,這個 VDF 根本還不存在!現在 FileCoin 測試網直接使用了一個等待函數 sleep,這是 UDF,Unverifiable Delay Function。現在最接近的 VDF 解決方案,也是需要消耗大量計算資源的。說白了,還是要耗電,還是不環保。
所以,有用的工作量證明,依然只是一個美好的願望,理想很豐滿,但現實很骨感。被譽為下一個比特幣的 FIL,還要繼續為實現這個顛覆性的共識而努力。
總結一下FileCoin存儲礦工獲取激勵的流程:用戶存儲數據,支付FIL費用 -> 礦工存儲數據 -> 生成復制證明 -> 完成時空證明 -> 經過EC共識,選出出塊Leader -> 獲取打包權 -> 礦工獲取FIL獎勵
在這個流程圖上,可以看到,礦工可以在兩個地方獲取獎勵。一個是存儲用戶文件的時候可以得到用戶的FIL獎勵。一個是在獲取區塊打包權後獲得FIL。而得到區塊打包權的一個前提就是存有足夠多的用戶數據。所以,在存儲需求不夠大的情況下,礦工會從用戶那裡收取很低廉的費用。在用戶不夠的情況下,甚至會倒貼錢自己付FIL存數據,只為能夠存足夠多的數據,在 EC 共識中被選成 Leader 得到打包獎勵。這樣產生的效果是,FileCoin 對用戶非常友好,存儲費用非常低。所以,一定會吸引很多的應用來這個平台上做開發。但是缺點也很明顯,如果存儲量不夠大,礦工根本沒法跟其他人爭奪出塊權,所以得不到獎勵。最後整個平台會朝著大礦工,大礦池的方向發展,這跟 FileCoin 想把所有閑散伺服器利用起來實現分布式存儲的初衷是違背的。或者說,一定要等到這個行業具有一定規模,技術更成熟,才有小礦機挖礦的機會。
我們先來簡單的講一講中心化存儲和去中心化存儲各自的利弊。中心化存儲設備統一管理,可靠性好,性能高,去中心化存儲數據天然分散,易於流通,容災性好,但是可靠性低。從經濟角度來說,中心化存儲是重資產投入,成本高。去中心化存儲通過區塊鏈激勵層,用戶自行加入,輕資產,可降低存儲總成本。未來應用數據的存儲和處理還會是以中心化存儲為主,而去中心化存儲因為是分布式網路,主要可用於熱門數據流量分發。同時,因為沒有中心化所有權,可以成為去中心化應用的首選。
市場上有一種說法是,去中心化網路適合冷數據的備份,其實這並不是去中心化存儲的優點,實在是因為把熱數據放到去中心化網路上太不可靠,處理性能也跟不上。所以,如果去中心化存儲能實現一定的規模效應,大大降低存儲成本,把冷數據備份當作核心業務,並把目標定位在今天因為成本太高沒被企業存儲的冷數據,會是一個很好的發展方向。
如此說來,從技術上講,去中心化存儲並不一定比中心化存儲有優勢。如果能推行一種新的模式,把去中心化的經濟激勵和中心化的存儲合在一起,就能吸收兩者的長處。真正實現有用的工作量。FileCoin 未來可能促成的大礦場模式的數據中心,可能更有市場。
在11年後的今天,比特幣並沒有實現它成為一個點對點的電子支付貨幣的初衷,但阻止不了人類前赴後繼的去買它,擁有它。同樣,我相信 FileCoin 已經得到足夠大的社群,礦工和開發者的支持,即使在可預見的未來,它不會促成分布式存儲應用的全面落地(也許這從來不是 FileCoin 的目標),但我還是相信會有很多人會因為它的共識去購買它,持有它。上升到哲學層面,人類在為真理買單。
那麼在實際生活中,何為有用,或者說,我們到底是在用存儲做共識還是用共識做存儲?FileCoin 是前者。FileCoin 想要基於存儲工作量實現的去中心化的共識,理論上是完美的,追求完美,人類是要付出代價的。這也是為什麼在這個項目上我們等待了這么長的時間。但是一旦實現,它可能會為人類帶來巨大價值,對市場帶來無窮大的號召力。
只不過去中心化不是萬物的靈葯。中心化的一個最大優勢是它的效率非常高。像dPOS或者聯盟鏈這樣的弱中心化共識兼顧兩者優勢,能更快速的把應用推向市場,提前啟動分布式存儲行業,推進分布式存儲應用落地。所以,我們既追求用存儲做共識,也追求用共識做存儲,根據實際需求來做出我們的選擇。在這個過程中,相信區塊鏈也會進一步發展,逐步優化,變得越來越有用。