tft每日頭條

 > 生活

 > 區塊鍊pow算法

區塊鍊pow算法

生活 更新时间:2024-08-03 09:01:45

區塊鍊pow算法(區塊鍊中的簡單支付驗證機制)1

SPV是“Simplified Payment Verification”(簡單支付驗證)的縮寫。中本聰論文簡要地提及了這一概念,指出:不運行完全節點也可驗證支付,用戶隻需要保存所有的block header就可以了。

随着數字貨币交易量不斷擴大,存儲交易信息的區塊也逐漸龐大,而中本聰在比特币網絡中所設定的1M區塊限制,也就導緻了一個區塊中所能容納的交易數量極少,交易速度受限,也就導緻目前衆多人關于區塊鍊擴容問題提出各種不同的方案。

擴容勢必導緻區塊内存擴大,對于一些小型節點,在驗證交易支付時,需要将整個區塊鍊數據保存在本地硬件上,數據随着交易擴充而逐步擴大,占據大量存儲空間以及犧牲高額帶寬資源,為了驗證一筆交易的真實性而保存整個網絡信息,這是不合理的操作規則。

Merkle樹在SPV 中充當什麼角色?

SPV屬于區塊鍊當中支付驗證體系中的一種,是為了适應簡便、快速支付的驗證手段,它不需要下載新區塊所有數據,隻需要保存區塊頭部數據,這些數據保存在默克爾樹當中。

區塊鍊pow算法(區塊鍊中的簡單支付驗證機制)2

Merkle樹

Merkle樹是一種哈希二叉樹,它是一種用作快速歸納和校驗大規模數據完整性的數據結構。這種二叉樹包含加密哈希值。默克爾樹底部的樹葉是我們的交易數據,而每一個父節點是兩個子節點哈希值之和的哈希值。

也就是說,默克爾樹的葉子節點保存着交易數據信息,而節點之間通過哈希計算得到父節點哈希值,通過一層層往上層計算,最終會形成根節點,而這樣的“信息樹”構成了整個網絡的交易數據,由于節點都是哈希值,易于存儲以及驗證。

SPV驗證原理

驗證流程:

1、 計算待驗證支付的交易哈希值。

2、 節點從網絡中獲取所有區塊頭信息保存到本地。

3、 節點從區塊鍊獲取待驗證支付對于的默克爾樹哈希認證路徑。

4、 根據哈希認證數據,與保存在本地的默克爾樹比較,定位到包含本次交易的區塊。

5、 驗證該區塊頭信息包含在已知最長鍊當中。

6、 根據區塊頭位置,确認已經确認的确認數(比特币網絡确認一筆交易需要至少6次确認)。

簡單來講,就是比特币網絡裡的節點在打包一個區塊的時候,會對區塊裡所有的交易進行驗證,并且,一個交易還會得到6至7次的确認來确保交易最後的完成。正是如此,在使用簡單支付驗證時,隻要判斷出一個交易在主鍊上的某個區塊裡出現過,則可以證明該交易之前已被驗證過。

SPV屬于區塊鍊支付驗證,而不是交易驗證,它隻負責判斷該交易是否已經得到區塊鍊當中的節點共識驗證,并得到多少次确認。

SPV支付驗證優缺點

使用SPV簡單支付驗證,可以節省一大筆存儲空間,無論未來交易量有多大,它的block header保存的數據(哈希值)都是固定大小,80個字節,按照每小時6個的出塊速度,每年産出52560個區塊。當隻保存block header時,每年新增的存儲需求約為4兆字節,100年後累計的存儲需求僅為400兆,即便是最普通的終端硬件設備,也有将數據保存在本地的能力。

當然,這種簡單的支付驗證也帶來一定的弊端,攻擊者在P2P網絡當中交易,形成與該交易相同的輸入、輸出新交易,出現雙花問題,也即是“可鍛性攻擊”。 “交易可鍛性”指的是,比特币支付交易發出後、确認前可被修改(準确說是被僞造複制),用戶簽名過的信息不能更改。

為什麼會出現這種雙花問題?這需要回到整個交易流程來看,在橢圓曲線算法ECDSA當中,修改某個字節簽名也能使得簽名驗證成功。兩個不同的ID号進行交易(在規定時間内),第三方(支付方)由于發現兩筆相同交易而判斷交易失敗,此時用戶修改相應簽名信息(不包含主要簽名信息),形成兩筆不一樣的交易,第三方看到交易失敗而再次交易(事實上已經支付過了),則用戶能産生兩筆交易(收到兩份比特币)。

從交易信息發出到最終确認通常有約10分鐘的時間,事實上,僞造的交易信息産生于正品交易信息之後。由于挖礦程序的确認過程是一個随機的過程,後産生的僞造的交易信息可能首先通過确認,這時正品交易信息反而被認為是重複支付被丢棄。發送方看到自己發的正品交易沒通過校驗,誤以為支付失敗(其實已成功支付),再次發送交易,支付方就支付了多餘的币。

風險與效率權衡

在交易過程中,如果礦工聲稱存在這條交易,但其實并沒有,要想達成,它就必須僞造更多的交易,使得這些交易層層哈希以後得到的值,與你下載的區塊頭裡的哈希值是一樣的。但由于哈希的技術特性,改變後的數據要想和原始數據得出一樣的哈希值的可能性微乎其微。

理論上這種“可鍛性攻擊”風險會出現,但事實上要達成這種條件概率較低,并且在主流的交易平台都有着防範措施,隻對于一些輕錢包設定的場景下,會出現一定隐患,這就需要使用者在效率與風險中權衡利弊。

SPV有其自身絕對優勢,簡便、高效的驗證方法,相信後續通過對機制裡利益的平衡,利用技術手段避免風險出現,這種驗證方式會得到更多應用場景,畢竟,沒有人會想把與自身不相關的交易數據也下載到本地。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved