時(shí)間:2022-02-23|瀏覽:458
如果分散化不能解決上述認(rèn)證和防偽問(wèn)題,區(qū)塊鏈的不可篡改性只是一堆不可篡改的交易,但沒(méi)有證據(jù)。
所以Cryptography (密碼學(xué))和Hash Function哈希值)誕生了!區(qū)塊鏈重要技術(shù)賦予區(qū)塊鏈不可篡改和分散的意義。
Cryptography密碼學(xué)
如今,隨著信息的發(fā)展,密碼學(xué)實(shí)際上隱藏在我們?nèi)粘I畹拿恳粋€(gè)地方,比如登錄電子郵件和社區(qū)…所有這些都需要輸入自己的密碼,羅馬人早就說(shuō)過(guò)了Kryptosgraphia(密碼學(xué)) 也就是說(shuō)Kryptos (hidde) Graphia (message) 隱藏的訊息,是不是很有趣呢?
區(qū)塊鏈?zhǔn)褂玫拿艽a學(xué)技術(shù)是Public Key Cryptography (公鑰密碼學(xué)),又稱Asymmetric Cryptography (非對(duì)稱式密碼學(xué))。從Public Key (公鑰)可以知道一定有Private Key (私鑰)的存在,公鑰和私鑰的區(qū)別在于私鑰不能給別人看,要自己保管;公鑰是可以發(fā)布給大家的信息。
可以進(jìn)行公私鑰匙encryption (加密)或decryption (解密),兩對(duì)配對(duì)(因此稱為非對(duì)稱密碼學(xué)),一個(gè)私鑰產(chǎn)生一個(gè)公鑰,只有成對(duì)的公鑰才能相互解密。
當(dāng)公鑰加密成鎖時(shí),私鑰是他的解決方案,反之亦然,形成兩種不同的資安用途:
公鑰加密,私鑰解密:保護(hù)傳輸?shù)男畔⒈旧?,證明只有私鑰所有者才能閱讀。
例如:Alice 向銀行傳遞信息Jack,她用Jack而公鑰加密Jack解鎖公鑰就是Jack私鑰代表銀行信息只有Jack有辦法解密閱讀。
2. 私鑰加密,公鑰解密:保護(hù)公鑰持有人,證明出版商(私鑰持有人)的合法性。
例如:Digital Signing (數(shù)字簽名 )。Jack他是一家公司的老板。今天,他想以他的名義向公眾發(fā)布信息。如何確保他是Jack老板的本尊怎么樣?Jack用他的私鑰加密,然后知道Jack大眾可以解密公鑰獲取信息。
注:使用公共和私鑰的目的不同于第一個(gè)保護(hù)秘密信息,但為了確保出版商的信息在傳輸過(guò)程中沒(méi)有被篡改,因?yàn)槿绻淮鄹模娛褂肑ack公鑰時(shí)便會(huì)解密失敗。
更簡(jiǎn)單地說(shuō),使用公鑰加密就像我們的電子郵件一樣,這樣任何人都可以向我們發(fā)送他們想要保密的信息。只有有了電子郵件鑰匙,我們才能看到信息; 另一方面,私鑰加密的目的是確保出版商的身份digital signature (數(shù)字簽名)。
現(xiàn)下常見(jiàn)的Public Key Cryptography公鑰密碼學(xué)
RSA加密算法:Rivest Shamir Adelman (RSA) Algorithm
ECC加密算法:Eliptic Curve Cryptography (ECC),比特幣和以太坊使用的公鑰密碼學(xué)更受歡迎ECC較RSA更有效地處理。
關(guān)鍵筆記:Public Key Cryptography 公鑰密碼學(xué)
公鑰密碼學(xué)解釋了為什么錢包被用于區(qū)塊鏈,幣安(Binance)被轉(zhuǎn)換,身份認(rèn)證機(jī)制被解釋。
只有輸出公鑰的當(dāng)事人才會(huì)擁有私鑰,生成公鑰是一個(gè)不可逆轉(zhuǎn)的過(guò)程。當(dāng)別人知道你的公鑰時(shí),不可能把原來(lái)的私鑰推回去。(計(jì)算機(jī)操作能力如此之大)
加密的信息就像亂碼,需要相應(yīng)的鑰匙(一把公鑰和一把私鑰)or一把私鑰和一把公鑰解密可以把亂碼打回原形。
Hash Function 哈希函數(shù)
區(qū)塊鏈的哈希函數(shù)是什么?
區(qū)塊鏈的哈希函數(shù)是一種可以接收各種檔案形式(數(shù)字、文字、圖像、電影、電子書(shū)、合同…等等),檔案大小,經(jīng)雜數(shù)方程式計(jì)算,壓縮后,輸出一串固定大小的數(shù)字。
「嘿,數(shù)字?為什么我還看英語(yǔ)?」
因?yàn)楣:瘮?shù)是基于16進(jìn)位的,不同于我們生活中每天使用的16進(jìn)位~9后代表的數(shù)字10~15,就是ABCDEF。
哈希函數(shù)也有非常多種,隨便舉幾個(gè)例子MD5 (128-bit) 、 SHA-256 (256-bit) 、 SHA-512 (512-bit) 。括弧中的幾bit代表檔案壓縮后,產(chǎn)出那串?dāng)?shù)字的大小,而bit越大代表可能產(chǎn)生的數(shù)字越多種,區(qū)塊鏈也就越安全。試想要是今天檔案壓縮后只有22=4種可能,跟另一個(gè)256 bits的哈希函數(shù)大約有22??=1.15 x 100000000000000000000000000000000000000000000000000000000000000000000000000000?(沒(méi)錯(cuò),有77個(gè)0這么多)種可能相比,哪個(gè)更安全,更不容易被駭客破解呢?
除了將各種檔案壓縮成一串大小相同的數(shù)字外,哈希函數(shù)還有幾個(gè)特點(diǎn):1. 產(chǎn)量很快,好奇的朋友可以親自玩SHA-256哈希函數(shù); 2. 即使只是相差一個(gè)字,數(shù)字也相差十萬(wàn)八千里(試著輸入dog和dog3.看看會(huì)發(fā)生什么。?。┮虼?,如果智能合同中有標(biāo)點(diǎn)符號(hào)、英文單詞或數(shù)字發(fā)生變化,則會(huì)立即發(fā)現(xiàn) ;
3.最后也是最重要的一點(diǎn),真的很重要。區(qū)塊鏈?zhǔn)褂玫墓:瘮?shù)是一種one-way(單向)方程式,也就是說(shuō),沒(méi)有人能從輸出的密碼中推回原始文件。你覺(jué)得似曾相似嗎?是的,上面提到的私鑰輸出公鑰的過(guò)程是使用哈希函數(shù)計(jì)算的結(jié)果,所以在向公眾打開(kāi)公鑰后,你不必?fù)?dān)心你的私鑰有一天會(huì)被破解。在這里,我真的想向想出該操作規(guī)則的聰明工程師致敬。
關(guān)鍵筆記:Hash Function哈希函數(shù)
哈??雌饋?lái)像一堆毫無(wú)意義的亂碼。
哈希函的目的是壓縮檔案,并量化各種檔案。
哈希函數(shù)具有快速輸出、不易重復(fù)(因?yàn)橹挥幸粋€(gè)字完全不同)、單向的特點(diǎn)。
通過(guò)哈希函數(shù)加持的密碼,被嚇的概率很小; 通過(guò)哈希函數(shù)加持的數(shù)據(jù)也不能被篡改。
熱點(diǎn):以太 以太坊 區(qū)塊鏈 區(qū)塊鏈技術(shù) 幣安 數(shù)據(jù) 比特幣 比特幣