從2008年11月中本聰發表論文「Bitcoin:APeer-to-PeerElectronicCashSystem」算起,比特幣即將迎來第一個十周年。這十年中,比特幣與其背后的區塊鏈技術蓬勃發展,以去中心化技術之名,大有變革整個在線數字世界的氣勢和雄心。
不過,雄心歸雄心,正蓬勃發展的區塊鏈技術,尤其是公鏈領域,有一個瓶頸卻一直有待突破:以當今數字世界的規模和體量,任何一個在線系統,如果沒有一個大容量、高吞吐的基礎設施,就無法承載哪怕僅僅一個互聯網級別的應用。
很可惜,中本聰的論文中完全沒有考慮到這個問題,也許是走出這第一步實屬不易,他也沒想太多之后的事情,也許是這樣的一個高性能的設計,在徹底去中心化的系統中難度太大。總之,近10年過去了,為了提高區塊鏈系統的性能,前赴后繼出現了大把項目,但到今天為止,并沒有出現能夠承載互聯網級別應用的解決方案。
這是一個世界性的難題,全世界最聰明的學者、開發者都在嘗試解決這個問題。我曾在微軟工作多年,擔任微軟研究院主管研究員,很長一段時間專注于分布式系統方面的研究;離開微軟之后,我又在創新工場擔任負責區塊鏈和人工智能投資方向的執行董事。多年在分布式系統方面的研究心得,以及在區塊鏈投資領域評估多個公鏈項目的經驗,讓我深深明白,在徹底去中心化的系統中實現高性能設計,是一項難度極高、極具挑戰的工作。
我看到行業內存在大量對于區塊鏈公鏈性能瓶頸及解決方法的討論,有些充滿洞見,令人受益匪淺,但也有不少謬誤,更有很多為了自身項目宣傳而編造的似是而非的見解,頗有把討論引入歧途的風險。在和多位該行業頂尖的學者、開發人員、投資人多次深入交流之后,他們都鼓勵我把自己的看法分享出來。再三思索之后,我決定把自己對該話題的一些拙見記錄下來,這樣既可以讓自己的一些思考能夠沉淀,同時,也希望能和對該話題感興趣的更多同仁進行一些探討。
1不要只關注性能瓶頸,而忽略了容量瓶頸
先說一下我的一個結論:在當前以類金融為主流應用場景的情形下,區塊鏈系統最首要的性能瓶頸是區塊數據的廣播延遲造成的,本質上受限于互聯網的帶寬和通訊延遲,這一點直接制約了吞吐量(TPS)。只要是「ChainofBlocks」的系統,無論具體采用了什么共識算法,無論是工作量證明、權益證明、拜占庭容錯,還是委托權益證明,在出下一個區塊之前,都需要保證前一個區塊在全網有一定的同步率,從而約束了每個區塊不能太大,出塊頻率也不能太高,然后,這個問題無解。
澳大利亞證券交易所取消區塊鏈結算和清算系統項目:金色財經報道,澳大利亞證券交易所 (ASX) 宣布放棄替代 CHESS 結算和清算系統的區塊鏈結算和清算系統項目,據相關公告稱,區塊鏈結算和清算系統項目容易受到延遲和爭議影響,澳大利亞證券交易所將“在埃森哲進行的獨立審查及其內部評估完成后,重新評估 CHESS 替換項目的所有方面”。 澳交所還稱:“經過進一步審查,包括考慮獨立報告中的調查結果,我們得出結論,我們所走的道路不符合 ASX 和市場的高標準。必須解決重大的技術、治理和交付挑戰。鑒于解決方案的不確定性,CHESS 替換資本化軟件將被取消確認,導致2023年上半年的稅前費用為 2.45-2.55 億美元(稅后 1.72-1.79 億美元)。這不會對股息產生影響。” (the block)[2022/11/17 13:14:48]
請注意,這里說的區塊鏈系統特指「ChainofBlocks」的系統,其特征是要保證系統能最終收斂到一條單一的鏈表結構,并只有這條鏈上面的區塊才是被確認的,反例是「GraphofBlocks」系統,例如所采用的DAG結構IOTA。
假設物理網絡的帶寬和延遲可以被忽略,例如基于數據中心高速鏈路的EOS,系統第二個瓶頸是受限的賬簿容量,本質上受限于單臺全節點的內存容量,這一點直接制約了鏈上可以承載多少個用戶以及多少個DApp。無論具體采用了什么共識算法,只要交易驗證/執行過程隨時可能涉及到任何一個用戶,那么單臺全節點就必須隨時保持全網每一個用戶、每一個DApp相關的狀態在內存里面,以供交易驗證實時訪問。當前所有主流的「ChainofBlocks」的系統,包括比特幣區塊鏈、以太坊、EOS等,都有這個問題,并且同樣的,這個問題也是無解的。多級緩存的數據庫技術(例如RocksDB)可以稍微改善一下這個限制,使得只有活躍用戶受到內存限制,而總用戶基數受限于硬盤的容量。但是這并不從根本上解決問題。
「容量」這個問題的關注度遠遠少于吞吐量,原因很簡單:因為吞吐量這個短板還沒解決,所以容量問題被掩蓋住了。請記住,一旦吞吐量實現了大幅提升,容量問題馬上就會出現:在一個高吞吐的系統上,如果用戶量上不去,很可能高性能根本跑不滿。
區塊鏈平臺QANplatform完成180萬美元的融資:區塊鏈平臺QANplatform完成180萬美元的融資,Fairum Ventures、DeltaHub Capital、Insignius Capital和BlackDragon領投。資金將用于產品開發、市場營銷和增強流動性。(U.Today)[2021/5/11 21:49:50]
一個典型的例子是EOS。當EOS以喪失去中心化特性為代價而解決了吞吐量問題之后,容量的問題馬上就凸顯出來了。然后,EOS把賬簿容量瓶頸這個問題包裝成了一個稀缺資源,并將其代幣化,成了EOSRAM虛擬幣。當然除了內存,單臺全節點CPU也會成為容量的瓶頸,所以也被代幣化,成了EOSCPU虛擬幣。不過,在類金融應用場景中,通常計算復雜度非常低,所以,內存會是主要瓶頸。
另外,我的另外一個觀點是:共識算法其實幫不了解決性能和容量的瓶頸,試圖從標新立異的共識算法出發,提升「ChainofBlocks」系統性能的努力,基本上不會讓系統性能有實質上的大幅提升。總之,解決上面所提及的兩個瓶頸問題,需要的是分布式系統設計上的巧思妙想,這和共識算法相關,也和密碼學相關,但是本質的出發點不是共識算法和密碼學。
2性能瓶頸:一個出塊節點在做什么
首先出塊節點也是全節點,接受全網的已確認區塊以及未確認交易,并構造成鏈,不斷維護賬簿的最新狀態,然后抓緊機會試圖在鏈尾追加新的區塊。無論采用哪種共識算法,都會歷經以下幾個步驟:
-第一個步驟,根據賬簿的最新狀態,在未確認交易集合中選出若干驗證合法的交易,然后構造一個新的區塊;
-第二個步驟,為這個新的區塊,參與出塊的權力的競爭或者候選,在這個階段,大概率會因為賬簿狀態更新了(其他節點成功出塊了)而中斷,回到第一步;
-第三個步驟,獲得出塊的權力之后,向全網廣播這個新的區塊,更新賬簿狀態,回到第一步。
不同的共識算法,其核心差異在于如何完成其中的第二個步驟的出塊權的競爭或者候選。但是無論哪種共識算法,都有一個不可調和的性能矛盾,本質上由區塊數據的廣播延遲導致。這個矛盾使得如果每次出塊比較大(可以包含更多的交易),就必須有比較長的出塊間隔,以保障該區塊在下一次出塊之前,在全網被充分傳播。
聲音 | 半月談:區塊鏈已成為全球技術發展的一個前沿陣地,中國亦不能落后:由中共中央宣傳部委托新華社主辦的《半月談》今日刊文《中央局集體學習的區塊鏈是啥?》,其中提到區塊鏈已成為全球技術發展的一個前沿陣地,全球科技大國正加緊在該領域布局。大趨勢面前,中國亦不能落后。同時文章還指出,只有加強對區塊鏈技術的引導和規范,加強對區塊鏈安全風險的研究和分析,推動區塊鏈安全有序發展,區塊鏈才能真正服務國家,造福人民。[2019/11/14]
如果傳播不充分,在PoW和PoS系統中,將表現為較高的分叉率,而在BFT系統中則表現為較高的失敗率。
2.1Proof-of-Work和Proof-of-Stake
PoW通過設定一個HashTarget,要求Hash值必須小于一個特定的值。而Hash值必須根據新區塊數據拼合一個Nonce數據計算而得。找到滿足HashTarget對應Nonce的任何一個節點,便獲得了出塊的權力。由于只能通過隨機窮舉的方式找Nonce,所以這個競爭就轉換成了計算Hash的算力的競爭。PoS是PoW的一個變種,引入了消耗CoinAge來增大HashTarget的機制,使得出塊權力的競爭可以部分地被數字貨幣持有的時間和數量所代替。
可以看到,PoW機制最大的好處是用一個簡潔的算法,實現了完全非許可的出塊權隨機指定,競爭節點之間完全不需要協同和通訊,可以輕松支持任意數量的出塊節點共同競爭,具有極佳的去中心特性。也正是由于這一點,這個算法導致了區塊廣播延遲和出塊間隔之間的矛盾。當出塊間隔較短時,一個新的區塊尚未充分全網廣播之前,就有另一個礦工在同樣的高度出了另一個新的區塊,即發生了所謂的分叉(Fork)。這種情況下,最終其中一個區塊會被拋棄掉(ophaned)。發生這種情況的概率不能太高,否則會顯著降低原為51%的算力攻擊基準(SelfishMining),極端情況甚至會導致分叉始終無法到達穩定收斂。
區塊廣播延遲主要由區塊大小和全網各個節點間的帶寬決定。當前的互聯網環境,大致需要10秒可以廣播到90%以上的節點。所以在比特幣網絡中,10分鐘左右的出塊間隔使得區塊分叉的概率極其低。2018年整個上半年,僅出現兩次分叉。而在以太坊網絡中,15秒左右的出塊間隔使得區塊分叉的概率始終保持在10%左右,即使其區塊遠小于比特幣的區塊。要注意一點,PoW的出塊間隔是統計意義上的,實際情況是出塊間隔時大時小,而統計期望是10分鐘。這個并不是全網算力波動造成的,而是因為搜索Nonce的過程是個隨機刺探過程(撞大運),所以很多礦池都給出了自身的運氣值曲線,(笑...)。
聲音 | 末日博士:央行數字貨幣不會以區塊鏈為基礎:據cointelegraph報道,末日博士Nouriel Roubini表示,央行數字貨幣不會以區塊鏈為基礎,也跟其他加密貨幣不一樣,它會在一個單獨的分類賬中得到保護。[2019/4/4]
對于比特幣網絡來說,10分鐘的出塊間隔其實在現今的互聯網環境中是有很大保留的,要知道,畢竟這是在10年前提出的方案,這使得擴大區塊大小就可以實現簡單的擴容方案,但是由于區塊廣播延遲這一根本矛盾的存在,這種提升只在一定程度上有效。
另外,值得提一下GHOST協議。該協議給出了一個新的準則來判定分叉的時候,哪個叉是被接受的。其將中本聰最初提出的最長鏈原則,改成了包含算力最多的子樹。兩個準則在分叉概率很低的時候是完全等價的,但是當概率比較高的時候(比如ETH的10%分叉率),GHOST協議可以規避SelfishMining,提高安全性。但是無論采用GHOST協議與否,對公鏈的性能無實質幫助。
PoW帶來算力競爭,即所謂的挖礦,確實消耗了大量能源。不過這也為PoW系統發行的每一個幣奠定了一個基礎成本,使之價值有個底線。需要指出的是,PoW的算力和區塊鏈系統的性能沒有任何聯系,任何加速hash算法的軟件或者硬件都不會提高區塊鏈系統單位時間的吞吐量。這就是為什么比特幣區塊鏈的全網hash算力提高了萬億倍,但是其吞吐量一直是7TPS左右。
另外,任何宣稱節省挖礦能源的公開技術,都是不可能在實際上減少能源消耗的。因為投入挖礦的能源總量在一個個礦場建立的時候已經確定,當有更高能效的挖礦技術或者設備出現時,算力競爭將導致所有礦工都應用新的技術,最終哄抬了全網的挖礦難度罷了。所以實際的總能源消耗,在宏觀上,只和幣價、電價以及數字貨幣的投資信心相關,和挖礦效率無關。
2.2拜占庭容錯
拜占庭容錯類共識算法采用隨機算法確定每一次出塊的節點,根據賬簿上的數字貨幣地址,而不是IP地址。所有參與出塊候選的節點無須競爭。新的區塊將被委員會(一組驗證者)所有成員驗證并簽名(投票),然后廣播全網,繼而開始下一個出塊的流程。
新加坡媒體監管機構推出區塊鏈挑戰,推動創新:3月29日發布的一份新聞稿稱,新加坡信息通訊媒體發展管理局(IMDA)發起了區塊鏈挑戰,旨在促進區塊鏈在商業領域的創新和應用。新聞稿中說,這項挑戰的目的是提高人們對這項技術的認識和采用;并鼓勵公司探索因技術而產生的商業模式創新以及轉型升級。[2018/3/30]
與PoW不同的是,BFT出塊候選是一個協作的過程,期間至少涉及O(n^2)的通訊復雜度,而PoW在出塊競爭過程中無須任何通訊代價。基于BFT的協作過程將不會導致分叉,也不需要消耗稀缺資源(算力或者CoinAge),但是由于這個協作的過程涉及到相當多的數據通訊,所以這個過程無法在全網候選,驗證并簽名的過程無法在全網展開。這就是為什么BFT類算法一定會涉及到一個委員會的構建過程,并且驗證簽名只在一個小范圍里面發生,剩下的人相信他們就好了。最近出現的很多基于BFT的公鏈項目,比如Algorand,在如何安全公平的選出這個委員會方面做了很多工作,雖然這些工作對系統性能的提升沒有直接關系。
BFT類算法的投票通常是有權重的,以規避女巫攻擊(SybilAttack)。而這個權重多與參與者的權益相關,和PoS的精神類似,進而現在很多人將BFT的這類投票算法稱為了PoS算法。而事實上,BFT類共識算法和一開始提出的PoS算法(例如Peercoin)是本質不同的機制。
上面我們提到,不同的BFT類算法其具體選定出塊節點以及委員會成員的過程和系統的性能關系不大。和PoW/PoS類似,其吞吐性能同樣決定于每次出塊的大小,以及出塊的周期。在BFT系統中,如果想要允許每次出塊比較大,就需要出塊的周期也比較大,從而大概率保證新出的塊及其委員會的簽名數據在委員會內部完全傳播。如果這個傳播不充分,將可能導致委員會成員無法達成2/3以上的投票,進而使得委員會內部驗證并簽名過程超時,最終在本出塊的周期內出塊失敗。
理論上說,委員會的規模遠小于全網,BFT類算法中的廣播延遲會比同等規模的PoW/PoS網絡小。事實上也確實如此,但是基于Gossip協議的廣播延遲和網絡規模的對數成正比而不是線性,所以廣播延遲并沒有小很多。加之BFT類算法依賴一些額外的周期性全局同步等安全措施,使得實際效果中,BFT類算法并沒有比PoW/PoS系統有太多性能優勢。
2.3小結
PoW/PoS系統每個出塊周期需要充分傳播一個區塊(例如1MB),BFT類系統每個出塊周期也需要充分傳播一個區塊,加上所有委員會成員的簽名(例如128個成員節點,至少每人84*128B,總共1.3MB的樣子)。但是PoW/PoS系統的廣播范圍是全網(例如幾萬個節點),而BFT系統的范圍限于委員會成員,這一點使得后者充分傳播的時間較短一些。
不過,基于Gossip協議實現充分傳播的時間,和傳播的數據量呈線性關系,和傳播的節點數量呈對數關系,所以BFT在傳播時延上也沒有太大的優勢。結果就是,無論哪種算法,都有不可調和的區塊大小和出塊間隔之間的矛盾,從而無法大幅提升性能。
3.容量瓶頸:一個不出塊全節點在做什么
單鏈的「ChainofBlocks」的系統中,大致有三種角色的節點:出塊的全節點,不出塊的全節點和輕量節點。全節點無論出塊與否,都會驗證并接力廣播新的區塊和未確認交易,這里的廣播工作占據了主要的通訊量以及磁盤I/O的負荷,對于TPS只有十幾的以太坊(geth)來說,這個通訊量約為1.5Mbps。
為了可以實時完成對新區塊和未確認交易的驗證,所有用戶的賬簿以及所有智能合約狀態都需要駐留在內存中,這個占據了主要的內存開銷,當前規模的以太坊會占用將近4GB的內存。每一個全節點都會需要承擔這樣的一個負荷,如果要出塊(PoW的挖礦節點或者PoS的驗證節點)還需要做額外的事情。這些負荷的代價,換來的是安全的徹底去中心化,任何一個全節點不需要預先信任任何其他節點,任何全節點也沒有能力去欺騙其他全節點。
普通全節點的價值體現在兩個方面:接力廣播合法的數據和維護全網賬簿的最新狀態以供用戶或者輕量節點查詢。例如手機錢包這樣的輕量節點不驗證也不接力廣播區塊數據或者未確認交易,它依賴并信任預先設定好的一個或者多個全節點,通過這些全節點來獲取特定用戶的狀態,例如賬戶余額,以及發起轉賬交易。輕量節點自身完全沒有驗證信息真偽的能力,更像是區塊鏈世界里的一個終端而已。
對于單鏈的「ChainofBlocks」的系統,如果系統的吞吐量(TPS)提升100倍,需要150Mbps的通訊量;或者用戶規模都擴大100倍,需要400GB的內存,那么基本上大部分互聯網上的普通服務器都無法順利部署一個全節點了。全節點的參與門檻,是影響區塊鏈系統去中心化程度重要因素。如果全節點只能由專業礦場操作,普通人無法獨立部署一個全節點的話,那么整個系統就會退化成一個多地部署的中心化云服務了,而變得容易被攻擊,也容易被封禁。所以,這兩個瓶頸不僅僅對于出塊節點需要解決,對于普通全節點也需要解決。
4.出路
前面已經說到性能瓶頸和容量瓶頸,在現在單鏈的「ChainofBlocks」的系統中,很難有大的提升,尤其是容量瓶頸。這就是所謂的區塊鏈不可能三角的由來。縱觀計算機技術發展史,大容量高吞吐的設計范式,屢獲大規模成功的只有一個,橫向擴展(Scale-Out)。
舉個例子,GPU用了幾千個性能普通的Core一起并行工作,實現超越CPU計算性能幾個數量級的性能提升,而GPU所依賴的半導體技術并沒有和CPU芯片有什么本質的不同。再如,現今的在線云服務系統,是用幾千甚至上萬臺性能普通的服務器一起并行工作,來支持大容量高吞吐的在線服務。
我在這里不妨大膽設想:也許一個大容量高吞吐的區塊鏈系統會是類似的方案,即,讓成千上萬個同質的單鏈實例一起并行工作,切分全網的工作量,以實現整體上的大容量和高吞吐。
這樣的一個系統,可以在大幅提高TPS的同時,支持10億以上級別的用戶量,并且保持每一個參與到這個網絡的中的全節點僅有一個合理的負荷,讓大部分互聯網上的普通服務器都可以輕松部署一個全節點,共同參與網絡的維護和治理。
不過,在這樣一個徹底去中心化的設定下,如何一起并行工作,如何切分工作量,又如何保證每個單鏈實例的安全,都是極具挑戰的問題。這樣的系統似乎并不容易實現,但也絕非不可能實現。我先拋出這個想法,也歡迎所有有興趣的同仁共同思考,或批判,或貢獻聰明的設想。就這個想法,我也會繼續梳理,并繼續通過文字分享我的一些思考。歡迎大家通過我的公眾號「王嘉平」和知乎專欄「去中心化數字世界隨想」就這個話題展開更多討論。
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
王嘉平
現已在非小號資訊平臺發布10篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/9558562.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
幣安為何推出第三條鏈?這對BNB意味著什么?
區塊鏈如何在避免過度中心化的同時保障驗證效率?原文標題:《VitalikButerin:區塊鏈驗證的哲學》撰文:VitalikButerin,以太坊聯合創始人編譯:灑脫喜區塊鏈最強大的特性之一.
1900/1/1 0:00:00比特傻轉述友人觀點哈。人的思維方式是有點,線、面、體,4種層級。點者,明察秋毫。可看無數paper,得知nxm的MCR的變化。毛頭小子,清華北大,研究專長.
1900/1/1 0:00:002020年10月21日中午12點,墨客&APY.Finance;的CEOWill在Uniswap中文社區進行了“后農場時代的期待-APY”的AMA主題分享.
1900/1/1 0:00:00當前區塊鏈技術已成為未來數字經濟產業革命,各個行業也都在積極尋找自身和區塊鏈能夠快速融合的切入點.
1900/1/1 0:00:00霍比特現已上線部分幣對的“止盈止損”訂單功能,邀您體驗!“止盈止損”訂單是指,預先設置“觸發價”,“委托價”和“下單數量”,最新價達到觸發價,會按委托價掛單,幫助您保住利潤或減少損失.
1900/1/1 0:00:00第一部分:DappBirds錢包里CORNS操作教程一、DappBirds錢包是什么?DappBird是基于Web3標準的去中心化多鏈錢包,支持超20條公鏈的錢包服務,并支持200多幣種的閃兌.
1900/1/1 0:00:00