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