比特幣規(guī)范交易排序提議的評(píng)估
本文是對(duì)規(guī)范交易排序提議(CTOR)的評(píng)估,該提議旨在改變比特幣現(xiàn)金(BCH)網(wǎng)絡(luò)中塊內(nèi)交易的排序。 (nChain 認(rèn)為 BCH 是真正的比特幣。)在總結(jié)提議后,我們根據(jù)常規(guī)變更管理標(biāo)準(zhǔn)評(píng)估了提議的變更。
由于下列討論的原因,我們認(rèn)為沒(méi)有足夠的證據(jù)表明 CTOR 提議將實(shí)際提供其聲稱的益處,并且實(shí)現(xiàn)這種有爭(zhēng)議的共識(shí)變更的風(fēng)險(xiǎn)超過(guò)任何未經(jīng)證實(shí)的回報(bào)。因此,我們認(rèn)為 CTOR 提議不應(yīng)在任何比特幣現(xiàn)金實(shí)現(xiàn)中實(shí)施。
1. CTOR 提議
目前,BCH 塊內(nèi)的交易排序是一種松散的部分排序形式:
? 第一筆交易是 Coinbase 交易;
? 如果交易在同一區(qū)塊中花費(fèi)另一筆交易的產(chǎn)出,則支出交易必須在交易所花費(fèi)的交易之后;
? 所有其他交易–即花費(fèi)先前區(qū)塊交易所獲產(chǎn)出的交易 - 可以按任何順序出現(xiàn)。
這被稱為交易拓?fù)渑判颍═TOR)。
規(guī)范交易排序提議(CTOR)旨在根據(jù)如下方式改變區(qū)塊內(nèi)交易的排序:
? 第一筆交易是 Coinbase 交易;
? 所有其他交易按交易 ID 字母順序排序。
CTOR 提議聲稱跟 TTOR 相比有多項(xiàng)優(yōu)勢(shì),即:
? 消除一類可擴(kuò)展性的挑戰(zhàn)
? 緊湊型包含/排除證明
? 選擇加入交易的本地化
? 塊發(fā)射和傳播的效率提高
? 軟件實(shí)現(xiàn)簡(jiǎn)化
? 潛在攻擊媒介的緩解
在后續(xù)文章中,其聲稱 CTOR 是分割比特幣的先決條件,它本身被定位為 CPU 開(kāi)發(fā)從單核性能提升到多核產(chǎn)品的轉(zhuǎn)變之后的下一步。
2. 社區(qū)反應(yīng)
CTOR 引發(fā)了比特幣社區(qū)內(nèi)部的爭(zhēng)論,激烈地提出了贊成和反對(duì)它的各種意見(jiàn)。下面總結(jié)了這些意見(jiàn),這也明顯表明 CTOR 面臨著重大的反對(duì)意見(jiàn),或者至少說(shuō),面臨著關(guān)于是否應(yīng)該實(shí)現(xiàn)的嚴(yán)重問(wèn)題。
? 在私人 vs 去信任分片中,Tom Zander(Flowee the Hub 創(chuàng)始人)反對(duì) CTOR 作為分片的先決條件,并指出可以在不影響共識(shí)規(guī)則的情況下實(shí)現(xiàn)分片。
? Rawpool BCH 實(shí)驗(yàn)室制作了一份技術(shù)報(bào)告(官方英文翻譯,社區(qū)提供的英文翻譯),其中指出當(dāng)前的 TTOR 實(shí)現(xiàn)已經(jīng)有多年的發(fā)展和漸進(jìn)式改進(jìn),但在成熟的CTOR 實(shí)現(xiàn)完成之前保留進(jìn)一步的判斷。
? Jonathan Toomim 發(fā)表了規(guī)范交易排序,或:我是如何學(xué)會(huì)停止擔(dān)心并開(kāi)始喜歡 DAG 的,他在其中提到,在構(gòu)建塊時(shí),父子支付方案結(jié)構(gòu)是一項(xiàng)重要的成本,并且 Graphene 的效率可以比沒(méi)有排序時(shí)高 7 倍以上。他提出 CTOR 允許簡(jiǎn)化代碼,最后得出結(jié)論認(rèn)為 CTOR 不是并行驗(yàn)證的先決條件。
? /u/awemany (Bitcoin Unlimited 成員), 引用了 Tom Zander 和其他人的看法,批評(píng)了 CTOR 提議,認(rèn)為 CTOR 解決方案的許多動(dòng)機(jī)和論點(diǎn)在審查時(shí)都無(wú)效。
? /u/Chris_Pacia (OpenBazaar 開(kāi)發(fā)人員) 對(duì)/u/awemany 先前的意見(jiàn)提出了批評(píng),該批評(píng)重申了 CTOR 的動(dòng)機(jī),不同意在沒(méi)有它的情況下可以實(shí)現(xiàn)并行,并且主要通過(guò)引入 CTOR 作為次要問(wèn)題部分地將爭(zhēng)論重新圍繞著消除 TTOR 進(jìn)行。
? /u/markblundeberg (Simple Ledger Protoco 合著者) 分析了比特幣 ABC 版本0.17.1 和 0.18.1 之間的代碼變化。他: (i) 指出,用于驗(yàn)證 CTOR 塊的并行算法(稱為 Out-Then-In 或 OTI)與現(xiàn)有的 TTOR 同樣有效(假設(shè)在內(nèi)部數(shù)據(jù)結(jié)構(gòu)中進(jìn)行一次交易序數(shù)的一次性非共識(shí)變化);(ii) 觀察到根據(jù) GavinAndresen 的建議,可以遵循當(dāng)前的共識(shí)規(guī)則實(shí)現(xiàn) Graphene; 且(iii) 得出了一些結(jié)論,包括 CTOR 建議中最具破壞性的部分是刪除了 TTOR,而且 CTOR 不會(huì)為塊驗(yàn)證提供任何短期好處,且其長(zhǎng)期效益尚未確定。
? 在一對(duì)論壇帖子中,Steve Shadders(nChain 開(kāi)發(fā)人員和比特幣 SV 技術(shù)總監(jiān) )比較了在將交易插入到 Merkle 樹(shù)中時(shí) Merkle 根重新計(jì)算的成本(根據(jù)CTOR 的要求)與根據(jù)當(dāng)前優(yōu)化將交易追加到最后的成本,表明需要對(duì)比特幣進(jìn)行更大的內(nèi)部更改,即用 Merklix 樹(shù)替換 Merkle 樹(shù)結(jié)構(gòu)。
? Andrew Stone (Bitcoin Unlimited 主開(kāi)發(fā)人員) 發(fā)表了為什么 ABC 的 CTOR 無(wú)法擴(kuò)展化,他認(rèn)為 CTOR 后的分片提議既不需要 CTOR 也不能解決激勵(lì)性的可擴(kuò)展化問(wèn)題,而且 Graphene 可以在當(dāng)前的共識(shí)規(guī)則下進(jìn)行,使得 CTOR 對(duì)于網(wǎng)絡(luò)優(yōu)化來(lái)說(shuō)不那么必要。
3. 評(píng)估 CTOR 提議
任何改變現(xiàn)有系統(tǒng)的提議都應(yīng)根據(jù)多項(xiàng)標(biāo)準(zhǔn)進(jìn)行評(píng)估,包括:
? 范圍
? 風(fēng)險(xiǎn)
? 回報(bào)
? 實(shí)現(xiàn)成本
? 投入市場(chǎng)時(shí)間
? 維護(hù)影響
o 技術(shù)資源的可用性
o 外部 SLA 管理
? 技術(shù)依賴性
? 非功能性需求影響
其中每一項(xiàng)都將以比特幣特定和更廣泛的通用 IT 系統(tǒng)角度進(jìn)行評(píng)估。
3.1范圍
3.1.1代碼更改的規(guī)模
CTOR 提議的范圍大小在于實(shí)現(xiàn)它所需的代碼更改范圍。這是對(duì) bitcoin daemon 的內(nèi)部更改。這項(xiàng)工作已在比特幣 ABC 0.18.1 中完成。
3.1.2基礎(chǔ)設(shè)施要求
目前不需要額外的基礎(chǔ)設(shè)施。
3.1.3對(duì)上下游系統(tǒng)的影響
CTOR 是對(duì)共識(shí)的更改。為了避免鏈分割(無(wú)論出于什么意圖),在比特幣現(xiàn)金網(wǎng)絡(luò)上運(yùn)行的每個(gè)完全驗(yàn)證的節(jié)點(diǎn)實(shí)現(xiàn)必須實(shí)施一系列兼容的更改。
使用 getblocktemplate 結(jié)果的采礦池軟件應(yīng)該不受影響,但是任何自己根據(jù)返回?cái)?shù)據(jù)構(gòu)建塊的軟件都必須了解 CTOR 規(guī)則。
這不會(huì)直接影響 SPV 網(wǎng)絡(luò)客戶端。
3.1.4操作程序
使用 CTOR 操作節(jié)點(diǎn)無(wú)需其他程序。
3.1.5支持流程
需要對(duì)支持流程進(jìn)行最小的更改。在確定任何被拒絕或孤立的塊的根本原因時(shí),團(tuán)隊(duì)必須了解新規(guī)則。
3.1.6用戶培訓(xùn)
比特幣現(xiàn)金網(wǎng)絡(luò)的用戶不應(yīng)該知道 CTOR 的任何變化。但是,在鏈分割的情況下,用戶可以觀察他們的交易(無(wú)論這些交易是已確認(rèn)還是未確認(rèn)),這取決于他們的 SPV 客戶端采樣的節(jié)點(diǎn)以及競(jìng)爭(zhēng)塊是否都包括了他們的交易。
3.2 風(fēng)險(xiǎn)
CTOR 提議改變了當(dāng)前的共識(shí)規(guī)則。任何共識(shí)規(guī)則的更改都要求使用同時(shí)激活的一組一致更改來(lái)修改所有完全驗(yàn)證的節(jié)點(diǎn)實(shí)現(xiàn)。這意味著更改或棄用每個(gè)節(jié)點(diǎn)中的代碼,這些節(jié)點(diǎn)的行為當(dāng)前在這些實(shí)現(xiàn)中是一致的。
即使有足夠的測(cè)試,甚至在 testnet 上的多個(gè)實(shí)現(xiàn)產(chǎn)生了足夠的證據(jù),更改也可能會(huì)引入一些根本不明顯的細(xì)微錯(cuò)誤。僅在重要用途之后顯示的極端情況可能會(huì)出現(xiàn),其結(jié)果的嚴(yán)重性可能不盡相同,包括無(wú)意的鏈分裂。但這不是沒(méi)有先例。
正如前面的“社區(qū)反應(yīng)”部分所指出的那樣,人們對(duì) CTOR 提議提出了重大的反對(duì)意見(jiàn),或者至少提出了一些嚴(yán)肅的問(wèn)題。值得注意的是,Bitcoin Unlimited 成員以壓倒多數(shù)投票反對(duì) CTOR 提議(22 票反對(duì); 5 票贊成; 3 票棄權(quán))。比特幣 SV 實(shí)現(xiàn)將不具備 CTOR 功能。
實(shí)現(xiàn)共識(shí)變更是有風(fēng)險(xiǎn)的,但在社區(qū)內(nèi)存在顯著意見(jiàn)分歧時(shí)實(shí)現(xiàn)共識(shí)變更更是如此。因此,對(duì) CTOR 提案的風(fēng)險(xiǎn)評(píng)估很高。
3.3 回報(bào)
為了評(píng)估 CTOR 提議的潛在回報(bào)(或其益處或由其提供的價(jià)值),我們考慮了上述CTOR 的動(dòng)機(jī),并評(píng)估 CTOR 是否可能實(shí)現(xiàn)這些假設(shè)的目標(biāo)。
3.3.1消除一類可擴(kuò)展性挑戰(zhàn)
在 CTOR 提議及其后續(xù)文章提出分片策略的背景下,可擴(kuò)展性似乎指的是擴(kuò)展計(jì)算資源的能力??蓴U(kuò)展性還可以指容量或抗逆性的擴(kuò)展。然而,由于這些都沒(méi)有得到討論,因此將在可擴(kuò)展算力的背景下評(píng)估該聲明。
CTOR 提議將相當(dāng)大的部分專門用于將隨機(jī)排序的項(xiàng)目排列成拓?fù)渑判蛩璧挠?jì)算資源,同時(shí)提供離線和在線的現(xiàn)有技術(shù)。為了對(duì)區(qū)塊內(nèi)的交易進(jìn)行分類,CTOR 是 TTOR的一種計(jì)算效率更高的替代方案。
CTOR 提議未能承認(rèn)的是,交易是通過(guò) P2P 網(wǎng)絡(luò)接收的,并以拓?fù)漤樞蚪邮苓M(jìn)入mempool;任何沒(méi)有花費(fèi) UTXO 集合成員的交易(通過(guò)不存在或通過(guò)雙重支出)不會(huì)被允許進(jìn)入 mempool。簡(jiǎn)單地按照接收順序維護(hù)有效交易列表(或不論底層存儲(chǔ)布局如何維護(hù)按順序排列的交易 ID 列表,或者在接收時(shí)分配序號(hào))可確保它們可以在塊內(nèi)呈現(xiàn),而無(wú)需任何計(jì)算資源來(lái)應(yīng)用拓?fù)渑判颉?/p>
將給定的非拓?fù)渑判虻囊蠓胖迷趬K內(nèi)的交易上引發(fā)了對(duì)額外計(jì)算的需要。這可以使用插入排序提前完成,或者可以在從底層存儲(chǔ)檢索交易時(shí)對(duì)交易進(jìn)行重新排序。后續(xù)分片文章引用了一個(gè) Merklix 樹(shù),這是一種在項(xiàng)目插入時(shí)自然進(jìn)行排序的數(shù)據(jù)結(jié)構(gòu)。
現(xiàn)有的 TTOR 兼容代碼隨著時(shí)間的推移已得到逐步優(yōu)化。將交易添加到支持 Merkle 樹(shù)列表不需要對(duì)整個(gè)樹(shù)進(jìn)行重新計(jì)算;隨著交易的添加和樹(shù)的變高,應(yīng)用了優(yōu)化來(lái)促進(jìn)樹(shù)的增長(zhǎng)并將現(xiàn)有根轉(zhuǎn)換為內(nèi)部節(jié)點(diǎn)。插入到 Merklix 樹(shù)中提供了合理的排序,但引入了需要 Merkle 根完全重新計(jì)算的可能性(碰巧排序?yàn)?Merkle 等同結(jié)構(gòu)的附加交易可能會(huì)以同樣方式被優(yōu)化)。
雖然進(jìn)行擴(kuò)展以增加處理的交易量的目標(biāo)是令人滿意的,但 CTOR 提議沒(méi)有提供具體證據(jù)表明 CTOR 現(xiàn)在降低了計(jì)算資源的利用率,也沒(méi)有證明擴(kuò)展的明顯收益。此外,CTOR提議的作者沒(méi)有根據(jù) TTOR 和 CTOR 節(jié)點(diǎn)策略的比較提供任何測(cè)試指標(biāo)或儀表數(shù)據(jù)。也沒(méi)有關(guān)于未來(lái)的擴(kuò)展只能通過(guò)共識(shí)變化來(lái)實(shí)現(xiàn)的任何結(jié)論性的論據(jù)。
3.3.2緊湊型包含/排除證明
CTOR 提議聲稱可以提供緊湊型包含和排除證明這一項(xiàng)好處。雖然緊湊型證明對(duì)于 SPV客戶端用例來(lái)說(shuō)當(dāng)然是非常理想的,但并沒(méi)有給出明確的解釋。
其對(duì)于如何生成排除證明也沒(méi)有提供任何解釋。
Merkle 證明
對(duì)緊湊型證明的一種可能的解釋是 Merkle 證明以某種方式被壓縮。
從 CTOR 提議中可以明顯看出其對(duì) Merkle 包含證明的緊湊性沒(méi)有影響。
我們有理由看到共享一個(gè)父節(jié)點(diǎn)(因此共同的 Merkle 證明直到最終的葉子節(jié)點(diǎn))的兩個(gè)葉子節(jié)點(diǎn)(圖中的 TX A 和 TX C)如何不能在它們之間以詞序方式包含交易(圖中的 TX B)。根據(jù) CTOR 規(guī)則,交易應(yīng)按交易 ID 順序列出,因此交易不包括在內(nèi):
如果查詢的交易 TXB 落在具有不同父節(jié)點(diǎn) inode 3 和 inode 4 的兩個(gè)葉節(jié)點(diǎn) TXA 和TXC 之間,則很難馬上清楚地了解證明的保持方式,因?yàn)樗鼈儾粫?huì)再在其 Merkle 證明中共享公共路徑:
即使假設(shè)在具有不同父節(jié)點(diǎn)的連續(xù)葉節(jié)點(diǎn)之間可能存在排除證明,排除證明也綁定到了單個(gè)塊的范圍。為了證明排除整個(gè)塊鏈,必須為鏈中的每個(gè)塊生成證明。
鑒于無(wú)法使用此方法為迄今為止開(kāi)采的任何塊生成排除證明,因此無(wú)法生成全鏈排除證明。
其沒(méi)有提出排除證明的用例,也沒(méi)有得出它們是由 CTOR 啟用的結(jié)論。沒(méi)有提供包含證明緊湊性的實(shí)證。
范圍限制
在一篇題為關(guān)于令牌協(xié)議的緊湊證明的帖子中,Joannes Vermorel(CTOR 提案合著者)提出了緊湊令牌證明的概念。在提及緊湊的包含/排除證明時(shí),CTOR 提議指的可能是這篇文章。
該文討論了輕量級(jí)客戶端可能僅下載一些塊數(shù)據(jù)的兩種方式。第一種是請(qǐng)求 ID 在給定范圍內(nèi)的所有交易。這種想法的擴(kuò)展是通過(guò)使用類似于虛榮地址挖礦的過(guò)程,應(yīng)用程序用戶可以特意針對(duì)給定的哈希范圍來(lái)確保某種類型的所有交易(在引用的文章中,指令牌交易)都屬于這類。文章中接著提到,這將允許輕客戶端按交易 ID 范圍請(qǐng)求塊的子集,并且僅有 CTOR 能實(shí)現(xiàn)這一點(diǎn)。
雖然我們與 Joannes Vermorel 合作開(kāi)展了一個(gè)項(xiàng)目,但我們相信他的上述論點(diǎn)肯定是錯(cuò)誤的。
? 無(wú)法保證交易的提交者將首先在目標(biāo)范圍內(nèi)按虛榮地址挖掘交易 ID。
? 沒(méi)有任何機(jī)制可以阻止另一方采用相同的范圍進(jìn)行虛榮地址挖礦,從而降低了該計(jì)劃的有效性。
? 建議這種虛榮地址挖礦過(guò)程和隨后的基于范圍的交易查詢只有在啟用 CTOR 時(shí)才能實(shí)現(xiàn),以在根本上不分離 IT 系統(tǒng)的職責(zé)。如果希望按哈希 ID 范圍提供數(shù)據(jù)查詢,則應(yīng)配置基礎(chǔ)數(shù)據(jù)存儲(chǔ)以支持此類查詢,或者如果不能實(shí)現(xiàn),則應(yīng)將數(shù)據(jù)存儲(chǔ)遷移到可以實(shí)現(xiàn)的方案。應(yīng)提供此類查詢模式的 RPC 端點(diǎn)。數(shù)據(jù)存儲(chǔ)/檢索和輕量級(jí)客戶端端點(diǎn)服務(wù)是兩個(gè)獨(dú)立的職責(zé),應(yīng)該分別處理。將塊傳播問(wèn)題與第三種謹(jǐn)慎責(zé)任混為一談是一種糟糕的工程實(shí)踐 。
第二種建議方式,即輕量級(jí)客戶端可以僅下載所有塊數(shù)據(jù)的子集的方式,是指客戶端僅每過(guò) n 個(gè)塊進(jìn)行下載,對(duì)于 n 的某些定義,意味著客戶端將僅下載每 n 個(gè)塊中的 1塊以找到相關(guān)交易。該建議承認(rèn)由提交者確定交易將被開(kāi)采的區(qū)塊高度的不切實(shí)際性,因此這里不再進(jìn)一步討論。
3.3.3選擇加入交易的本地化
交易本地化是第一方重復(fù)管理交易(通過(guò)任何方法,例如重新生成簽名)直到交易 ID在交易創(chuàng)建者可接受的范圍內(nèi)的過(guò)程。它然后會(huì)被提交給網(wǎng)絡(luò),并且將根據(jù) CTOR 接近于其他管理的交易以符合同一 ID 范圍。
CTOR 提議表明這個(gè)目標(biāo)沒(méi)有益處,盡管如上一節(jié)所述,范圍受限的輕量級(jí)客戶端查詢可能是潛在的驅(qū)動(dòng)因素。
后續(xù)分片提議建議使用交易 ID 作為分區(qū)鍵來(lái)進(jìn)行分片處理過(guò)程。如果交易本地化建議的意圖是允許那些向網(wǎng)絡(luò)提交交易的人試圖以給定的分片為目標(biāo),那么這是一個(gè)有缺陷甚至可能是危險(xiǎn)的建議。
這無(wú)法保證給定節(jié)點(diǎn)將會(huì)運(yùn)行特定數(shù)量的分片,因此無(wú)法保證這將確保本地化交易將會(huì)位于特定分片上。此用例也沒(méi)有明確的益處。最后,攻擊者可以通過(guò)生成具有窄范圍標(biāo)識(shí)符的交易來(lái)使用此行為,使得一個(gè)分片超載。這是一種與后續(xù)分片提議特定相關(guān)的拒絕服務(wù)攻擊形式。
3.3.4塊發(fā)射和傳播的效率提高
CTOR 提議(錯(cuò)誤地)指出,CTOR 將數(shù)據(jù)模型從列表轉(zhuǎn)移到一組交易。這是不正確的,因?yàn)閴K中的交易已經(jīng)是一個(gè)集合。列表和集合的唯一不同在于,集合中所有元素都是唯一的。假設(shè)這只是一個(gè)錯(cuò)誤并且 CTOR 提議的意圖是強(qiáng)調(diào)模型從一個(gè)集合轉(zhuǎn)變?yōu)橐粋€(gè)有序集合,CTOR 提案指出這一變化允許應(yīng)用易于理解的集合協(xié)調(diào)技術(shù)來(lái)減少塊發(fā)射和
傳播期間傳輸?shù)臄?shù)據(jù)量。
該領(lǐng)域的現(xiàn)有工作,例如 Graphene,證明了這種技術(shù)。Graphene 不需要任何特定的排序,不過(guò)發(fā)送者和接收者之間的排序是穩(wěn)定的。 Bitcoin Unlimited 有一項(xiàng)實(shí)現(xiàn)通過(guò)包括排序信息和 IBLT 數(shù)據(jù),實(shí)現(xiàn) Graphene 的大部分優(yōu)勢(shì),而無(wú)需改變公式規(guī)則,Bitcoin ABC 的 Amaury Sechet 觀察到,在最近(2018 年 9 月 1 日)的 BCH 網(wǎng)絡(luò)壓力測(cè)試中,“graphene 塊的平均尺寸為 43kb。編碼排序 37kb,或占數(shù)據(jù)的 86%”。
確實(shí),使用 CTOR 可以省略排序信息,只在有效載荷中留下基礎(chǔ)集合協(xié)調(diào)數(shù)據(jù)。然而,與已經(jīng)優(yōu)化較為完善的線路(BU 的實(shí)現(xiàn))相比,這只是一個(gè)微小的改進(jìn);CTOR 對(duì)Graphene 和類似塊傳播技術(shù)的益處很小。
3.3.5軟件實(shí)現(xiàn)優(yōu)化
軟件越復(fù)雜,以下方面難度越大:
? 驗(yàn)證
? 維護(hù)
? 推論
? 提升新開(kāi)發(fā)者技能
? 發(fā)現(xiàn)錯(cuò)誤
因此,降低軟件實(shí)現(xiàn)的復(fù)雜性是一項(xiàng)合理目標(biāo)。
CTOR 提議討論了將交易驗(yàn)證代碼從當(dāng)前的一次通過(guò)算法更改為兩次通過(guò) Out-Then-In(OTI)算法。兩者都比較容易理解,因此雖然不是更復(fù)雜,但肯定不會(huì)太簡(jiǎn)單。
值得商榷的是,跨線程、進(jìn)程甚至機(jī)器擴(kuò)展的節(jié)點(diǎn)的任何實(shí)現(xiàn)是否都不再需要拓?fù)漤樞?,并且在這種情況下,CTOR 可能會(huì)減少工作負(fù)載。但是,鑒于在跨機(jī)器共享工作時(shí)追蹤 TTOR 的排序是微不足道的,簡(jiǎn)化情況尚未得到證實(shí)。
在目前的形式中,CTOR 沒(méi)有實(shí)現(xiàn)這一目標(biāo)。相反,它會(huì)向代碼庫(kù)中添加其他行為。在分析比特幣 ABC 0.17.1 和 0.18.1 之間的所有變化時(shí),很難看出復(fù)雜性方面有任何重大變化。
3.3.6潛在攻擊媒介的緩解
CTOR 提議包含一個(gè)附錄,其中說(shuō)明了 CTOR 比 TTOR 更容易實(shí)現(xiàn),來(lái)處理重大塊(超過(guò)10GB)。附錄的理論認(rèn)為,這種簡(jiǎn)單性表明未來(lái)攻擊媒介的潛力較低。
這種說(shuō)法既沒(méi)有充分的推理支持,也沒(méi)有證據(jù)支持。
3.4 實(shí)現(xiàn)成本和投入市場(chǎng)時(shí)間
初看起來(lái),CTOR 可能不是一個(gè)重大變化,因?yàn)楸旧磉M(jìn)行更改的開(kāi)發(fā)成本并不大。但是,測(cè)試每個(gè)節(jié)點(diǎn)實(shí)現(xiàn)是否使更改與其他所有實(shí)現(xiàn)互相兼容的成本要高得多。兩者都沒(méi)有明確量化。
由于變化本身很小,交付時(shí)間很短。然而,由于變化的性質(zhì),上市時(shí)間應(yīng)該得到延長(zhǎng)。作為一項(xiàng)共識(shí)變化,BCH 開(kāi)發(fā)社區(qū)應(yīng)該花費(fèi)足夠的時(shí)間在兼容測(cè)試節(jié)點(diǎn)上。
這還沒(méi)有開(kāi)始,因?yàn)楣?jié)點(diǎn)實(shí)現(xiàn)類接口仍然存在爭(zhēng)議,一些團(tuán)隊(duì)根本沒(méi)有實(shí)現(xiàn) CTOR 提議。
3.5 維護(hù)影響
在維護(hù)方面,沒(méi)有發(fā)現(xiàn)影響。代碼更改很小,很容易理解。在此更改后,無(wú)需其他技能即可繼續(xù)使用代碼庫(kù)。
3.6 技術(shù)依賴性
CTOR 提案沒(méi)有引入額外的技術(shù)依賴性。
CTOR 提議的定位是對(duì)未來(lái)價(jià)值交付的依賴,主要是作為擴(kuò)大規(guī)模處理增加的交易量的先決條件,并且最終的塊大小比我們今天看到的要大許多個(gè)數(shù)量級(jí)。
目前尚未充分證明 CTOR 對(duì)于實(shí)現(xiàn)未來(lái)的擴(kuò)展是必要的。
3. 7 非功能性需求影響
實(shí)現(xiàn) CTOR 提議所需的代碼更改在概念上很小,理論影響可以忽略不計(jì) - 即既不顯著積極也不消極。
沒(méi)有發(fā)布非功能性測(cè)試的結(jié)果來(lái)支持這一點(diǎn)。
4 評(píng)估摘要
雖然一些 CTOR 提議的目標(biāo)乍一看似乎很了不起,但沒(méi)有充分證明這些目標(biāo)實(shí)際上是通過(guò)實(shí)施 CTOR 實(shí)現(xiàn)的。此外,作為一項(xiàng)共識(shí)變化(且具有高度爭(zhēng)議),實(shí)現(xiàn) CTOR 存在重大的相關(guān)風(fēng)險(xiǎn),且沒(méi)有證明其益處。出于這些原因,nChain 認(rèn)為不應(yīng)該實(shí)現(xiàn) CTOR提議。