麻省理工發幣性能完勝比特幣、以太坊!新節點加入減少99%數據量
Rob Matheson / 譯者:小辣椒區塊鏈-Jack / 何渝婷編譯
2019-01-25 10:28

像比特幣這類加密貨幣是建立在區塊鏈上的網路。在這個網路上,金融交易的帳本數據格式化在一系列的區塊裡。這些網路是分散式的,沒有銀行或組織管理帳戶餘額資金,由用戶聯合起來儲存和驗證交易訊息。

 

但是,分散式會導致網路可擴展性不足的問題。新的用戶節點在加入時,需要下載儲存此前成千上萬個區塊數據。新用戶加入後還要繼續儲存新的區塊數據,並且幫助驗證交易。這使得交易過程緩慢,或者從計算角度來說有些不切實際。

 

一篇將在下個月網路和分散式系統安全研討會展示的論文中,麻省理工的研究人員會介紹一個叫金庫(Vault)的加密貨幣,能夠讓用戶在加入網路時下載僅佔總交易數據的一小部分數據。

 

它還集成了刪除佔用空間的空帳本技術,並允許核查只使用被劃分和共享在網路上,盡量減少個人用戶的數據儲存和處理要求的最新交易數據。

 

在實驗中,與比特幣相比,Vault將加入其網路的頻寬減少了99%,與以太網相比減少了90%。重要的是,Vault仍然確保所有節點都驗證所有事務,提供與現有節點相同的嚴格安全性。

 

「目前有很多加密貨幣在新用戶加入和存儲方面遇到了瓶頸。我們這裡的主要目標時給越來越多的用戶提供好的擴展性。」作為參與者、電腦科學與人工智慧實驗室(CSAIL)的研究生萊昂說道。

 

CSAIL的研究人員Yossi Gilad和Nickolai Zeldovich也參與了這項研究。NickolaiZeldovich也是電子工程與電腦科學系(EECS)的教授;還有最近的校友Adam Suhl ' 18。

 

跨過區塊

 

加密貨幣網路中的每個塊都包含一個時間戳、它在區塊鏈中的位置以及固定長度的數字和字母字符串(稱為「散列」),這基本上是塊的標示。

 

每個新塊都包含區塊鏈中前一個塊的散列。Vault中的塊還包含多達10,000個事務——或10兆字節的數據——這些事務都必須由用戶進行驗證。區塊鏈的結構,特別是哈希鏈,確保了對手在不被發現的情況下無法攻擊塊。

 

新用戶通過下載所有過去的交易數據來加入加密貨幣網路,或「引導」,以確保它們是安全的和最新的。例如,要在去年加入比特幣,用戶需要下載50萬個區塊,總計約為150g。用戶還必須儲存所有帳戶餘額,以幫助驗證新用戶並確保用戶有足夠的資金完成交易。隨著比特幣的帳戶數量超過2200萬個,儲存要求也越來越高。

 

研究人員在一種名為Algorand的新型加密貨幣網路的基礎上建構了他們的系統。這種網路由麻省理工學院的福特工程教授SilvioMicali發明。

 

對於傳統的加密貨幣,用戶競相解驗證塊的方程,第一個解得到資金的方程。隨著網路的擴展,這會減慢事務處理時間。Algorand使用「利害關係證明」概念來更有效地驗證塊並更好地支持新用戶加入。對於每一個區塊,都會選出一個具有代表性的核查「委員會」。在網路中擁有更多資金或股份的用戶被選中的可能性更高。要加入網路,用戶需要驗證每個證書,而不是每個事務。

 

但是每個塊都包含一些關鍵訊息,以便在它之前立即驗證證書,這意味著新用戶必須從鏈中的第一個塊及其證書開始,然後依次驗證每個塊,這可能很耗時。為了加快速度,研究人員基於幾百塊或1000塊後面的一個塊(稱為「麵包屑」)給每個新的證書驗證訊息。當一個新用戶加入時,他們會將一個早期塊的麵包屑匹配到前面1000個塊的麵包屑。這個麵包屑可以與前面1000個塊的另一個麵包屑匹配等等。

 

萊昂說:「論文標題是一個雙關語。」「金庫是一個你可以儲存錢的地方,但區塊鏈也讓你在加入一個網路時『金庫』跨越街區。」當我引導時,我只需要一個來自過去的塊來驗證未來的塊方法。我可以跳過中間的所有塊,這為我們節省了很多頻寬。

 

分而丟棄

 

為了減少數據儲存需求,研究人員設計了一種新的「分片」方案。該技術將事務數據分成更小的部分(或碎片),在整個網路中共享,因此單個用戶只需處理少量數據來驗證事務。

 

為了以一種安全的方式實現共享,Vault使用了一種眾所周知的數據結構,稱為二進制Merkle樹。在二叉樹中,單個頂部節點分支為兩個「子」節點,而這兩個節點又各自分解為兩個子節點,以此類推。

 

在Merkle樹中,頂部節點包含一個哈希,稱為根哈希。但是樹是由底部向上構造的。樹將底部的每一對子散列組合起來,形成它們的父散列。它在樹中重複這個過程,從每對子節點中分配一個父節點,直到將所有內容組合到根哈希中。在加密貨幣中,頂部節點包含單個塊的散列。每個底部節點包含一個散列,表示塊中一個事務涉及的一個帳戶的餘額訊息。balance散列和block散列綁定在一起。

 

為了驗證任何一個事務,網路組合兩個子節點以獲得父節點散列。它在樹上重複這個過程。如果最終的組合散列與塊的根散列匹配,則可以驗證事務。但是對於傳統加密貨幣,用戶必須儲存整個樹結構。

 

通過Vault,研究人員將Merkle樹分成不同的碎片,分配給不同的用戶組。每個用戶帳戶只在其分配的分片中儲存帳戶的餘額,以及根散列。訣竅是讓所有用戶儲存一層節點,該節點橫切整個Merkle樹。當用戶需要從碎片外部驗證事務時,他們會追蹤到該公共層的路徑。從這個公共層,他們可以確定分片之外的帳戶餘額,並正常地繼續驗證。

 

萊昂說:「網路的每個碎片負責儲存大數據結構的一小部分,但這一小部分允許用戶驗證來自網路所有其他部分的交易。」

 

此外,研究人員還設計了一種新的方案,可以識別和丟棄用戶指定的在一定時間內沒有餘額的碎片帳戶。其他加密貨幣保留所有空帳戶,這增加了數據儲存需求,但沒有真正的用途,因為它們不需要驗證。當用戶在Vault中儲存帳戶數據時,他們會忽略那些舊的、空的帳戶。

 

本文為金色財經授權刊登,原文標題為「麻省理工發幣性能完爆比特幣、以太坊 新節點加入減少99%數據量