首先要知道,任何一筆資料,例如一串數字、一段密碼、一篇網路文章,都可以被
演算法轉換成相對應的hash code。
這個hash code是一段文數字,這段文數字的特性是,只要原始的數字、密碼、文章
做出一點微小的改變,例如文章某處被加上了某個標點符號,那麼這篇文章所對應的
hash code,就會產生極大的變化;利用hash code的這個特性,就可以確保
一旦原始資料被外人竄改時,當事人可以很快察覺到資料被竄改,因此hash code對於
原始資料,提供了完整性的保護。
既然hash code提供了對資料完整性的保護,那如果現在有很多筆資料,每筆資料
都有對應的hash code,將這一筆筆資料與對應hash code當成一個個的區塊並集中起來,
每個區塊除了資料與對應hash code外,另外也保存了前一個區塊的hash code,
就這樣利用hash code將一個個的區塊串接起來,就形成了區塊鏈。
形成區塊鏈有什麼好處呢?
根據上面所提到,hash code的特性是:一旦對應資料被竄改可以很快被察覺到。
所以,若這一串區塊鏈的某筆資料被修改,只要去拿前後區塊的hash code做比較,
若前後區塊的hash code不一致,就表示資料被竄改。這就是將資料串成區塊鏈的好處。
而且區塊鍊的資料,強調分散去中心化,這表示區塊鏈資料可以被備份到全世界各地去,
利用世界各地區塊鏈使用者社群彼此相互的協助、監督,也可維持資料的完整性。
這意味著若有駭客要攻擊某個區塊鏈,例如竄改區塊鏈內的資料。
那麼駭客就必須有辦法去取得或至少是影響全世界範圍內的計算機運算能力,
或著最少最少,要能掌握超出全世界區塊鏈使用者計算能力的能力,
這都是很困難的,這就是區塊鏈被人們認為是安全的資安機制的原因。