我記得,在剛開始介紹區(qū)塊鏈的時(shí)候,曾經(jīng)說過你就可以把它想成一個(gè)一個(gè)的小信息盒子。然后用鏈條把它們連起來。那區(qū)塊鏈和普通的鏈有什么區(qū)別呢?區(qū)別在于它有順序。他一環(huán)扣一環(huán),牽一發(fā)而動(dòng)全身,他有多米諾骨牌的效應(yīng)。
你想象一下,普通的鏈條也是一環(huán)扣一環(huán)的,但是他沒有順序,從這邊兒把鏈子拿起來和從那邊把鏈子拿起來都是一樣的。而且中間你很難區(qū)分他們有什么聯(lián)系啊,中間斷掉了好像也無所謂。
但是區(qū)塊鏈就不是這樣的。區(qū)塊鏈的最大的特點(diǎn)就是后一個(gè)區(qū)塊包含前一個(gè)區(qū)塊的基因。保證了它的安全性,可追溯性以及不可篡改。
之前我說過了。區(qū)塊鏈技術(shù)最本質(zhì)的特點(diǎn)其實(shí)就是不可篡改。而去中心化,分布式網(wǎng)絡(luò)這些東西都只是手段而不是目的,目的就在于它不可篡改。他保證安全。一個(gè)事情一旦上鏈就不可逆了。
具體是怎樣做到的?具體來說就需要這一個(gè)區(qū)塊包涵上一個(gè)區(qū)塊的東西,而且這個(gè)東西還要簡(jiǎn)便好找好差好驗(yàn)證,這就是哈希算法的好處。
復(fù)習(xí)一下哈希算法的基本特征。就是你從方程左邊輸入一大堆東西,甭管多大多復(fù)雜,而到右邊會(huì)得到一個(gè)固定長(zhǎng)度的值。這個(gè)值非常的直觀,非常的好用好看
我們假設(shè)產(chǎn)出第一個(gè)區(qū)塊的時(shí)候,區(qū)塊里含有所有的記賬轉(zhuǎn)賬等等信息,這個(gè)時(shí)候?qū)λ械男畔⑦M(jìn)行一次哈希運(yùn)算,得到一個(gè)哈希值。然后呢等待下一個(gè)十分鐘產(chǎn)生第二個(gè)區(qū)塊。
第二個(gè)區(qū)號(hào)產(chǎn)生之后,為了讓二號(hào)和一號(hào)產(chǎn)生聯(lián)系,就要把二號(hào)里的全部記賬轉(zhuǎn)賬數(shù)據(jù)加上一號(hào)區(qū)塊產(chǎn)生的哈希值,再進(jìn)行一次預(yù)算,再得到一個(gè)哈希。這樣相當(dāng)于二號(hào)的哈希值包含了一號(hào)的哈希值的信息。相當(dāng)于基因。
以此類推。二號(hào)產(chǎn)生的這個(gè)哈希值在與下一個(gè)區(qū)塊記錄的數(shù)據(jù)一起,再進(jìn)行一次哈希運(yùn)算,然后就得到了新的哈希值,就這樣一直把上一個(gè)哈希值與下一個(gè)區(qū)塊信息,一直再做哈希運(yùn)算。
注意,因?yàn)楣_\(yùn)算有防止碰撞的功能,也就是說這個(gè)哈希值應(yīng)該是唯一的,或者說不能人為制造。
再說一遍,這種結(jié)構(gòu)所造成的結(jié)果就是后一個(gè)區(qū)塊含有上一個(gè)區(qū)塊的基因,上一區(qū)塊兒又含有上上一個(gè)的基因,也就是說理論上講,你知道了最后一個(gè)區(qū)塊兒就能推出第一個(gè)區(qū)塊。
這種順序鏈?zhǔn)浇Y(jié)構(gòu)的好處非常多。首先是他可以防止篡改。因?yàn)槟悴还艽鄹娜魏我粋€(gè)區(qū)塊中的內(nèi)容,都會(huì)改變他以后的所有區(qū)塊,
直到最后一個(gè)哈希值。
同時(shí)呢由于哈希值的變化會(huì)立即影響到下一個(gè)區(qū)塊的哈希值,所以你只要找到哈希值的變化就可以知道到底是哪一筆交易被改了,到底是哪一個(gè)區(qū)塊的交易被改了。
因?yàn)檫@種結(jié)構(gòu)保存基因的方法,大家就不用再存所有的區(qū)塊記錄,你只需要保存一部分,其他的問別人抄作業(yè)就可以了。
最后就是說網(wǎng)友之前提出的問題,如果你掌握了一定的算力,是不是有機(jī)會(huì)可以改區(qū)塊里的信息與數(shù)據(jù),理論上這是做不到的,因?yàn)槟阆胂?,你要改任何一個(gè)區(qū)塊的數(shù)據(jù)記錄。那你就必須要把這個(gè)區(qū)塊兒后面的內(nèi)容全都改掉。你無法保證每一次你都能搶到區(qū)塊的出塊權(quán)。
總地來說,通過這種下一個(gè)區(qū)塊保存上一個(gè)區(qū)塊的基因,一個(gè)區(qū)塊連接一個(gè)區(qū)塊就可以保證了數(shù)據(jù)的順序性和多米諾骨牌效應(yīng),從而保證了鏈上信息的縱向不可篡改。這就是區(qū)塊鏈和普通鏈的區(qū)別。