CTOR(規(guī)范交易排序)是BCH在2018年11月硬分叉升級的一項(xiàng)內(nèi)容。最初因?yàn)檫@項(xiàng)內(nèi)容引發(fā)了廣泛的討論,提到CTOR必須提到石墨烯技術(shù)(Graphene協(xié)議),支持者認(rèn)為CTOR能夠有效的配合石墨烯技術(shù)壓縮區(qū)塊大小,優(yōu)化區(qū)塊傳播,有明顯的優(yōu)勢,沒有明顯的缺點(diǎn)。反對者則認(rèn)為現(xiàn)有的TTOR(拓?fù)浣灰着判颍┓€(wěn)定運(yùn)行多年,更加安全,沒有什么明顯的劣勢,而CTOR則會帶來未知風(fēng)險(xiǎn),且沒有明顯的作用。CTOR的爭鋒不斷升級,甚至后來爆發(fā)的算力戰(zhàn)也有關(guān)于CTOR的爭鋒,不過最終CTOR還是成功應(yīng)用在BCH上。如今已將近半年,石墨烯怎么樣了?CTOR究竟有沒有作用呢?
礦工之痛
礦工希望能夠提升區(qū)塊傳播到各個(gè)節(jié)點(diǎn)的效率,每一秒的延遲都會降低他們獲得區(qū)塊獎勵和手續(xù)費(fèi)的幾率。而每一個(gè)打包區(qū)塊里的交易數(shù)量都會增加區(qū)塊體積,區(qū)塊越大則占用帶寬越多,則傳播效率越低,為了獲得區(qū)塊獎勵,礦工不得不限制區(qū)塊里的交易數(shù)量,或者收取更高的交易費(fèi)來彌補(bǔ)他們降低的成功率。不得不說這是一種極其低效的行為,所以長久以來很多研究都就“如何在盡可能小的寬帶條件下實(shí)現(xiàn)區(qū)塊傳播”這一課題展開了深入的探討。簡而言之,占用的寬帶越小,則傳播的速率就越快。隨后致密區(qū)塊、極瘦區(qū)塊都相繼被提出,但目前為止,效果最好也最被看好的是石墨烯技術(shù),是公認(rèn)的寬帶占用最少的方案來完成區(qū)塊傳播。
石墨烯和CTOR運(yùn)行原理
當(dāng)用戶進(jìn)行交易時(shí),包含這筆交易的信息的區(qū)塊會在全網(wǎng)所有的節(jié)點(diǎn)進(jìn)行傳播,最終同步至所有節(jié)點(diǎn)。在這一過程中,所有未經(jīng)處理的交易都會存儲在內(nèi)存當(dāng)中并被統(tǒng)稱為mempool。通常情況下,該交易會在10分鐘內(nèi)被寫入在一個(gè)區(qū)塊中,在這種情況下,該交易被視為有效并且已經(jīng)由網(wǎng)絡(luò)處理。
如果一個(gè)節(jié)點(diǎn)需要傳播一個(gè)區(qū)塊上的所有交易,那么它將有如下選擇:一是傳遞包含所有交易的整個(gè)區(qū)塊,這也是過去比特幣一直所采用的方法;二是為區(qū)塊中的所有交易及其次序傳遞標(biāo)識符,以便接收到標(biāo)識符的節(jié)點(diǎn)能夠基于mempool中已有的交易來構(gòu)建區(qū)塊。顯然易見的是,第二種方式更有效率,石墨烯正是借助這種方式來減少區(qū)塊傳播所需的帶寬。
使用石墨烯技術(shù)還原新區(qū)塊的節(jié)點(diǎn)往往會構(gòu)建兩個(gè)數(shù)據(jù)結(jié)構(gòu):首先,它會構(gòu)造一個(gè)包含區(qū)塊中的所有交易的布隆過濾器;其次,它構(gòu)建包含區(qū)塊中的所有交易的IBLT(即可逆的布隆查找表)。隨后,這些不附帶整個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)都會被發(fā)送到各個(gè)節(jié)點(diǎn)上。接收這些數(shù)據(jù)結(jié)構(gòu)的節(jié)點(diǎn)將通過布隆過濾器傳遞mempool中的所有交易,從而提供區(qū)塊中所有交易的列表。然而,由于布隆過濾器可能存在一定的誤報(bào)率,因此列表中的交易可能會多于實(shí)際數(shù)量,也可能會遺漏mempool中的交易。考慮到這一隱患,接收數(shù)據(jù)結(jié)構(gòu)的節(jié)點(diǎn)將會從IBLT中解壓縮待處理的交易,從而識別任何誤報(bào)或遺漏的交易。最后,接收數(shù)據(jù)結(jié)構(gòu)的節(jié)點(diǎn)還會在必要的情況下向其它節(jié)點(diǎn)查詢遺漏的交易。
通過Graphene協(xié)議的這兩個(gè)數(shù)據(jù)結(jié)構(gòu)足以恢復(fù)區(qū)塊中的所有交易信息,那么,接下來的步驟就是將還原的交易回歸到正確的順序了。第一個(gè)版本的Graphene協(xié)議會通過布隆過濾器和IBLT來傳遞有關(guān)順序的交易信息。雖然這些信息占用的寬帶并不大,但還是會隨著區(qū)塊中的交易數(shù)量的增加而增加。而CTOR是作用是使區(qū)塊按照既定規(guī)范順序進(jìn)行交易,自從以后,借助Graphene協(xié)議進(jìn)行的區(qū)塊傳播可以不包含順序信息。此舉進(jìn)一步強(qiáng)化了石墨烯技術(shù)的優(yōu)勢——區(qū)塊可以變得極大,而布隆過濾器和IBLT卻可以維持極小的狀態(tài)。
石墨烯取得初步成效
就在幾天之前,致力于合作開發(fā)石墨烯技術(shù)的馬薩諸塞州立大學(xué)的團(tuán)隊(duì)與Bitcoin Unlimited在reddit/BTC板塊發(fā)布了關(guān)于石墨烯技術(shù)的最新進(jìn)展,對此我們也及時(shí)發(fā)布了文章同步動態(tài),感興趣的同學(xué)可以翻閱前文。團(tuán)隊(duì)表示石墨烯技術(shù)第一階段的開發(fā)任務(wù)——引入了各種安全性和性能的改進(jìn)已經(jīng)完成,石墨烯技術(shù)開發(fā)工作已經(jīng)完成了一半,第二階段也是最后階段的開發(fā)任務(wù)——實(shí)現(xiàn)了故障恢復(fù)和mempool同步將在兩個(gè)月內(nèi)開始。
團(tuán)隊(duì)也公布了開發(fā)成果,故障率大幅下降,在連續(xù)500個(gè)區(qū)塊的測試中只有2次解碼失敗,4次丟失交易,在完成第二階段后將徹底修復(fù)這一漏洞。而壓縮區(qū)塊的作用極其成功,平均壓縮率高達(dá)99.5%,而超過1000筆TX的區(qū)塊平均壓縮率高達(dá)99.8%。
CTOR有沒有用??
石墨烯的開發(fā)報(bào)告引起了社區(qū)的廣泛討論,其中很多人特別好奇的是關(guān)于CTOR的采用。對此,石墨烯團(tuán)隊(duì)專門發(fā)表了關(guān)于CTOR采用情況的報(bào)告。
報(bào)告顯示,從BU客戶端1.6.0版本開始,石墨烯默認(rèn)使用CTOR,不需要再發(fā)送順序信息。開發(fā)者進(jìn)行一項(xiàng)單獨(dú)的實(shí)驗(yàn):
從區(qū)塊000000000000000002b18e2235e5ae3f62abb4be1bd6e933bafd47899c2ab721開始,在主網(wǎng)上運(yùn)行了兩個(gè)不同的BU節(jié)點(diǎn)。一個(gè)為使用CTOR的版本,一個(gè)為不使用CTOR的版本。共有533個(gè)區(qū)塊,其中13個(gè)區(qū)塊的交易量超過1K。壓縮率計(jì)算為1-g / f,其中g(shù)和f分別是石墨烯和完整塊的字節(jié)大小。
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,對所有塊的中值壓縮的改進(jìn)相當(dāng)于區(qū)塊大小減少約21%。對于交易量超過1K的區(qū)塊,區(qū)塊大小減少約71%。因此我們可以看到with_ctor比no_ctor實(shí)現(xiàn)更好的壓縮。CTOR對壓縮的提升尤其是對于超過1K筆交易的區(qū)塊來說非常重要的。這可能也解釋了為什么在BCH壓力測試期間報(bào)告里順序信息占了石墨烯區(qū)塊尺寸的大部分,在報(bào)告里順序信息平均達(dá)到了37.03KB,但在這次的實(shí)驗(yàn)里,只有321.37B,這足以顯示CTOR的巨大作用。
BCH正在實(shí)現(xiàn)技術(shù)領(lǐng)先?
石墨烯和CTOR的階段性成功都顯示了BCH開發(fā)組的強(qiáng)大力量,當(dāng)然目前位置石墨烯還不是成熟的技術(shù),仍需開發(fā)者繼續(xù)努力,但從開發(fā)速度來看,石墨烯將會提前與我們見面的時(shí)間。
在目前的擴(kuò)容方案中,閃電網(wǎng)絡(luò)仍然仍然仍然(重要的事情說三遍)處于測試中,最新消息BTC未確認(rèn)交易再次高達(dá)5萬筆,交易確認(rèn)緩慢,提現(xiàn)轉(zhuǎn)賬都受到了較大影響,二層網(wǎng)絡(luò)擴(kuò)容之路渺茫無期;或許是為了特意彰顯128M的容量,BSV習(xí)慣性攢巨塊,最近又爆出6個(gè)區(qū)塊深度重組的丑聞,網(wǎng)絡(luò)安全穩(wěn)定受到質(zhì)疑,交易所紛紛下架,前途堪憂。
在5月份的硬分叉升級中,BCH將領(lǐng)先BTC先一步上線成熟技術(shù)Schnorr簽名,在此之后BCH的領(lǐng)先地位將進(jìn)一步加強(qiáng)。
評論
查看更多