"我們時常遇到一些令人嘆為觀止的機遇,卻一次次地被當成不可能解決的問題”--約翰.加德納,1965年
五分鐘簡版
Monoxide是Layer1的區塊鏈技術,不假設交易結構的任何局部特性,跨共識組的交易再多都無壓力。性能提升包括吞吐量和狀態容量,由劃分的共識組個數決定。n個共識組將帶來n/2倍的吞吐量提升和n倍的狀態容量提升。在現在的互聯網環境中,n最多可以到數萬,這個是性能提升的上限。核心技術突破為一個中心,兩個基本點:
一個中心是并行、異步并獨立工作的多鏈架構(n個共識組),將網絡通訊(網絡)、合約計算(CPU)、狀態表達(內存)和交易歸檔(磁盤)這個四個方面的工作量全部分片,即所謂的"全分片"。共識組是一個無鎖(lock-free)的多鏈架構,獨立完成共識,獨立校驗和執行交易,獨立維護組內用戶的狀態和歷史記錄。
第一個基本點是高效的跨分片交易的處理。我們提出了"最終原子性",將交易中的原子操作拆分成多個,涉及不同共識組的操作,使之可以并行、交疊(interleave)地被處理。利用單鏈系統既有的未確認交易集合來完成各共識組之間的異步消息傳遞,完成一個交易的接力執行。使得跨分片交易對性能的影響最多折半,無論全網有多少個共識組。
第二個基本點是有效抵御多鏈結構中,算力分散的問題,即攻擊者可以聚集算力攻擊特定共識組(1%攻擊)。我們提出了"連弩挖礦",允許一次成功的算力哈希刺探可以獲得在多個共識組同時出塊的權益。將物理算力(計算哈希的速度)最多提高為n倍對應的有效算力(實際出塊的速度)。并且這種n倍放大之后的算力必須平均分配到各個共識組。如果攻擊者企圖針對特定共識組,將無法獲得連弩挖礦帶來的這種算力放大。從而使得對單個共識組的攻擊依舊需要全網的51%物理算力。
原理詳解完整版
先奉上一張海報:
這是我們的論文要在NSDI2019大會會場上展示的海報,第一時間分享給各位讀者朋友,便于大家更好理解「Monoxide」的設計架構和實現原理。自從我們的論文被NSDI大會收錄的消息傳出,我收到了不少朋友和媒體提出的問題,希望了解具體的研究成果。我在上周撰寫了一篇文章「突破區塊鏈不可能三角:異步共識組Monoxide」,介紹了「Monoxide」的基本原理和實驗取得的成果,然后收到大量反饋希望了解詳盡的設計和算法。所以,我決定在NSDI大會召開之前,順著上面海報的邏輯,詳細地介紹一下Monoxide的架構設計和算法細節。
雖然Monoxide架構可以采用不同的共識算法作為其共識組內的共識機制,而在這篇文章中,我會基于最簡單、最干凈的Nakamoto共識算法(Proof-of-Work)展開討論。Monoxide將同時滿足區塊鏈的安全,性能和去中心化的需求。
第一角:怎么樣算安全區塊鏈系統必須是安全的,這一點是不容妥協的,否則所有其他特性將毫無意義。具體落實到技術指標,就是在系統中構造一系列非法區塊并得到全網認可的代價。這個代價就PoW共識機制而言,就是實施攻擊的最小挖礦算力。Nakamoto共識算法保證惡意算力在50%以下的時候,系統是安全的。我們保證的是采用Monoxide架構之后,這個50%算力的安全邊界不會顯著變低。同時,我們繼承了Nakamoto算法的其他安全特性,例如不要求出塊節點始終在線,全節點物理IP地址僅在一個很小的范圍內暴露等。
電商巨頭TMON前CEO因涉嫌在平臺引入Terra支付的過程中受賂被捕:2月15日消息,調查Terra/Luna崩盤事件的韓國檢察官逮捕了該國電商巨頭TMON前首席執行官A某,因其涉嫌TMON平臺引入加密貨幣Terra支付的過程中接受委托并收受數十億韓元的賄賂。在該過程中起中間作用的B某也被逮捕。對他們的拘捕令實質審查將于2月16日舉行。
據悉,A某涉嫌接受Terraform Labs聯合創始人兼CHAI Corporation總經理、當時任TMON董事會主席Daniel Shin等人的不正當請托,并以此為條件獲得Luna代幣,TMON在韓國金融界首次將Terra作為快捷支付手段,并大力宣傳。據調查,A某將收到的Luna代幣變現,賺取了數十億韓元。[2023/2/15 12:08:35]
第二角:怎么樣算高性能Monoxide架構將完全隔離每個共識組的四大工作負荷,即:帶寬(廣播區塊數據和未確認交易),計算(驗證交易和更新賬簿狀態),內存(存儲賬簿的最新狀態),磁盤讀寫(記錄歷史區塊)。我們強調這四個方面的負荷必須全部被切分隔離,才能真正獲得高伸縮性的區塊鏈系統,而不是僅完成部分工作符合的隔離,即所謂的網絡分片,交易分片和狀態分片。具體落實到技術指標,性能包含兩個方面的,一個是眾所周知的吞吐量,即最高每秒處理多少筆交易(TPS),而另一個是全網表達賬簿狀態的總有效內存總量。前者是速度,后者是容量。我們實現了吞吐量大致n/2倍的線性提升以及狀態容量的n倍的線性提升(以支付交易計算為例)。這里的n是共識組的個數,提升是相對于共識組內部采用的單鏈共識系統的性能。現在一個單鏈共識系統,比較輕松能達到的是幾百TPS的吞吐量和數十GB的狀態空間。注意,這里并不是說Monoxide可以無限提升性能,在現有的互聯網平均帶寬的約束下(15Mbps),共識組的個數n最高只能到數萬這個量級。
第三角:怎么樣算去中心化首先,公鏈必須是permissionless系統,并且系統中不存在不可替代的角色或者節點,這是一個定性的要求。在滿足這個要求之后,去中心化可以落實到具體的技術指標,即需要多少IT資源才能順利地參與全網的監管(部分或者全部),也就是全節點的參與門檻。而這個門檻最關鍵的因素是帶寬,高帶寬只有部署在數據中心才能獲得,其鏈路的地理位置也容易被追蹤;而其他資源諸如CPU,內存,磁盤等都可以不受特定地理位置的約束,也無法追蹤,花點錢就有。Monoxide架構在獲得幾個數量級的性能提升的同時,始終將全節點帶寬消耗控制在普通家用互聯網接入可以承受的范圍(15Mbps),從而使得Monoxide的全節點可以像現在的以太坊全節點一樣,隨便在家里找個普通電腦就開起來。同時Monoxide的共識組劃分了歷史交易歸檔的工作量,使得完整同步一個全節點的時間會比現在的以太坊少幾百倍。強調全節點進入門檻的原因是,只有全節點才能夠在不信任其他節點的情況下,獨立驗證交易,重建賬簿狀態,而不是像云計算那樣,需要依賴于信任特定的節點(或服務器),這是區塊鏈和云計算的本質區隔之一。
總體設計
總體來說,Monoxide的設計哲學是盡量簡單,在能滿足上述三角特性的前提下,盡量不引入額外的實體,不引入額外的機制,并盡量少修改現有的機制。Monoxide網絡是一個并發的多鏈系統,每一個鏈我們稱之為"共識組"。每個共識組其組成部分和現在單鏈系統完全一致,有自己的賬簿狀態,區塊的鏈條,未確認交易的集合,同步區塊數據和交易數據的廣播網絡以及一堆全節點(包括礦工)。各個共識組之間完全對等,無主次之分,除此之外這個網絡就沒有任何其他的角色了,沒有之前那些方案提出的母鏈,根鏈之類的,也沒有任何掌控全局的調度節點或驗證節點。引入這些實體會使得一些功能更容易實現(例如動態負載平衡),但是他們會犧牲去中心化特性,甚至還可能導致嚴重的性能瓶頸。
基于RSK的DeFi協議Money on Chain推出自動代幣交易平臺TEX:基于比特幣側鏈RSK的借貸平臺和DeFi協議Money on Chain 25日宣布推出TEX,這是一個基于訂單的自動代幣交易平臺。(Cointelegraph)[2020/11/25 22:07:24]
全網所有共識組用一個整數編號(0到n-1),我們限定共識組的總個數為2的k次冪,即n=2^k。任何一個賬簿地址,根據其地址二進制數據的前k個比特,永久地被分配在一個共識組中。每個交易則根據交易的驗證方的地址(例如轉賬交易的支付方),被分配在驗證方所屬的共識組。所以Monoxide網絡的劃分不需要任何中心化的機制來分配地址和交易。
Monoxide全網由各個共識組的出塊過程和未確認交易集合完全獨立,共識組之間完全并行、異步且無需鎖定和同步,即使某一個共識組發生擁塞也不會干擾其他共識組的吞吐和出塊。
Monoxide全網由各個共識組的獨立廣播子網所構成,但這些廣播子網互相不重疊,互相不打攪。在我們的設計中,這些廣播子網由DHT的Swarm實現,每一個廣播子網對應一個Swarm。新啟動的全節點根據其想要加入的共識組編號直接計算Swarm地址,然后利用DHT的路由機制找到同一共識組里面的其他全節點,并嘗試連接并入網。全節點可以隨機選擇加入任意一個或多個共識組,或由上層應用來決定。例如,錢包節點通常會加入登錄用戶的錢包地址所在的共識組,以便實時獲取其賬戶余額等狀態。Monoxide全節點不記錄任何用戶登錄狀態或用戶私鑰,以避免以太網全節點之前出現的RPC接口安全隱患。除非其上層應用請求,通常一個共識組的全節點不會主動連接另一個共識組的節點。
同樣礦工可以自由選擇參與一個或多個共識組,進行挖礦,以期獲得每一個共識組中的出塊獎勵。正常情況下,礦工會優先選擇參與當前算力較低的共識組,以獲得更高的利潤,從而導致各個共識組會收斂到一致的挖礦算力和出塊難度。
從這個設計,我們可以看到Monoxide架構滿足區塊鏈三角的情況。
1.安全只要各個共識組本身是安全的,Monoxide就會是安全的。交易的安全和正確(例如避免雙花)依賴于每個共識組內部的共識算法。Monoxide全網應對女巫攻擊(SybilAttack)也依賴于共識組內部的共識算法本身的抵御能力。就PoW而言,每個共識組的安全,依賴于其內部挖礦算力。所以Monoxide架構的安全保障,核心是要能夠抵御算力分散的問題,即全網算力分散到每個共識組之后,每個共識組的算力將是全網的1/n,這時單個共識組的防御壁壘將下降到51/n%,(即所謂的1%攻擊)。這將是一個完全無法接受的值。為了解決這個算力分散的問題,Monoxide引入了連弩挖礦(Chu-ko-nuMining),使得單個共識組的防御壁壘回升到51%。
2.性能由于各共識組的區塊驗證、存儲和賬簿狀態更新完全獨立,所以這三個方面將獲得無代價的無限線性提升。共識組之間唯一需要打交道的地方,就是為了正確處理跨共識組的交易。這使得在數據傳輸方面,性能提升是有代價的,并且不是無限的。為了高效完成跨共識組交易,Monoxide引入了最終原子性(EventualAtomicity),使得即使跨共識組交易的比例就算是接近100%,全網仍舊可以輕松地完成交易吞吐,其性能代價為一個和共識組個數無關的常數。
門羅幣發布10月17日網絡升級所需的軟件版本Monero軟件v0.17.0.0版本:門羅幣Monero(XMR)發布Monero軟件v0.17.0.0版本OxygenOrion,旨在為10月17日的網絡升級做準備。該版本的主要特點是引入CLSAG簽名方案、確定性的解鎖時間、強制要求最大coinbase金額以及序列化格式更改等。此前報道,門羅幣將于10月17日進行下一次網絡升級,本次升級將引入CLSAG簽名方案以及其他改進功能。7月底,CLSAG簽名方案已完成審核。與目前Monero協議中使用的環簽名相比,CLSAG簽名方案可減少約25%的交易占用空間、提高20%的驗證性能。[2020/9/19]
3.去中心化根據上面的描述,Monoxide依舊是一個徹底的permessionless的系統,并且每個共識組內部的全節點的負擔始終保持在同維護一個單鏈系統相當的水平,可以被輕松部署到大部分有互聯網接入的角落。
綜上,論文最重要的兩大技術貢獻就是連弩挖礦(Chu-ko-nuMining)和最終原子性(EventualAtomicity)。后面我們將就這兩個方面,詳細展開,并以Bitcoin數據結構為藍本,給出這兩個機制對PoW共識協議的改進。
連弩挖礦
在PoW共識機制中,礦工需要不斷隨機刺探塊頭中的Nonce并重算哈希函數,以使得這個塊頭的哈希值滿足當前算力難度的要求,可以最終出塊。這個過程的瓶頸在于計算哈希函數的速度,所以挖礦算力被定義為哈希速率(Hashrate)。這里,我們將實際計算哈希的速度,定義為物理算力(PhysicalMiningPower),提高物理算力的唯一方法就是部署更多的礦機,消耗更多的電能。
然而,在PoW共識機制中,每個礦工的物理算力是無法直接知道的,這個物理算力最終體現為特定挖礦難度下的出塊速度。全網算力統計也是基于這個出塊速度而反算哈希速率而估計到的。在發生算力攻擊的時候,無論是最長鏈,還是最難子樹(Ghost協議),都是依據各個分叉上出塊的數量和難度而定,而非各個礦工的實際哈希速率。我們將這個依據挖礦難度和出塊速度反算出來的哈希速率,定義為有效算力(EffectiveMiningPower)。當然在單鏈系統中,有效算力和物理算力,在統計意義上來說是完全相等的。
前面提到的算力分散問題是這樣的一個攻擊模型:在有n個共識組的Monoxide系統中,全網有效算力為H,每個共識組的有效算力為H/n。攻擊者在實施攻擊的時候,將其所有物理算力T分配到一個特定共識組,在這個共識組中獲得有效算力T。那邊當其物理算力超過T>H/n×51%的時候,攻擊將可以成功,并構造不一致交易(例如雙花交易)。
為了抵御這個算力聚焦的攻擊模型,我們的思路是強制礦工將算力分散到各個共識組,使其無法集中算力攻擊特定共識組。但在一個去中心化的permissionless系統中,我們無法控制礦工如何分配其物理算力。Monoxide引入了連弩挖礦,其效果是將使得全網的有效算力放大為物理算力的n倍,并且在協議的數據結構層面約束了這種放大后的有效算力必須平均分配到各個共識組,從而規避了這種算力聚焦的攻擊模型。
公告 | 日本加密貨幣交易所DMM Bitcoin將于2月19日開始XLM及MONA杠桿交易服務:據Jp.cointelegraph消息,日本加密貨幣交易所DMM Bitcoin宣布將于2月19日開始XLM及MONA杠桿交易服務。DMM Bitcoin此前提供BTC、ETH、XRP、LTC、BCH 及XEM的杠桿交易服務。DMM Bitcoin在預定的2月19日周次維護后可進行XLM/JPY及MONA/JPY交易。[2020/1/30]
連弩挖礦允許礦工同時參與多個編號連續的共識組(例如從編號b到bm-1),每次出塊的時候哈希函數將覆蓋多個將要出塊的塊頭進行計算,同時這些塊頭將共用一個Nonce。具體做法是將這個m個塊頭按序排列,構造Merkle樹。然后算力哈希計算將覆蓋下列數據結構:
出塊時,下列數據結構會被廣播到特定的共識組i(b≤i
其中MerkleTreePath_i是Block_i在Merkle樹路徑上的左右兄弟節點的哈希值,需要32×log_2m個字節。注意這里沒有顯式給Block_i在Merkle樹中的位置,而是需要Block_i中的共識組編號減去b推算出來,這樣做是為了約束連弩挖礦出塊的時候,每個共識組只能出一個塊。
從這個結構中可以看到,即使在連弩挖礦的情況下,各個共識組也不會受到其他共識組出塊情況的影響。連弩挖礦并不要求各個共識組同步接受這些塊,甚至有些塊最終被認為是無效分叉,也不會影響其他塊在其他共識組中被接受。同時,這個結構允許連弩挖礦包含算力難度不同的共識組,一旦部分共識組的挖礦難度被滿足,這些的塊就可以先發出去。
連弩挖礦將礦工有效算力放大,同時也放大了單位物理算力可以獲得的出塊獎勵,同樣的物理算力,同樣的能源消耗,參與到越多的共識組挖礦,所獲得的出塊獎勵也會越多。所以,全網會收斂到主流的礦工都會采用連弩挖礦,并且參與到所有的共識組中。從而,使得全網的有效算力達到H×n,單個共識組的有效算力達到H。這樣使得攻擊單個共識組的物理算力要求和攻擊全網的物理算力相當,有效抵御算力聚焦的攻擊。
同時參與到多個共識組挖礦,需要更多的IT資源用來同步和驗證每個共識組的交易和區塊(不僅僅是塊頭),也需要更多的磁盤存儲和內存。基于去中心化的考慮,參與連弩挖礦與否,以及參與的共識組個數是一個礦工可以自行配置的選項,Monoxide并不要求所有礦工都參與所有共識組的挖礦。
誠然,參與更多的共識組會需要有線性增加的IT資源開銷,但是在成本上來說這些和大型礦場的礦機開銷來說,就可以忽略不計了。在技術上來說,礦場從來都不是一個節點,而是一個又成百上千臺礦機組成的集群。得益于共識組獨立性,一個參與所有共識組挖礦的礦場,很容易在其公司內部實現一個可伸縮的挖礦數據中心,用不同的主機監控各個共識組,用不同主機確認交易構造新區塊,然后在內部的高速網絡中匯總這些塊頭的哈希(Merkle的葉節點),并送給礦機集群。所以,即使要求礦池同步和處理所有共識組的交易和狀態,也沒有損害系統的伸縮性。
聲音 | Monero首席開發人員:Monero是相當不錯的數字現金:據ambcrypto報道,Monero首席開發人員及Tari聯合創始人Riccardo Spagni最近在接受采訪時表示,Monero已經是一個“相當不錯”的數字現金。對于任何被歸類為數字現金的東西,都必須足夠安全、可替代和去中心化。Spagni還表示,許多監管機構都需要像Monero這樣的東西,因為他們對自己生活中的隱私深感擔憂。[2019/4/6]
最后,順便提一下聯合挖礦(MergeMining),在允許礦工同時參與多條鏈的挖礦這一點上,是有類似的地方。但是連弩挖礦設計初衷和工作場景和聯合挖礦完全不同,前者是為了放大有效算力,并強制放大后的算力均分在各個共識組,以防止算力集中攻擊特定共識組。而后者是為了借用大算力的鏈,來保證小算力鏈的安全。
最終原子性
在Monoxide中,我們采用非常簡單的和去中心化的方式將用戶和交易分配到共識組,并不企圖減少跨共識組交易發生概率,我們認為利用交易結構的局域性是Layer2技術的事情。全網性能越高,共識組數量越多,跨共識組交易發生概率一定會越高,這不是一個可以回避的問題。在我們的實驗中,當共識組數量達到64的時候,跨共識組交易的比例已經超過了95%(實驗的測試數據為以太坊ERC20的完整歷史交易記錄)。Monoxide引入了最終原子性來實現高效的跨共識組交易處理,使得每個跨共識組交易帶來的額外開銷是一個很小的常數,并且和共識組數量n無關。
區塊鏈系統,每一個交易都是一個原子操作。在單鏈系統中,就好比單線程,這個原子操作并沒有被強調,因為交易本來就是被一個一個地確認和處理,系統無需做任何額外的事情,原子性就自然有保障。而在Monoxide中,不同地址的狀態在不同共識組中維護,互相不可見,其狀態的更新也被兩個不同的鏈驅動,就好比多線程。一個原子操作要在這樣的架構下正確安全地完成,就不是一個簡單的事情了。通常為了協同多線程,我們有兩種辦法,一個是互相對所涉及的資源加鎖,另一個則是借由消息傳遞。我們選擇了后者,一方面是因為加鎖會阻塞對應的共識組的吞吐,嚴重影響性能,另一方面是因為所有的單鏈區塊鏈天生就有一個消息傳遞機制(未確認交易集合),從而避免引入新的實體。
我們先以最簡單的支付交易為例,介紹我們的設計。一個數量為x的從地址A到地址B的支付交易,并且A和B處于不同的共識組。這是一個原子操作,其中包含一個扣款操作,這個操作有條件,并且不同的執行順序會導致不同的狀態。另一個是存款操作,這個操作無條件,并且不同的執行順序不會導致不一致的最終狀態。
對于這樣的交易邏輯,Monoxide將先現在共識組A中,嘗試完成扣款操作。如果成功,則將向共識組B轉發一個接力交易,一種特殊的未確認交易。接力交易和普通未確認交易一樣,描述了用什么參數,調用哪個智能合約里面的函數。和普通未確認交易不同的是權限校驗方式。普通未確認交易,通常由錢包簽發,通過其攜帶數字簽名來校驗權限。而接力交易攜帶的是來自另一個共識組的出塊證明:
為了校驗這個接力交易,共識組的塊頭將包含兩個MerkleRoot,一個是之前就有的覆蓋所有被本塊確認的交易的Merkle樹,另一個是新增的覆蓋由本塊中的交易發出去的所有接力交易。后者將被其他共識組接收,并用于校驗由其發出去的接力交易。
默認情況下,構造和轉發接力交易由確認初始交易的那個礦工(在共識組A)完成。萬一這個轉發失效,共識組A中任何一個全節點,都有能力從交易歷史中根據那個初始交易重新構造并轉發丟失的接力交易,無需額外的共識或證明。
無論是接力交易,還是普通的未確認交易,都將以類似的方式在目標共識組的廣播子網中傳播,并被暫存在未確認交易的集合中。礦工在出塊的時候,將同等對待接力交易和未確認交易,通常根據其手續費多少來排優先級。任何產生一個或多個接力交易的初始交易,其手續費會以一定比例分配給初始交易和多個接力交易,給到最終在其他共識組確認這些交易的礦工。在Monoxide中,這個分配比例可以由智能合約代碼控制。
從上述流程中,我們可以看到在Monoxide系統中交易原子性并沒有得到立即滿足,而是要等到所有接力交易被確認和執行之后,才最終得以完成。我們將此稱為最終原子性,而不是要求即時的原子性。最終原子性使得跨共識組的交易可以被無阻塞地在多個共識組間接力執行,使得多個原子交易可以完全并行地重疊交錯執行,使得多個交易可以完全并行地重疊交錯執行,這樣Monoxide系統的全網吞吐能力就得以完全釋放,即使再多的跨共識組的交易也不會顯著影響性能。
我們即使假設100%的交易都是跨共識組的交易,一個支付交易將會變成兩個交易,粗略地說,會使吞吐量減半。但是這個開銷,和共識組的總數無關。當全網性能獲得幾個數量級的提升時,這個開銷始終是吞吐量減半。故而,在我們的實驗中,2048個共識組能夠獲得近1000倍的吞吐量提升。基于最終原子性的執行邏輯,需要初始操作和接力操作滿足前述的正確性約束,否則可能導致不一致的最終狀態。誠然,這會對Monoxide平臺上的智能合約開發帶來一些難度。不過我們認為這是一個不可避免的代價,就好像給GPU寫代碼,給OpenMP寫代碼或者是給Hadoop寫代碼,就是會比給單機單線程的CPU寫代碼要困難一些,思路上要繞一些。當然,結合恰當的合約語言模型、形式化驗證工具,以及開發和調試工具的支持,開發的難度也會大大減少。
Oxidation語言是Monoxide平臺的智能合約語言,一種基于函數編程(Functionalprogramming)的語言。這個語言模型的設計并不是論文的一部分,這部分工作也尚未全部完成。這里給出一個類似ERC20代幣合約的極度簡化示例代碼。這里比較特殊的是系統調用yield。這個調用將在合約執行的過程中生成接力交易,如果b為一個跨共識組的地址的話。代碼中可以出現多個yield調用,也可以有條件地調用yield,但是yield調用不允許重入。
伸縮性的上限:為什么說區塊鏈不可能三角被突破了
為了正確完成跨共識組交易,接力交易的權限校驗需要接收到發起方所在的共識組的對應的塊頭。這件事情成為了Monoxide全網伸縮性的最主要瓶頸。這意味著,每個全節點都需要同步并跟蹤所有共識組中的塊頭,同時加上連弩挖礦機制,這個同步消耗的帶寬為:
(BlockHeadSize32×log_2n)×n/BlockInterval
BlockHeadSize為塊頭的元數據,大致120字節。這個部分不定長,是因為Monoxide采用可變長度的Nonce,以適配不同的挖礦難度。32×log_2n部分為連弩挖礦機制引入的算力證明,即前文的MerkleTreePath_i。BlockInterval為出塊間隔。基本上,這是一個O(nlog_2n)的開銷,只要n大到一定程度,性能的提升會低于這個開銷的增加,從而定義了伸縮性的天花板。
既然,每個全節點都需要同步并跟蹤所有共識組中的塊頭,我們將給出另一種連弩挖礦的出塊數據結構,改為一次出所有的塊頭,而不是按逐個共識組出塊頭,不可用的塊頭(哈希難度未達到挖礦難度的)用其哈希值代替。當然區塊本身仍舊是逐個共識組分開廣播的。同時為了實現這個優化,我們將引入一個全局的特殊廣播子網,僅用來傳播塊頭或者成批的塊頭,并要求所有全節點和挖礦節點加入這個特殊的廣播子網。這樣就可以省去原先每個塊頭的算力證明部分,將帶寬消耗將降到O(n):
BlockHeadSize×n/BlockInterval
即使優化之后,對于每個全節點來說,這仍舊是一個不容忽視的開銷。n總能大到一定程度,使得本地帶寬被耗盡。那么我們來推演一下這個天花板到底是多少。假設約束全節點帶寬為15Mbps,即上限為1.88MB/s。以Bitcoin協議為基礎,我們設定其出塊間隔為1分鐘,出塊大小為8MB。這樣單個共識組單鏈吞吐量將約為560TPS,區塊傳輸開銷為0.13MB/s。當共識組數量為65536個的時候,全網塊頭傳輸開銷也為0.13MB/s。加起來也遠小于帶寬上限,也遠小于帶寬上限,有足夠的剩余帶寬用于下行廣播。然后,這個時候全網吞吐量約為15MTPS左右,狀態容量在幾百TB的數量級。無論是再多的共識組總量,還是再高的共識組單鏈吞吐量,都會逐漸使得全節點本地帶寬顯得局促。
所以,我們認為Monoxide的伸縮性天花板大致在這個水平,千萬TPS的吞吐量和幾百TB的狀態容量。千萬TPS這個數量級,已經可以應付大部分互聯網級別應用的峰值流量,同時仍舊滿足區塊鏈對安全和去中心化的要求,這就是為什么我們說,區塊鏈不可能三角被突破了。當然,要伸縮到這個程度,也需要整個社區的總參與節點數到達百萬數量級。
末了,歡迎大家通過我的微信公眾號「王嘉平」和知乎專欄「去中心化數字世界隨想」,就這個話題展開更多討論。
作者簡介:王嘉平博士原為微軟總部雷德蒙研究院主管研究員,專注分布式系統,計算機圖形學和視覺以及用于機器學習的GPU集群等領域的研究,有數十項研究成果發表于ACMSIGGRAPH/ToG頂級國際期刊,已授權的美國專利十項余項。他師從沈向洋博士(現微軟全球執行副總裁),在中科院計算所獲得博士學位。他的博士論文獲得2009年度全國百篇優秀博士論文獎,是該年唯一一名計算機科學專業的獲獎者。
本文為作者個人觀點,與就職單位無關。
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
王嘉平
現已在非小號資訊平臺發布10篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/9558563.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
幣安為何推出第三條鏈?這對BNB意味著什么?
BancorV2引入Chainlink預言機與單一代幣流動性機制,試圖減少流動性提供者的無常損失.
1900/1/1 0:00:00幣友們好!在今天的《推特大咖說》第115期中,你將看到:01MaticNetwork聯合創始人兼COO剛從噩夢中醒來,因為有人打電話來求救了。。
1900/1/1 0:00:00本文不構成任何投資建議,投資有風險,入市需謹慎!最近大家都很難,市場萎縮的厲害,山寨一片哀嚎,連平臺幣都一輪大跌。但是,我想說。希望也許就在眼前.
1900/1/1 0:00:00區塊鏈應用永遠不可能實現完全免信任,但是不同應用在免信任程度上卻差別顯著。原文標題:《干貨|信任的模式》撰文:VitalikButerin,以太坊創始人翻譯&校對:閔敏&阿劍對于.
1900/1/1 0:00:00如果通訊功能可以作為Telegram開放區塊鏈網絡上第一個應用,它的規模將史無前例,帶來區塊鏈的大量落地用戶。 撰文:Evaluape TON是Telegram公司的開放區塊鏈網絡和生態系統.
1900/1/1 0:00:00作者:肖磊看市 公眾號:kanshi1314今天跟大家討論一個非常棘手的問題,那就是在美國民主黨拜登即將執政的未來四年里,美國內部經濟政策到底將會走向何處.
1900/1/1 0:00:00