用最最簡單的方法解釋什么是區(qū)塊鏈

區(qū)塊鏈,真的很火。好像沒有什么不能用區(qū)塊鏈解決,各行各業(yè)的公司都在推出與區(qū)塊鏈相關(guān)的應(yīng)用來提升公司估值。那么,到底什么是區(qū)塊鏈呢?我學(xué)習(xí)了一些資料,嘗試用相對簡單的方法解釋什么是區(qū)塊鏈。本文僅適用于希望至少知道區(qū)塊鏈?zhǔn)巧兜淖x者,已經(jīng)了解的用戶可以直接到文末看參考鏈接獲取更多信息。

區(qū)塊鏈的定義是什么

wiki上的區(qū)塊鏈定義是這樣的:

“是用分布式數(shù)據(jù)庫識(shí)別、傳播和記載信息的智能化對等網(wǎng)絡(luò), 也稱為價(jià)值互聯(lián)網(wǎng)?!?/p>

-- https://zh.wikipedia.org/wiki/%E5%8C%BA%E5%9D%97%E9%93%BE

我從知乎上又找到了一個(gè)相對好理解一些的區(qū)塊鏈描述:

“區(qū)塊鏈本質(zhì)上是一個(gè)去中心化的分布式賬本數(shù)據(jù)庫。其本身是一串使用密碼學(xué)相關(guān)聯(lián)所產(chǎn)生的數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊中包含了多次比特幣網(wǎng)絡(luò)交易有效確認(rèn)的信息?!?/p>

-- https://www.zhihu.com/question/37290469

綜合上述兩種說法,我們可以大概知道:區(qū)塊鏈?zhǔn)且环N數(shù)據(jù)存儲(chǔ)的技術(shù)(這是比較好理解的一個(gè)方面,但區(qū)塊鏈技術(shù)不局限于此)。而他與一些之前的存儲(chǔ)技術(shù)不同之處在于,他是分布式的,是去中心化的。讀到這里,其實(shí)我們就可以大概知道什么是區(qū)塊鏈了,至少他不再是一種首飾或者某種建筑材料了。但如果想要繼續(xù)了解區(qū)塊鏈,我們還需要理解,什么是去中心化。

什么是去中心化

我發(fā)現(xiàn)市面上大多數(shù)介紹區(qū)塊鏈技術(shù)的文章都會(huì)上手就是一個(gè)“去中心化”,然后以這個(gè)基礎(chǔ)來進(jìn)行解釋,讀完總有些不踏實(shí)的感覺。在這篇文章里我就嘗試換個(gè)角度,先從“中心化”開始講起,為理解“去中心化”打一個(gè)基礎(chǔ)。接下來,我會(huì)以舉幾個(gè)交易的例子,來解釋什么是“中心化”。

一般做任何交易都需要有一個(gè)第三方 :如果是向留學(xué)的學(xué)校匯款,辦理匯款業(yè)務(wù)的銀行就是第三方;如果是在淘寶上找賣家買東西,淘寶就是第三方;通過支付寶向小賣部付款,支付寶就是第三方。

上述幾個(gè)例子都需要第三方為交易或者資金流轉(zhuǎn)提供證明,只有這個(gè)第三方才有交易是否有效的數(shù)據(jù)。也就是說,這個(gè)交易數(shù)據(jù)是以“中心化”的方式存儲(chǔ)的。如果第三方突然失效,比如支付寶突然所有服務(wù)器被外星黑客攻擊集體宕機(jī),比如銀行老板帶著小姨子逃跑直接把銀行數(shù)據(jù)都刪掉了,那么交易的有效性數(shù)據(jù)就消失了,就沒人知道我買東西是否成功,或者我是不是匯款成功了。當(dāng)然這里用的是比較極端的例子,但是我們可以通過這種例子我們可以理解中心化的不好的地方。

理解了中心化以后我們就可以進(jìn)一步理解去中心化。

所謂的去中心化,并非跳過第三方,而是利用一種分布式的方法代替第三方,存儲(chǔ)交易的信息。

區(qū)塊鏈就是這樣一種去中心化的技術(shù),通過一些算法把交易數(shù)據(jù)存儲(chǔ)在一個(gè)類似網(wǎng)絡(luò)的結(jié)構(gòu)中,這個(gè)結(jié)構(gòu)可以驗(yàn)證交易的唯一性和有效性,并且是分布式存儲(chǔ)的,不會(huì)因?yàn)閭€(gè)別節(jié)點(diǎn)損壞而導(dǎo)致交易數(shù)據(jù)的損壞。

參考資料:https://www.youtube.com/watch?v=r43LhSUUGTQ

區(qū)塊鏈?zhǔn)窃趺唇M成的

在對區(qū)塊鏈實(shí)現(xiàn)的功能有一個(gè)宏觀的理解以后,我們可以進(jìn)一步對區(qū)塊鏈的構(gòu)成做一些了解。

上文我們提到區(qū)塊鏈?zhǔn)且环N去中心化存儲(chǔ)數(shù)據(jù)的機(jī)制。區(qū)塊鏈之所以叫做區(qū)塊鏈(blockchain),是因?yàn)閰^(qū)塊鏈?zhǔn)怯腥舾蓚€(gè)區(qū)塊組成的鏈?zhǔn)降慕Y(jié)構(gòu),確實(shí)像鎖鏈一樣,鎖鏈上的每一個(gè)環(huán)都存儲(chǔ)著一部分的交易數(shù)據(jù)。如果有不法分子損毀了其中的一個(gè)環(huán),那么鎖鏈就會(huì)遭到毀壞。

什么是區(qū)塊

區(qū)塊鏈由若干個(gè)區(qū)塊(block)構(gòu)成,一個(gè)區(qū)塊存儲(chǔ)著三個(gè)信息:
1、 交易數(shù)據(jù),如是誰向誰匯款,匯了多少錢
2、 區(qū)塊hash,就是這個(gè)區(qū)塊的編號(hào)。(這里的hash是通過一種算法算出來的id,這種id和區(qū)塊內(nèi)的數(shù)據(jù)是一一對應(yīng)的??梢曰\統(tǒng)的理解為區(qū)塊的id,一旦一個(gè)區(qū)塊的具體內(nèi)容確定,其編號(hào)也是確定的,如果區(qū)塊本身內(nèi)容被改變,其編號(hào)也會(huì)被對應(yīng)改變)
3、 上一個(gè)區(qū)塊的hash,就是指這個(gè)區(qū)塊是和哪個(gè)區(qū)塊鏈接起來的。

參考資料:https://www.youtube.com/watch?v=SSo_EIwHSd4

為了便于理解,我特別做了一些圖示。

單個(gè)區(qū)塊的組成
一個(gè)簡陋的區(qū)塊鏈實(shí)例

比如這就是一個(gè)很簡陋的區(qū)塊鏈,用以存儲(chǔ)1到10的數(shù)字。每個(gè)區(qū)塊的編號(hào)hash是通過區(qū)塊所存儲(chǔ)的數(shù)據(jù)的平方計(jì)算而得的。

  • 后一個(gè)區(qū)塊通過其Pre ID,也就是“前一個(gè)區(qū)塊的編號(hào)”,與之前的區(qū)塊鏈接起來,這樣就形成了鏈?zhǔn)降慕Y(jié)構(gòu),也就是區(qū)塊鏈的由來。
  • 第一個(gè)區(qū)塊鏈?zhǔn)菦]有上一個(gè)區(qū)塊鏈的,所以其上一個(gè)區(qū)塊鏈編號(hào)為0,這個(gè)區(qū)塊也被稱為“創(chuàng)世區(qū)塊”。

這僅僅只是舉一個(gè)例子,實(shí)際上的區(qū)塊鏈存儲(chǔ)的信息更加復(fù)雜,比如比特幣的交易信息,或者其他的內(nèi)容與數(shù)據(jù)。編號(hào)hash的計(jì)算方法也更為復(fù)雜。事實(shí)上通過設(shè)計(jì)復(fù)雜的hash算法,可以提升區(qū)塊鏈的安全程度,后文會(huì)詳細(xì)介紹。

區(qū)塊鏈的存儲(chǔ)方式

區(qū)塊鏈?zhǔn)欠植际酱鎯?chǔ)的,是所有人都可以參與的,一旦有用戶加入了區(qū)塊鏈的網(wǎng)絡(luò),那么他就會(huì)得到一個(gè)區(qū)塊鏈的完整拷貝,有一萬個(gè)人加入了網(wǎng)絡(luò),就有一百分拷貝。


一個(gè)區(qū)塊鏈拷貝給了所有加入網(wǎng)絡(luò)的人

所有參與區(qū)塊鏈網(wǎng)絡(luò)的人,會(huì)通過比對彼此的區(qū)塊鏈數(shù)據(jù)來確認(rèn)交易的有效性。

達(dá)成一致

如果一個(gè)區(qū)塊鏈中的交易數(shù)據(jù)和大多數(shù)人區(qū)塊鏈中的交易數(shù)據(jù)不一致,那么久會(huì)被認(rèn)定為不合法的數(shù)據(jù),而不會(huì)被認(rèn)可。這樣就能保證即使有人篡改部分的區(qū)塊鏈數(shù)據(jù),也不會(huì)影響整體區(qū)塊鏈數(shù)據(jù)的有效性。

image.png

事實(shí)上,為了加強(qiáng)這個(gè)網(wǎng)絡(luò)的安全性,區(qū)塊鏈還會(huì)通過增加計(jì)算數(shù)據(jù)修改的難度來防止被惡意篡改。我們不妨做一個(gè)思維實(shí)驗(yàn):

假設(shè)我是一個(gè)黑客,我找到了一個(gè)區(qū)塊鏈,里面存的信息如下:

又一個(gè)簡陋的區(qū)塊鏈

這個(gè)區(qū)塊鏈與之前舉例的區(qū)塊鏈類似,其hash編碼也是通過存儲(chǔ)數(shù)據(jù)的平方計(jì)算得出的。也就是其ID = 存儲(chǔ)數(shù)據(jù)的平方。(這里再注釋一下,因?yàn)槭侵v解概念,所以采用了高度簡化的模型,真實(shí)的hash算法和存儲(chǔ)數(shù)據(jù)會(huì)復(fù)雜的多。)

作為一個(gè)無惡不作的黑客,我決定搞點(diǎn)破壞。我知道這個(gè)區(qū)塊4里面存儲(chǔ)的數(shù)據(jù)實(shí)際上是我的年終獎(jiǎng)數(shù)值,是4塊錢。所以我決定把這個(gè)數(shù)據(jù)改的大一點(diǎn),至少要10塊。于是我把第四個(gè)區(qū)塊鏈的存儲(chǔ)數(shù)據(jù)改成了10。這樣,其對應(yīng)的hash編碼,也就是ID就變成了100(由之前的計(jì)算公式可得,10的平方是100)。


image.png

我實(shí)現(xiàn)了修改區(qū)塊數(shù)據(jù)的目的,但是沒有想到這樣這樣的修改造成了區(qū)塊鏈的斷裂,因?yàn)閰^(qū)塊5之前的區(qū)塊本來應(yīng)該是編號(hào)為16點(diǎn)區(qū)塊,但是現(xiàn)在沒有編號(hào)為16點(diǎn)區(qū)塊了。這個(gè)區(qū)塊鏈就出bug了。

我是不能讓修改年終獎(jiǎng)的事情被發(fā)現(xiàn)的,所以我決定把區(qū)塊5的Pre ID從16改為100。


改完了

這樣的話這個(gè)區(qū)塊鏈就修改完了。但事情還沒完,之前我們提到過,區(qū)塊鏈的存儲(chǔ)是去中心化的,也就是說,還有很多其他拷貝,如果我的這個(gè)區(qū)塊鏈和所有的區(qū)塊鏈拷貝都不一致,我改的這個(gè)區(qū)塊鏈就不會(huì)被認(rèn)可,我給自己加薪的目的也就沒有實(shí)現(xiàn)。

整個(gè)區(qū)塊鏈網(wǎng)絡(luò)中的情形

所以,如果要實(shí)現(xiàn)加薪,我要把所有的拷貝都改完。

都改完了!

這樣,我修改的記錄就成為所有區(qū)塊鏈拷貝都認(rèn)可的記錄了。我就可以光明正大的領(lǐng)十塊錢年終獎(jiǎng)了。

當(dāng)然,這只是我的白日夢,因?yàn)閰^(qū)塊鏈有一套機(jī)制可以防止人為的篡改,我們接下來就簡單介紹一下這個(gè)機(jī)制。

每個(gè)區(qū)塊的hash編碼計(jì)算是十分復(fù)雜的,如果篡改一個(gè)區(qū)塊數(shù)據(jù)并且要計(jì)算其對應(yīng)的hash編碼是要花費(fèi)很多很多時(shí)間的。比如,我們舉例中計(jì)算hash編碼的方法是ID = 存儲(chǔ)數(shù)據(jù)的平方。如果我們把這個(gè)算法改為,ID=存儲(chǔ)數(shù)據(jù)的平方的階乘,那以本黑客的算力就算不出來了。加上區(qū)塊鏈的備份數(shù)量比較大,所以要同時(shí)修改所有的區(qū)塊鏈,幾乎是不可能的。所以,要增加這個(gè)區(qū)塊鏈的安全性,就可以設(shè)計(jì)更加復(fù)雜的hash編碼計(jì)算方法,并且邀請更多的人加入這個(gè)網(wǎng)絡(luò),增加區(qū)塊鏈的拷貝數(shù),這樣就使篡改區(qū)塊鏈內(nèi)容變得幾乎不可能。

如果理解了上述舉例,我們就基本了解了區(qū)塊鏈的存儲(chǔ)原理了。在區(qū)塊鏈的基礎(chǔ)上,我們就可以進(jìn)一步理解智能合約、挖礦、加密貨幣等一系列的概念了,這個(gè)以后會(huì)再找時(shí)間整理。

本文為了便于理解,所以舉例和用語都不是特別科學(xué)規(guī)范。如果有興趣繼續(xù)了解的讀者可以參考專業(yè)的文獻(xiàn)。如果有任何表述有誤的地方,請各位讀者不吝指出。

文末匯總所有的參考文獻(xiàn):
維基百科區(qū)塊鏈:
https://zh.wikipedia.org/wiki/%E5%8C%BA%E5%9D%97%E9%93%BE
知乎上的解釋: https://www.zhihu.com/question/37290469
區(qū)塊鏈視頻:https://www.youtube.com/watch?v=r43LhSUUGTQ
介紹區(qū)塊組成:https://www.youtube.com/watch?v=SSo_EIwHSd4

在本文成文不久,知乎日報(bào)刊登了一篇關(guān)于區(qū)塊鏈的文章,也是從中心化開始講起,講解區(qū)塊鏈和比特幣的相關(guān)技術(shù)。而且寫的比本文專業(yè)詳細(xì)多了。如果大家想要了解更多關(guān)于區(qū)塊鏈的文章,可以繼續(xù)看這篇 http://daily.zhihu.com/story/9666826

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容