區(qū)塊鏈(blockchain)是眼下的大熱門,新聞媒體大量報(bào)道,宣稱它將創(chuàng)造未來。 其實(shí)區(qū)塊鏈也不是很難的東西,下面是一份最易懂的區(qū)塊鏈教程??赐赀@篇文章,您會(huì)對(duì)區(qū)塊鏈有很大的理解,明白什么是挖礦、以及挖礦越來越難等問題。 區(qū)塊鏈的本質(zhì) 區(qū)塊鏈的本質(zhì)是一種特殊的分布式數(shù)據(jù)庫。它的主要作用是儲(chǔ)存信息。任何需要保存的信息,都可以寫入?yún)^(qū)塊鏈,也可以從里面讀取。 其次,任何人都可以架設(shè)服務(wù)器,加入?yún)^(qū)塊鏈網(wǎng)絡(luò),成為一個(gè)節(jié)點(diǎn)。區(qū)塊鏈的世界里面,沒有中心節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都是平等的,都保存著整個(gè)數(shù)據(jù)庫。你可以向任何一個(gè)節(jié)點(diǎn),寫入/讀取數(shù)據(jù),因?yàn)樗泄?jié)點(diǎn)最后都會(huì)同步,保證區(qū)塊鏈一致。 區(qū)塊鏈的最大特點(diǎn) 區(qū)塊鏈沒有管理員,它是徹底無中心的。如果有人想對(duì)區(qū)塊鏈添加審核,也實(shí)現(xiàn)不了,因?yàn)樗脑O(shè)計(jì)目標(biāo)就是防止出現(xiàn)居于中心地位的管理當(dāng)局。 正是因?yàn)闊o法管理,區(qū)塊鏈才能做到無法被控制。否則一旦大公司大集團(tuán)控制了管理權(quán),他們就會(huì)控制整個(gè)平臺(tái),其他使用者就都必須聽命于他們了。 但是,沒有了管理員,人人都可以往里面寫入數(shù)據(jù),怎么才能保證數(shù)據(jù)是可信的呢?被壞人改了怎么辦?請(qǐng)接著往下讀,這就是區(qū)塊鏈奇妙的地方。 區(qū)塊 區(qū)塊鏈由一個(gè)個(gè)區(qū)塊(block)組成。區(qū)塊很像數(shù)據(jù)庫的記錄,每次寫入數(shù)據(jù),就是創(chuàng)建一個(gè)區(qū)塊。 每個(gè)區(qū)塊包含兩個(gè)部分。
區(qū)塊頭包含了當(dāng)前區(qū)塊的多項(xiàng)元信息。
理解Hash很重要,這樣才能很好的理解區(qū)塊鏈 計(jì)算機(jī)可以對(duì)任意內(nèi)容,計(jì)算出一個(gè)長度相同的特征值。而區(qū)塊鏈的 Hash 長度是256位,這就是說,不管原始內(nèi)容是什么,最后都會(huì)計(jì)算出一個(gè)256位的二進(jìn)制數(shù)字。而且可以保證,只要原始內(nèi)容不同,對(duì)應(yīng)的 Hash 一定是不同的。 Hash 的不可修改性 區(qū)塊與 Hash 是一一對(duì)應(yīng)的,每個(gè)區(qū)塊的 Hash 都是針對(duì)'區(qū)塊頭'(Head)計(jì)算的。
上面就是區(qū)塊 Hash 的計(jì)算公式,Hash 由區(qū)塊頭唯一決定,SHA256是區(qū)塊鏈的 Hash 算法。如果當(dāng)前區(qū)塊的內(nèi)容變了,或者上一個(gè)區(qū)塊的 Hash 變了,一定會(huì)引起當(dāng)前區(qū)塊的 Hash 改變。 如果有人修改了一個(gè)區(qū)塊,該區(qū)塊的 Hash 就變了。為了讓后面的區(qū)塊還能鏈到它,該人必須同時(shí)修改后面所有的區(qū)塊,否則被改掉的區(qū)塊就脫離區(qū)塊鏈了。由于后面要提到的原因,Hash 的計(jì)算很耗時(shí),同時(shí)修改多個(gè)區(qū)塊幾乎不可能發(fā)生,除非有人掌握了全網(wǎng)51%以上的計(jì)算能力。 正是通過這種聯(lián)動(dòng)機(jī)制,區(qū)塊鏈保證了自身的可靠性,數(shù)據(jù)一旦寫入,就無法被篡改。這就像歷史一樣,發(fā)生了就是發(fā)生了,從此再無法改變。 每個(gè)區(qū)塊都連著上一個(gè)區(qū)塊,這也是'區(qū)塊鏈'這個(gè)名字的由來。 采礦 由于必須保證節(jié)點(diǎn)之間的同步,所以新區(qū)塊的添加速度不能太快。因?yàn)槊總€(gè)區(qū)塊的后面,只能跟著一個(gè)區(qū)塊,你永遠(yuǎn)只能在最新區(qū)塊的后面,生成下一個(gè)區(qū)塊。所以,你別無選擇,一聽到信號(hào),就必須立刻同步。 區(qū)塊鏈的發(fā)明者中本聰,故意讓添加新區(qū)塊,變得很困難。他的設(shè)計(jì)是,平均每10分鐘,全網(wǎng)才能生成一個(gè)新區(qū)塊,一小時(shí)也就六個(gè)。 這種產(chǎn)出速度是設(shè)置了海量的計(jì)算。只有通過極其大量的計(jì)算,才能得到當(dāng)前區(qū)塊的有效 Hash,從而把新區(qū)塊添加到區(qū)塊鏈。計(jì)算量太大,所以快不起來。 這個(gè)過程就叫做采礦。計(jì)算 Hash 的機(jī)器就叫做礦機(jī),操作礦機(jī)的人就叫做礦工。 難度系數(shù) 讀到這里,你可能會(huì)有一個(gè)疑問,人們都說采礦很難,可是采礦其實(shí)就是用計(jì)算機(jī)算出一個(gè) Hash,但不是任意一個(gè) Hash 都可以,只有滿足條件的 Hash 才會(huì)被區(qū)塊鏈接受。 因?yàn)槠錀l件苛刻,絕大部分 Hash 反復(fù)重算,所以增加了難度系數(shù)。區(qū)塊頭包含一個(gè)難度系數(shù),這個(gè)值決定了計(jì)算 Hash 的難度。 區(qū)塊鏈協(xié)議規(guī)定,目標(biāo)值難度系數(shù)越大,目標(biāo)值就越小,導(dǎo)致了采礦越來越難。由于目標(biāo)值非常小,Hash 小于該值的機(jī)會(huì)極其渺茫,可能計(jì)算10億次,才算中一次。這就是采礦如此之慢的根本原因。 總結(jié): 區(qū)塊鏈作為分布式數(shù)據(jù)庫,從2009年開始已經(jīng)運(yùn)行了8年,至今被越來越多的社會(huì)群體所接受,并且展開應(yīng)用,國家政府也紛紛出臺(tái)扶持政策,區(qū)塊鏈的應(yīng)用和發(fā)展前景不可限量。 |
|