科普Proof of Space杜絕浪費,共識機制的“大殺器”區(qū)塊鏈
科普|ProofofSpace杜絕浪費,共識機制的“大殺器”
自2009年第一枚比特幣被挖出以來,區(qū)塊鏈行業(yè)逐漸拓展為一個巨大的全球市場。除BTC以外,LTC、ETH、EOS等各式各樣的區(qū)塊鏈項目層出不窮。目前,僅以太坊上的ERC20代幣項目,就超過11萬個;而發(fā)布項目白皮書的公司更是不可勝數。
POW(工作量證明)共識算法
比特幣實現了一種點對點的電子支付系統,而這一分布式系統的誕生,有賴于其采取的POW(工作量證明)共識算法。目前,絕大多數具備主鏈的區(qū)塊鏈項目,仍采用POW或改良后的POW共識算法,僅有一部分項目采用POS(權益證明)或DPOS(股權代理證明)等算法。
POW為分布式賬本帶來簡明、有效的共識產生機制,然而也產生一些問題:在計算哈希函數的過程中,大量能源被浪費——
有報道稱,2017年因比特幣挖礦而浪費的電量,超過了丹麥一個國家全年的耗電量。[1]此外,由于ASIC等芯片的產生,比特幣也面臨這越來越中心化的挑戰(zhàn)。比特幣的現狀與中本聰最早的設計已經相去甚遠。
而POS、DPOS機制同樣具有中心化的問題,而且投票過程往往較為繁瑣,兩者顯然并非最佳的解決方案。值得一提的是,市面上曾出現一些采用如“交易即挖礦”、“鎖倉即挖礦”、“投保即挖礦”、“挖礦即挖礦”等方案的區(qū)塊鏈項目。但本質上,這些項目所發(fā)行的還僅僅是以太坊上的ERC20代幣。由于不具備主鏈,這些項目均不需要共識機制;所謂的挖礦方案,本質上屬于空投方案,是一種激勵手段,與區(qū)塊鏈的核心技術無必然關聯。
真正要解決POW所衍生的浪費能源、中心化的問題,開發(fā)多樣化的挖礦方案,至少需要解決以下一系列技術問題:
(1) 如果不耗費工作量,以什么作為用戶付出代價的證明?
(2) 該種證明如何被校驗?
(3) 如何確定挖礦競賽的優(yōu)勝者?
(4) 如果避免主鏈分叉等?
Proof of Space,空間證明
在技術進展的過程中,PoSpace方案作出了重要的探索。PoSpace即Proof of Space,空間證明。PoSpace意在取代比特幣中的PoW機制,成為一種新型的共識機制解決方案。
這一方案目前已在一些區(qū)塊鏈項目實施落地。它以用戶支付的硬盤空間作為付出代價的證明,通過下載文件占據硬盤空間,所占的空間越大,說明用戶付出越大。
PoSpace可帶來以下好處:極大減少資源浪費;用戶一次性付出硬盤空間后,后續(xù)挖礦不需額外增加付出等等。根據一些團隊的測算,PoSpace里的用戶行為可視作一種拓展性的博弈模型,隨著時間增長,會有越來越多的用戶加入進來。[1]
為應對硬盤空間造假的問題,PoSpace把節(jié)點分為兩種角色:證明人和校驗人。證明人即普通節(jié)點,需要存儲較大的信息數據(如100G),而校驗人存儲數據庫以及證明人的一小部分存儲信息,以便驗證。
當用戶/證明人初次加入網絡,他需要根據選擇的存儲空間大小,存儲一部分具有特定序列的數據(存儲的數據由用戶的公鑰決定,因此各用戶的數據并不相同)。這些數據以有向無環(huán)圖的結構存儲,而每個數據塊之間的關聯關系,以Merkle樹的形式發(fā)送給校驗人。
由此一來,校驗人可由公鑰知道證明人存儲的是哪些數據、由發(fā)送的Merkle樹知道這些數據以怎樣的結構存儲。
在驗證環(huán)節(jié),校驗人向證明人發(fā)送一份“挑戰(zhàn)”。這份挑戰(zhàn)是證明人存儲數據塊的某種隨機組合。證明人需要根據挑戰(zhàn)信息,生成對應組合數據的hash值,返還給校驗人,由校驗人驗證該hash值是否正確。
由于挑戰(zhàn)是數據的一種隨機組合,而略微不同的數據都將使得hash值完全不同。因此證明人必須的確存儲了“挑戰(zhàn)”所指明的數據塊,才能生成正確的hash值。而校驗人由于存儲了完整的數據庫,他也可對證明人發(fā)回的hash值進行校驗。
證明人有可能僅存儲小部分數據,而仍然通過校驗人的挑戰(zhàn)(證明人所存儲的小部分數據,恰好囊括挑戰(zhàn)所包含的數據組合)。然而隨著“挑戰(zhàn)”的過程多次進行,證明人通過存儲少量數據而生成出正確反饋的概率大幅下降。
因此可通過多次驗證來避免證明人的作弊行為。這就是PoSpace里的空間確認過程。
“質量函數”的解決方案
而有了校驗用戶存儲空間的方法,仍需通過一些方式來確定挖礦競賽的獲勝者。比較合理的方式應是,存儲空間越大的礦工,越有可能在挖礦競賽中勝出。PoSpace則通過設計一個“質量函數”來實現這個目標。
“質量函數”需要保持一定的隨機性,而同時按照貢獻空間的大小來區(qū)分各個礦工獲勝的概率。因此一個簡化的做法是,應對校驗人的挑戰(zhàn),礦工反饋的hash值(一串數字)直接作為隨機量,并根據礦工所占的空間對這串數字進行增減。譬如假若礦工存儲的空間總大小為N,則對hash值開N次平方,得到質量函數。這樣一來,礦工存儲的空間越大,質量函數的數值越小。我們可以規(guī)定單次挖礦競賽中,質量函數最小的礦工獲勝。
但此時仍存問題:
由于礦工在一次性付出硬盤空間后,在挖礦過程中不需有后續(xù)付出,因此參加挖礦競賽不需要付出代價,進行主鏈分叉幾乎沒有成本。為避免礦工隨意分叉造成雙花等混亂情形,我們仍需要一種規(guī)則來確定某鏈是唯一鏈,而所有用戶均只記錄這個唯一鏈,這才是真正達成共識。
由于每個區(qū)塊由具有最小“質量函數”的礦工挖出,一個自然的想法便是:由質量函數來確定唯一主鏈。我們設定一個數量i,規(guī)定從最新的區(qū)塊往前i個區(qū)塊的質量函數相加,得到鏈的總質量函數。總質量函數最小的那條鏈,可判定為主鏈,在此基礎上,為強調越早的區(qū)塊所占的比重越高,可增加一個折扣函數,對早期的區(qū)塊進行縮減(以提高其重要性)。
因此當主鏈出現分叉時,對兩條(或多條)分叉鏈的總質量函數進行計算,即可確定唯一鏈,由此保證僅有一條主鏈,從而使各用戶之間建立起一個分布式、同時又統一的賬本系統。
總結
PoSpace使用物理硬盤空間作為付出代價的證明,解決了比特幣里POW持續(xù)浪費大量資源的問題,同時可建立一個與比特幣作用相同的電子支付系統。
PoSpace可認為是共識機制在POW基礎上的一大進步。但與此同時,PoSpace仍存在一些問題:如引入了校驗人角色,增加了系統的風險;如何設計和安排校驗人,仍是一個問題;以硬盤空間為證明,存在著中心化的風險,因為少部分人可以通過巨大財力購置大量硬盤空間,持續(xù)壟斷挖礦,造成類“51%攻擊”等。中本聰“一枚CPU芯片代表一個個體,每個個體擁有平等挖礦機會”的構想,仍然難以實現。
但不得不說,PoSpace的思路為我們提供了許多啟發(fā),如通過隨機的方式對用戶付出的代價進行校驗;通過設計區(qū)塊質量函數確定挖礦競賽的獲勝方式;通過設計鏈質量函數來避免主鏈分叉等。沿著這一思路,我們完全有可能開發(fā)出適應不同使用場景的共識機制,如“注意力證明”、“時間證明”等。
此外,PoSpace中硬盤所存儲的空間,若從無意義的字節(jié),改為有意義的內容(如影片等資料),PoSpace或許天然地適用于建立網絡資源共享社區(qū)。相信在不遠的將來,空間證明共識機制將迎來更多發(fā)展和應用。
參考文獻:
[1]Park S, Pietrzak K, Alwen J, et al. Spacecoin: A cryptocurrency based on proofs of space[R]. IACR Cryptology ePrint Archive 2015, 2015.
[2] Dziembowski S, Faust S, Kolmogorov V, et al. Proofs of space[C]//Annual Cryptology Conference. Springer, Berlin, Heidelberg, 2015: 585-605.
文章版權為哈希未來所有,如需轉載,請聯系哈希未來工作人員。
(作者:哈希未來|陳致佳、蒙繹澤、江澤武,內容來自鏈得得內容開放平臺“得得號”;本文僅代表作者觀點,不代表鏈得得官方立場)
1.TMT觀察網遵循行業(yè)規(guī)范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創(chuàng)文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創(chuàng)的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。