密碼學在區塊鏈中的應用主要有兩個:哈希算法與非對稱加密算法。此次主要對哈希算法進行詳細的說明。算法
哈希算法的特色有:
一、輸入能夠爲任意大小的字符串;
二、產生固定大小的輸出;
三、能夠在合理的時間內算出輸出值。安全
若要知足密碼學的安全性,哈希算法還應該具備如下三個特性:
一、碰撞阻力:不一樣的輸入不會產生相同的輸出;
二、不可逆性:若y = Hash (x) ,根據y沒法倒推出x;
三、謎題友好:若想倒推出x,只能經過暴力枚舉破解。學習
以比特幣爲例,來看一下哈希算法的具體應用: 在比特幣中,使用哈希算法把交易生成數據摘要,當前區塊裏面包含上一個區塊的哈希值(block? header hash),後面一個區塊又包含當前區塊的哈希值(),就這樣一個接一個的鏈接起來,造成一個哈希指針鏈表,以下圖: 區塊鏈
Merkle Tree字段: 加密
本次對哈希算法的學習與整理過程當中,還有些疑惑,merkle tree的底部若不按照ABCD的順序進行排列,是否會對整個區塊的Block header形成影響,從而影響整個區塊鏈。參考文章地址: cloud.tencent.com/developer/a…
天天進步一點點~!3d