區(qū)塊鏈項(xiàng)目中常用的四種加密算法介紹
在深入學(xué)習(xí)區(qū)塊鏈時(shí),不可避免的需要了解密碼學(xué)。密碼學(xué)流傳已久,有幾千年歷史,在軍事、外交、情報(bào)等領(lǐng)域有廣泛的的應(yīng)用。在區(qū)塊鏈領(lǐng)域,也大量應(yīng)用了密碼學(xué)算法,比如哈希算法和橢圓曲線算法,今天我們盤點(diǎn)一下區(qū)塊鏈項(xiàng)目常用的一些加密算法。
1. 哈希算法
比特幣系統(tǒng)中使用的哈希函數(shù)分別用于完成工作量證明計(jì)算合生成地址。簡言之,哈希算法是將任意長度的字符串映射為較短的固定長度的字符串。因?yàn)檫@個(gè)運(yùn)算的確定性,高效性使得去中心化的計(jì)算能夠?qū)崿F(xiàn)。又因?yàn)閷斎氲拿舾行?,和該映射逆函?shù)難以尋找(抗原像攻擊),對區(qū)塊鏈系統(tǒng)安全性有很大幫助。
2. 橢圓曲線算法
橢圓曲線是一套關(guān)于加密數(shù)據(jù),解密數(shù)據(jù)交換密匙的算法, 也可用于對數(shù)據(jù)簽名和驗(yàn)證。
簽名一方面可以保證用戶的賬戶不被其他人頂替,另一方面保證用戶不能否認(rèn)其所簽名的交易。用私鑰對交易信息簽名,礦工用用戶的公鑰驗(yàn)證簽名,驗(yàn)證通過,則交易信息記賬,完成交易。
3. Base58編碼
Base58是比特幣使用的編碼方式,主要用于產(chǎn)生比特幣的錢包地址,這種編碼格式不僅實(shí)現(xiàn)了數(shù)據(jù)壓縮,保持了易讀性,還具有錯(cuò)誤診斷功能。
4. 零知識證明
零知識證明是20世紀(jì)80年代初由計(jì)算機(jī)科學(xué)家Goldwasser和Micali等人共同提出的一項(xiàng)技術(shù),它主要是指證明者能夠在不向驗(yàn)證者提供任何有用信息的情況下,使驗(yàn)證者相信某個(gè)論斷是正確的。
零知識證明能夠成立需要具備三個(gè)要素,即完整性、可靠性和零知識。舉個(gè)例子來說就是,假設(shè)有一個(gè)環(huán)形走廊,出口和入口相鄰但不互通(在目測距離之內(nèi)),在這個(gè)環(huán)形走廊中間的某處有一道鎖起來的門,只有擁有鑰匙的人才可以通過;這時(shí)A要向B證明自己擁有打開這道門的鑰匙,用零知識量證明來解決就是,B看著A走進(jìn)入口并在出口等待,如果A從入口進(jìn)入通過走廊并從出口走出,則可以證明其擁有打開中間那扇門的鑰匙,而在這個(gè)過程中,他完全不用向B提供鑰匙的具體信息。所以零知識證明實(shí)際上是一種概率證明而非確定性證明。
這四項(xiàng)加密技術(shù)大家看完有什么感受嗎?