欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

披露Monoxide具體是如何突破區(qū)塊鏈不可能三角的

電子工程師 ? 來源:lq ? 2019-02-11 14:18 ? 次閱讀

導言:

過去一兩年有許多號稱區(qū)塊鏈 3.0 的公鏈項目都宣稱克服了所謂不可能三角,但大體而言,至今尚未出現(xiàn)一個具信服力、并廣為接受的解方。不過,由分布式系統(tǒng)專家王嘉平等人提出的 Monoxide 擴容方案,近日獲計算機頂級學術(shù)會議 NSDI 2019 收錄。這是繼 2017 年著名的 AlgoRand 項目登上 SOSP 大會后,睽違近兩年再有區(qū)塊鏈公鏈論文投中計算機頂會。

王嘉平為微軟總部研究院前主管研究員,專注于分布式系統(tǒng)等領(lǐng)域研究。2016 年起他在創(chuàng)新工場擔任執(zhí)行董事,負責區(qū)塊鏈和人工智能等投資方向,曾主導了對比特大陸的首輪機構(gòu)投資,成為三大主要投資方之一。去年他曾發(fā)表“區(qū)塊鏈到底有什么了不起”等系列文章,梳理出為什么他相信區(qū)塊鏈是一項了不起的技術(shù),在行業(yè)內(nèi)引發(fā)廣大回響。

DeepTech 很高興邀請到王嘉平博士成為 DeepHash 專欄作者,這是他除了個人公眾號外首度在媒體上開設專欄。他將在以下的首篇專欄文章中,獨家披露 Monoxide 具體是如何突破區(qū)塊鏈不可能三角的,包含其研究中提出的“連弩挖礦”與“最終原子性”兩個重要創(chuàng)新。

Monoxide:突破區(qū)塊鏈不可能三角的極簡架構(gòu)

圖| Monoxide :以異步共識組來拓展區(qū)塊鏈(來源:王嘉平)

上圖是我們的論文,在 NSDI 會場的海報展示環(huán)節(jié)將使用的海報。本文將順著海報的邏輯介紹 Monoxide 的設計架構(gòu)和實現(xiàn)原理。雖然 Monoxide 架構(gòu)可以采用不同的共識算法作為其共識組內(nèi)的共識機制,本文將基于最簡單最干凈的Nakamoto(中本聰)共識算法(Proof-of-Work)展開討論。

而Monoxide 將同時滿足區(qū)塊鏈的安全,性能和去中心化這三項需求。這里需要強調(diào)的是,Monoxide 是 Layer 1 的區(qū)塊鏈技術(shù),不假設交易結(jié)構(gòu)的任何局部特性,也不假設跨共識組的交易會比較少。

什么是區(qū)塊鏈不可能三角?

第一角:怎么樣算安全

區(qū)塊鏈系統(tǒng)必須是安全的,這一點是不容妥協(xié)的,否則所有其它特性將毫無意義。具體落實到技術(shù)指標,就是在系統(tǒng)中構(gòu)造一系列非法區(qū)塊并得到全網(wǎng)認可所需付出的代價。這個代價就 PoW (工作證明)共識機制而言,就是實施攻擊的最小挖礦算力。Nakamoto 共識算法保證惡意算力在50% 以下的時候,系統(tǒng)是安全的。我們保證的是采用 Monoxide 架構(gòu)之后,這個 50% 算力的安全邊界不會顯著變低。同時,我們繼承了 Nakamoto 算法的其它安全特性,例如不要求出塊節(jié)點始終在線,全節(jié)點物理 IP 地址僅在一個很小的范圍內(nèi)暴露等。

第二角:怎么樣算高性能

Monoxide 架構(gòu)將完全隔離每個共識組的四大工作負荷,即:帶寬(廣播區(qū)塊數(shù)據(jù)和未確認交易)、計算(驗證交易和更新賬簿狀態(tài))、內(nèi)存(存儲賬簿的最新狀態(tài))、磁盤讀寫(記錄歷史區(qū)塊)。我們強調(diào)這四個方面的負荷必須全部被切分隔離,才能真正獲得高伸縮性的區(qū)塊鏈系統(tǒng),而不是僅完成部分工作符合的隔離,即所謂的網(wǎng)絡分片,交易分片和狀態(tài)分片。

具體落實到技術(shù)指標,性能包含兩個方面。一個是眾所周知的吞吐量,即最高每秒處理多少筆交易 (TPS),而另一個是全網(wǎng)表達賬簿狀態(tài)的總有效內(nèi)存總量。前者是速度,后者是容量。

我們實現(xiàn)了吞吐量大致 n/2 倍的線性提升以及狀態(tài)容量的 n 倍的線性提升 (以支付交易計算為例)。這里的 n 是共識組的個數(shù),提升是相對于共識組內(nèi)部采用的單鏈共識系統(tǒng)的性能?,F(xiàn)在一個單鏈共識系統(tǒng),比較輕松能達到的是幾百 TPS 的吞吐量和數(shù)十 GB 的狀態(tài)空間。注意,這里并不是說 Monoxide 可以無限提升性能,在現(xiàn)有的互聯(lián)網(wǎng)平均帶寬的約束下(15Mbps),共識組的個數(shù) n 最高只能到數(shù)萬這個量級。

第三角:怎么樣算去中心化

首先,公鏈必須是 permissionless 系統(tǒng),并且系統(tǒng)中不存在不可替代的角色或者節(jié)點,這是一個定性的要求。在滿足這個要求之后,去中心化可以落實到具體的技術(shù)指標,即需要多少IT 資源才能順利地參與全網(wǎng)的監(jiān)管(部分或者全部),也就是全節(jié)點的參與門檻。

而這個門檻最關(guān)鍵的因素是帶寬,高帶寬只有部署在數(shù)據(jù)中心才能獲得,其鏈路的地理位置也容易被追蹤;而其它資源諸如 CPU、內(nèi)存、磁盤等,都可以不受特定地理位置的約束,也無法追蹤,花點錢就有。

Monoxide 架構(gòu)在獲得幾個數(shù)量級的性能提升的同時,始終將全節(jié)點帶寬消耗控制在普通家用互聯(lián)網(wǎng)接入可以承受的范圍(15Mbps),從而使得 Monoxide 的全節(jié)點可以像現(xiàn)在的以太坊全節(jié)點一樣,隨便在家里找個普通電腦就開起來。同時 Monoxide 的共識組劃分了歷史交易歸檔的工作量,使得完整同步一個全節(jié)點的時間會比現(xiàn)在的以太坊少幾百倍。強調(diào)全節(jié)點進入門檻的原因是,只有全節(jié)點才能夠在不信任其它節(jié)點的情況下,獨立驗證交易,重建賬簿狀態(tài),而不是像云計算那樣,需要依賴于信任特定的節(jié)點(或服務器),這是區(qū)塊鏈和云計算的本質(zhì)區(qū)隔之一。

Monoxide 的總體設計

圖| Monoxide 總體設計(來源:王嘉平)

總體來說,Monoxide 的設計哲學是盡量簡單,在能滿足上述三角特性的前提下,盡量不引入額外的實體,不引入額外的機制,并盡量避免修改現(xiàn)有的機制。Monoxide 網(wǎng)絡是一個并發(fā)的多鏈系統(tǒng),每一個鏈我們稱之為"共識組"。

每個"共識組"其組成部分和現(xiàn)在單鏈系統(tǒng)完全一致,有自己的賬簿狀態(tài),區(qū)塊的鏈條,未確認交易的集合,同步區(qū)塊數(shù)據(jù)和交易數(shù)據(jù)的廣播網(wǎng)絡以及一堆全節(jié)點(包括礦工)。各個共識組之間完全對等,無主次之分,除此之外這個網(wǎng)絡就沒有任何其它的角色了,沒有之前那些方案提出的母鏈,根鏈之類的,也沒有任何掌控全局的調(diào)度節(jié)點或驗證節(jié)點。引入這些實體會使得一些功能更容易實現(xiàn)(例如動態(tài)負載平衡),但是他們會犧牲去中心化特性,甚至還可能導致嚴重的性能瓶頸。

全網(wǎng)所有共識組用一個整數(shù)編號(0到n-1),我們限定共識組的總個數(shù)為 2 的 k 次冪,即n=2^k。任何一個賬簿地址,根據(jù)其地址二進制數(shù)據(jù)的前 k 個比特,永久地被分配在一個共識組中。每個交易則根據(jù)交易的驗證方的地址(例如轉(zhuǎn)賬交易的支付方),被分配在驗證方所屬的共識組。所以 Monoxide 網(wǎng)絡的劃分不需要任何中心化的機制來分配地址和交易。

Monoxide 全網(wǎng)由各個共識組的出塊過程和未確認交易集合完全獨立,共識組之間完全并行、異步且無需鎖定和同步,即使某一個共識組發(fā)生擁塞也不會干擾其它共識組的吞吐和出塊。

Monoxide 全網(wǎng)由各個共識組的獨立廣播子網(wǎng)所構(gòu)成,但這些廣播子網(wǎng)互相不重疊、互相不打攪。在我們的設計中,這些廣播子網(wǎng)由 DHT 的 Swarm 實現(xiàn),每一個廣播子網(wǎng)對應一個 Swarm。新啟動的全節(jié)點根據(jù)其想要加入的共識組編號直接計算Swarm地址,然后利用 DHT的路由機制找到同一共識組里面的其它全節(jié)點,并嘗試連接、入網(wǎng)。

全節(jié)點可以隨機選擇加入任意一個或多個共識組,或由上層應用來決定。例如,錢包節(jié)點通常會加入登錄用戶的錢包地址所在的共識組,以便實時獲取其賬戶余額等狀態(tài)。Monoxide全節(jié)點不記錄任何用戶登錄狀態(tài)或用戶私鑰,以避免以太網(wǎng)全節(jié)點之前出現(xiàn)的 RPC 接口安全隱患。除非其上層應用請求,通常一個共識組的全節(jié)點不會主動連接另一個共識組的節(jié)點。

同樣礦工可以自由選擇參與一個或多個共識組,進行挖礦,以期獲得每一個共識組中的出塊獎勵。正常情況下,礦工會優(yōu)先選擇參與當前算力較低的共識組,以獲得更高的利潤,從而導致各個共識組會收斂到一致的挖礦算力和出塊難度。

Monoxide 如何突破區(qū)塊鏈不可能三角?

從這個設計,我們可以看到 Monoxide 架構(gòu)滿足區(qū)塊鏈三角的情況。

1.安全:只要各個共識組本身是安全的,Monoxide 就會是安全的。交易的安全和正確(例如避免雙花)依賴于每個共識組內(nèi)部的共識算法。Monoxide全網(wǎng)應對女巫攻擊(Sybil Attack)也依賴于共識組內(nèi)部的共識算法本身的抵御能力。就 PoW 而言,每個共識組的安全,依賴于其內(nèi)部挖礦算力。所以 Monoxide 架構(gòu)的安全保障,核心是要能夠抵御算力分散的問題,即全網(wǎng)算力分散到每個共識組之后,每個共識組的算力將是全網(wǎng)的 1/n,這時單個共識組的防御壁壘將下降到 51/n %,(即所謂的1%攻擊)。這是一個完全無法接受的值。為了解決這個算力分散的問題,Monoxide引入了”連弩挖礦”(Chu-ko-nu Mining),使得單個共識組的防御壁壘回升到 51%。

2.性能:由于各共識組的區(qū)塊驗證、存儲和賬簿狀態(tài)更新完全獨立,所以這三個方面將獲得無代價的無限線性提升。共識組之間唯一需要打交道的地方,就是為了正確處理跨共識組的交易。這使得在數(shù)據(jù)傳輸方面,性能提升是有代價的,并且不是無限的。為了高效完成跨共識組交易,Monoxide 引入了最終原子性(Eventual Atomicity),使得即使跨共識組交易的比例就算是接近 100%,全網(wǎng)仍舊可以輕松地完成交易吞吐,其性能代價為一個和共識組個數(shù)無關(guān)的常數(shù)。

3.去中心化:根據(jù)上面的描述,Monoxide 依舊是一個徹底的 permessionless 的系統(tǒng),并且每個共識組內(nèi)部的全節(jié)點的負擔始終保持在同維護一個單鏈系統(tǒng)相當?shù)乃?,可以被輕松部署到大部分有互聯(lián)網(wǎng)接入的角落。

所以論文最重要的兩大技術(shù)貢獻就是”連弩挖礦”(Chu-ko-nu Mining)和”最終原子性”(Eventual Atomicity)。后面我們將就這兩個方面,詳細展開,并以 Bitcoin (比特幣)數(shù)據(jù)結(jié)構(gòu)為藍本,給出這兩個機制對 PoW 共識協(xié)議的改進。

”連弩挖礦”(Chu-ko-nu Mining),放大有效算力

在 PoW 共識機制中,礦工需要不斷隨機刺探塊頭中的 Nonce (隨機數(shù)值)并重算哈希函數(shù),以使得這個塊頭的哈希值滿足當前算力難度的要求,可以最終出塊。這個過程的瓶頸在于計算哈希函數(shù)的速度,所以挖礦算力被定義為哈希速率(Hashrate)。這里,我們將實際計算哈希的速度,定義為物理算力(PhysicalMining Power),提高物理算力的唯一方法就是部署更多的礦機,消耗更多的能源。

然而,在 PoW 共識機制中,每個礦工的物理算力是無法直接知道的,這個物理算力最終體現(xiàn)為特定挖礦難度下的出塊速度。全網(wǎng)算力統(tǒng)計也是基于這個出塊速度而反算哈希速率而估計到的。

在發(fā)生算力攻擊的時候,無論是最長鏈,還是最難子樹(Ghost協(xié)議),都是依據(jù)各個分叉上出塊的數(shù)量和難度而定,而非各個礦工的實際哈希速率。我們將這個依據(jù)挖礦難度和出塊速度反算出來的哈希速率,定義有效算力(Effective Mining Power)。當然在單鏈系統(tǒng)中,有效算力和物理算力,在統(tǒng)計意義上來說是完全相等的。

前面提到的算力分散問題是這樣的一個攻擊模型:在有 n 個共識組的 Monoxide 系統(tǒng)中,全網(wǎng)有效算力為 H,每個共識組的有效算力為 H/n。攻擊者在實施攻擊的時候,將其所有物理算力 T 分配到一個特定共識組,在這個共識組中獲得有效算力T。那邊當其物理算力超過 T > H/n × 51% 的時候,攻擊將可以成功,并構(gòu)造不一致交易(例如雙花交易)。

為了抵御這個算力聚焦的攻擊模型,我們的思路是強制礦工將算力分散到各個共識組,使其無法集中算力到特定共識組。但在一個去中心化的permissionless 系統(tǒng)中,我們無法控制礦工如何分配其物理算力。

因此,Monoxide 引入了連弩挖礦,其效果是將使得全網(wǎng)的有效算力放大為物理算力的 n 倍,并且在協(xié)議的數(shù)據(jù)結(jié)構(gòu)層面再約束了這種放大后的有效算力必須平均分配到各個共識組,從而規(guī)避了這種算力聚焦的攻擊模型。

連弩挖礦允許礦工同時參與多個編號連續(xù)的共識組(例如從編號b到b+m-1),每次出塊的時候哈希函數(shù)將覆蓋多個將要出塊的塊頭進行計算,同時這些塊頭將共用一個 Nonce。具體做法是將這個 m 個塊頭按序排列,構(gòu)造 Merkle 樹。然后算力哈希計算將覆蓋下列數(shù)據(jù)結(jié)構(gòu):

出塊時,下列數(shù)據(jù)結(jié)構(gòu)會被廣播到特定的共識組 i (b≤i

其 MerkleTreePath_i是 Block_i在 Merkle 樹路徑上的左右兄弟節(jié)點的哈希值,需要 32 × log_2 m個字節(jié)。注意這里沒有顯式給 Block_i 在 Merkle樹中的位置,而是需要 Block_i中的共識組編號減去 b 推算出來,這樣做是為了約束連弩挖礦出塊的時候,每個共識組只能出一個塊。

從這個結(jié)構(gòu)中可以看到,即使在連弩挖礦的情況下,各個共識組也不會受到其它共識組出塊情況的影響。連弩挖礦并不要求各個共識組同步接受這些塊,甚至有些塊最終被認為是無效分叉,也不會影響其它塊在其它共識組中被接受。同時,這個結(jié)構(gòu)允許連弩挖礦包含算力難度不同的共識組,一旦部分共識組的挖礦難度被滿足,這些的塊就可以先發(fā)出去。

連弩挖礦將礦工有效算力放大,同時也放大了單位物理算力可以獲得的出塊獎勵,同樣的物理算力,同樣的能源消耗,參與到越多的共識組挖礦,所獲得的出塊獎勵也會越多。所以,全網(wǎng)會收斂到主流的礦工都會采用連弩挖礦,并且參與到所有的共識組中。從而,使得全網(wǎng)的有效算力達到 H × n,單個共識組的有效算力達到H 。這樣使得攻擊單個共識組的物理算力要求和攻擊全網(wǎng)的物理算力相當,有效抵御算力聚焦的攻擊。

同時參與到多個共識組挖礦,需要更多的 IT 資源用來同步和驗證每個共識組的交易和區(qū)塊(不僅僅是塊頭),也需要更多的磁盤存儲和內(nèi)存?;谌ブ行幕目紤],參與連弩挖礦與否,以及參與的共識組個數(shù)是一個礦工可以自行配置的選項,Monoxide 并不要求所有礦工都參與所有共識組的挖礦。

同時,得益于共識組獨立性,一個參與所有共識組挖礦的礦場,很容易在其公司內(nèi)部實現(xiàn)一個分布式的挖礦數(shù)據(jù)中心,用不同的主機監(jiān)控各個共識組,用不同主機確認交易構(gòu)造新區(qū)塊,然后在內(nèi)部的高速網(wǎng)絡中匯總這些塊頭的哈希(Merkle的葉節(jié)點),并送給礦機集群。參與更多的共識組會線性增加IT資源的開銷,但是這些和大型礦場的礦機開銷來說,可以忽略不計了。

最后,順便提一下聯(lián)合挖礦(Merge Mining),在允許礦工同時參與多條鏈的挖礦這一點上,是很類似的。但是連弩挖礦設計初衷和工作場景和聯(lián)合挖礦完全不同,前者是為了放大有效算力,并強制放大后的算力均分在各個共識組,以防止算力集中攻擊特定共識組。而后者是為了借用大算力的鏈,來保證小算力鏈的安全。

''最終原子性''(Eventual Atomicity)

在 Monoxide 中,我們采用非常簡單的和去中心化的方式,將用戶和交易分配到共識組,并不企圖減少跨共識組交易發(fā)生概率,我們認為利用交易結(jié)構(gòu)的局域性是Layer 2 技術(shù)的事情。全網(wǎng)性能越高,共識組數(shù)量越多,跨共識組交易發(fā)生概率一定會越高,這不是一個可以回避的問題。

在我們的實驗中,當共識組數(shù)量達到 64 的時候,跨共識組交易的比例已經(jīng)超過了 95% (實驗的測試數(shù)據(jù)為以太坊 ERC20 的完整歷史交易記錄)。Monoxide 引入了最終原子性來實現(xiàn)高效的跨共識組交易處理,使得每個跨共識組交易帶來的額外開銷是一個很小的常數(shù),并且和共識組數(shù)量 n 無關(guān)。

區(qū)塊鏈系統(tǒng),每一個交易都是一個原子操作。在單鏈系統(tǒng)中,就好比單線程,這個原子操作并沒有被強調(diào),因為交易本來就是被一個一個地確認和處理,系統(tǒng)無需做任何額外的事情,原子性就自然有保障。而在 Monoxide 中,不同地址的狀態(tài)在不同共識組中維護,互相不可見,其狀態(tài)的更新也被兩個不同的鏈驅(qū)動,就好比多線程。

一個原子操作要在這樣的架構(gòu)下正確安全地完成,就不是一個簡單的事情了。通常為了協(xié)同多線程,我們有兩種辦法,一個是互相對所涉及的資源加鎖,另一個則是借由消息傳遞。我們選擇了后者,一方面是因為加鎖會阻塞對應的共識組的吞吐,嚴重影響性能,另一方面是因為所有的單鏈區(qū)塊鏈天生就有一個消息傳遞機制(未確認交易集合),從而避免引入新的實體。

我們先以最簡單的支付交易為例,介紹我們的設計。一個數(shù)量為 x 的從地址 A 到地址 B 的支付交易,并且 A 和 B 處于不同的共識組。這是一個原子操作,其中包含一個扣款操作,這個操作有條件,并且不同的執(zhí)行順序會導致不同的狀態(tài)。另一個是存款操作,這個操作無條件,并且不同的執(zhí)行順序不會導致不一致的最終狀態(tài)。

對于這樣的交易邏輯,Monoxide 將先在共識組 A 中,嘗試完成扣款操作。如果成功,則將向共識組 B 轉(zhuǎn)發(fā)一個接力交易,一種特殊的未確認交易。接力交易和普通未確認交易一樣,描述了用什么參數(shù),調(diào)用哪個智能合約里面的函數(shù)。和普通未確認交易不同的是權(quán)限校驗方式。普通未確認交易,通常由錢包簽發(fā),通過其攜帶數(shù)字簽名來校驗權(quán)限。而接力交易攜帶的是來自另一個共識組的出塊證明:

為了校驗這個接力交易,共識組的塊頭將包含兩個 MerkleRoot,一個是之前就有的覆蓋所有被本塊確認的交易的 Merkle 樹,另一個是新增的覆蓋由本塊中的交易發(fā)出去的所有接力交易。后者將被其它共識組接收,并用于校驗由其發(fā)出去的接力交易。

默認情況下,構(gòu)造和轉(zhuǎn)發(fā)接力交易由確認初始交易的那個礦工(在共識組 A)完成。萬一這個轉(zhuǎn)發(fā)失效,共識組 A 中任何一個全節(jié)點,都有能力從交易歷史中根據(jù)那個初始交易重新構(gòu)造并轉(zhuǎn)發(fā)丟失的接力交易,無需額外的共識或證明。

無論是接力交易,還是普通的未確認交易,都將以類似的方式在目標共識組的廣播子網(wǎng)中傳播,并被暫存在未確認交易的集合中。礦工在出塊的時候,將同等對待接力交易和未確認交易,通常根據(jù)其手續(xù)費多少來排優(yōu)先級。任何產(chǎn)生一個或多個接力交易的初始交易,其手續(xù)費會以一定比例分配給初始交易和多個接力交易,給到最終在其它共識組確認這些交易的礦工。在 Monoxide 中,這個分配比例可以由智能合約代碼控制。

從上述流程中,我們可以看到在 Monoxide 系統(tǒng)中交易原子性并沒有得到立即滿足,而是要等到所有接力交易被確認和執(zhí)行之后,才最終得以完成。我們將此稱為最終原子性,而不是要求即時的原子性。

最終原子性使得跨共識組的交易可以被無阻塞地在多個共識組間接力執(zhí)行,使得多個交易可以完全并行地重疊交錯執(zhí)行,這樣 Monoxide 系統(tǒng)的全網(wǎng)吞吐能力就得以完全釋放,即使再多的跨共識組的交易也不會顯著影響性能。

我們即使假設 100% 的交易都是跨共識組的交易,一個支付交易將會變成兩個交易,粗略地說,會使吞吐量減半。但是這個開銷,和共識組的總數(shù)無關(guān)。當全網(wǎng)性能獲得幾個數(shù)量級的提升時,這個開銷始終是吞吐量減半。

故而,在我們的實驗中,2048 個共識組能夠獲得近 1000 倍的吞吐量提升。基于最終原子性的執(zhí)行邏輯,需要初始操作和接力操作滿足前述的正確性約束,否則可能導致不一致的最終狀態(tài)。誠然,這會對 Monoxide 平臺上的智能合約開發(fā)帶來一些難度。不過我們認為這是一個不可避免的代價,就好像給 GPU 寫代碼,給 OpenMP 寫代碼或者是給Hadoop 寫代碼,就是會比單機單線程的 CPU 的代碼要困難一些,思路上要繞一些。當然,結(jié)合恰當?shù)暮霞s語言模型、形式化驗證工具,以及開發(fā)和調(diào)試工具的支持,開發(fā)的難度也會大大減少。

Oxidation 語言是 Monoxide 平臺的智能合約語言,一種基于函數(shù)編程(Functional programming)的語言。這個語言模型的設計并不是論文的一部分,這部分工作也尚未全部完成。這里給出一個類似 ERC20 代幣的合約示例代碼。這里比較特殊的是系統(tǒng)調(diào)用 yield 。這個調(diào)用將在合約執(zhí)行的過程中生成接力交易,如果 b 為一個跨共識組的地址的話。代碼中可以出現(xiàn)多個 yield 調(diào)用,也可以有條件地調(diào)用 yield,但是 yield 調(diào)用不允許重入。

伸縮性的上限——為什么說區(qū)塊鏈不可能三角被突破了?

為了正確完成跨共識組交易,接力交易的權(quán)限校驗需要接收到發(fā)起方所在的共識組的對應的塊頭。這件事情成為了 Monoxide 全網(wǎng)伸縮性的最主要瓶頸。這意味著,每個全節(jié)點都需要同步并跟蹤所有共識組中的塊頭,同時加上連弩挖礦機制,這個同步消耗的帶寬為:

( BlockHeadSize + 32 ×log2 n ) × n / BlockInterval

BlockHeadSize 為塊頭的元數(shù)據(jù),大致 120 字節(jié)。這個部分為不定長,是因為Monoxide 采用可變長度的 Nonce,以適配不同的挖礦難度。32 × log2 n 部分為連弩挖礦機制引入的算力證明,即前文的 MerkleTreePath_i。BlockInterval為出塊間隔?;旧?,這是一個 O(nlog2 n)的開銷,只要 n 大到一定程度,性能的提升會低于這個開銷的增加,從而確定了伸縮性的天花板。

既然,每個全節(jié)點都需要同步并跟蹤所有共識組中的塊頭,我們將給出另一種連弩挖礦的出塊數(shù)據(jù)結(jié)構(gòu),改為一次出所有的塊頭,而不是按逐個共識組出塊頭,不可用的塊頭(哈希難度未達到挖礦難度的)用其哈希值代替。當然區(qū)塊本身仍舊是逐個共識組分開廣播的。同時為了實現(xiàn)這個優(yōu)化,我們將引入一個全局的特殊廣播子網(wǎng),僅用來傳播塊頭或者成批的塊頭,并要求所有全節(jié)點和挖礦節(jié)點加入這個特殊的廣播子網(wǎng)。這樣就可以省去原先每個塊頭的算力證明部分,將帶寬消耗將降到 O(n):

BlockHeadSize × n / BlockInterval

即使優(yōu)化之后,對于每個全節(jié)點來說,這仍舊是一個不容忽視的開銷。n總能大到一定程度,使得本地帶寬被耗盡。那么我們來推演一下這個天花板到底是多少。假設約束全節(jié)點帶寬為 15Mbps,即上限為 1.88MB/s。以 Nakamoto 共識為基礎(chǔ),我們設定其出塊間隔為 1 分鐘,出塊大小為 8MB。

這樣單個共識組單鏈吞吐量將約為 560 TPS,區(qū)塊傳輸開銷為 0.13MB/s。當共識組數(shù)量為 65536 個的時候,全網(wǎng)塊頭傳輸開銷也為 0.13MB/s。加起來也遠小于帶寬上限,有足夠的剩余帶寬用于下行廣播。然后,這個時候全網(wǎng)吞吐量約為 15M TPS 左右,狀態(tài)容量在幾百 TB 的數(shù)量級。無論是再多的共識組總量,還是再高的共識組單鏈吞吐量,都會逐漸使得全節(jié)點本地帶寬顯得局促。

所以,我們認為 Monoxide 的伸縮性天花板大致在這個水平,千萬 TPS 的吞吐量和幾百 TB 的狀態(tài)容量。千萬 TPS 這個數(shù)量級,已經(jīng)可以應付大部分互聯(lián)網(wǎng)級別應用的峰值流量,同時仍舊滿足區(qū)塊鏈對安全和去中心化的要求。這就是為什么我們說,區(qū)塊鏈不可能三角被突破了。當然,要伸縮到這個程度,也需要整個社區(qū)的總參與節(jié)點數(shù)到達百萬數(shù)量級。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10911

    瀏覽量

    213150
  • 人工智能
    +關(guān)注

    關(guān)注

    1796

    文章

    47791

    瀏覽量

    240574
  • 區(qū)塊鏈
    +關(guān)注

    關(guān)注

    111

    文章

    15563

    瀏覽量

    106769

原文標題:DeepHash專欄|Monoxide:突破區(qū)塊鏈不可能三角的極簡架構(gòu)

文章出處:【微信號:deeptechchina,微信公眾號:deeptechchina】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    區(qū)塊行業(yè)發(fā)展,金融領(lǐng)域應用方向?

    的新一代信息技術(shù)加速突破應用?!薄靶畔ⅰ⑸?、制造、能源、空間、海洋等的原創(chuàng)突破為前沿技術(shù)、顛覆性技術(shù)提供了更多創(chuàng)新源泉。”區(qū)塊作為前沿技術(shù),已經(jīng)引起國家領(lǐng)導人的關(guān)注,其
    發(fā)表于 08-06 17:34

    區(qū)塊對我們的生活有什么影響

    的每一個參與者都要檢查每個塊的一致性,試圖破解區(qū)塊就像試圖潛入一個由上百條狗守衛(wèi)的單門。這是不可能的。透明度每個塊對網(wǎng)絡中的每個成員都可見,確保各方之間的信任。協(xié)作由于區(qū)塊
    發(fā)表于 07-10 04:20

    區(qū)塊從不忘事兒

    俗話說,大象從不忘事兒。區(qū)塊亦是如此。內(nèi)存是區(qū)塊的核心,它是一種以關(guān)鍵方式構(gòu)建的突破性計算機編程語言,與人的心智非常相似。正如我們的記憶
    發(fā)表于 07-29 06:08

    打破區(qū)塊不可能三角!2華人專家論文將登NSDI 2019計算機頂會

    在今年 NSDI 接受的 49 篇文章中,亦僅有 Monoxide 一篇論文是區(qū)塊相關(guān)。王嘉平認為,區(qū)塊技術(shù)相關(guān)研究在整個學術(shù)界還是非常
    的頭像 發(fā)表于 01-29 14:05 ?3576次閱讀

    混合共識將如何彌補區(qū)塊不可能三角的弊端

    目前所衍生出來的XX即挖礦的眾多應用場景的靈感也都源自于POW,比如交易即挖礦、發(fā)文即挖礦、評論即挖礦、看視頻即挖礦、導航即挖礦,等等等等。都是為了調(diào)動使用者的積極性,這種分發(fā)機制無疑是最公平的,其他方式都是直接購買,這并非是區(qū)塊所追求的去中心化。
    發(fā)表于 02-14 14:21 ?570次閱讀

    什么是區(qū)塊不可能三角為什么不可突破

    CAP定理證明了:當網(wǎng)絡存在分區(qū)時,提供可靠的原子一致性數(shù)據(jù)是不可能的,但是想要實現(xiàn)一致性、可用性、分區(qū)容錯性,個屬性中的兩個是可行的。在異步通信系統(tǒng)中,當沒有鎖提供時,如果出現(xiàn)消息丟失,即使允許過時的數(shù)據(jù)返回,提供一致性數(shù)據(jù)也是不可
    發(fā)表于 02-26 11:03 ?3277次閱讀
    什么是<b class='flag-5'>區(qū)塊</b><b class='flag-5'>鏈</b><b class='flag-5'>不可能</b><b class='flag-5'>三角</b>為什么<b class='flag-5'>不可</b><b class='flag-5'>突破</b>

    如何解決區(qū)塊技術(shù)不可能三角的行業(yè)問題

    比特幣的區(qū)塊技術(shù)就是追求的“不可能三角”里的“去中心化”和“安全性”。它的每一個節(jié)點都下載和儲存所有的交易數(shù)據(jù),但也同時帶來了巨大的儲存空間損耗和較長的校驗時間。比特幣每秒只能處理7
    發(fā)表于 03-11 10:40 ?1456次閱讀

    區(qū)塊技術(shù)還長期面臨著一個不可能三角技術(shù)的瓶頸

    區(qū)塊由“數(shù)據(jù)塊”和“鏈條”組成,是一種分布式記賬底層技術(shù)。一般認為,區(qū)塊具有去中心化、高安全性等核心優(yōu)點,可以完美解決共享經(jīng)濟發(fā)展過程中的信息不對稱、交易成本高、陌生人信任等難題。
    發(fā)表于 05-08 10:16 ?775次閱讀

    Amino將成為解決區(qū)塊不可能三角的破局方案

    Amino是一個5G智能Cloud-edge云邊計算網(wǎng)絡,通過節(jié)點分布式協(xié)作、數(shù)據(jù)分析機制和創(chuàng)新的PoC體系,優(yōu)化調(diào)度算力資源。跳出上治理和下擴容,Amino提出將AI治理作為解決“區(qū)塊
    發(fā)表于 05-14 10:54 ?2855次閱讀

    區(qū)塊協(xié)議存在著高耗能不夠民主容易分叉可拓展性差等問題的缺陷

    所謂魚和熊掌不可得兼,很多人已經(jīng)默認區(qū)塊里的「不可能三角」問題是無法解決的,正如 Micali 所說,“2000 年來的
    發(fā)表于 06-17 11:18 ?867次閱讀

    如何解決公面臨的不可能三角模型問題

    「底層公 → 解決方案 → 行業(yè)應用」是區(qū)塊業(yè)內(nèi)公認的發(fā)展邏輯。作為底層技術(shù),公支撐整個行業(yè)的發(fā)展,決定區(qū)塊
    發(fā)表于 07-19 10:58 ?2206次閱讀
    如何解決公<b class='flag-5'>鏈</b>面臨的<b class='flag-5'>不可能</b><b class='flag-5'>三角</b>模型問題

    Layer2 二層網(wǎng)絡解決方案可以解決區(qū)塊什么問題

    區(qū)塊行業(yè)存在一個“不可能三角”問題,即安全、可擴展性、去中心化,只能犧牲其中一個去實現(xiàn)另外兩個。
    發(fā)表于 08-12 14:39 ?2074次閱讀

    什么是區(qū)塊中的不可能三角

    區(qū)塊本質(zhì)上是一個去中心化的分布式賬本數(shù)據(jù)庫,它也存在“不可能三角”。今天,我們就來講講“不可能三角
    發(fā)表于 12-13 08:59 ?8561次閱讀

    區(qū)塊的分片技術(shù)是怎樣的技術(shù)

    區(qū)塊難題是區(qū)塊網(wǎng)絡和點對點(P2P)交易操作面臨的挑戰(zhàn)之一,大多數(shù)加密貨幣平臺必須在去中心化,安全性和可擴展性之間選擇兩個功能,也就是我們通常提到的“
    發(fā)表于 01-07 11:25 ?2306次閱讀

    區(qū)塊如何解決醫(yī)療數(shù)據(jù)中的不可能三角

    不可能三角”一詞,最早來自金融經(jīng)濟領(lǐng)域,指的是資本自由流動、匯率穩(wěn)定和貨幣政策獨立性不可能兼得。
    發(fā)表于 01-17 10:26 ?1642次閱讀