在共識上尋求共識—Dpos和兩軍悖論區塊鏈

                  火球財經 2018-10-28 14:21
                  分享到:
                  導讀

                  共識機制一直是區塊鏈領域最核心的問題之一。PoW、PoS、DPoS、PBFT等,不同的算法都有自己的優劣點,在共識問題上的爭論從來就沒有停止過,這也是理解區塊鏈的關鍵問題所在。

                  鋪設基于區塊鏈的高性能金融生態系統的架構備受爭議,原因在于有很多方式可以選擇——集中式,分布式,無須許可,封閉式。

                  除開以上提及的這些,我們還有一個讓人煩惱的問題,就是如何應對競態條件(計算機科學術語:多進程間通信中,兩個或多個進程對共享的數據進行讀或寫的操作時,最終的結果取決于這些進程的執行順序)。

                  不論和中涉及,總有一些你想做的事和其他人想做的事不能兼得?;蛘哒f,你想要某件事發生,并且想要其他人能知道這件事會發生,這種情況在計算機科學的世界被稱為兩軍悖論:

                  兩支各由將軍領導的軍隊準備進攻一座要塞。軍隊各自在城外的兩個山谷駐扎。有另一個山谷將這兩座山谷分割開來,兩支軍隊的將軍想要交流的唯一方式就是派出信使穿越這座山谷。

                  然而,中間的山谷被城中的守軍占據,因此任何被排除的信使都有一定幾率被駐扎在山谷中的守軍俘獲。當兩個將軍同意他們將進攻但還未就進攻時間達成共識時,他們必須滿足同時進攻的條件才能成功的拿下要塞。

                  因此他們必須與彼此交流已在進攻時間上達成共識,并且兩位將軍都必須知道另一位將軍也知道他們已經就此達成共識,原因在于確認收到對方消息的這一條信息也有同樣的概率丟失,這就導致:兩人需要就一個潛在的無限條信息組成的信息流需要達成共識。

                  思想實驗包含:考慮他們該怎樣達成共識。在這個最簡單的形式之中,已知一個將軍是領袖,決定進攻時間,并且必須將這個時間告知另外一位將軍?,F在問題在于我們需要一套算法能夠讓將軍用來發送消息和處理已被收到的消息,并允許他們正確的涵蓋以下內容:

                  是的,我們將在已達成共識的時間發起進攻。

                  要做到這一點是很容易的。兩軍悖論的微妙之處在于設計一套真正安全并能滿足以上條件的系統是幾乎不可能的(引自:維基百科)

                  在區塊鏈中我們稱為的共識問題(同樣也可稱為協調問題),在金融密碼學的世界,被稱為雙重支付問題,而在數據庫中這被稱為原子性。也就是說,這在計算機科學是一個十分底層的問題,且并不是什么新鮮事兒。

                  現在讓我們了解一下這個問題的前世今生:

                  中心化的雙重支付保護

                  加密金融中的原始機制是一個簡單的客戶-服務器或受信任的第三方(比如SOX,一種支付系統),這就是說支持雙重支付的價值發行者(這個發行者是一種貨幣)僅僅依靠一個服務器在雙重支付中進行調解。十分典型的是,請求遵循先入先出(FIFO)排隊方式,這在今天的數據庫已經是標準了。

                  微信圖片_20181022172632

                  圖1-SOX,一種早期的電子現金系統,這種系統使用了一種客戶-服務器發行者(Issuer)的結構來解決雙重支付的問題

                  盲現金(BlindedCash)

                  一個中心化雙重支付保護的顯著變種就是對貨幣的盲簽名,這個概念由David Chaum于上世紀80年代末期發明。盲貨幣作為一種貨幣token可以單獨被使用(可驗證),但是就像所有的數據一樣,Alice可以將其同時給Bob和Carol。

                  對Bob而言,針對這種情況的解決方案就是將其收到的貨幣退還給發行的服務器,也就是印鈔廠,并索要被重新簽過名的另一份貨幣。同理,Carol也可以這么做,甚至以更快的速度。

                  微信圖片_20181022172638

                  圖2-盲電子現金系統使用了復雜的數學

                  現在,盲簽名在被用于Token上時存在一個特殊把戲:當Token完成一次被修改的RSA加密算法時,其能夠創造一個之前未被使用過的全新簽名,但這個簽名卻依然有效,因此這個貨幣依然是被承認的。

                  因此,盲簽名的“盲”字表示,貨幣的發行者不能追蹤Alice用這些貨幣干了什么,這顯然是十分有價值的!另一個關于電子現金的把戲是如果Alice確實嘗試兩次使用同一筆貨幣,造幣廠可以使用加密手段來將這兩筆被消費的貨幣合并,去掉匿名保護,并揪出罪魁禍首。

                  我涉及了部分關于盲雙倍支付的內容,因為這是一個非常復雜的用于管制雙重支付的系統中的一個例子,也因為這是我們誕生于上世紀80-90年代的金融密碼學領域的開端。

                  投票

                  多服務器的選擇變得流行主要是為了追求可靠性。比如,早期NASA的航天飛機就有以三個IBM主框架形成的投票環(以及一些備用框架)。在每一個投票系統中,都是占大多數的獲勝,其余的小部分會被斷開連接,并被取代。

                  早期的建議投票系統事實上被證明有許多不足,而現在在行業中流行的關鍵詞是Paxos(一種基于消息傳遞且具有高度容錯特性的一致性算法)和PBFT(practical byzantine fault tolerant,拜占庭容錯),而且支撐著這些內容的是Lamport(Paxos提出者),以及大量理論,PhD,論文,圖靈獎!總之就是各種復雜的東西。

                  以上提到的這些內容都有一些挺嚴重的局限性,主要有:

                  · 從管理上來說他們是中心化的,并且/或者/因此 · 所有的參與者都是已知的。

                  換句話說,拜占庭將軍問題的解決方案中我們知道誰是將軍的假設,在以上提到的這些情況中并不適用。

                  工作證明(Proof of Work)

                  中本聰發現任何中心化的部件都能夠被攻擊,并會受到攻擊。這個發現是準確的:MTB關停了eCash系統就是因為遭遇了意料之外的成人購物,DigiCash被政府當局干預致殘,WebMoney遭到名譽上的攻擊,e-gold和LibertyReserve被美聯儲扳倒。

                  這個名單可以一直列下去,即使是作者本人也比預想中里這些災難更近。你可以自己做一些調查來終結這些指責,以及其他一些偏見。

                  覺察到這個缺陷的人不止一個,但是是比特幣給出了解決方案。

                  因此,中本聰說,我們需要終結這種易受攻擊的中心化機構(CVP,也稱TTP)。并且,通過推測我們也知道并不能信任已知機構的投票系統,我們必須分享并驗證這些數據是相同的,并且同時我們必須有容易接入的出入口,即匿名性。

                  這個東西很棒,但是仍不能讓我們解決雙重支付問題,我們只是將數據從單個地方挪到了一個大的多的地方(從一個節點到多個節點)。

                  一個優雅且著名的解決方案是工作證明(PoW)或者中本簽名,一個基于用哈希數學問題來確認正確區塊交易的彩票系統。這個彩票系統的密碼學的本質隨機選擇一個制造區塊的礦機。

                  將被稱為挖礦的昂貴的哈希搜索和獎勵耦合,并加上一些繁瑣的博弈論和概率問題,所有這些元素都被用來將系統設計得能夠驅使礦機不停工作。

                  微信圖片_20181022172819

                  圖 3. 在PoW中,機器人必須從一大堆錯誤的數字中找出諸如000000000374af72…的正確答案

                  比特幣是一個出色并且優雅的解決方案,因為它開闊了我們的思維,讓我們想到了完全的分布式的應用(或貨幣)的可能性。但是PoW消耗了太多能量,多到市場無法承受,多到能夠成為一項附著在貨幣上的嚇人的稅(比特幣4%,以太坊11%!)。

                  而隨著使用比特幣的費用越來越高,大多數人將無法使用它。高額回報和上升的價格同樣也導致了大規模的挖礦,并不可避免的導致了礦機的中心化。雖然系統本身依舊毫無問題的運行,但這由能夠抵御審查的設計方案完成的系統卻落入了少數幾個公司,而這幾個公司幾乎都坐落在一個以審查嚴格而聞名的國家。

                  權益證明(Proof of Stake)

                  有人提出我們只需要將以CPU投票的模式改為以價值投票的模式來選擇誰對(下個區塊中)雙重支付的問題做出決策。畢竟,區塊鏈十分準確的建立在貨幣擁有的制度上,因此擁有更多貨幣的人更可能選擇保護系統,因此這個偏向性是合理的。

                  雖然可能讓小額貨幣擁有者感到不適,也對民主制度有所冒犯。

                  這個理論也因為一下原因受到批判:(1)將權力交給最多價值擁有者手中;(2)“無風險”問題(the “nothing at stake” problem):不斷試圖分叉不需要任何代價,而對于礦機來說最優的策略是盡可能多的挖礦(制造區塊),因此不論礦機挖的區塊所屬于的區塊鏈最終是否獲勝成為正確的那一條鏈,都能獲得交易費。

                  簡單的權益證明似乎并不奏效,究竟什么系統才奏效呢?讓我們將問題逐步分解。

                  讓我們去參與一個挖礦中心化的會議

                  當我們觀察比特幣礦工由中國壟斷的現狀時,很明顯他們互相之間時認識的,因此他們能夠相互交流。而當面對今天的大到能將國家變暖的挖礦規模的,我們知道比特幣開始對礦工的匿名假設早已變得如履薄冰了,因為我們只需要看電力消費就能知道誰在挖礦,或參與任意一個比特幣會議。

                  另一方面,他們可以相互勾結。至今他們并沒有選擇這么做,或者至少我們不知道。因為從歷史上說這個情況還不能被證明是可靠的,也許動機與道德能夠被改進提高?

                  只有他們的動機和道德能夠讓他們不相互勾結;在這種情況下礦工又回到了烏龍指失誤(鍵盤輸入導致的錯誤)的時候,有的交易者會意外的將一定數量的比特幣而不是satoshi設為交易費,所以道德在這里確實起著一定的作用。另一方面,一些礦機會挖出空的區塊,即使有成堆的被延遲的交易排成長龍。

                  今天的礦機中心化不僅是意料之外的,也不符合比特幣最初的設想。礦工的正直會是一個可持續的未來嗎,從歷史角度來講,正直并未被證明是可靠的,想想銀行就知道,所以我們真的應該繼續支持依靠動機和道德來支撐的區塊鏈嗎?

                  如果我們退一步接受礦工可以中心化的事實呢?并且我們知道他們是誰?或者更矛盾的講,礦工應該中心化并通過身份驗證?

                  如果我們接受礦工中心化和礦工身份驗證,我們可以指定礦工。但是指定ASIC礦機只會將我們帶回在開始的易受攻擊的中心化局面。

                  DPoS —— 如何管理將軍

                  那么我們究竟該如何更好的管理礦工呢?如果我們可以指派他們,我們同樣可以解雇,這就將我們帶回了兩軍悖論

                  微信圖片_20181022172859

                  圖 4. 生產者制造區塊, 1.驗證交易,2.添加生產者獎勵,3.計劃每一個接收的信息,4.根據內部狀態進行處理,5.批準交易為/非雙重支付/,6.發布已被簽名的交易

                  考慮到現實和經驗帶來的一連串新的需求,設計一種新的雙重支付系統似乎可行,DPoS(Delegated Proof of Stake)就是這樣的再設計,并使用了以下工具:

                  1. 一個生產者被選為決策者來避免一個區塊中的雙重支付,見圖4,每制造新的區塊獲得新誕生的貨幣作為獎勵;

                  2. 很多生產者被選擇并被給予一個由一圈區塊構成的羅賓環,從而在環內創造出一個存在競爭的市場,以保證可靠性并解決分叉,見圖5;

                  3. 鏈上運行者一個開放的社區通過投票來管理生產者,每個成員通過PoS原理進行投票。選擇和解雇生產者使用的是同一原理,即多輪拍賣式。見圖6。

                  微信圖片_20181022172932

                  圖 5. 七個將軍解決七個生產者問題組成的圈

                  之后社區會被要求通過以下手段管理他們自己的鏈:

                  · 檢查和同意他們進行的交易

                  · 投票選舉或解雇生產者,根據他們的記錄和其他參考選項(比如生產者可以自由的提供其他動機比如降低收入)

                  · 維護他們的權益(stake)或投票權

                  微信圖片_20181022173017

                  圖 6. 社區通過投票取代不合格的生產者

                  一個政治化的經濟體?

                  從共識的角度來說,DPoS是基于證據(proof)的代理權益(stake-delegation),即生產者向社區提供自己制造區塊的證據,然后社區使用其權益來管理生產者。

                  從政治的角度來說,DPoS與基于土地擁有者投票的兩層代理民主制度(two-layerrepresentative democracy with landowner suffrage)較為相似。在這種制度中:

                  · 代表(representatives)即為那些由社區選舉出的生產者,有生產者來處理那些日常的問題;

                  · 對代表的投票權被給予那些擁有一定資產的人。這筆資產可以是承諾給社區的一筆積蓄,也可以是凍結起來的積蓄;這筆資產從更廣義上代表著歷史上的土地擁有者的投票權,作為對商人階層帶給社會的財富與貿易的認可。

                  這種機制的準確設計——存款帳號,有多少生產者,多就誕生一個區塊,多久一個環,以及眾多其他元素,顯然是更深層次也是更有趣的問題,今天就不做討論了。

                  它該如何運作?

                  這個機制以及被不少具有一定規模的系統使用,Bitshare,Steem,EOS,Tezos,PeerPlays,Ark.io等等。

                  雖然可以對其批判,但迄今為止評論似乎更頻繁的討論其特點以及與其他機制比較,而不是其弱點:

                  1. PoS因為“無風險(nothing at stake)”問題而變得脆弱,但只有當權益(stake)被用來直接參與區塊建設的時候這個問題才會出現。而DPoS則解決了這個問題,因為在DPoS中對區塊的處理被交給了生產者,這種責任的分離解決了“無風險問題”;

                  2. 有幾種生產者會出現惡意行為的可能——他們可能會對交易進行干涉。但這事實上可以被轉換為好吃,因為不合格的生產者會通過投票被解雇,這就是DPoS的意義。與比特幣現在制造空區塊的非法行為相比,DPoS的表現要強得多,因為它有一個懲罰機制;

                  3. 勾結依然存在可能性。當然,勾結在其他區塊鏈也存在可能性。重要的是哪一種機制在勾結存在的情況下運行的更好,至今為止這我們的錢都得到了妥善的管理,因為懲罰機制的存在。而在缺乏管理的純PoW中,不管礦工做什么都不會受到懲罰,即使是51%攻擊。在DPoS中,只要勾結被發現了,不管是1%還是51%我們都可以通過調整管理方式來對付。

                  4. 純粹的比特幣使用者會指出,添加管理層打破了區塊鏈的無信任本質。然而并非如此,因為關于無信任有以下謬誤:

                  a. 其他區塊鏈沒有管理層的謬誤。這并不正確,事實上是由管理層的,只不過沒有被明寫出來,被拒絕承認,以及不穩定。從本質上來說,我們使用有明確規章制度和透明的管理取代了專設的管理。問題不在于這么做是否加強了管理程度,而在一明確的管理是否比暗地里管理更好。

                  b. 比特幣的設計然我們不需要信任礦工。在考慮一下空區塊的問題:我們現在必須相信礦工會生產有效的區塊,而事實并非如此,這就將區塊鏈的數學上本質和“信任”的人性本質分離開來。PoW下的區塊鏈終結了一部分信任,但并不是所有,而在這種情況下,當我們真正需要信任時,我們卻無法再建立信任。

                  DPoS還有一些值得被提及的優點:

                  1. 由于其廢除了哈希挖礦,DPoS會比PoW便宜得多。而收益的會是社區,因為我們會將這部分稅歸還給社區(如前面寫到的比特幣4%,以太坊11%)。

                  2. DPoS更加環保。

                  3. 通過添加正式的管理層,我哦們也能夠有計劃的為軟件進行升級。這意味著,用戶將會有機會對系統的改變做出投票,生產者根據投票結果行動。這個機制幾乎使惡意分叉成為不可能,并使區塊鏈充滿活力,由于它可以隨著不斷變化的需求而進化。比如:仍未解決的PoW中DAO(decentralizedautonomous organization,去中心化自治組織)的夢魘,以及關于區塊大小的爭論都是在DPoS中得到解決的問題。

                  4. 正式的管理機制也給了社區對改進區塊鏈提出建議的機會。

                  5. DPoS致力于使做決策變得高效,從而使系統真正能被大規模使用。讓我們把關于性能的討論留給其他文章,但這里值得一提的是,測試中Bitshare實現了1000倍于但當下比特幣的性能。這樣的性能讓人變得能夠容忍很多其他的瑕疵。

                  這些優點當然也意味著存在尚未被發現的缺點,但他們會是企業和個人能夠容忍的缺點。

                  區塊 問題 系統 比特幣 貨幣
                  分享到:

                  1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
                  2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
                  3.作者投稿可能會經TMT觀察網編輯修改或補充。