輕節點錢包,機智的省事之道

撰文 | 花先生

編輯 | 陳議駿

去中心化分佈式賬本(區塊鏈)可以被理解成所有參與節點都共同記賬。隨著時間與節點數的增加,賬本的內容也會快速增加。

以比特幣為例,平均每10分鐘出一個區塊,每個區塊可以最多可以打包4,000條交易信息。記錄所有賬本信息的負擔不是所有人都可以接受的,因此只儲存於自己相關的數據也成了一種選擇。

於是,按照存儲數據的完整性,錢包也被劃分為全節點錢包(Full Node)和輕節點錢包(lightweight Node)。

全節點,顧名思義,就是包含了所有賬本數據的節點。一個節點只要是下載了完整且最新的區塊數據,並取得節點資格,穩定運行驗證交易數據,那它就是一個全節點了。

全節點的功能包括:

  • 保留所有過去的交易,所有數據公開透明,為系統中的人提供查詢功能

  • 監聽別的礦工挖出來的區塊,驗證其合法性,也即是記錄新區塊的產生

  • 監聽區塊鏈網絡上的交易信息,驗證每個交易的合法性

  • 將最新信息廣播給全網同步

由於每一個全節點都保留著全網數據,所以其中部分節點出現問題,比如被入侵或斷網,都不會影響整個區塊鏈網絡的安全。這也是去中心化記賬的優勢所在。

全節點的數量越多,意味著完整的賬本被保存的份數越多,“不可篡改性”也就越強,整個區塊鏈系統的網絡安全性也隨之大幅增加。

隨著交易記錄的不斷增加,全節點所需要的存儲空間也在不斷增加。截止至2019年3月底,交易數據已經達到270 GB。

輕節點錢包,機智的省事之道

來源:Ychart

以太坊由於出塊較快,區塊不止記錄交易內容,還要需要記錄賬戶狀態等信息,完整區塊數據遠超過比特幣。2019年7月,以太坊的全節點數據已經膨脹到了2231.5 GB,也就是2.2 TB,而且每天以3~4 GB的速度在增長。

全節點要求對存儲空間大,且需要全天在線接受查詢調用,運行成本高昂,個人用戶其實並不需要選擇成為全節點。

輕節點,即輕裝上陣的節點,無需存儲完整的區塊鏈數據,只儲存區塊頭(Block head)。這類節點會對數據進行分析,僅獲取並在本地存儲與自身相關的交易數據。

當需要驗證某項交易合法性時,輕節點需要向IP地址臨近的全節點發起確認請求。全節點收到交易後驗證該交易所在的區塊,為輕節點提供相關可佐證交易合法性的數據,並對輕節點的數據後進行匹配驗證,就可以得到進行出塊啦。

假設張三擁有一個比特幣輕節點錢包,趙四說要發給他的BTC,但他不確定趙四是否真的發送了。這時,他需要向全節點發起簡單支付驗證(SPV),找到了記錄他與趙四交易的區塊,並且確定了這個區塊已經被確認了6次。於是他可以放心,自己確實收到了來自趙四的1個BTC。

但作為輕節點,張三就沒法驗證王五的交易是否合法,因為輕節點只能驗證自身交易的狀態。

相比於全節點,輕節點錢包所佔內存小,在電腦、手機端都能運行;不需要一直在線;但不能驗證大部分交易的合法性,也不能檢測最長合法鏈。

選擇輕節點還是全節點錢包需要根據用戶的具體需求來決定,如果只是滿足自己日常使用,輕節點錢包已經足夠;但如果想要擔當節點,或者需要鏈上大量數據進行市場分析,全節點錢包是必要的。

同時,全節點錢包是公鏈安全的來源,如果所有用戶僅使用SPV功能,整條公鏈對於安全攻擊是沒有抵抗力的。


分享到:


相關文章: