區(qū)塊鏈中的哈希與加密技術(shù)

以中本聰創(chuàng)立的比特幣為代表的數(shù)字貨幣近期發(fā)展迅猛,支撐比特幣實現(xiàn)去中心化的底層技術(shù)區(qū)塊鏈技術(shù)也在近兩年逐步走進大眾視野银室。區(qū)塊鏈技術(shù)以其安全性、去中心性以及算法保證的可信性吸引了包括金融機構(gòu)梢为、供應鏈莺奸、能源等多領域的關(guān)注。
在正式進入解析區(qū)塊鏈技術(shù)內(nèi)幕之前统抬,本文將就區(qū)塊鏈中與隱私保護火本、安全相關(guān)的基礎算法進行相應介紹

1.哈希算法

1.1. 簡介

計算機行業(yè)從業(yè)者對哈希這個詞應該非常熟悉,哈希能夠?qū)崿F(xiàn)數(shù)據(jù)從一個維度向另一個維度的映射聪建,通常使用哈希函數(shù)實現(xiàn)這種映射发侵。通常業(yè)界使用y = hash(x)的方式進行表示,該哈希函數(shù)實現(xiàn)對x進行運算計算出一個哈希值y妆偏。
區(qū)塊鏈中哈希函數(shù)特性:

  1. 函數(shù)參數(shù)為string類型刃鳄;
  2. 固定大小輸出;
  3. 計算高效钱骂;

優(yōu)點:

  • collision-free 即沖突概率小:
    x != y => hash(x) != hash(y)
  • 能夠隱藏原始信息:
    例如區(qū)塊鏈中各個節(jié)點之間對交易的驗證只需要驗證交易的信息熵叔锐,而不需要對原始信息進行比對,節(jié)點間不需要傳輸交易的原始數(shù)據(jù)只傳輸交易的哈希即可见秽,常見算法有SHA系列和MD5等算法

1.2. 哈希的用法

哈希在區(qū)塊鏈中用處廣泛愉烙,其一我們稱之為哈希指針(Hash Pointer
哈希指針是指該變量的值是通過實際數(shù)據(jù)計算出來的且指向?qū)嶋H的數(shù)據(jù)所在位置,即其既可以表示實際數(shù)據(jù)內(nèi)容又可以表示實際數(shù)據(jù)的存儲位置解取。下圖為Hash Pointer的示意圖

Hash pointer

HashPointer在區(qū)塊鏈中主要有兩處使用步责,第一個就是構(gòu)建區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)。了解區(qū)塊鏈的讀者應該知道區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)由創(chuàng)世區(qū)塊向后通過區(qū)塊之間的指針進行連接,這個指針使用的就是圖示的HashPointer.每個區(qū)塊中都存儲了前一個區(qū)塊的HashPointer蔓肯。這樣的數(shù)據(jù)結(jié)構(gòu)的好處在于后面區(qū)塊可以查找前面所有區(qū)塊中的信息且區(qū)塊的HashPointer的計算包含了前面區(qū)塊的信息從而一定程度上保證了區(qū)塊鏈的不易篡改的特性遂鹊。第二個用處在于構(gòu)建Merkle Tree. Merkle Tree的各個節(jié)點使用HashPointer進行構(gòu)建,關(guān)于區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)以及MerkleTree的內(nèi)容我們在后續(xù)文章中進行進一步介紹蔗包。

哈希還在其他技術(shù)中有所應用例如:交易驗證以及數(shù)字簽名等等秉扑。

2.加密算法

2.1簡述

加密簡單而言就是通過一種算法手段將對原始信息進行轉(zhuǎn)換,信息的接收者能夠通過秘鑰對密文進行解密從而得到原文的過程调限。按照加密方和解密方秘鑰相同與否可以將加密算法大致分為三種子類型:

  1. 對稱加密
    對稱加密的加密解密方使用相同的秘鑰舟陆,這種方式的好處在于加解密的速度快但是秘鑰的安全分發(fā)比較困難,常見對稱加密算法有DES,AES,...
  2. 非對稱加密
    非對稱加密體系也稱為公鑰體系耻矮,加解密時加密方擁有公鑰和私鑰秦躯,加密方可以將公鑰發(fā)送給其他相關(guān)方,私鑰嚴格自己保留裆装。例如銀行的頒發(fā)給個人用戶的私鑰就存儲在個人的U盾里踱承;非對稱加密中可以通過私鑰加密,他人能夠使用公鑰進行解密米母,反之亦然勾扭;非對稱加密算法一般比較復雜執(zhí)行時間相對對稱加密較長;好處在于無秘鑰分發(fā)問題铁瞒。常見的其他非對稱加密算法有RSA,ECC,區(qū)塊鏈中主要使用ECC橢圓曲線算法妙色。
    3.對稱加密與非對稱加密的結(jié)合
    這種方式將加密過程分為兩個階段,階段一使用非對稱加密進行秘鑰的分發(fā)使得對方安全地得到對稱加密的秘鑰慧耍,階段二使用對稱加密對原文進行加解密身辨。
加密例子

2.2 數(shù)字簽名

數(shù)字簽名又稱之為公鑰數(shù)字簽名,是一種類似于寫在紙上的物理簽名芍碧。數(shù)字簽名主要用于數(shù)據(jù)更改的簽名者身份識別以及抗抵賴煌珊。數(shù)字簽名包含三個重要特性:

  • 只有自己可以簽署自己的數(shù)字簽名,但是他人可以驗證簽名是否是你簽發(fā)泌豆;
  • 數(shù)字簽名需要和具體的數(shù)字文檔綁定定庵,就好比現(xiàn)實中你的簽名應該和紙質(zhì)媒介綁定;
  • 數(shù)字簽名不可偽造踪危;
    依賴非對稱加密機制可以較容易實現(xiàn)上述三種特性蔬浙。首先,需要生成個人的公私鑰對:
    (sk, pk) := generateKeys(keysize)贞远,sk私鑰用戶自己保留畴博,pk公鑰可以分發(fā)給其他人
    其次,可以通過sk對一個具體的message進行簽名:
    sig := sign(sk, message) 這樣就得到了具體的簽名sig
    最后蓝仲,擁有該簽名公鑰的一方能夠進行簽名的驗證:
    isValid := verify(pk, message, sig)
    在區(qū)塊鏈體系中每一條數(shù)據(jù)交易都需要簽名俱病,在比特幣的設計過程中直接將用戶的公鑰來表征用戶的比特幣地址官疲。這樣在用戶發(fā)起轉(zhuǎn)賬等比特幣交易時可以方便的進行用戶交易的合法性驗證。

2.3 數(shù)字證書和認證中心

2.3.1 數(shù)字證書(Digital Certificate)

數(shù)字證書又稱“數(shù)字身份證”亮隙、“網(wǎng)絡身份證”是經(jīng)認證中心授權(quán)頒發(fā)并經(jīng)認證中心數(shù)字簽名的包含公開秘鑰擁有者及公開秘鑰相關(guān)信息的電子文件途凫,可以用來判別數(shù)字證書擁有者身份。
數(shù)字證書包含:公鑰咱揍、證書名稱信息颖榜、簽發(fā)機構(gòu)對證書的數(shù)字簽名以及匹配的私鑰
證書可以存儲在網(wǎng)絡中的數(shù)據(jù)庫中棚饵。用戶可以利用網(wǎng)絡彼此交換證書煤裙。當證書撤銷后,簽發(fā)此證書的CA仍保留此證書的副本噪漾,以備日后解 決可能引起的糾紛硼砰。

2.3.2 認證中心(Certificate Authority)

認證中心 一般簡稱CA, CA一般是一個公認可信的第三方機構(gòu),其作用主要是為每個用戶頒發(fā)一個獨一無二的包含名稱和公鑰的數(shù)字證書欣硼。

2.4 常見加密算法的對比

常見加密算法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末题翰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子诈胜,更是在濱河造成了極大的恐慌豹障,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焦匈,死亡現(xiàn)場離奇詭異血公,居然都是意外死亡,警方通過查閱死者的電腦和手機缓熟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門累魔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人够滑,你說我怎么就攤上這事垦写。” “怎么了彰触?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵梯投,是天一觀的道長。 經(jīng)常有香客問我况毅,道長分蓖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任俭茧,我火速辦了婚禮咆疗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘母债。我一直安慰自己午磁,他們只是感情好尝抖,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迅皇,像睡著了一般昧辽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上登颓,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天搅荞,我揣著相機與錄音,去河邊找鬼框咙。 笑死咕痛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的喇嘱。 我是一名探鬼主播茉贡,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼者铜!你這毒婦竟也來了腔丧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤作烟,失蹤者是張志新(化名)和其女友劉穎愉粤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拿撩,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡衣厘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绷雏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片头滔。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涎显,靈堂內(nèi)的尸體忽然破棺而出坤检,到底是詐尸還是另有隱情,我是刑警寧澤期吓,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布早歇,位于F島的核電站,受9級特大地震影響讨勤,放射性物質(zhì)發(fā)生泄漏箭跳。R本人自食惡果不足惜寝并,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一痪伦、第九天 我趴在偏房一處隱蔽的房頂上張望聪全。 院中可真熱鬧阁将,春花似錦、人聲如沸稠炬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茄靠,卻和暖如春茂契,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背慨绳。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工掉冶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脐雪。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓厌小,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喂江。 傳聞我的和親對象是個殘疾皇子召锈,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容