加密技術(shù)及加密哈希值算法是怎樣服務于區(qū)塊鏈的?
分布式計算、機制設計和密碼學算法構(gòu)成了區(qū)塊鏈技術(shù)的三位一體。分布式計算利用了一個分散的計算機網(wǎng)絡,并以Torrenting網(wǎng)絡的形式存在于區(qū)塊鏈之前。
然而,TorrenTIng網(wǎng)站并沒有管理參與者行為的方法,這就是機制設計進入?yún)^(qū)塊鏈的地方。它為網(wǎng)絡參與者提供了為網(wǎng)絡服務工作的動力。
密碼學是保護這些激勵措施的安全保障。這一開創(chuàng)性的比特幣白皮書解釋了這三種科學原理是如何共同作用的,從而形成一種安全的、對等的價值交換,消除了金融交易中對第三方的需求。
雖然每一項原則都應該有自己的解釋,但本文將重點介紹加密技術(shù)以及加密算法如何服務于區(qū)塊鏈。
密碼學簡史
從古埃及時代起,某種形式的密碼學就一直存在。在計算機時代之前,可以使用一種簡單的密碼算法來傳輸消息。其中最常被引用的是凱撒密碼。凱撒密碼用字母表中排在后三位的字母代替了每一個字母,所以A變成了D,B變成了E,依此類推。只要用于生成密文的系統(tǒng)仍然是保密的,那么這個消息也可以保持私有化。
后來,在16世紀,Vigenere引入了加密密鑰的概念,加密算法可以解密加密的消息。使用Vigenere密碼,消息文本被轉(zhuǎn)錄成一個單獨的關(guān)鍵字,直到它匹配原始消息的字符長度為止。然后使用一張表生成密文。
這里的關(guān)鍵發(fā)展是,使用Vigener密碼傳輸?shù)南⒌陌踩砸蕾囉诿荑€的保密性,而不是系統(tǒng)本身。
20世紀的發(fā)展
這類代碼的問題在于,通過分析字母的頻率,它們很容易被分解。在第二次世界大戰(zhàn)期間,德國人廣泛使用了英格瑪機器,因為它能夠生成無法通過分析字母頻率來破解的密碼文本。
這臺機器使用了一個多轉(zhuǎn)子系統(tǒng)來生成密文。因此,原始信息中的字母“e”對應于密碼文本中不同的字母。關(guān)鍵是轉(zhuǎn)子的初始設置。
盡管德國人認為密碼是牢不可破的,但早在1932年,英格瑪就被波蘭破譯了。在布萊切利公園為英國軍隊工作的密碼學家,包括現(xiàn)在已經(jīng)變成傳奇人物的艾倫圖靈本人,發(fā)現(xiàn)了一種方法來找出德國人使用的日常鑰匙。
計算機的到來
戰(zhàn)后,作為保護公司秘密的一種手段,商業(yè)和商業(yè)空間對加密的需求增加了。在20世紀70年代,IBM開發(fā)了數(shù)據(jù)加密標準(DES)加密算法。然而,它使用了一個小的加密密鑰。隨著計算機時代的到來,人們很容易就會對其進行暴力攻擊,因此需要對更新進行無窮的更新。于是2000年采用了高級加密標準。
盡管許多人可能沒有意識到這一點,但對事物進行加密現(xiàn)在是日常生活的一部分。在網(wǎng)站上的電子郵件和短信、密碼和SSL層都涉及到加密的使用。它還構(gòu)成了加密貨幣的支柱。有許多不同類型的密碼學算法涵蓋了各種用例,其中很多已經(jīng)過時了。然而,在區(qū)塊鏈中使用加密技術(shù)包括數(shù)字簽名和哈希值。
數(shù)字簽名
加密貨幣的支付需要以私鑰的形式進行數(shù)字簽名。當有人通過支付事務輸入他們的私鑰時,這會對交易進行加密。當付款到達目的地時,接收者可以使用發(fā)送方的公鑰解密交易。
這就是所謂的非對稱加密,因為它依賴于密碼學之間的一對鍵。它比對稱加密更安全,因為發(fā)送方和接收方都使用相同的密鑰。在這種情況下,密鑰本身也必須與支付一起傳輸,這意味著需要額外的安全層來保護密鑰。
哈希
區(qū)塊鏈也依賴于哈希值。哈希值是一種可以將任何類型的數(shù)據(jù)轉(zhuǎn)換成字符串的加密方法。除了通過加密提供安全性,哈希值還創(chuàng)建了一個更高效的數(shù)據(jù)存儲,因為哈希值的大小是固定的。
加密哈希值算法的特點
加密哈希值算法必須滿足特定的標準才能有效:
·相同的輸入必須總是產(chǎn)生相同的輸出。無論您將數(shù)據(jù)放入哈希值算法中多少次,它都必須始終如一地在字符串中使用相同的字符產(chǎn)生相同的哈希值。
·輸入不能用輸出來推斷或計算。沒有辦法逆轉(zhuǎn)哈希值過程來查看原始數(shù)據(jù)集。
·輸入的任何更改都必須產(chǎn)生完全不同的輸出。即使在數(shù)據(jù)集中改變一個字符的情況,也應該創(chuàng)建一個非常不同的哈希值。
·哈希值應該是固定數(shù)量的字符,不管用作輸入的數(shù)據(jù)的大小或類型。
·創(chuàng)建哈希值應該是一個快速的過程,它不會大量使用計算能力。
哈希是如何工作的?
區(qū)塊鏈對每一筆交易都進行了處理,然后將它們組合成塊。哈希值指針將每個區(qū)塊連接到它的前身,方法是在前一個區(qū)塊中持有數(shù)據(jù)的哈希值。因為每個塊都會鏈接到它的前身,所以區(qū)塊鏈中的數(shù)據(jù)是不可變的。哈希函數(shù)意味著任何事務的變更都會產(chǎn)生完全不同的哈希值,這將改變所有后續(xù)塊的哈希值。
不同的區(qū)塊鏈使用不同的加密算法。比特幣區(qū)塊鏈使用的是SHA256算法,該算法生成一個32字節(jié)的哈希值。Dogecoin和Litecoin都使用了Scrypt算法,這是一種更快、更輕的加密算法。
密碼學是一門復雜而詳細的科學,它超越了區(qū)塊鏈的范圍。在密碼學方面有大量的知識需要進行研究,特別是對于更科學或數(shù)學上的傾向,這是一個值得探索的迷人主題。