雜湊競猜遊戲的原理

zcx88147發表於2022-05-30

區塊鏈中的雜湊到底是什麼?


  什麼是雜湊?


  雜湊是將任意長的輸入程式設計加密的固定長度輸出的過程。雜湊並不等同於加密方法,因為無法解密雜湊值來獲取原始資料。事實上雜湊是一種單向加密函式。


  With the hash function,the data on the Internet can be saved in the form of a fixed length string.One method is SHA-256(secure hash algorithm-256 bits).SHA-256 is the successor of SHA-1,and the output of SHA-1 is 160 bits.Lucky hash game system development and construction,rule mode customization,


  雜湊是區塊鏈技術和不可篡改和潛力的核心基礎和最重要的方面。雜湊維護了記錄和檢視資料的真實性,區塊鏈的完整性也是這樣的。


  這也是區塊鏈技術最重要的技術特徵的一部分,只有理解了雜湊才能瞭解區塊鏈不可篡改性的潛力和價值。


  1.確定性如果兩個雜湊值是不相同的(根據同一函式),那麼這兩個雜湊值的原始輸入也是不相同的。


  2.雜湊碰撞(collision)雜湊函式的輸入和輸出不是唯一對應關係的,如果兩個雜湊值相同,兩個輸入值很可能是相同的,但也可能不同。


  3.不可逆性一個雜湊值對應無數個明文,理論上你並不知道哪個是。“船長,如果一樣東西你知道在哪裡,還算不算丟了。”“不算。”“好的,那您的酒壺沒有丟。”


  4.混淆特性輸入一些資料計算出雜湊值,然後部分改變輸入值,一個具有強混淆特性的雜湊函式會產生一個完全不同的雜湊值。


  Merkle Tree(馬爾科夫樹)是什麼?


  當有大量資料需要驗證時,就需要消耗大量的記憶體來儲存和確保安全,這個過程很難。但是有了馬爾科夫樹(Merkle tree),就可以輕易解決這些問題。


  馬爾科夫樹是區塊鏈技術的基礎,在該結構中,可以很容易地在大量資料中找出哪些資料發生了變化,整個資料驗證的過程非常高效。比特幣和以太坊中都使用了馬爾科夫樹。


  所有的交易都在底部,最頂部的雜湊值叫作Root hash或Merkle root(馬爾科夫根)。


  Root hash有所有交易的資訊。馬爾科夫樹會重複計算節點對的雜湊值,直到只剩下一個雜湊值,就是Root hash。


  Merkle tree是一個二叉樹,所以需要偶數個葉子結點,如果交易數是奇數,那麼最後一個雜湊值會複製一次來建立偶數個葉子節點。


  可以看出奇數值的交易數中有複製的交易進行了雜湊,表明Merkle tree會計算奇數的葉子樹。


  所有交易資料會總結成一個Root hash,儲存在區塊頭(block header)中。資料中有任何改變,整個雜湊值就會變化,如果雜湊值變化了,Merkle root就會發生變化。Merkle tree可以幫助維護資料的完整性。


   


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017514/viewspace-2897902/,如需轉載,請註明出處,否則將追究法律責任。

相關文章