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