Graphene區塊傳播協議的優勢與弱點

買賣虛擬貨幣
本文是系列文章中的第三篇,它將解釋與鏈上擴容、區塊傳播及其它主題相關的技術概念。它與之前圍繞布隆過濾器和可逆的布隆查詢表而撰寫的兩篇文章有著一定的聯絡。
為了確保區塊鏈網路的平穩執行,新的區塊必須具備向其它節點快速傳播的能力。很多研究都就“如何在儘可能小的寬頻條件下實現區塊傳播”這一課題展開了深入的探討。簡而言之,佔用的寬頻越小,則傳播的速率就越快。正因為這樣,Graphene協議才使用公認寬頻佔用最少的方案來完成區塊傳播。區塊傳播的原理和寬頻的阻塞點當達世幣使用者進行交易時,交易會在不同的計算機或節點上傳遞,也就是說,許多節點都會參與到交易的傳送程序當中。最終,幾乎每個節點都會存有這一交易的資訊,以便完成對交易的處理。在這個過程當中,所有未經處理的交易都會儲存在記憶體當中並被統稱為mempool。通常情況下,該交易會在兩分半鐘之內被寫入在一個區塊中,在這種情況下,該交易被視為有效並且已經由網路處理。以上述知識為基礎,如果一個節點需要傳播一個區塊上的所有交易,那麼它將有如下選擇:一是傳遞包含所有交易的整個區塊,這也是最早的比特幣所採用的方法;二是為區塊中的所有交易及其次序傳遞識別符號,以便接收到識別符號的節點能夠基於mempool中已有的交易來構建區塊,而Compact Blocks、Xthin和Graphene正是藉助這種方式來減少區塊傳播所需的頻寬。
Graphene如何緩解對寬頻佔用過大的問題基於Graphene協議還原新區塊的節點往往會構建兩個資料結構:首先,它會構造一個包含區塊中的所有交易的布隆過濾器;其次,它構建包含區塊中的所有交易的IBLT(即可逆的布隆查詢表)。隨後,這些不附帶整個節點的資料結構都會被髮送到各個節點上。接收這些資料結構的節點將透過布隆過濾器傳遞mempool中的所有交易,從而提供區塊中所有交易的列表。然而,由於布隆過濾器可能存在一定的誤報率,因此列表中的交易可能會多於實際數量,也可能會遺漏mempool中的交易。考慮到這一隱患,接收資料結構的節點將會從IBLT中解壓縮待處理的交易,從而識別任何誤報或遺漏的交易。最後,接收資料結構的節點還會在必要的情況下向其它節點查詢遺漏的交易。自此,Graphene協議的這兩個資料結構足以恢復區塊中的整個交易集合。那麼,接下來的步驟就是將還原的交易迴歸到正確的順序了。第一個版本的Graphene協議會透過布隆過濾器和IBLT來傳遞有關順序的資訊。雖然這些資訊佔用的寬頻並不大,但還是會隨著區塊中的交易數量的增加而增加。舉幾個例子,當區塊中的交易少於256筆時,每筆交易佔用的寬頻還不到1位元組;當區塊中的交易少於65,000筆時,每筆交易佔用的寬頻還不到2位元組;而當區塊中的交易少於1600萬筆時,每筆交易佔用的寬頻還不到3位元組。相比之下,如果達世幣的區塊可以處理1600萬筆交易,那麼這一平均交易量將達到維薩卡的24倍。Bitcoin Unlimited進一步推進了Graphene協議的發展。去年11月,比特幣現金的區塊鏈出現了硬分叉,此次分叉的目的是為了更改共識準則並要求區塊以既定順序進行交易。這種順序選擇也被稱作規範次序。在此更改之後,藉助Graphene協議進行的區塊傳播可以不包含順序資訊。此舉進一步強化了Graphene協議的優勢——區塊可以變得極大,而最佳的布隆過濾器和IBLT卻可以維持極小的狀態。Graphene協議面臨的挑戰雖然Graphene協議具備上述優勢,但現實的情況卻更加複雜。由馬薩諸塞大學阿默斯特分校的研究人員開發的Graphene協議應用例項假定所有的記憶體中都存有所有的交易。而達世幣在亞利桑那州立大學建立的實驗室的研究人員則認為,mempools將不可避免地存在一些差異,也就是mempool分歧。此外,研究還表明,隨著網路的發展,mempool分歧還會進一步惡化。這意味著由Umass研究人員計算的IBLT解碼的概率在實踐中將變得更小。換言之,Graphene協議的效能不會像預期的那樣優秀。
在由達世幣核心團隊贊助的Nakul Chawla暑期實習期間,我們探討了如何從容地應對IBLT解碼失敗的情況。實際上,任何節點都可以提供另一個布隆過濾器和IBLT。在獲得布隆過濾器和IBLT之後,它們就可以組合在一起,從而實現完成解碼。我們甚至可以借鑑同時向三個節點申請布隆過濾器和IBLT的BitcoinXT的經驗。換句話說,我們可以嘗試解碼第一次完整響應,如果解碼失敗,我們就可以參考其它節點的補充響應,並將它與第一次完整響應的資料相結合。在這次實習期間,我們確定了導致無限迴圈的畸形IBLT,並提供了簡單有效的應對措施,不僅如此,我們還研發出了使用Graphene協議的實用工具。我們已經對這個客戶端進行了一些測試,但在廣泛的網路推廣之前,我們還需要做一些收尾工作。即使在上線前經歷一些挫折也是雖敗猶榮和有益的。不過,在我看來,前期的這些工作已經起到了拋磚引玉的作用,催生了更妙的創意。達世幣未來將如何應用Graphene協議?我們需要明確的一點是,目前達世幣還沒有引入Graphene協議的具體計劃,因為團隊需要在Evolution上線後才能做出相關的規劃。我們期待屆時能出現更適宜達世幣網路新屬性的創意。Graphene協議確實具有許多優良的效能,但我在上文中並沒有提到它的一個重大缺陷,也就是眾所周知的毒塊攻擊。具體來說,惡意礦工可以開挖含有大量未廣播到網路上的交易的區塊,在這種情況下,Graphene協議將始終無法解碼。這樣的攻擊雖然不會造成毀滅性的後果,但卻會像持續打嗝一樣帶來不適或不便。我們希望能在未來為大家帶來有關毒塊攻擊的更多講解,然後講解如何透過亞利桑那州立大學區塊鏈研究實驗室的方法來降低這種攻擊的風險並且同時維持快速的大型區塊傳播。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;