比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

我們到底需要什么樣的共識算法?_比特幣

Author:

Time:1900/1/1 0:00:00

“我們之所以需要區塊鏈,是因為對于中心化系統最大的擔憂不是作惡代價的大小,而恰恰是作惡成本無法估計、無法量化。作惡的回報并不限于系統內,還可以在系統外。即便是最透明的上市公司,我們也無法獲知股東的所有收益來源,因此,也就無法量化他們能夠通過作惡在系統外獲得多少利益。無論是POS還是POW,當區塊鏈中「大節點」過于集中的時候,我們將面臨和中心化系統一樣的問題——我們無法量化系統的安全性,于是,只好把安全性寄托于對于節點的信任,而不是可量化的作惡成本上。”

這是任博士關于POWvsPOS的第三篇,這也將是本系列的最后一篇文章。

本文作者:Maxdeath,任之劼博士,唯鏈區塊鏈高級研究員,主要研究方向包括區塊鏈共識算法、擴容、應用,曾在國際學術會議上發表多篇區塊鏈論文。

“由于POW和POS在不同屬性上各有千秋,所以它們各自適用于不同的場景,于是他們會在現實中并存,不同的區塊鏈可以用不同的算法。”

這似乎是現在更流行的看法,也是個更模棱兩可和左右逢源的看法。

但這并不是我的看法。

我的看法其實已經在上兩篇文章里表達的很明確了,我認為——

在安全性面前,其他的特性都是末節。

同樣的,我認為安全性上遜色的算法,就是差一些的算法。

于是,我們又回到了上次我們想要討論、但還沒有討論的問題——

我們究竟需要什么樣的共識算法。

其實,以上的論點放在2-3年前可能關注度會更高。在很多人看來,就算我寫擴容、分片或者鏈下技術,都已經是屬于前兩年的、過時了的東西了。更何況是“POW”、“安全性”這種似乎從n年前公鏈項目爆炸的年代就在討論、結果到了大部分公鏈都死了也沒有結果,于是到現在雙方都決定各退一步說:“兩者互有優劣適用場景不同”的話題。

那么,我為什么還要寫這個問題呢?為什么不去寫一些更熱門的話題,例如Defi,例如鏈上治理,例如StakingEconomy,例如價值捕獲,例如生態建設等等……

因為在我看來,這個問題并不過時,而且,從未如此重要過。

因為以上的所有問題,在我看來都是安全問題。

因為區塊鏈本身,解決的就是安全問題。

“安全”是指這個系統能夠可靠地按照我們的設想,做它該做的事

那么,什么是共識算法的安全性?

美國總統拜登:我們看到一些跡象表明通脹可能正在放緩:8月10日消息,美國總統拜登表示,我們看到一些跡象表明通脹可能正在放緩。(金十)[2022/8/10 12:16:26]

一方面,在之前的兩篇中我們已經介紹了——“所有人都認為的安全”,并不是真正的安全性。同時,“在現實中沒有被攻破”,也并不是安全性的保證。

那么,理論上的安全呢?有了論文,有了數學證明,總該夠安全了吧。

其實也不盡然。

從理論上,我們可以從分布式系統的方法證明共識算法是拜占庭容錯的,或者,可以從密碼學的角度證明其中所有采用密碼學的機制都是安全的,我們還可以用Bitcoinbackboneprotocol里的模型證明某個算法適用于區塊鏈共識,因為它擁有和比特幣一樣的特性,然而所有這些關于安全性的證明都是基于某些理論上的模型或者假設,并不代表它們在現實之中就一定是安全的。

例如,BFT里關于超過2/3誠實節點的假設,對于不同的算法,這個假設的成立與否是不一定的——如果你要求誠實節點安裝某個客戶端,這個客戶端每十分鐘驗證1MB的交易,那么多數節點可能可以是誠實的;但如果這個算法要求誠實節點每秒鐘驗證1M的交易,那么很多帶寬和計算能力達不到要求的節點顯然是無法完成的,于是,在BFT的模型里,這些節點就會變成“不誠實”的。而這個時候,如果說每個節點能夠收到相應的激勵的話,他們又會變得誠實起來。于是,一個證明是拜占庭容錯的算法,未必在現實中是安全的,而一個能容錯1/3的算法,在現實中,也未必一定比容錯1/5要更安全。

另一個例子就是,不考慮自私挖礦的話,比特幣從理論上來講是“安全的”,因為我們的假設是“惡意節點無法控制超過50%的算力”。但是我們之前已經說了,這個假設本身并不實際,首先獲得50%算力的難度很低,其次在實際之中一些POW項目50%以上的算力就控制在一個或幾個節點手中。

換句話說,實際上,即便在學術界,目前也沒有一個確切的定義,或者說一個公認的,非常貼合實際的模型來描述現實中對于區塊鏈系統“安全”的標準,于是,我們也無從證明,到底什么才是“安全”的共識算法。

一個能夠證明的,安全的共識算法,只是說明了它在某些假設下和某些模型中的安全性。雖然這總比沒有證明好,但是,在我們還在尋找一個能夠更好地描述區塊鏈的模型時,說這種算法就是我們在尋找的“安全”的共識算法,區塊鏈系統用了他們就可以高枕無憂了,還為時過早。

那么,什么才是“安全”的區塊鏈共識算法呢?

孫宇晨:對于外媒毫無底線的造謠,我們已經聘請美國頂級律師事務所追究其法律責任:據最新消息,孫宇晨在其社交媒體平臺表示:“作為格林納達駐WTO大使,我高度重視合規,視合規為生命線,與各國(包括中美)監管機構保持良好關系,共同推動區塊鏈行業合規與發展,對于外媒毫無底線的造謠,我們已經聘請美國頂級律師事務所追究其法律責任。 ”[2022/3/10 13:48:44]

這里我說的安全并不是傳統信息安全里面講的安全性。

這里,“安全”是指這個系統能夠可靠地按照我們的設想,做它該做的事。

這件事,在我看來,凌駕于其他一切屬性之上,是區塊鏈共識算法的首要責任。

因為,區塊鏈的首要責任,也是安全。

這又是一個相當“非主流”的觀點——我猜很多人會說:“區塊鏈的首要責任不是去中心化嗎?”

當然,我承認,去中心化很重要,去中心化是區塊鏈最大的特點,是區塊鏈與中心化系統最大的不同,如果沒有了“去中心化”,那么區塊鏈也就不能稱之為區塊鏈了。

但是,別忘了比特幣誕生于整個密碼朋克小組的初衷,我們需要去中心的原因,不還是因為我們不相信中心化系統的安全性和可靠性,也就是說,雖然一個中心,例如銀行,例如政府,告訴我它會做一些事,告訴我們“這是數字貨幣,這里面的錢記在我的系統里是安全的,請放心”,但是,我們其實并不完全相信它會遵守我們的約定,而可靠地做這件事嗎?

所有區塊鏈領域的從業者,都應該記住一件事——

我們需要區塊鏈,但其他人并不在乎,他們需要的是一個更好的系統——無論它是中心化的,還是去中心化的。

所以,我們需要去中心化,但它的目的是,我們需要通過提供一個去中心化的區塊鏈,使得我們能夠更好地量化它的安全性,而不需要依賴于對于某個中心的信任,最終,得到一個比中心化系統更安全的系統。

因此,如果天平的兩邊是去中心化和安全性——那么無論如何我都會選擇安全;如果天平的兩邊是一個“更去中心化、但不那么安全的系統”和一個“不那么去中心化、但更安全的系統”,那么我無論如何都會選擇后者。

但是,在目前的階段,我們確實需要去探索性地嘗試那些“不那么安全、但是更去中心化”的方法,但是請一定謹記,如果我們都往這個方向走,并且不回頭地走得太遠,那么最終被拋棄掉的,將不是一個系統而已,而是整個區塊鏈技術。

因此,在我看來,安全是第一位的。

聲音 | 解放日報:我們要支持真正的區塊鏈技術 而不是投資騙局:解放日報今日發表文章《真正的區塊鏈不是那些“比特幣”》。文中稱區塊鏈技術并不復雜,但找到合適的應用場景,可能還需要有一個很長的過程。比如海關可以利用區塊鏈解決貿易真實性問題,供應鏈可以利用區塊鏈解決事故追溯問題,保險可以利用區塊鏈解決騙保騙賠問題,這些都是將技術與產業結合,解決實際問題的例子,也是區塊鏈未來的發展方向。但幾乎可以肯定的是,在行業火熱的同時,必然也會有一些打著區塊鏈旗號的投資騙局出現。請記住,我們要支持的,是真正的區塊鏈技術,而不是那些加密數字貨幣。對于這一點,監管層和投資者都一定要保持清醒和冷靜,做到心中有數,風險可控。那些投機取巧,只想靠區塊鏈撈一筆的,只會成為區塊鏈發展中被擠出的泡沫。[2019/10/27]

換言之,我們可以不在乎一個區塊鏈是不是能夠“有效地”做它該做的事,是不是能夠“快速地”做它該做的事,是不是能夠“足夠去中心化地”做它該做的事,甚至,我們可以不在乎它是不是能夠“節能地”做它該做的事,我們更不在乎它做事的方法是不是足夠簡潔,足夠優雅,足夠吸引所有人參加生態建設,或者是不是能夠自行啟動,自行進化,自我治理,自發形成一個健康的生態……

因為除了“可靠”這一點,其他的我們早就在中心化系統里實現過了。

沒錯,我們也許的確只知道如何在中心化的場景下實現以上的這些,而不知道如何在去中心化的情況下實現這些,而這點的確是目前學術界和工業界研究的重點,也是目前媒體和這個圈子聚光燈下的焦點。

然而,如果沒有安全性,這一切都成了無源之水,無本之木。

因為我們無法回答的問題是——

即便我們能夠做出一個去中心化的系統,即便我們找出了以上一切的去中心化實現方法,但是,如果實現這些所有功能的系統不可靠,安全性無法量化,甚至說,最終安全性還是主要取決于對于某個中心、某個創始人、某家公司、某些礦工的信任,那么我們究竟是為什么要放棄已然成熟的中心化方案,來使用區塊鏈系統?

換句話說,我們之所以推崇區塊鏈,投入這個領域之中,不就是因為我們認為一個中心化系統不夠“可靠”,因此,我們希望用“算法”來代替“信任”,用“機器”來取代“人”嗎?

更何況,正如我以上所說——其實,一切我們正在討論的,歸根結底仍舊是安全問題。因為無論是鏈下技術,鏈上治理,激勵機制,生態建設,經濟模型……所有的這些,只要在鏈上實現,就都會回歸到區塊鏈共識算法的安全問題——

聲音 | 趙長鵬:2018還未結束 我們為長遠做打算:推特網友rallyqt發推文對比推特、Coinbase和幣安的用戶數量。對比顯示,Twitter用戶:2008年(600萬)、2010(5400萬)、2018(3.38億);Coinbase 2017年用戶數1300萬;幣安2018年用戶數800萬;對比,趙長鵬回復稱,2018年還沒結束,謝謝支持,想想2028年或者2118年。我們是為了長遠打算。[2018/10/7]

如果共識算法不安全,憑什么相信節點會執行鏈上治理投票決定的決策?

如果共識算法不安全,憑什么認為節點會誠實地對于激勵進行分配?

如果共識算法不安全,憑什么認為它天然就成了所謂價值互聯網的基礎設施?

如果共識算法不安全,憑什么可以將區塊鏈當做一個可信第三方使用,在上面構建側鏈、支鏈,運行Dapp,并且搭建一整個生態?

這也是我之所以認為這篇東西并不過時,而且,恰恰需要在此時出現的原因——

最近以來,關于共識算法問題的降溫和公鏈的退潮,讓資本和輿論都開始追逐新的話題和項目。于此同時,也帶了了這種盲目樂觀地將共識算法當做一個成熟的基礎設施的幻覺,而完全忽略了一個事實——

我們最常用的,也是最司空見慣的被認為是絕對安全的POW,實際上遠比我們認為的要不安全得多。以及,我們其實一直在討論的POWvs.POS的問題,始終都沒有一個結果。所有人都在憧憬區塊鏈的未來,設想著怎么圍繞區塊鏈搭建生態,怎么利用區塊鏈重塑經濟,怎么通過區塊鏈改變世界的時候,只有很少的人和很少的聲音在關注究竟這個區塊鏈究竟能不能用,安不安全。

因此,我們始終需要這種回歸本質的討論和研究——我們,究竟需要怎樣的共識算法。以及,一個真正安全的區塊鏈,應該是什么樣的。

我們需要一個衡量區塊鏈安全的標準

這個問題,其實從前面一段的分析中我已經表達了我的看法——一個區塊鏈的共識算法的第一標準,是能夠可靠地實現它設計的功能。我們必須知道,當我們用算法來代替“信任”的部分,得出的共識一定是可靠的,而且,它的可靠程度是可以量化的。否則,整個區塊鏈就毫無意義,因為它能做到的一切中心化系統也能做到,甚至做得更快更好,然而,我們并不能確定它比中心化系統更可靠。

這種可量化的安全,僅滿足于“我們覺得是安全的”的層面是不夠的,停留在“從來沒有發生過”的層面也是不夠的,甚至,停留在“我們可以從理論上證明”的層面,在早些年的探索時期也許還勉強夠用,放在巨量資本已經開始在上面搭建生態的現在,也顯得捉襟見肘了。我們需要一種量化的分析方法和模型,來計算一個共識算法的安全性,更理想的狀況是,我們能夠根據共識算法的應用場景需求,來具體量化每一個屬性的安全性。

CFTC主席:我們需要尊重這一代人對比特幣的興趣:美國商品期貨交易委員會(CFTC)主席本周表示,加密貨幣是一代人的利益,監管機構需要尊重它。J. Christopher Giancarlo于2014年宣誓就任CFTC委員,自2017年8月起擔任該委員會主席,他在本周在洛杉磯舉行的Milken Institute全球會議上分享了他對加密貨幣監管的看法。[2018/5/2]

比如,一個安全的哈希函數,我們可以計算出需要多少計算能力才能“破解”它,于是,我們可以根據相應硬件的價格和時間,量化出哈希函數的攻擊成本。同理,我們也可以算出橢圓曲線加密的攻擊成本。實際上,在信息安全的領域里,這樣的分析從理論到實踐上,都是十分常見的。

現在,我認為,是時候將這樣的模型擴展至區塊鏈的領域了,盡管我們需要克服許多困難——

最核心的問題就是,我們要怎么定義安全,以及怎么定義攻擊,而這點對于區塊鏈而言并非易事。

以比特幣為例,如果我們以密碼學的標準來評估比特幣的話,它的安全性是漏洞百出的——比如,對于哈希函數,我們認為只要有比窮舉更好的方案,這個哈希函數就是不安全的。但是,對于比特幣,且不說最著名的“自私挖礦”的問題,單從比特幣鏈上存在的空塊來看,很顯然礦工有比“誠實”地挖出區塊更有利的方法。有人可能會說——這并不影響安全性,但其實這影響到了比特幣的活性,就如同“粉塵攻擊”,也是影響活性的攻擊。

而這也是目前對于區塊鏈共識算法安全性的證明的局限所在——想要證明算法的絕對安全,我們就只能在假設的實際性上作出犧牲——例如,我們需要假設50%以上的算力是誠實的,或者2/3以上的節點是誠實的,而無法顧及這種假設背后的現實性,比如,是否有足夠的激勵讓這些節點誠實地去執行算法中的每一個步驟,或者,在應用的場景下,我們是否能做出這樣的假設。這種做法的弊端在之前的POW算法容易被51%攻擊的分析中已經很明顯了——我們當然可以對于所有的資源都做出“大多數人都誠實的假設”,但是,如果這個假設在現實中并不成立,那么采用這個假設證明了安全性也毫無意義。

另一方面,共識算法的安全性是與它的應用場景相分離的。對于一個共識算法是否安全,我們要么通過BFT證明“它可以達到拜占庭容錯”,能夠對于所有數據達成一致和活性,要么通過BitcoinBackboneProtocol的模型證明我們可以得到一個增長的,一致的賬本。也就是說,前者,我們將區塊鏈視為一個拜占庭容錯的分布式數據庫,后者,我們將區塊鏈視為某種類似比特幣的分布式賬本。然而,在此之上區塊鏈的應用卻已經遠超分布式數據庫和賬本的范疇了。例如,對于分布式賬本,一致性的重要性高于活性。

因此,比特幣的POW算法并不保證交易的活性,而僅僅保證能夠被上鏈的交易的活性,同時用交易費的模型鼓勵礦工盡可能地將交易添加上鏈,即保證“交易費給得足夠多”的交易的活性。然而,當將這種共識算法用于其他對于交易活性要求高的應用時就可能會出現嚴重的問題——例如FOMO3D實際上就是受到了針對于以太坊交易活性的攻擊,而盡管比特幣以及以太坊的模型不保證交易活性這件事對于業內人士都不是秘密,但是不可否認的是,既然以太坊或者其他的區塊鏈具有這樣的應用,在共識算法安全性分析的時候把這種情況排除在外,本身也說明了這個模型并不完備。

因此,我們需要一個更實際,從應用出發,面向目標和場景的對于區塊鏈安全性的評價標準,并且:

1、相比于每一個機制的可證明的安全性,我們更關注這個系統是不是能夠達成它應有的功能。

2、相比于在一些條件限定下的絕對安全性,我們更關注在現實語境下的相對安全性。這點和我們之前的分析是一致的,也就是說,我們更關心——想要破壞這個系統,使得它沒法做它該做的事情的代價有多大。

3、然后,對于“應有的功能”相對應的特性,我們應該根據實際情況來分析他們的重要性——例如,對于貨幣,一致性、活性、抗審查、匿名的需求取決于什么樣的場景。如果黑市是需求,那么匿名可能需要擺在活性之上,但如果把交易和支付作為場景的話,我們應該參照一個支付平臺的要求去考慮他們之間的權重。

以上的定義并不嚴謹,但是畢竟這只是一個提議,我們不是在寫論文。

從這個角度來講,其實對于數字貨幣的共識算法而言,我們并不用去考慮51%攻擊,長鏈攻擊,無利益攻擊這些方式和相應的條件,也不用去關心在怎樣的假設下通過什么樣的算法可以防止他們的出現。

我們該關心的的問題是——

1、我們需要付出多大的代價才能破壞一致性,進行一次雙重支付攻擊:于是,我們可以判斷這個系統可以承載多少價值,而一筆交易的數額超過多少的時候,我們就需要考慮雙重支付這種可能,并且相應地提高確認時間,或者,仔細審視各個節點的動態。

2、我們需要付出多大的代價才能破壞活性,每延遲一次出塊或者一分鐘達成共識:于是,我們可以知道需要即時確認的交易中,我們有可能會遭到多大的損失。然后,對于FOMO3D這樣的“游戲”,我們會知道當一個幣賣到多少錢的時候,就已經可能不安全了。

3、我們還需要知道需要付出多大的代價才能破壞抗審查:于是,我們可以知道,比特幣其實并不是一個完全自由的貨幣,當代價足夠高的時候,我們是可以消滅掉某個地址的活性的。

4、然后,對于匿名貨幣,我們需要知道多大的代價,可以破壞匿名性,于是可以追蹤到一筆錢的來歷,或者是標記一個地址的身份。

以上,是對于“貨幣”這個功能而言的——這是我們的起點。

而之后,最理想的狀態是,我們應該對于區塊鏈所能實現的所有功能,判斷它們所需的性質,然后,量化它們的安全性。

那么,在這里,去中心化的位置在哪里呢?

對于去中心化的要求,已經融入安全性的標準之中了——畢竟,去中心化是手段而不是目的:一個過于去中心化的系統,將面臨著和中心化系統同樣的風險,即作惡的成本不可控。

而同時,一個過于中心化的系統中,共識算法也將失去意義。

因此,在安全性標準中,我們必須也將它的去中心化程度納入考量。

1、我們需要衡量實際參與共識節點的大節點的數量。

2、我們需要知道這些節點的信息,來評估他們在鏈外獲益或者合謀的可能性。

3、同時,我們還需要確定,這些節點確實有能力維護這個系統的安全。

正如之前所說,一個理想的,安全的區塊鏈系統,是由足夠多數量的,身份已知的大節點來維護的。

于是,我們需要知道:

1、他們是否有足夠的動力來維護這個系統——他們是否有足夠的收益。

2、這個系統的結構是否穩定——他們是否也能夠決定系統的發展方向。換言之,我們怎么保證未來整個系統還是有足夠的大節點來維護,而不是共識節點會由于系統未來的發展方向與期待不符而逐漸退出或者分叉,重新導致中心化。因此,我們需要評估的決策機制是否能夠代表共識節點的權益。

3、同時,我們還需要保證,所有在系統中有利益的群體,都應該能夠參與共識。

于是,我們需要激勵機制,鏈上治理等等其他的機制——

一切,歸根結底都是安全問題。

寫在最后

這是我關于POW和POS討論的最后一篇,這三篇的內容和長度都遠遠超出我的預期,可能是進入這個領域以來看到聽到的東西太多,積攢了很多東西不吐不快的緣故。

之前,我寫過專業的在區塊鏈領域的頂會上發表的學術論文,也一直致力于在知乎上寫一些客觀的和中立的科普性文章,我一直致力于避免的,就是在這個本來就混亂的行業中引入新的混亂——因此,我一直只寫一些已經成為這個領域基礎的論文和技術,但不愿意寫太多新的、未經證實或者檢驗的結論,盡管有些結論我認為是正確的。甚至于,即便我的文章已經被接受甚至發表,我也不太愿意在我的專欄里介紹它們。

然而這一個系列和之前我寫過的所有文章都不同,這一篇里更多的是個人的觀點和判斷,其中,我可能提出了不少“不正確”的,“大家不喜聞樂見”的,“在業內尚有爭議”的,或者“所有人都知道但是沒有人愿意說”的觀點,因此,自從文章發表以來也或多或少引起了一些爭論——而這些都是我原來一直想要避免的。

之所以做出這樣的改變,其實關鍵的原因還是我在文中說的那點——資本和市場追逐新噱頭的腳步是不會停下等技術發展的,于是,當這個領域所有的人似乎都已經開始盲目樂觀地考慮長期發展的時候,我們需要反思一下——我們做的這些東西,真的“夠安全”嗎?

本文開頭部分有所刪減,完整版請見:

https://bbs.vechainworld.io/topic/283/我們需要什么樣的共識算法

任博士POWvsPOS系列專欄:

第一篇:《PoW與PoS的安全性分析》

第二篇:《無論是PoW還是PoS,最終都將趨于中心化》

第三篇:《我們到底需要什么樣的共識算法?》

關于POW與POS的辯論,橙皮書之前還發表過:

《PoW和PoS大辯論:誰擁有真實的開放性?誰能遠離熱力學的終局?》

《PoW與PoS的真正區別:判質費用決定了誰更適合構建貨幣》

Tags:區塊鏈POW比特幣POS區塊鏈dapp開發例子woonklypower幣種BCH比特幣鉆石還會到50元一個嗎pos幣大全

比特幣交易所
如何投資“山寨幣”?_以太坊

在上一篇中和大家分享了我所認為的山寨幣有哪些種類,那么接下來大家自然而然就會問“山寨幣”有價值嗎?我們該投資“山寨幣”嗎?我在文章中主張普通投資者應該把主要的資金配置在主流幣.

1900/1/1 0:00:00
印度億萬富翁:印度政府并非完全反對加密貨幣_加密貨幣

印度億萬富翁、國會議員RajeevChandrasekhar在接受采訪時稱,印度政府并非完全反對加密貨幣,只是仍然還需要一些時間.

1900/1/1 0:00:00
姚前:數字資產和數字金融_數字貨幣

尊敬的李行長、肖董事長、各位嘉賓: 大家上午好! 我今天想講的題目是“數字資產和數字金融”,個人以為數字資產和數字貨幣是數字經濟最重要的兩個方面.

1900/1/1 0:00:00
觀點 | 以太坊遷徙的經濟考量_以太坊

-AndreA.Xavier在Unsplash上發布的照片-作為以太坊的追隨者和支持者,我總是大力支持圍繞網絡發展與升級的建設性討論.

1900/1/1 0:00:00
澳門金管局:去中心化證券交易平臺DPOEX未獲許可_POE

據智通財經網消息,9月14日,澳門金融管理局發布新聞稿,呼吁巿民提高警覺,留意一個聲稱“亞洲證券交易所”于澳門開設分公司的有關信息,該公司從未獲許可在澳門特別行政區從事任何金融活動.

1900/1/1 0:00:00
Cosmos Hub 3 都升級了什么?一文速覽?_OSM

在最近的區塊鏈行業新聞中,Cosmos升級頗為引人注目。近期的4個關于CosmosHub3治理提議被提交以進行投票,其中最近的一次提議雖然正在投票周期中,但已經獲得通過.

1900/1/1 0:00:00
ads