1. 哈希值是什么?
哈希值是將任意長度的輸入字符串轉換為密碼并進行固定輸出的過程。哈希值不是一個“密碼”,我們不能通過解密哈希來檢索原始數據,它是一個單向的加密函數。
你知道嗎,我們可以在哈希算法的幫助下,以固定的字符串長度保存互聯(lián)網上的所有數據。我們使用一個數學算法稱為SHA-256(安全哈希算法-256位)。SHA 256是SHA-1的繼承者,SHA-1有160位。
2. 如何在區(qū)塊鏈中使用哈希值?
在區(qū)塊鏈中,每個塊都有前一個塊的哈希值,前一個塊被稱為當前塊的父塊,如果考慮父塊有一個當前區(qū)塊。它將會有上一個塊的哈希值即父塊。
在區(qū)塊鏈中,每個塊都有前一個塊的哈希值。當我們更改當前塊中的任何數據時,塊的哈希值將被更改,這將影響前一個塊,因為它有前一個塊的地址。例如,如果我們只有兩個塊,一個是當前塊,一個是父塊。當前塊將擁有父塊的地址。如果需要更改當前塊中的數據,還需要更改父塊。當只有兩個數據塊時,很容易更改數據,但是現在,當我們在區(qū)塊鏈中實現時,2020-01-24 12:32已經挖掘了614272個塊,而614272(th)塊的哈希值為00000000000000000007 a6be31011560f1e3abe8f125e356a31db6051753334e。如果我們要更改當前塊614272(th)中的數據,614271塊的哈希地址必須更改,但是614271塊的哈希是不可能更改的,所以這就是區(qū)塊鏈被稱為不可變的,數據可信的。區(qū)塊鏈的第一個塊,稱為起源塊。你可以從這個起源塊中看到有多少塊被開采到現在。
我已經創(chuàng)建了這個過程的可視化。
如果我們對輸入的任何部分做一個小的改變,輸出就會有一個大的改變,請看下面的例子以獲得更多的理解。
哈希值是區(qū)塊鏈技術不可變的和確定的潛力核心基礎和最重要的方面。它保留了記錄和查看的數據的真實性,以及區(qū)塊鏈作為一個整體的完整性。這是一個更技術性的方面,然而,理解區(qū)塊鏈如何工作以及它所具有的不可估量的潛力和價值是更堅實的一步。
3. Merkle樹是如何工作的?
當存在大量的數據時,將很難驗證它,并需要大量的內存來存儲和保護它,但在Merkle樹的幫助下,我們可以輕松克服所有這些問題。
Merkle樹是區(qū)塊鏈技術的基礎部分,我們可以很容易地發(fā)現大量數據發(fā)生的任何變化,并且可以有效地對數據進行驗證。比特幣和以太坊也正在正樣做。
正如我們在上圖中看到的,所有的基于都在底部,頂部的單個哈希值稱為根哈希值或Merkle根。
舉一個例子,有4個交易 A, B, C, D?,F在A和B哈希值將合并成一個哈希值,而C和D將合并成另一個哈希值,AB哈希值和CD哈希值現在合并成一個單一哈希值,稱為根哈?;騇erkle根ABCD。
根哈希值將包含所有交易的所有信息。Merkle樹會反復哈希值,直到只剩下一個哈希值稱為根哈希對節(jié)點。Merkle樹是一棵二叉樹,所以需要有偶數個葉節(jié)點,如果交易數是奇數,那么最后一個哈希值將重復一次,以創(chuàng)建偶數個葉節(jié)點。
在上圖中,我們可以看到當交易數為奇數時的重復交易哈希值,這就是merkle樹復制奇數葉的方式。
所有交易的數據被總結成單一的根哈希值,并存儲在塊頭,因為我們現在的數據在不斷變化,我們將改變整個哈希函數,如果哈希值改變,那么Merkle根也會改變。Merkle樹幫助我們維護數據的完整性。
Merkle樹的另一個優(yōu)點是,如果你想知道一個特定交易的狀態(tài),我們不需要下載整個區(qū)塊鏈,我們只需要要求垂直證明,證明樹的某個分支,并驗證一個特定的交易分支即可。
4. 如何使用哈希值來保護數據?
哈希值大大提高了數據的安全性。正如我已經提到的,它是一個單向的加密函數。一個加密哈希函數需要具備以下幾個關鍵的特性才能被認為是有用的:
1. 每個哈希值都是不同的。
2. 對于相同的消息,總是生成相同的哈希值。
3.不可能根據哈希值來決定輸入。
4. 即使對輸入的整個哈希值做一個小的更改也會被更改。
哈希值幫助我們查看數據是否被篡改。
例如,您下載了一段重要的信息,要查看數據是否改變,可以通過哈希值算法運行數據,比較數據的哈希值和接收數據的哈希值。
如果兩個哈希值都是相同的,則不更改數據,如果哈希值不匹配,則在接收數據之前更改數據。
責任編輯;zl
評論
查看更多