一、概念
區(qū)塊鏈本質(zhì)上是一個特殊的分布式數(shù)據(jù)庫炭玫,主要用來存儲數(shù)據(jù)奈嘿。區(qū)塊鏈里面沒有中心節(jié)點,每個節(jié)點都是平等的地位吞加,都保存這整個數(shù)據(jù)庫裙犹。因此任何人都可以搭建服務器,加入?yún)^(qū)塊鏈衔憨,成為其中一個節(jié)點伯诬。
區(qū)塊鏈的最大特點就是它沒中心,沒有管理員巫财。
二、區(qū)塊
區(qū)塊鏈由一個個區(qū)塊組成哩陕,每次新建數(shù)據(jù)時就創(chuàng)建一個區(qū)塊平项,區(qū)塊一個個前后連接,這樣就組成了區(qū)塊鏈悍及。
區(qū)塊主要包含兩個部分:
- 區(qū)塊頭:記錄當前區(qū)塊的特征值
-
區(qū)塊體:包含實際的數(shù)據(jù)
區(qū)塊
區(qū)塊鏈的hash值是256位的闽瓢,主要由區(qū)塊頭來生成,區(qū)塊頭里包含了上一個區(qū)塊的hash值心赶,也包含了區(qū)塊體的hash值扣讼,這些特征結(jié)合起來計算出一個256位的hash值就代表這個區(qū)塊。
三缨叫、Hash 的不可修改性
由區(qū)塊的特性和生成的規(guī)則來看椭符,有下面兩個推論:
- 每個區(qū)塊的hash值都不一樣荔燎,可以用hash值來代表這個區(qū)塊。
- 如果區(qū)塊的內(nèi)容變了销钝,區(qū)塊的hash值肯定會變有咨,因為區(qū)塊頭中有一個區(qū)塊體的hash值。
看到這邊可能會有一個疑問蒸健,區(qū)塊鏈技術沒有管理員座享,所有人都可以使用,都可以保存自己的數(shù)據(jù)似忧,那么怎么保證數(shù)據(jù)的安全性渣叛,自己的數(shù)據(jù)不被更改?盯捌?淳衙??
上面提到挽唉,區(qū)塊頭中保存著上一個區(qū)塊的hash值滤祖,因此當這個區(qū)塊的數(shù)據(jù)被修改時,不僅要讓其他節(jié)點同步這個數(shù)據(jù)瓶籽,也要一次修改關聯(lián)的下游區(qū)塊匠童,hash的計算非常耗時,短時間內(nèi)修改多個區(qū)塊幾乎不可能發(fā)生塑顺,除非有人掌握了全網(wǎng)51%以上的計算能力汤求。
正是通過這種聯(lián)動機制,區(qū)塊鏈保證了自身的可靠性严拒,數(shù)據(jù)一旦寫入扬绪,就無法被篡改。這就像歷史一樣裤唠,發(fā)生了就是發(fā)生了挤牛,從此再無法改變。
四种蘸、Hash計算的復雜性
通過上面我們知道了一個結(jié)論墓赴,區(qū)塊鏈的數(shù)據(jù)很安全,幾乎不會被篡改航瞭,理由是hash的計算相當復雜诫硕,現(xiàn)在的計算機計算能力很恐怖,為什么hash的計算會這么復雜刊侯?章办???
主要原因是找到區(qū)塊合適的hash值很難藕届,大部分計算的hash值都不符合區(qū)塊的要求挪蹭。為啥呢?翰舌?嚣潜?
(未完待續(xù))
參考:
[1] http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
[2]https://charlesliuyx.github.io/2017/09/24/%E4%B8%80%E6%96%87%E5%BC%84%E6%87%82%E5%8C%BA%E5%9D%97%E9%93%BE-%E4%BB%A5%E6%AF%94%E7%89%B9%E5%B8%81%E4%B8%BA%E4%BE%8B/
[3] http://www.ruanyifeng.com/blog/2018/01/bitcoin-tutorial.html
[4] https://mp.weixin.qq.com/s/hoRLBOGfDOe57dEzdNzMoQ