由于區(qū)塊鏈必須保持全球狀態(tài)的同步,存在延遲問題,通過中繼網(wǎng)絡(luò)和致密區(qū)塊,可以減少延遲,不過開發(fā)者還在致力于更多的優(yōu)化。本文作者Jordan Clifford,由“藍(lán)狐筆記”的“Sien”翻譯。
區(qū)塊鏈讓整個世界保持在一個狀態(tài)上。當(dāng)每個區(qū)塊挖出,新的分類賬本取代之前的狀態(tài)。共識機(jī)制致力于確保該狀態(tài)被更廣泛的社區(qū)同意。在設(shè)計(jì)良好的系統(tǒng)中,激勵確保不變性。在經(jīng)過足夠的時間之后,狀態(tài)無法被篡改。這些區(qū)塊鏈給予我們可編程的貨幣,并且正確地捕捉了很多人的想象力。
比特幣和以太坊是區(qū)塊鏈兩個早期的版本。這些賬本被證明是受歡迎和穩(wěn)健的,但通常也被認(rèn)為是難以擴(kuò)展的。為什么會這樣?還有什么能改善這種情況?
背景區(qū)塊鏈自身被認(rèn)為是layer 1。區(qū)塊鏈充當(dāng)網(wǎng)絡(luò)中所有加密資產(chǎn)的當(dāng)前位置的全局真相源。網(wǎng)絡(luò)上的全節(jié)點(diǎn)持續(xù)跟蹤分類賬的當(dāng)前狀態(tài)。為維持去中心化,它必須能讓小礦工驗(yàn)證并為區(qū)塊鏈作出貢獻(xiàn)。小礦工的系統(tǒng)資源和帶寬遠(yuǎn)不如大玩家。
為了讓區(qū)塊鏈可信任和抗審查,它們不能被任何單一實(shí)體或一個群體所控制。開發(fā)人員相信,不同大小的玩家都可參與是很重要的,它可以避免權(quán)力的集中和固化,避免出現(xiàn)單點(diǎn)控制?;谶@樣的原因,突破比特幣區(qū)塊大小的限制就存在阻力。該限制用于限制整個系統(tǒng),以便讓更廣泛的人群參與。
應(yīng)該注意的是,可以在各方之間簽訂本地協(xié)議完成代幣的轉(zhuǎn)移,而這無須進(jìn)行全局的狀態(tài)更新。這通常被稱為layer 2或鏈下交易,這對交易擴(kuò)展(不一定是用戶)有深遠(yuǎn)影響。這里的想法是,各方之間的交易在寫入?yún)^(qū)塊鏈前可以先匯總。在一些設(shè)計(jì)中,將本地狀態(tài)刷新到全局區(qū)塊鏈的窗口可能需要幾個月甚至更長時間。
工程師們樂觀地認(rèn)為,layer 2解決方案將為區(qū)塊鏈帶來巨大的可擴(kuò)展性,并且它對加密貨幣能滿足主流人群需求至關(guān)重要。然而,即使layer 2充當(dāng)了巨大的杠桿作用,它只能放大基礎(chǔ)區(qū)塊鏈的規(guī)模。Layer 2無法自行提供不受限制的擴(kuò)展。因此,優(yōu)化網(wǎng)絡(luò)以便為每個交易盡可能少地使用資源非常重要。
問題“去中心化的比特幣區(qū)塊鏈?zhǔn)侨蚬蚕淼膹V播媒體——可能是人類設(shè)計(jì)的最瘋狂低效的通信模式。”——Greg Maxwell
Layer 1的基本問題是分類賬的副本必須保持全球的同步。每個全節(jié)點(diǎn)存儲一份區(qū)塊鏈,這些副本必須彼此相同,且由各個節(jié)點(diǎn)獨(dú)立驗(yàn)證。
當(dāng)找到新塊,必須將其廣播給所有其他節(jié)點(diǎn)。延遲對挖礦節(jié)點(diǎn)尤為重要,因?yàn)樗麄冃枰冀K在最新區(qū)塊上工作,否則他們的工作就白費(fèi)了。為了驗(yàn)證最新區(qū)塊,礦工需要知道包含了哪些交易以及所有這些交易的副本。
當(dāng)前比特幣軟件使用簡單的方法來廣播交易和區(qū)塊。在收到交易時轉(zhuǎn)發(fā)給所有對等節(jié)點(diǎn)。區(qū)塊被批量傳輸,無須考慮接收者可能已有的數(shù)據(jù)。這些低效對于礦工來說是不可容忍的,因?yàn)樗麄冃枰_保能訪問最新區(qū)塊。
補(bǔ)救措施比特幣的低效眾所周知。為讓網(wǎng)絡(luò)更加有效率,減少帶寬負(fù)載以及加速廣播已經(jīng)推進(jìn)了好多年。前比特幣維護(hù)者Gavin Andresen于2014年發(fā)布了O(1) 區(qū)塊廣播的路線圖。路線圖自那以后發(fā)生了重大改變,但想法仍然相關(guān)。
中繼網(wǎng)絡(luò)
礦工已經(jīng)主動采取措施實(shí)施區(qū)塊中繼網(wǎng)絡(luò),比如FIBRE和Falcon。這些中繼網(wǎng)絡(luò)通過使用低延遲+高帶寬連接來工作,但它們具有諸如中心化和使用大量帶寬來最小化延遲的缺點(diǎn)。它們不會減少運(yùn)行非挖礦節(jié)點(diǎn)的總體帶寬的需求,這是工程師在擴(kuò)展系統(tǒng)時感到舒適所需的。
致密區(qū)塊(compact block)當(dāng)傳輸區(qū)塊時,傳輸接收者已有的交易是次優(yōu)選擇。密碼學(xué)家Greg Maxwell認(rèn)識到,接收者已經(jīng)知道在新發(fā)現(xiàn)的區(qū)塊中包含的內(nèi)容。具體來說,接收者的內(nèi)存池(一組收到但未確認(rèn)的交易)可能包含新區(qū)塊內(nèi)的很多交易。他研究了這個問題,并在2015年12月起草了一份提案。
核心開發(fā)者M(jìn)att Corallo接受了Greg的工作,并對其進(jìn)行了改進(jìn),它于2016年早期變成了BIP152提案,主要涉及致密區(qū)塊。致密區(qū)塊是一種協(xié)議,它發(fā)送區(qū)塊頭、縮短的交易ID列表、以及一組發(fā)送人認(rèn)為接收者不太可能擁有的交易,而不是發(fā)送包含所有數(shù)據(jù)的區(qū)塊。這個更改旨在節(jié)省帶寬,但也有減少延遲的作用。
Erlay比特幣中基于大量廣播的方法顯然不是在網(wǎng)絡(luò)中傳播交易的最佳方法。節(jié)點(diǎn)可以接收每個交易的多個副本,并必須將其轉(zhuǎn)發(fā)給它們所連接的對等節(jié)點(diǎn)。結(jié)果是消耗大量的帶寬,導(dǎo)致不必要的開銷。它還鼓勵節(jié)點(diǎn)連接較少的對等節(jié)點(diǎn),因?yàn)槊總€對等節(jié)點(diǎn)將需要每個交易的增量帶寬。
連接到較少的節(jié)點(diǎn)確實(shí)有利于減少帶寬開銷,但它也是危險的,因?yàn)樗鼤褂脩舸蜷_所謂的日蝕攻擊(藍(lán)狐筆記注:eclipse attack,日蝕攻擊是指對區(qū)塊鏈的一種網(wǎng)絡(luò)攻擊,攻擊者控制了點(diǎn)對點(diǎn)的網(wǎng)絡(luò),并模糊區(qū)塊鏈上的節(jié)點(diǎn)視圖。例如為了對比特幣實(shí)施日蝕攻擊,攻擊者通過控制大量的IP地址來壟斷連接到受害者節(jié)點(diǎn)的連接)。
TumbleBit的創(chuàng)建者Ethan Heilman于2015年發(fā)表了關(guān)于日蝕攻擊的研究論文。其基本思路跟Sybil攻擊相關(guān)。攻擊者試圖偽裝成很多不同的主體,以使受害者感到困惑。攻擊者壟斷所有跟受害者節(jié)點(diǎn)的傳出連接。通過充當(dāng)受害者節(jié)點(diǎn)的唯一信息來源,他們挖掘特殊區(qū)塊以偽造當(dāng)前的狀態(tài)。
這是非常昂貴的攻擊。不過如果攻擊者可以讓受害者相信他們已經(jīng)收到大量的比特幣,而實(shí)際上資金已經(jīng)轉(zhuǎn)移到其他地方,受害者可能會被說服他們已經(jīng)收到了資金并釋放財產(chǎn)。
Erlay可以提供更好的連接和強(qiáng)大的網(wǎng)絡(luò)。如果一個節(jié)點(diǎn)連接到32個對等節(jié)點(diǎn),Erlay研究者發(fā)現(xiàn)他們的優(yōu)化可以導(dǎo)致節(jié)點(diǎn)使用的帶寬比當(dāng)前少75%以上。
下一步通過礦工使用的中繼網(wǎng)絡(luò)和為普通節(jié)點(diǎn)用戶提供的致密區(qū)塊,區(qū)塊廣播已經(jīng)得到大量優(yōu)化。盡管如此,研究者依然在努力消除系統(tǒng)的開銷,使其盡可能簡潔。只有當(dāng)開發(fā)者滿意當(dāng)前吞吐量的帶寬要求足夠低時,才能提高吞吐量。