【區塊鏈科普】4. 共識篇——區塊鏈世界的法律
所謂“共識機制”,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相干的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。
——以上摘自百度百科
共識機制是區塊鏈技術的核心。雖然百科裏面說得很玄乎,但實際上共識機制並不神秘。
我們在《導讀篇——區塊鏈的What、Why、How》中為大家介紹過區塊鏈的技術構架,共識機制就封裝在共識層中。如果把區塊鏈看作一個全民參與的大帳本,如果所有人都抱著“我不要你覺得,我要我覺得”的心理來記賬,那最終得到的帳本必定千奇百怪、錯漏百出。因此,區塊鏈系統需要存在一個人人認可的機制來約束用戶行為,這種機制我們就稱之為“共識機制”。
目前最常見的共識機制為PoW和PoS,此外,其他的主流共識還包括諸如DPoS、NPoS、HPoS、PPoS等由PoS變種而來的機制,以及如PoC般被寄予厚望但仍未證明自己的新共識。
什麼是 PoW?
工作量證明(Proof of Work,簡稱 PoW),顧名思義就是對工作量的證明,其核心思想是多勞多得。
工作量證明通過解決一個不容易解答但是容易驗證的問題來爭取記賬權以達到共識目的。
例如,在比特幣區塊鏈中,是通過枚舉法對得到的新字串進行 SHA256 哈希運算,找出滿足給定數量前導為 0 的哈希過程。前導 0 的個數越多,代表問題的難度越大。一旦某個節點找到符合要求的亂數,該節點就獲得當前區塊的記賬權,並獲得一定的獎勵。
以上是關於比特幣工作量證明機制實現方法的學術解釋,下麵我們降維到小學二年級水準。
舉個例子,某所學校由於老師們工作繁忙,決定將考勤任務交給學生,並決定對當天進行記錄的學生給予學分獎勵。由於有學分激勵,所有的學生都想獲得記錄的權利。為了避免所有學生一窩蜂都去考勤,學校決定每天出一道高難度的數學題,只有最快解出難題的同學才可以獲得當天的考勤權。獲得記賬權的同學只要當天完成記錄且沒有出現差錯,就可以獲得學分。
這種系統(學校)出題,用戶(學生)答題爭奪記賬權(考勤權)的模式,就是工作量證明機制。解題越努力,獲得的記賬權就越多,收穫的獎勵也越豐厚。
PoW機制簡單易懂,代碼層面上由於有比特幣等珠玉在前,也不難實現。但是區塊鏈系統為了保證每道題解出來的時間相近,往往會根據參與記賬的人數調整題目難度,參與的人越多題目越難。隨著題目難度的不斷上升,人們逐漸開始使用一些非常先進的設備(礦機)並耗費大量的電力來解題,由此也產生了極大的資源浪費。
什麼是 PoS?
權益證明(Proof of Stake,PoS),原理類似現實生活中的股份制,擁有股份越多,話語權就越強,獲得記賬權的概率就越大。
PoS 相對於 PoW 更好理解,我們仍以上述學校考勤為例。
經過之前一段時間的記錄,學校已經發出去很多學分。此時老師覺得每天出一道題太麻煩了,乾脆改成抽籤決定考勤權,抽中概率依學生所持學分而定。假設學校現在已經發出去100個學分,小明同學獲得了其中一個,那麼在這個模式下,小明就有1%的可能獲得當天的考勤權。如果小明覺得自己抽中概率低,也可以私底下向其他同學購買學分提高抽中概率。
權益證明演算法不需要消耗大量資源,但也帶來一些其他問題,其中最突出的就是貧富差距問題。持幣越多的人獲得記賬權的概率越大,獲得獎勵的概率也就越大,長此以往,這種“富者愈富”的機制會使整個系統的資源集中在一小部分人手中,去中心化的原則也會受到極大衝擊。
什麼是 DPoS?
委託權益證明(Delegated Proof of Stake,DPoS),脫胎於權益證明。在委託權益證明中,節點們首先通過權益選舉出若干個(具體幾個由系統決定)記賬節點,類似於現代企業的董事會制度,後續提案由這些被選中的節點輪流處理。
接著上例,抽籤制度實施了一段時間,小李子同學發現由於自己持有的學分太少,總是陪跑,整整22天都沒拿到考勤權。買學分是不可能買學分的,這輩子都不可能買學分。為了維持生活,小李子心生一計,聯合湯姆、哈迪等幾個學分低的同學,大家把學分湊到一起提高抽獎概率,並約定獲得考勤權後平分獎勵。
學校發現這一情況後乾脆組織了一個學生會,規定由學生會的同學輪流考勤,學生會由全體同學通過學分投票產生。考勤所得的獎勵由當天記賬的學生會成員自己分配,為了穩固自己的票數,這些學生會成員一般都會在扣除小部分手續費後給自己的“選民”們平分獎勵。
委託權益證明在現實中隨處可見,大到政府部門,小到企業組織,“選舉代表”的方式較好的兼顧了民主和效率。但這麼照搬現實生活的模式,似乎有悖於區塊鏈創立的初衷,因此委託權益證明最為人所詬病的一點就是去中心化程度不足,有違區塊鏈精神。
什麼是PoC?
隨手百度一下,我們會看到許多種PoC共識,信用證明(Proof of Credit)、貢獻證明(Proof of Contribution)、持幣證明(Proof of Coin)等等,而我們今天要講的是所有PoC中知名度最高的容量證明(Proof of Capacity)。注意,以下所說的PoC均代指容量證明。
容量證明共識採用了基於硬碟挖礦的模式,我們可以將其看作工作量證明(PoW)的魔改版。
依然是學校考勤的例子,這次我們接著PoW的例子講。前面說到,學校每天出一道高難度的數學題,同學們根據這道難題去解題目,最快解出來的就可以獲得記賬權。
阿福同學數學是體育老師教的,因此在解題方面一向不太擅長,但阿福之所以叫阿福,就在於他自帶歐皇體質,運氣特別好。為了爭取記賬權,他取了個巧,在學校公佈難題之前就準備了一大堆答案,等到題目公佈後,再從自己準備的那些答案中一個個代入驗算,找出正確答案。
我們也可以簡單將其看作刮刮樂,只要你手中的彩票足夠多,總有能夠中獎的。在這種模式下,用戶需要有足夠的硬碟容量來存儲足夠多的亂數,以提高“蒙”對答案的概率,因此稱之為容量證明。
儘管容量證明鼓吹者認為相比於其他共識,PoC具有人人可參與、減少資源浪費、抗ASIC、反壟斷等優勢,但其本質上依然是依靠堆積足夠多的資源(PoW中的算力,PoC中的硬碟容量)來“暴力破解”難題。在參與人數較少的時候自然看起來很美,一旦形成規模效應,很難說會不會走上工作量證明的老路。