數字簽名是如何確認交易的?
我們都知道,在區塊鏈系統中的交易就是數據上的傳輸,在數據傳輸的過程中必須要保證數據安全,否則整個區塊鏈系統就會紊亂。
數據安全最起碼要做到的就是數據傳輸時不會泄露,數據傳輸過程中的完整性以及交易雙方身份的真實可靠。
那如何能保證區塊鏈系統中交易過程的安全,密碼學在其中的功勞就不可磨滅。
密碼學的核心就是加解密算法,主要分為兩大類型:對稱加密算法和非對稱加密算法。
非對稱加密算法與對稱加密算法主要的區別在於加解密過程中用到的密鑰是不相同的,一個稱之為公鑰(Public Key),一個稱之為私鑰(Private Key)。私鑰都是需要自己妥善保存的,公鑰是可以公開分享給別人的。
關於這兩個算法詳細的區別,大家可以點擊往期文章查看:【非對稱加密】我的人,怎能容別人偷窺?
而數字簽名就是非對稱加密算法的一種應用形式。
那到底什麼是數字簽名呢?
我們在生活中經常會看到簽名,以前的作業本簽名,後來的各類合同等簽名,其實數字簽名跟這些簽名差不多,都是對各自身份的認可。
我們在進行數字資產交易時,資產的轉出方在進行轉賬時,就會生成一段防偽的字符串,這串字符串就是數字簽名。主要用來驗證交易的發出方以及交易過程中信息不被篡改,簡單理解就是我們銀行轉賬的交易流水。
數字簽名它的具體過程如下:
數字簽名通過數字摘要技術(Hash加密)把交易信息縮短成固定長度的字符串(哈希值),然後通過私鑰對信息加密,通過公鑰進行解密驗證。
注意:數字簽名加密的私鑰和解密的公鑰不一致,採用非對稱加密技術。
咱們舉例説明:
鐵柱要轉給翠花一筆比特幣,鐵柱首先要做的就是,將該筆交易的信息進行數字摘要,也就是Hash加密,縮短為一段字符串,也就是哈希值,然後通過鐵柱自己的私鑰對摘要內容進行加密,形成數字簽名。
完成以上步驟後,鐵柱就需要叫交易信息以及數字簽名一起廣播給記錄賬本的人(就是礦工)。
礦工收到信息後,就會用鐵柱的公鑰進行驗證,這筆交易是不是鐵柱發出的,交易信息正確嗎,有沒有被改,如果一切OK,礦工就會打包發出。
翠花收到交易後,用公鑰進行驗證這筆交易是不是鐵柱轉給他,然後也可以將信息內容進行Hash運算得到一個哈希值,再與鐵柱傳輸過來的摘要進行對比查看交易信息是否吻合,確保沒被篡改。
綜上我們可以看出整個交易過程並不是對整個交易信息加密,而是對交易信息的摘要用非對稱加密算法進行運算從而生成了“數字簽名”。
以上內容説起來很複雜的樣子,但其實我們實際操作時,只需要輸入轉賬密碼,以上所有步驟都會瞬間完成,幫你驗證好。
這就像我們去銀行轉賬或者支付寶轉賬一樣,只需要輸入銀行卡密碼,錢就會轉出去,如果信息不對,會給你退回來一樣的。
如果實在記不住,差不多瞭解以下7條步驟就行:
1、一段需發送的數據經過Hash計算生成一份摘要;
2、摘要通過發送者私鑰進行加密;
3、發送者將使用私鑰加密後的摘要和整個信息,生成一段待發送的數據包,數字簽名則為經過私鑰加密後的加密摘要;
4、接收者使用之前一樣的Hash算法對整個信息計算得出摘要;
5、接收者再通過發送者公鑰對兩個摘要進行加密計算;
6、接收者通過發送者公鑰對數字簽名進行解密;
7、兩者進行比較即可驗證。