作為銀行從業(yè)人員,對(duì)區(qū)塊鏈在金融領(lǐng)域的巨大發(fā)展?jié)摿τ袕?qiáng)烈的信心和期待册着。在一切還處于朦朧中時(shí)能夠領(lǐng)先一步深入學(xué)習(xí)了解拴孤,就能夠在未來(lái)獲得更多的機(jī)會(huì)。
一旦和錢(qián)扯上關(guān)系甲捏,安全性一定是每一個(gè)使用者關(guān)心的首要問(wèn)題演熟。在傳統(tǒng)互聯(lián)網(wǎng)金融的框架下,資產(chǎn)盜用問(wèn)題已經(jīng)讓很多人產(chǎn)生心理陰影司顿,信用卡盜刷芒粹、支付寶盜用等屢見(jiàn)不鮮,而區(qū)塊鏈又是一個(gè)對(duì)大多數(shù)普通人而言不那么熟悉的新技術(shù)大溜,大家不禁會(huì)問(wèn)它到底安不安全呢化漆。
有沒(méi)有發(fā)現(xiàn)我們常常會(huì)聽(tīng)到「加密貨幣」(Cryptocurrency)這個(gè)詞,它是區(qū)塊鏈?zhǔn)澜缰兄T如比特幣钦奋、以太坊等虛擬幣的另一種稱(chēng)呼座云,字面上好像就在告訴我們,這種貨幣很安全付材,被加密了嘛朦拖。也常常看到這樣的說(shuō)法厌衔,區(qū)塊鏈?zhǔn)侨ブ行幕摹植际接涃~璧帝,不可被篡改的——因?yàn)樗欠植际饺ブ行幕模疫€是想問(wèn)富寿,它到底是怎樣加密并實(shí)現(xiàn)這些特性的呢睬隶?
經(jīng)過(guò)最近一段時(shí)間的學(xué)習(xí)了解,以下兩個(gè)方面讓我對(duì)加密貨幣有了更立體的認(rèn)知作喘。
加密技術(shù)
簡(jiǎn)單來(lái)說(shuō)加密技術(shù)主要有兩個(gè)發(fā)展階段理疙,第一階段是對(duì)稱(chēng)加密,第二階段是非對(duì)稱(chēng)加密泞坦。
對(duì)稱(chēng)加密的意思即傳輸信息的雙方掌握同一套算法窖贤,舉一個(gè)最簡(jiǎn)單的例子,比如A要發(fā)出一段數(shù)字信息「1234」給B,通過(guò)將每位數(shù)字都+1來(lái)進(jìn)行加密赃梧,所以B收到的數(shù)字是「2345」滤蝠,他只要進(jìn)行逆向運(yùn)算解密,將每位數(shù)字減1即可獲取原始信息授嘀,但這種加密方法比較簡(jiǎn)單物咳,任意一方被攻破就必須更換整套算法來(lái)維持系統(tǒng)安全性。
第二階段的非對(duì)稱(chēng)加密技術(shù)相對(duì)對(duì)稱(chēng)加密技術(shù)就要安全得多蹄皱,在信息發(fā)送雙方之間不再使用同一套算法览闰,同樣舉一個(gè)簡(jiǎn)化的例子就能秒懂:在數(shù)學(xué)中有這樣一個(gè)規(guī)律:「10001」乘以任意一個(gè)數(shù)字之后其末四位數(shù)不變。我們可以利用這條規(guī)律來(lái)對(duì)數(shù)字信息進(jìn)行加密巷折,比如A還是要傳輸一個(gè)數(shù)字「1234」給B压鉴,它先在「1234」的基礎(chǔ)上乘以「137」,得出「169058」锻拘,去掉前兩位油吭,實(shí)際傳輸給B的數(shù)字是「9058」,B在收到「9058」這條信息后會(huì)怎么做呢署拟?你一定會(huì)覺(jué)得很神奇婉宰,B用「9058」乘以「73」,得出「661234」推穷,然后即可知道A要傳給他的信息就是末四位「1234」心包!為什么會(huì)這樣?因?yàn)椤?0001」這個(gè)數(shù)字可以拆解成兩個(gè)因子「137」和「73」缨恒,「137」乘以「73」即「10001」谴咸,也就是說(shuō)A與B的手里各執(zhí)一把鑰匙,放在一起就撬動(dòng)了這個(gè)鎖骗露,獲得想要傳輸?shù)脑紨?shù)據(jù)岭佳。那為什么要去掉前兩位,只傳輸「9058」呢萧锉?因?yàn)榇藭r(shí)無(wú)論73乘以「9058」珊随、「169058」還是「XX9058」,后四位不會(huì)改變柿隙,效果是一樣的叶洞,但通過(guò)傳輸殘缺的數(shù)據(jù)卻可以大大增加數(shù)據(jù)的安全性,何樂(lè)而不為呢禀崖。
這只是一個(gè)最簡(jiǎn)化的例子用于理解非對(duì)稱(chēng)加密的概念衩辟,實(shí)際應(yīng)用中可以發(fā)展出比這個(gè)復(fù)雜得多的加密算法,加密貨幣目前使用的是RSA加密系統(tǒng)波附,確保虛擬貨幣數(shù)據(jù)傳輸過(guò)程的安全性艺晴。
哈希算法
這是另外一個(gè)對(duì)加密貨幣的安全性起到至關(guān)重要作用的概念昼钻。簡(jiǎn)單來(lái)說(shuō),任意一個(gè)數(shù)據(jù)可以通過(guò)哈希算法計(jì)算出一個(gè)唯一的哈希值封寞。在區(qū)塊鏈中每一個(gè)區(qū)塊包含一個(gè)表頭然评,表頭中包含一個(gè)哈希值,這個(gè)哈希值唯一對(duì)應(yīng)上一個(gè)父區(qū)塊的數(shù)據(jù)內(nèi)容狈究。結(jié)構(gòu)如圖所示:
而這個(gè)唯一性從何而來(lái)呢碗淌?哈希算法有一個(gè)非常重要的特性叫做「防碰撞性」,即兩個(gè)不同的輸入值抖锥,其哈希值必然不同亿眠,也就是說(shuō)你可能找一輩子也找不出兩個(gè)不同的輸入值(沒(méi)有任何限定的數(shù)據(jù)),能夠得到一個(gè)相同的哈希值磅废,由此我們稱(chēng)這種算法具有防碰撞性缕探。如比特幣用的是「SHA256」哈希算法,將區(qū)塊中的數(shù)據(jù)內(nèi)容作為輸入值还蹲,計(jì)算生成一個(gè)固定256位長(zhǎng)度的哈希值,存儲(chǔ)在下一個(gè)區(qū)塊的表頭中耙考,只要數(shù)據(jù)有任何改動(dòng)谜喊,哈希值就會(huì)發(fā)生變化,這就是哈希值可以唯一指向上一個(gè)區(qū)塊內(nèi)容的根本原因倦始。它最重要的作用就是可以防止篡改斗遏,因?yàn)楹诳鸵坏┐鄹牧四骋粋€(gè)區(qū)塊中的數(shù)據(jù),必然造成其后面區(qū)塊表頭的哈希值與上一個(gè)區(qū)塊被修改后的數(shù)據(jù)內(nèi)容不匹配鞋邑,所以如果想要篡改這一個(gè)區(qū)塊的數(shù)據(jù)必須篡改其后的所有區(qū)塊上的數(shù)據(jù)诵次,這必須擁有全網(wǎng)51%的算力才可能做到,而這幾乎不可能實(shí)現(xiàn)枚碗,無(wú)論從技術(shù)上還是財(cái)力上逾一,因此保證了加密貨幣在底層區(qū)塊鏈上數(shù)據(jù)的不可篡改性。
通過(guò)以上兩個(gè)方面的學(xué)習(xí)終于讓我對(duì)加密貨幣增加了更多安全感肮雨,同時(shí)深知自己學(xué)習(xí)的時(shí)間和深度還遠(yuǎn)遠(yuǎn)不夠遵堵,可能敘述中會(huì)有失偏頗或有理解不正確的地方,望得到拍磚指正怨规,共同學(xué)習(xí)進(jìn)步陌宿。