UCK區塊鏈微課堂——解讀SPV錢包和分層定性錢包,窺探錢包技術痛點

前言:

上篇文章我爲你們講解了什麼是數字貨幣的錢包系統,並用比特幣的錢包爲例,向你們分析了核心錢包的優劣勢。算法

核心錢包的優點在於其強大的安全性,劣勢我在上篇文章的末尾處也爲你們解釋的很清楚,沒看的能夠回去補補課,爲了彌補核心錢包的劣勢,輕錢包就被研發出來,包括SPV錢包與分層定性錢包,詳細解讀以下:安全

SPV錢包——來自梅克爾樹的驗證區塊鏈

有些時候,咱們進行支付只是想經過一個驗證,知道支付已成功便可,至於完整的交易驗證(須要在完整的帳本數據上校驗)能夠交給核心節點來負責,如此一來,錢包的部分功能就能剝離出來,這即是SPV錢包。spa

SPV錢包的大體過程以下:設計

(1)下載完整的區塊首部數據,而不是全部的區塊鏈數據,這樣能夠極大的減小須要獲取的帳本數據量,區塊首部包含區塊的梅克爾根,SPV方式須要靠它來實現。blog

(2)當驗證某筆支付交易時,計算出這筆交易事務的哈希值txHash。事務

(3)找到txHash所在的區塊,驗證其所在區塊的區塊首部是否包含在帳本數據中。class

(4)得到所在區塊中計算梅克爾根所須要的哈希值。比特幣

(5)計算出梅克爾根。原理

(6)計算結果與所在區塊的梅克爾根相等,則支付交易存在。

(7)根據該區塊所處的高度位置,還能夠肯定該交易獲得了多少個確認。

不難看出,SPV原理的錢包是使用梅克爾樹來驗證支付是否真實發生,只不過支付驗證所作的事情不多,只能看到當前的支付交易是否被髮起而已,沒法保證這筆交易事務最終會進入主鏈,想要進入主鏈,必須等待覈心節點進行全面的交易驗證,還須要礦工將數據打包到區塊,整個過程可能會發生失敗,SPV錢包用提升便捷性的代價犧牲了安全性。

分層定性錢包——與比特幣同樣的隨機性

分層肯定性錢包(Hierarchical Deterministic Wallets,有時也簡稱爲HD Wallets)具備如下特色:

(1)用一個隨機數來生成根私鑰,與比特幣錢包生成私鑰性質同樣;

(2)用一個肯定的、不可逆的算法,基於根私鑰生成任意數量的子私鑰。

咱們仍須要用比特幣來舉例,比特幣中使用的SHA256就是一個肯定不可逆的算法,能夠用SHA256設計出一個HD模型:SHA256(seed+n),算做類型1肯定性錢包。

嚴格來說,分層肯定性錢包是肯定性錢包的一種,分層肯定性錢包分爲Type一、Type二、BIP32規範等類型,這些都是爲了實現同一目標,基本原理都是一致的。

至於分層,利用主私鑰生成逐層的私鑰,公鑰也是如此。而生成的密鑰,能夠做爲根來繼續生成子密鑰,這就是分層。

值得一提的是,由公鑰生成子公鑰,無需私鑰參與。具體以下:

(1)只須要備份主私鑰便可,新增地址無須再次備份私鑰;

(2)可保證主私鑰冷儲,增長複數地址,只需主公鑰便可;

(3)審計便捷,只需提供主公鑰或某分支的子公鑰,便可查看下級數據且保證其不能被交易;

(4)可配合權限,設定不一樣層級的權限,查看餘額仍是能交易等。

凡事都有兩面性,便捷性的提高,換來的是安全性的降低,此類錢包因爲私鑰間具有固定關係,隨機性降低,當私鑰暴露時,只需使用主公鑰進行關聯分析,就可能致使整個樹狀密鑰結構的泄露。

後記

對比核心錢包與輕錢包,咱們不難發現兩者之間的優點與劣勢。

核心錢包擁有較高的穩定性與安全性,但操做起來及其不便利,費時又費事,而輕錢包利用精簡交易流程來獲取極大的便利性的同時,犧牲部分的安全性。

在不一樣的交易中選擇不一樣的錢包來交易,又或者多種錢包混合使用,也許可讓效益最大化,但咱們仍不難發現,如此以來用戶操做時將很是繁瑣。

將來的錢包技術的發展趨勢必定結合多種優點於一身,還附帶其餘額外的附加功能,而咱們UCK在錢包技術的研發上也很有建樹,且走在行業的最前沿。

UCK將掀起一場錢包技術的革新,就讓咱們拭目以待吧。

相關文章
相關標籤/搜索