區(qū)塊鏈技術(shù)使用非對(duì)稱密鑰加密(也稱為公鑰加密)。非對(duì)稱密鑰密碼術(shù)使用一對(duì)密鑰:公鑰和私鑰,它們?cè)跀?shù)學(xué)上彼此相關(guān)。在不降低進(jìn)程安全性的情況下公開(kāi)公鑰,但如果數(shù)據(jù)要保留其加密保護(hù),則私鑰必須保密。即使在兩個(gè)密鑰之間存在關(guān)系,也不能基于公鑰的知識(shí)有效地確定私鑰??梢允褂盟借€加密,然后使用公鑰解密?;蛘撸梢允褂霉€加密,然后使用私鑰解密。
非對(duì)稱密鑰加密通過(guò)提供一種機(jī)制來(lái)驗(yàn)證交易的完整性和真實(shí)性,同時(shí)允許交易保持公開(kāi),從而在彼此不了解或彼此不信任的用戶之間實(shí)現(xiàn)信任關(guān)系。為此,交易是“數(shù)字簽名”。這意味著私鑰用于加密事務(wù),以便具有公鑰的任何人都可以解密它。由于公鑰是免費(fèi)的,因此使用私鑰加密事務(wù)證明了事務(wù)的簽名者可以訪問(wèn)私鑰。或者,可以使用用戶的公鑰對(duì)數(shù)據(jù)進(jìn)行加密,以便只有具有私鑰訪問(wèn)權(quán)限的用戶才能對(duì)其進(jìn)行解密。缺點(diǎn)是非對(duì)稱密鑰加密通常計(jì)算緩慢。
這與對(duì)稱密鑰加密形成對(duì)比,其中單個(gè)密鑰用于加密和解密。使用對(duì)稱密鑰加密,用戶必須已經(jīng)建立了彼此建立的信任關(guān)系以交換預(yù)共享密鑰。在對(duì)稱系統(tǒng)中,可以使用預(yù)共享密鑰解密的任何加密數(shù)據(jù)確認(rèn)它是由具有對(duì)預(yù)共享密鑰的訪問(wèn)權(quán)限的另一用戶發(fā)送的; 沒(méi)有訪問(wèn)預(yù)共享密鑰的用戶將無(wú)法查看解密數(shù)據(jù)。與非對(duì)稱密鑰密碼術(shù)相比,對(duì)稱密鑰密碼術(shù)的計(jì)算速度非???。因此,當(dāng)聲稱使用非對(duì)稱密鑰加密來(lái)加密某些內(nèi)容時(shí),通常使用對(duì)稱密鑰加密對(duì)數(shù)據(jù)進(jìn)行加密,然后使用非對(duì)稱密鑰加密對(duì)對(duì)稱密鑰進(jìn)行加密。
以下是在許多區(qū)塊鏈網(wǎng)絡(luò)中使用非對(duì)稱密鑰加密的總結(jié):
· 私鑰用于對(duì)交易進(jìn)行數(shù)字簽名。
· 公鑰用于派生地址。
· 公鑰用于驗(yàn)證使用私鑰生成的簽名。
· 非對(duì)稱密鑰加密提供了驗(yàn)證向另一個(gè)用戶傳輸值的用戶是否擁有能夠簽署事務(wù)的私鑰的能力。
一些許可的區(qū)塊鏈網(wǎng)絡(luò)可以利用企業(yè)現(xiàn)有的公鑰基礎(chǔ)設(shè)施進(jìn)行非對(duì)稱密鑰加密,以提供用戶憑證 - 而不是讓每個(gè)區(qū)塊鏈網(wǎng)絡(luò)用戶管理自己的非對(duì)稱密鑰。這是通過(guò)利用現(xiàn)有的目錄服務(wù)并在區(qū)塊鏈網(wǎng)絡(luò)中使用該信息來(lái)完成的。利用現(xiàn)有目錄服務(wù)的區(qū)塊鏈網(wǎng)絡(luò)可以通過(guò)現(xiàn)有協(xié)議(如輕量級(jí)目錄訪問(wèn)協(xié)議(LDAP)[10])訪問(wèn)它,并本地利用目錄中的信息,或?qū)⑵鋵?dǎo)入?yún)^(qū)塊鏈網(wǎng)絡(luò)內(nèi)的內(nèi)部證書(shū)頒發(fā)機(jī)構(gòu)。
地址和地址推導(dǎo)
一些區(qū)塊鏈網(wǎng)絡(luò)利用地址,該地址是使用加密散列函數(shù)從區(qū)塊鏈網(wǎng)絡(luò)用戶的公鑰導(dǎo)出的短的字母數(shù)字字符串,以及一些附加數(shù)據(jù)(例如,版本號(hào),校驗(yàn)和)。大多數(shù)區(qū)塊鏈實(shí)現(xiàn)都使用地址作為事務(wù)中的“到”和“從”端點(diǎn)。地址比公鑰短,并不是秘密。生成地址的一種方法是創(chuàng)建公鑰,對(duì)其應(yīng)用加密哈希函數(shù),并將哈希轉(zhuǎn)換為文本:
公鑰≥哈希函數(shù)≥地址
每個(gè)區(qū)塊鏈實(shí)現(xiàn)可以通過(guò)不同的方法來(lái)導(dǎo)出地址。對(duì)于允許匿名帳戶創(chuàng)建的無(wú)權(quán)限區(qū)塊鏈網(wǎng)絡(luò),區(qū)塊鏈網(wǎng)絡(luò)用戶可以生成盡可能多的非對(duì)稱密鑰對(duì),并因此根據(jù)需要進(jìn)行尋址,從而允許不同程度的偽匿名性。地址可以充當(dāng)用戶的區(qū)塊鏈網(wǎng)絡(luò)中面向公眾的標(biāo)識(shí)符,并且通常地址將被轉(zhuǎn)換為QR碼(快速響應(yīng)代碼,可以包含任意數(shù)據(jù)的二維條形碼)以便于移動(dòng)使用設(shè)備。
區(qū)塊鏈網(wǎng)絡(luò)用戶可能不是區(qū)塊鏈網(wǎng)絡(luò)中唯一的地址來(lái)源。一旦在區(qū)塊鏈網(wǎng)絡(luò)中部署了智能合約,就必須提供一種訪問(wèn)智能合約的方法。對(duì)于以太坊,可通過(guò)稱為合同賬戶的特殊地址訪問(wèn)智能合約。部署智能合約時(shí)會(huì)創(chuàng)建此帳戶地址(合同帳戶的地址是根據(jù)智能合約創(chuàng)建者的地址確定計(jì)算的)。該合同賬戶允許合同在收到交易時(shí)執(zhí)行,并依次創(chuàng)建額外的智能合約。
私鑰存儲(chǔ)
對(duì)于一些區(qū)塊鏈網(wǎng)絡(luò)(特別是使用無(wú)權(quán)的區(qū)塊鏈網(wǎng)絡(luò)),用戶必須管理并安全地存儲(chǔ)他們自己的私鑰。他們經(jīng)常使用軟件來(lái)安全地存儲(chǔ)它們,而不是手動(dòng)記錄它們。該軟件通常被稱為錢包。錢包可以存儲(chǔ)私鑰,公鑰和相關(guān)地址。它還可以執(zhí)行其他功能,例如計(jì)算用戶可能擁有的數(shù)字資產(chǎn)的總數(shù)。
如果用戶丟失私鑰,則與該密鑰相關(guān)聯(lián)的任何數(shù)字資產(chǎn)都將丟失,因?yàn)橹匦律上嗤乃借€在計(jì)算上是不可行的。如果私鑰被盜,攻擊者將可以完全訪問(wèn)由該私鑰控制的所有數(shù)字資產(chǎn)。私鑰的安全性非常重要,許多用戶使用特殊的安全硬件來(lái)存儲(chǔ)它們?;蛘?,用戶可以利用新興的私鑰托管服務(wù)行業(yè)。除了存儲(chǔ)私鑰之外,這些密鑰托管服務(wù)還可以滿足KYC法律,因?yàn)橛脩粼趧?chuàng)建帳戶時(shí)必須提供其身份證明。
私鑰存儲(chǔ)是區(qū)塊鏈技術(shù)的一個(gè)極其重要的方面。當(dāng)新聞中報(bào)道“加密貨幣XYZ從。..中被盜”時(shí),幾乎可以肯定地發(fā)現(xiàn)一些私鑰被用來(lái)簽署將錢匯入新賬戶的交易,而不是區(qū)塊鏈網(wǎng)絡(luò)本身被泄露。請(qǐng)注意,由于區(qū)塊鏈數(shù)據(jù)通常無(wú)法更改,一旦犯罪分子竊取私鑰并將相關(guān)資金公開(kāi)轉(zhuǎn)移到另一個(gè)帳戶,該交易通常無(wú)法撤消