[閒聊] Nervos:PoS 算法並無法證明比PoW 更安全

看板 DigiCurrency
作者 lolo0856 (lolot)
時間 2019-06-12 11:58:36
留言 72則留言 (9推 2噓 61→)

不知道要用什麼分類,就閒聊吧@@ 這是Nervos在某會議闡述的想法~~ 原文:http://0rz.tw/FuAgF 一、鏈上擴容or 鏈外擴容? 大家有沒有發現,2017年底、2018年的時候出現了一波公鏈熱潮,這些公鏈的技術方向五花 八門,什麼都有,有一些你看到了都不知道它是什麼。不光是你,連我都不知道這些公鏈的 技術是什麼,我也看不懂。 但如果我們從更高的角度收斂來看,其實公鏈未來的發展只有兩個方向,一個叫鏈上擴容, 一個叫鏈外擴容。 1.鏈上擴容 鏈上擴容有這樣幾條路,第一條路叫“更大的區塊”,BCH就在做這件事情;鏈上擴容第二 條路是“使用更快的共識算法”,因為大家發現一條鏈性能不夠、TPS太低,往往處理共識 節點的增加會致使性能處理的瓶頸。 我們本著頭痛醫頭、腳痛醫腳的原則,當看到一個鏈裡面哪一個地方存在性能瓶頸,我們就 用一個更厲害的技術把它換進去就可以了。比如有人認為區塊鍊是一個單線系統,於是就有 了第三條路“並行計算-Sharding技術”;還有人覺得第四條路“DAG”這種新的拓撲數據結 構,比鍊式結構更適合處理海量的數據、海量的交易。 其實所有的鏈上擴容方案都在做一件事情,就是做一條更強的鏈,讓這條鏈解決所有的問題 。但如果你是一個研究者,你會發現鏈上擴容方案背後都存在一些問題。 比如“更大的區塊”,當你的TPS性能成百倍、成千倍放大以後,馬上會遇到一個新問題, 存儲空間爆炸;比如“使用更快的共識算法”,現在有POS、DPOS ,它們在安全性上是否都 做出了妥協?我們且不說這些算法帶來的去中心化的問題,我們只看它有沒有在安全性上做 過妥協; 比如“並行計算-Sharding技術”,並行算法給公鏈實現的複雜度增加了好幾個維度,我們 就問一個問題,這麼複雜的功能實現,你如何保證整個系統是絕對安全可靠的?畢竟它沒有 經受過現實的長期檢驗,而且功能複雜這件事情本身就是安全的敵人。 比如“DAG”更多來自於學術界,但其實DAG技術沒有得到學術界的真正認可,它現在在落地 和處理大量的交易的時候,還有很多問題依賴於中心化的手法和方案。 所以回過頭來看,我們做一條更強的鏈的鏈上擴容方法,本質上是在一條鏈的內部想辦法做 各種的權衡和取捨,進而得到性能提升,但這個過程中你失去了什麼?這是一個問題。 2.鏈外擴容 另外一條路叫鏈外擴容。我們看到現在產生了很多鏈外擴容方案,比如:閃電網絡、狀態通 道、Plasma、Truebit等等,但鏈外擴容也有一個問題: 打個比方,假如今天你買一個手機,賣手機的人告訴你,今天以前發布的所有手機應用都能 夠裝、都能夠用,但今天之後發布的APP,你的手機可能不支持,那你還買不買這個手機? 區塊鍊鍊外擴容就有這樣的問題,現在所有的二層擴容方案,它們可以切用戶體驗、切TPS ,切高性能,但最大的瓶頸來自於一層網絡對他們不支持。 如何讓一層網絡對他們支持呢?技術上是可行的,但你要做無數次硬分叉,才能一步步支持 ,這是一個麻煩的過程,因為區塊鏈不是一個軟件,非常難以升級。每做一次硬分叉,都要 做非常多的工作,而且也只能小步前進。現在所有的一層網絡,比特幣、以太坊等等,對二 層網絡的支持都非常難。 二、區塊鏈的設計方法學 經過上述的思考,我們已經有了一套區塊鏈設計方法學,主要包含下面4件事。 1.區塊鏈的核心價值是什麼? 未來的路我們該怎麼走?第一部分提出鏈上擴容還是鏈外擴容?我們覺得這個問題的核心要 回歸一個本質:我們到底想用區塊鏈做什麼?或者說區塊鏈的核心價值是什麼? 區塊鏈的核心價值是提供信任,這是結論,我就不展開分解了。基於這一點,我們可以得出 一個衍生的推論:區塊鍊是通過全局共識的方式來幫助你實現信任。而全局共識,就是一個 很慢、很貴的東西,你要接受它,這是事實。 分佈式的、去中心化系統的共識,不可能做得比中心化更快,分佈式系統的核心是給你提供 信任,信任才是它的核心價值。我們做區塊鏈,應該考慮的是如何能夠把信任的價值發揮出 來。 2.區塊鏈系統未來一定是分層 如果你在鏈外有一個系統,它可以在安全的基礎上提高你的操作性能,這件事能不能做到? 當然能做到,只要你在設計LAYER1的時候朝著安全這個方向設計,然後把信任傳遞到鏈外, 去保護鏈外的系統安全。 當想明白這一點,我們得出一個結論,不要在一條鏈上做權衡和取捨,在鏈上走獲得信任這 條路,通過鏈外獲得更高的性能。經過一段時間的驗證,我們認為區塊鏈的未來就是分層, 把網絡分成不同的層次,由不同層次解決不同問題,最後把這些層次系統合在一起,以整體 的方式達到最大的效果。 3.考慮不同層次的需求 如果未來區塊鍊是一個分層網絡,那麼我們就需要思考,這個網絡中每一個層次的角色。 上層不用說了,它的核心角色是用來提供性能,提供用戶體驗,用它來切場景、解業務,它 能把這種事做得非常好,它只需要得到LAYER1的支持。 當然LAYER1就不應該只追求性能,在區塊鏈場景下,LAYER1只要做到極致的安全性和極致的 去中心化,來保障上層應用的安全,這個系統就是跑得通的。 4.底層協議設計充分為上層優化 有了這樣的思路,當我們搞清楚LAYER1、LAYER2以及角色之間的關係時,就要重新審視我們 在做底層設計的時候,該做哪些事情? 底層該做的事情,是在不犧牲安全性和不犧牲去中心化的前提下,充分地為上層做優化。 這裡有一張圖,很簡單,中間有一條線,線上是LAYER2,線下是LAYER1,會用一個圈代表一 個性能。線上做擴容,沒有問題,在中間的分割線之下,只要專注於去中心化和安全性,就 是DECENTRALIZATION和SECURITY。 三、Nervos CKB的技術特點 基於這樣的思考,我們認為LAYER1的底層就是做這樣幾件事情: 1.資產管理和存儲模型 首先,LAYER1、LAYER2之間要保證安全和安全能夠向上傳遞,它最核心要做的事情是保證資 產安全。保證資產安全,不光要保證平台Token的資產安全,也要讓用戶可以在平台上發行 自定義資產,並且保護用戶自定義資產的安全。 大家可以問一個問題,我們在以太坊上發一個ERC20的Token,也許這個Token因為某些原因 變得有價值,它的安全由誰保證?這個很有趣,我們待會兒講。 其次,我們有必要支持用戶完成自定義功能,並且在底層賬本模型設計的時候,應該是以資 產為導向的,因為只有以資產為導向去設計賬本模型,它才更加適合用來可以把狀態用戶的 資產映射到上層網絡上做交易、做業務、做應用,最後還比較容易回到底層做清算。 所以我們藉鑑了比特幣的UTXO的思路,設計了我們自己的獨立非常有特點的賬本模型系統, 這裡不展開。 另外,除了發行資產、影射資產之外,當LAYER2的用戶需要把資產回到底層進行網絡清算的 時候,會提交密碼學證據,而你需要對密碼學證據的數據具有存儲能力,所以LAYER1必須要 做好地產管理和通用的存儲模型。 2.CKB-VM 虛擬機 第二是虛擬機,所有的區塊鏈業務都需要虛擬機。你要想清楚鏈的定位是什麼,是在應用層 做一個高級語言支持的虛擬機,還是在底層做保護系統安全的虛擬機? 我們認為在LAYER1的底層,核心是要讓虛擬機足夠安全,並且足夠靈活,而且有很強的運行 期的透明性,這就需要保證在虛擬機裡執行的每一個指令,都能夠非常容易地計算出它的成 本,這對你的底層經濟模型非常重要。所以我們使用更底層的抽象,叫RISC-V硬件CPU的指 令級,來模擬實現我們的虛擬機,我們的虛擬機就像一個硬件的CPO在執行。 3.NC-Max PoW 共識算法 底層為了安全,我們使用的PoW共識算法。現在很多人討論PoW和PoS算法誰更安全,說實話P oS算法並沒有辦法證明比PoW更安全,但它明顯比PoW更複雜,這種複雜性沒有辦法保證理論 的設計和工程實現都能做到安全,就算它的工程實現比較完備的情況下,也沒有經過在生產 環境中長達十年時間的驗證。 所以我們認為PoW算法是更好的選擇,但我們沒有因此停步。我們要在保證安全的情況下, 壓榨出硬件的每一滴油水,讓性能足夠快,這也是我們在做的事情。我們提出了一個NC-Max 的共識算法,將會在下個月發出來,我們會有一個非常巧妙的方式壓榨帶寬的使用率,來提 升算法效率,而PoW的算法歸根到底是帶寬如何高效被使用而不是被浪費掉。 4.經濟模型 最後最關鍵的一點,即經濟模型。當你的網絡分為LAYER1和LAYER2的時候,你要考慮當你的 上層應用變得非常繁榮的時候,如何能把上一層產生的價值捕獲到底層,當底層的價值被捕 獲並沉澱的時候,它可以激勵你的礦工得到更多的收益。當礦工得到更多的收益,也是讓礦 工獲得更多的資源保證全網的算法。而全網安全邊界提升的時候,實際上也能為上層提供更 好安全保護,這是經濟模型設計的核心。 經濟模型設計的核心並不是鼓勵每一次共識的達成,經濟模型設計的核心是推動整個生態能 夠朝著越來越繁榮的方向去推進。 最後,分享一下我們2019年在做的事情,我們將在3月8日發布經濟模型設計提案,5月18日 發布測試鏈,6月份發布共識算法Paper,預計Q4主網絡上線。 評論: 不提Nervos這條鏈如何,這篇文章中說到的區塊鏈定義跟我的想法很雷同,區塊鏈本身的笨 重緩慢的架構使其可以提供高度的信任,這就是它最大的價值,試圖提升性能的嘗試其實都 或多或少犧牲了某方面的安全或去中心化程度,我並不是說這樣不好,我們可以在各種新方 法的嘗試下小幅優化區塊鏈交易的速度,但沒辦法在堅持去中心化的架構下使效能有數量級 的提升。 我認為區塊鏈應該在其擅長的部份發揮最大價值,而不是試圖與中心化系統提供相同的高效 率。 對於PoS和PoW的爭論我前一陣子有翻到一篇在論述其實任何一種共識法都沒有辦法比PoW更 高效,差別只是隱式或顯式的PoW,PoS算法實際上浪費的隱性成本並不會低於PoW挖礦所消 耗的成本,文章在這~~ http://0rz.tw/xDoTO 大家對於PoS與區塊鏈的想法如何呢? --

※ 批踢踢實業坊(ptt.cc), 來自: 101.9.37.186 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1560311919.A.678.html

camellala: PoS 的優點不是在安全,而是不會浪費能源;由於環保及 06/12 12:28

camellala: 全球暖化的因素,PoW長期來看會走向式微 06/12 12:28

lolo0856: 在那篇文章中有論述 其實PoS隱藏的成本並不會低於PoW 06/12 12:31

lolo0856: 譬如stake發生的流動性成本 06/12 12:31

camellala: 不可能,貼出他的論點吧 06/12 12:36

lolo0856: 文章中有附錄喔 06/12 12:36

lolo0856: https://i.imgur.com/nkU77wg.png 06/12 12:37

camellala: 在哪一段? 06/12 12:37

lolo0856: 他用基礎的經濟學理論論述消費者剩餘和生產者剩餘都會 06/12 12:38

lolo0856: 因為staking而減少 06/12 12:38

lolo0856: 倒數第二句@[email protected] 06/12 12:38

camellala: 這張圖與耗能無關 06/12 12:39

lolo0856: 不是耗能的問題 消耗能源是成本的一種表達方式 不消耗 06/12 12:40

lolo0856: 能源不代表他在其他部分的成本消耗小於消耗能源 06/12 12:40

camellala: 請用理論證據說服我,而不是講似是而非的無關話語 06/12 12:42

lolo0856: ..這也不是我的論述ㄚ 文章不就在本文的最後嗎0.0 06/12 12:43

lolo0856: 不然再貼一次給你好了http://0rz.tw/xDoTO 06/12 12:44

lolo0856: 另外我認為安全不是拿來比較的東西,任何一種共識法都 06/12 12:45

lolo0856: 應該保證安全 06/12 12:45

lolo0856: https://ethfans.org/posts/32088另外在這篇的末尾也有 06/12 12:54

lolo0856: 論述PoW為什麼與眾不同 06/12 12:54

camellala: 我只有在文中的"声明 2(iii)"看到作者的說明,那只是他 06/12 12:54

camellala: 的想像而已,沒有具體理由,更別說沒計算分析 06/12 12:54

camellala: 直接與間接耗能,是可以科學計算的,而不是僅作者自己 06/12 13:00

camellala: 覺得而已 06/12 13:00

darkdixen: 就說幣圈充滿我覺得 06/12 13:09

commandoEX: 要不然請camellala算算POS比POW更節約也可以啊 06/12 13:13

commandoEX: 沒有必要一定要誰說服誰吧? 06/12 13:14

camellala: PoW比較安全,這沒問題;但若要說 PoS 耗能的話,請用" 06/12 13:15

camellala: 科學"來說服我 06/12 13:15

camellala: 回樓上,PoS省能源,就是科學啊 06/12 13:16

camellala: 我只是無法接受PoS的耗電不比PoW少的這種歪理 06/12 13:18

commandoEX: 文末的參考文章說的是POS的隱藏成本不比POW少吧 06/12 13:27

commandoEX: 怎麼會變成只探討耗能問題? 06/12 13:27

lolo0856: 他不是論述耗能少吧@@ 耗能少是PoS優勢的既定事實 但不 06/12 13:29

lolo0856: 能忽略PoS有許多安全性譬如nothing at stake的成本阿 06/12 13:29

lolo0856: 所以到底是誰說PoS耗能了... 06/12 13:30

commandoEX: 文章裡面主要在說被質押的POS代幣所產生的成本比POW大 06/12 13:31

lolo0856: https://reurl.cc/ZdARM 06/12 13:34

lolo0856: 這邊有稍微比較大篇的PoS PoW探討 大家可以參考~~ 06/12 13:34

camellala: 我再重看一次前面推文的過程,我瞭解我們溝通的誤差原 06/12 15:10

camellala: 因了: 06/12 15:10

camellala: 我在1、2樓的留言就只有一個重點,就是耗能;樓主在3樓 06/12 15:10

camellala: 回我時講了成本,我就預設他回我的成本議題,應該是接 06/12 15:10

camellala: 續我的耗能議題,然後我就和樓主吵耗能議題; 06/12 15:10

camellala: 一直到了第37樓,我才知道樓主在3樓講的話,並不是對我 06/12 15:10

camellala: 在1、2樓的話在回答,才會有誤會 06/12 15:10

d15388david: 推 06/12 15:11

lolo0856: 沒事 大家理性討論ouo 06/12 15:15

camellala: 再幫我前面誤噓的,自己補推回來 06/12 15:17

lolo0856: 我思考的是 真的有一種貨幣的發行不需要工作成本嗎? 06/12 15:20

lolo0856: 黃金發行也需要投入資本去工作挖礦 06/12 15:21

lolo0856: 不需要成本發行貨幣聽起來其實很類似政府印紙幣的行為 06/12 15:24

lolo0856: ,紙幣背後已經沒有黃金擔保,依靠的僅僅是人民對於政 06/12 15:24

lolo0856: 府的信任,當這個信任崩解紙幣就不具任何價值 06/12 15:24

lolo0856: 所以換成任何使用PoS的項目的狀況,我們是信任了誰呢? 06/12 15:24

JoyRex: V神顧小礦工啊.效率好棒棒 06/12 15:37

john801110: 最顧小礦工的應該是xmr了常常為了打擊礦機升級 06/12 15:47

JoyRex: 我還以為是最顧殭屍挖礦哩 06/12 17:29

DarkerDuck: PoS比較省能源這個應該連計算都不需要 06/12 17:47

DarkerDuck: PoW就是用耗能去達到一個難以變造的帳本來達成信任 06/12 17:48

DarkerDuck: PoS因為不用耗能就可創造帳本,所以有Nothing at stake 06/12 17:48

DarkerDuck: 我驗證者可以任意壓所有分叉鏈,讓共識無法收斂 06/12 17:59

ProtectChu56: 好像PoS大都宣稱用懲罰機制能解決[email protected]問題 06/12 18:06

DarkerDuck: 至於那篇"沒什麼比PoW更便宜",則是用機會成本的算法 06/12 18:07

DarkerDuck: 和耗能無關 06/12 18:07

DarkerDuck: 以後ETH網路大概也不會拋棄PoW,大概會雙軌運行 06/12 18:08

DarkerDuck: 只是PoW就當作最基礎最安全的Anchor Layer 06/12 18:12

DarkerDuck: https://i.imgur.com/izhtlWG.png 06/12 18:13

DarkerDuck: PoS則是用來高效率一秒出一塊和sharding chains使用 06/12 18:19

lolo0856: https://ethfans.org/posts/32088 06/12 18:43

lolo0856: 這篇提到 無法偽造的奢侈消耗正是PoW與眾不同的原因 06/12 18:44

您可能感興趣