區塊鏈中的非對稱密碼學
區塊鏈技術使用非對稱金鑰加密(也稱為公鑰加密)。非對稱金鑰密碼術使用一對金鑰:公鑰和私鑰,它們在數學上彼此相關。在不降低程序安全性的情況下公開公鑰,但如果資料要保留其加密保護,則私鑰必須保密。即使在兩個金鑰之間存在關係,也不能基於公鑰的知識有效地確定私鑰。可以使用私鑰加密,然後使用公鑰解密。或者,可以使用公鑰加密,然後使用私鑰解密。
非對稱金鑰加密通過提供一種機制來驗證交易的完整性和真實性,同時允許交易保持公開,從而在彼此不瞭解或彼此不信任的使用者之間實現信任關係。為此,交易是“數字簽名”。這意味著私鑰用於加密事務,以便具有公鑰的任何人都可以解密它。由於公鑰是免費的,因此使用私鑰加密事務證明了事務的簽名者可以訪問私鑰。或者,可以使用使用者的公鑰對資料進行加密,以便只有具有私鑰訪問許可權的使用者才能對其進行解密。缺點是非對稱金鑰加密通常計算緩慢。
這與對稱金鑰加密形成對比,其中單個金鑰用於加密和解密。使用對稱金鑰加密,使用者必須已經建立了彼此建立的信任關係以交換預共享金鑰。在對稱系統中,可以使用預共享金鑰解密的任何加密資料確認它是由具有對預共享金鑰的訪問許可權的另一使用者傳送的; 沒有訪問預共享金鑰的使用者將無法檢視解密資料。與非對稱金鑰密碼術相比,對稱金鑰密碼術的計算速度非常快。因此,當聲稱使用非對稱金鑰加密來加密某些內容時,通常使用對稱金鑰加密對資料進行加密,然後使用非對稱金鑰加密對對稱金鑰進行加密。
以下是在許多區塊鏈網路中使用非對稱金鑰加密的總結:
- 私鑰用於對交易進行數字簽名。
- 公鑰用於派生地址。
- 公鑰用於驗證使用私鑰生成的簽名。
- 非對稱金鑰加密提供了驗證向另一個使用者傳輸值的使用者是否擁有能夠簽署事務的私鑰的能力。
一些許可的區塊鏈網路可以利用企業現有的公鑰基礎設施進行非對稱金鑰加密,以提供使用者憑證 - 而不是讓每個區塊鏈網路使用者管理自己的非對稱金鑰。這是通過利用現有的目錄服務並在區塊鏈網路中使用該資訊來完成的。利用現有目錄服務的區塊鏈網路可以通過現有協議(如輕量級目錄訪問協議(LDAP)[10])訪問它,並本地利用目錄中的資訊,或將其匯入區塊鏈網路內的內部證書頒發機構。
地址和地址推導
一些區塊鏈網路利用地址,該地址是使用加密雜湊函式從區塊鏈網路使用者的公鑰匯出的短的字母數字字串,以及一些附加資料(例如,版本號,校驗和)。大多數區塊鏈實現都使用地址作為事務中的“到”和“從”端點。地址比公鑰短,並不是祕密。生成地址的一種方法是建立公鑰,對其應用加密雜湊函式,並將雜湊轉換為文字:
公鑰→雜湊函式→地址
每個區塊鏈實現可以通過不同的方法來匯出地址。對於允許匿名帳戶建立的無許可權區塊鏈網路,區塊鏈網路使用者可以生成儘可能多的非對稱金鑰對,並因此根據需要進行定址,從而允許不同程度的偽匿名性。地址可以充當使用者的區塊鏈網路中面向公眾的識別符號,並且通常地址將被轉換為QR碼(快速響應程式碼,可以包含任意資料的二維條形碼)以便於移動使用裝置。
區塊鏈網路使用者可能不是區塊鏈網路中唯一的地址來源。一旦在區塊鏈網路中部署了智慧合約,就必須提供一種訪問智慧合約的方法。對於以太坊,可通過稱為合同賬戶的特殊地址訪問智慧合約。部署智慧合約時會建立此帳戶地址(合同帳戶的地址是根據智慧合約建立者的地址確定計算的)。該合同賬戶允許合同在收到交易時執行,並依次建立額外的智慧合約。
私鑰儲存
對於一些區塊鏈網路(特別是使用無權的區塊鏈網路),使用者必須管理並安全地儲存他們自己的私鑰。他們經常使用軟體來安全地儲存它們,而不是手動記錄它們。該軟體通常被稱為錢包。錢包可以儲存私鑰,公鑰和相關地址。它還可以執行其他功能,例如計算使用者可能擁有的數字資產的總數。
如果使用者丟失私鑰,則與該金鑰相關聯的任何數字資產都將丟失,因為重新生成相同的私鑰在計算上是不可行的。如果私鑰被盜,攻擊者將可以完全訪問由該私鑰控制的所有數字資產。私鑰的安全性非常重要,許多使用者使用特殊的安全硬體來儲存它們。或者,使用者可以利用新興的私鑰託管服務行業。除了儲存私鑰之外,這些金鑰託管服務還可以滿足KYC法律,因為使用者在建立帳戶時必須提供其身份證明。
私鑰儲存是區塊鏈技術的一個極其重要的方面。當新聞中報道“加密貨幣XYZ從...中被盜”時,幾乎可以肯定地發現一些私鑰被用來簽署將錢匯入新賬戶的交易,而不是區塊鏈網路本身被洩露。請注意,由於區塊鏈資料通常無法更改,一旦犯罪分子竊取私鑰並將相關資金公開轉移到另一個帳戶,該交易通常無法撤消。
本文來源:格密鏈