石墨烯讓BCH實現技術領先

CTOR打腫黑粉臉 | 石墨烯讓BCH實現技術領先


CTOR(規範交易排序)是BCH在2018年11月硬分叉升級的一項內容。最初因為這項內容引發了廣泛的討論,提到CTOR必須提到石墨烯技術(Graphene協議),支持者認為CTOR能夠有效的配合石墨烯技術壓縮區塊大小,優化區塊傳播,有明顯的優勢,沒有明顯的缺點。反對者則認為現有的TTOR(拓撲交易排序)穩定運行多年,更加安全,沒有什麼明顯的劣勢,而CTOR則會帶來未知風險,且沒有明顯的作用。CTOR的爭鋒不斷升級,甚至後來爆發的算力戰也有關於CTOR的爭鋒,不過最終CTOR還是成功應用在BCH上。如今已將近半年,石墨烯怎麼樣了?CTOR究竟有沒有作用呢?

礦工之痛

礦工希望能夠提升區塊傳播到各個節點的效率,每一秒的延遲都會降低他們獲得區塊獎勵和手續費的幾率。而每一個打包區塊裡的交易數量都會增加區塊體積,區塊越大則佔用帶寬越多,則傳播效率越低,為了獲得區塊獎勵,礦工不得不限制區塊裡的交易數量,或者收取更高的交易費來彌補他們降低的成功率。不得不說這是一種極其低效的行為,所以長久以來很多研究都就“如何在儘可能小的寬帶條件下實現區塊傳播”這一課題展開了深入的探討。簡而言之,佔用的寬帶越小,則傳播的速率就越快。隨後緻密區塊、極瘦區塊都相繼被提出,但目前為止,效果最好也最被看好的是石墨烯技術,是公認的寬帶佔用最少的方案來完成區塊傳播。

石墨烯和CTOR運行原理

當用戶進行交易時,包含這筆交易的信息的區塊會在全網所有的節點進行傳播,最終同步至所有節點。在這一過程中,所有未經處理的交易都會存儲在內存當中並被統稱為mempool。通常情況下,該交易會在10分鐘內被寫入在一個區塊中,在這種情況下,該交易被視為有效並且已經由網絡處理。

如果一個節點需要傳播一個區塊上的所有交易,那麼它將有如下選擇:一是傳遞包含所有交易的整個區塊,這也是過去比特幣一直所採用的方法;二是為區塊中的所有交易及其次序傳遞標識符,以便接收到標識符的節點能夠基於mempool中已有的交易來構建區塊。顯然易見的是,第二種方式更有效率,石墨烯正是藉助這種方式來減少區塊傳播所需的帶寬。

使用石墨烯技術還原新區塊的節點往往會構建兩個數據結構:首先,它會構造一個包含區塊中的所有交易的布隆過濾器;其次,它構建包含區塊中的所有交易的IBLT(即可逆的布隆查找表)。隨後,這些不附帶整個節點的數據結構都會被髮送到各個節點上。接收這些數據結構的節點將通過布隆過濾器傳遞mempool中的所有交易,從而提供區塊中所有交易的列表。然而,由於布隆過濾器可能存在一定的誤報率,因此列表中的交易可能會多於實際數量,也可能會遺漏mempool中的交易。考慮到這一隱患,接收數據結構的節點將會從IBLT中解壓縮待處理的交易,從而識別任何誤報或遺漏的交易。最後,接收數據結構的節點還會在必要的情況下向其它節點查詢遺漏的交易。

通過Graphene協議的這兩個數據結構足以恢復區塊中的所有交易信息,那麼,接下來的步驟就是將還原的交易迴歸到正確的順序了。第一個版本的Graphene協議會通過布隆過濾器和IBLT來傳遞有關順序的交易信息。雖然這些信息佔用的寬帶並不大,但還是會隨著區塊中的交易數量的增加而增加。而CTOR是作用是使區塊按照既定規範順序進行交易,自從以後,藉助Graphene協議進行的區塊傳播可以不包含順序信息。此舉進一步強化了石墨烯技術的優勢——區塊可以變得極大,而布隆過濾器和IBLT卻可以維持極小的狀態。

石墨烯取得初步成效

就在幾天之前,致力於合作開發石墨烯技術的馬薩諸塞州立大學的團隊與Bitcoin Unlimited在reddit/BTC板塊發佈了關於石墨烯技術的最新進展,對此我們也及時發佈了文章同步動態,感興趣的同學可以翻閱前文。團隊表示石墨烯技術第一階段的開發任務——引入了各種安全性和性能的改進已經完成,石墨烯技術開發工作已經完成了一半,第二階段也是最後階段的開發任務——實現了故障恢復和mempool同步將在兩個月內開始。

團隊也公佈了開發成果,故障率大幅下降,在連續500個區塊的測試中只有2次解碼失敗,4次丟失交易,在完成第二階段後將徹底修復這一漏洞。而壓縮區塊的作用極其成功,平均壓縮率高達99.5%,而超過1000筆TX的區塊平均壓縮率高達99.8%。

CTOR有沒有用??

石墨烯的開發報告引起了社區的廣泛討論,其中很多人特別好奇的是關於CTOR的採用。對此,石墨烯團隊專門發表了關於CTOR採用情況的報告。

報告顯示,從BU客戶端1.6.0版本開始,石墨烯默認使用CTOR,不需要再發送順序信息。開發者進行一項單獨的實驗:

從區塊000000000000000002b18e2235e5ae3f62abb4be1bd6e933bafd47899c2ab721開始,在主網上運行了兩個不同的BU節點。一個為使用CTOR的版本,一個為不使用CTOR的版本。共有533個區塊,其中13個區塊的交易量超過1K。壓縮率計算為1-g / f,其中g和f分別是石墨烯和完整塊的字節大小。

with_ctor:

總體最佳壓縮:0.9988310929281122

平均壓縮(所有塊):0.9622354472957148

中值壓縮(所有塊):0.9887816917208885

平均壓縮(塊> 1K tx):0.9964066061006223

中值壓縮(塊> 1K tx):0.9976625137327318

no_ctor:

總體最佳壓縮:0.9960665539078787

平均壓縮(所有塊):0.9595203105258268

中值壓縮(所有塊):0.9855845466339916

平均壓縮(塊> 1K tx):0.9915431691098592

中值壓縮(塊> 1K tx):0.9929303640862496

使用with_ctor over no_ctor,對所有塊的中值壓縮的改進相當於區塊大小減少約21%。對於交易量超過1K的區塊,區塊大小減少約71%。因此我們可以看到with_ctor比no_ctor實現更好的壓縮。CTOR對壓縮的提升尤其是對於超過1K筆交易的區塊來說非常重要的。這可能也解釋了為什麼在BCH壓力測試期間報告裡順序信息佔了石墨烯區塊尺寸的大部分,在報告裡順序信息平均達到了37.03KB,但在這次的實驗裡,只有321.37B,這足以顯示CTOR的巨大作用。

BCH正在實現技術領先?

石墨烯和CTOR的階段性成功都顯示了BCH開發組的強大力量,當然目前位置石墨烯還不是成熟的技術,仍需開發者繼續努力,但從開發速度來看,石墨烯將會提前與我們見面的時間。

在目前的擴容方案中,閃電網絡仍然仍然仍然(重要的事情說三遍)處於測試中,最新消息BTC未確認交易再次高達5萬筆,交易確認緩慢,提現轉賬都受到了較大影響,二層網絡擴容之路渺茫無期;或許是為了特意彰顯128M的容量,BSV習慣性攢巨塊,最近又爆出6個區塊深度重組的醜聞,網絡安全穩定受到質疑,交易所紛紛下架,前途堪憂。

在5月份的硬分叉升級中,BCH將領先BTC先一步上線成熟技術Schnorr簽名,在此之後BCH的領先地位將進一步加強。


分享到:


相關文章: