區(qū)塊鏈,其實(shí)很簡(jiǎn)單。
區(qū)塊鏈,作為一個(gè)新事物,生來就籠罩著一層神秘的光環(huán),看各方言論,區(qū)塊鏈
儼然有比肩工業(yè)革命和計(jì)算機(jī)革命的趨勢(shì)。
奈何網(wǎng)絡(luò)上的入門教程對(duì)文科生都不太友好,筆者每每看到一大堆的計(jì)算機(jī)術(shù)語(yǔ)
瞬間頭大。?
直到最近看到阮一峰老師的《區(qū)塊鏈入門教程》才豁然開朗。
接下來的內(nèi)容,保證你看得懂,因?yàn)檫B我這個(gè)文科生都看得懂。
一句話,
?
。
這幾個(gè)字你可能都認(rèn)識(shí)但未必真正理解。比如,數(shù)據(jù)庫(kù)是什么?它具備什么樣的
特性?分布式數(shù)據(jù)庫(kù)又是什么意思?區(qū)塊鏈特殊在哪里?別急,請(qǐng)往下看。
簡(jiǎn)單來說,數(shù)據(jù)庫(kù)是一個(gè)存儲(chǔ)數(shù)據(jù)的“倉(cāng)庫(kù)”,既然是倉(cāng)庫(kù),那么它就必須有進(jìn)
貨(新增)、出貨(刪除)這兩項(xiàng)基本功能。
為了滿足日常需求,比如需要查找某種貨品,統(tǒng)計(jì)其數(shù)量,或者某種貨品擺錯(cuò)了
位置等等,因此還需要“查詢”和“修改”功能。
這就是數(shù)據(jù)庫(kù)的最基本的四項(xiàng)操作“增刪改查”。
。這里的分開有兩層含義,物理的分開和邏輯的
分開。
很好理解,可以簡(jiǎn)單理解為數(shù)據(jù)存儲(chǔ)在不同的主機(jī)上,在物理上是
相互獨(dú)立的。
為什么會(huì)產(chǎn)生這樣的需求呢?因?yàn)樵诨ヂ?lián)網(wǎng)全球化的大背景下,跨國(guó)性互聯(lián)網(wǎng)公
司已經(jīng)屢見不鮮,而在本國(guó)本地部署服務(wù)器在改善用戶體驗(yàn)上至關(guān)重要。
舉個(gè)例子,比如前段時(shí)間蘋果將iCloud服務(wù)從香港轉(zhuǎn)移到云上貴州,好處之一就
是訪問速度的加快。
稍微難懂一些,筆者舉一個(gè)簡(jiǎn)單的例子。比如說淘寶,同一個(gè)賬戶
可能既是買家,又是賣家,買家身份產(chǎn)生的訂單和賣家身份產(chǎn)生的訂單在邏輯上
是可以分離的。
由于淘寶的訂單量巨大,一臺(tái)機(jī)器無法存儲(chǔ)所有訂單,于是淘寶某程序員靈機(jī)一
動(dòng),將買家訂單和賣家訂單分別存儲(chǔ)在兩臺(tái)機(jī)器上。這個(gè)完美的解決方案在不失
邏輯整體性的前提下,既克服了技術(shù)困難,又滿足了業(yè)務(wù)需求,兩全其美,當(dāng)年
該程序員拿了36個(gè)月年終獎(jiǎng)金(本故事純屬虛構(gòu))。
分布式數(shù)據(jù)庫(kù)雖然可能部署在多個(gè)地區(qū),邏輯也可能被拆分,但是歸根到底,它
是一個(gè)化整為零的整體。
所以,分布式數(shù)據(jù)庫(kù)可以簡(jiǎn)單地理解為,
說了這么多,相信您對(duì)數(shù)據(jù)庫(kù)和分布式數(shù)據(jù)庫(kù)有了一些基本認(rèn)知,那么區(qū)塊鏈到
底特殊在哪里呢?
在具體講區(qū)塊鏈之前,還需要對(duì)區(qū)塊鏈的結(jié)構(gòu)有一個(gè)基本理解,也是非常之簡(jiǎn)
單。
其結(jié)構(gòu)是一條長(zhǎng)長(zhǎng)的,首尾不相連的鏈條,類似下圖。
圖中每一個(gè)圓珠可看作一個(gè)區(qū)塊,區(qū)塊內(nèi)則是記錄的數(shù)據(jù)。
由于區(qū)塊鏈?zhǔn)呛捅忍貛乓煌d起,因此區(qū)塊鏈還有一個(gè)不是特別嚴(yán)謹(jǐn)?shù)膭e名
——“
?
”。
之所以被稱為賬本,舉個(gè)例子,“比特幣區(qū)塊鏈”所記錄的內(nèi)容都是這樣的
B 轉(zhuǎn)給 A 0.5比特幣
A 轉(zhuǎn)給 B 1比特幣
C 轉(zhuǎn)給 D 2比特幣
C 轉(zhuǎn)給 E 1比特幣
X 被獎(jiǎng)勵(lì)50比特幣
有了這些基本概念,接下來我們?cè)倏纯此奶厥庑浴?/p>
是的,一般的數(shù)據(jù)庫(kù)都是有賬號(hào)密碼才能訪問的,可區(qū)塊鏈不一樣。
任何人可以查詢?nèi)我鈪^(qū)塊的信息。比如這里就是“比特幣區(qū)塊鏈”的第50萬(wàn)個(gè)區(qū)
塊信息。
區(qū)塊的信息一目了然,所記錄的交易信息也完整具體,沒有一絲隱瞞。
不過與傳統(tǒng)交易不同的是,
又是一個(gè)無比熟悉的詞匯。也許你知道,區(qū)塊鏈?zhǔn)菬o管理員的,無中心的,但是
很少有人去介紹它的具體運(yùn)作方式。
是的,區(qū)塊鏈理論上是人人可寫的。但
計(jì)算數(shù)字的過程叫做
?
,其從業(yè)者被稱為
?
。
“比特幣區(qū)塊鏈”的設(shè)計(jì)者中本聰在頂層設(shè)計(jì)上保證了大概
,而一個(gè)區(qū)塊的大小被限制為1MB(1024KB,512*1024個(gè)漢字)。
也就是說,不管全球有多少比特幣的交易需求,就只能記錄1MB大小的賬。
這樣的數(shù)據(jù)量對(duì)于一家超市來說可能都難以滿足。
而且更要命的是,由于區(qū)塊鏈的人人可寫,那么如果兩個(gè)礦工同時(shí)寫入就會(huì)產(chǎn)生
一個(gè)鏈分叉的問題。
那么,誰(shuí)寫入的數(shù)據(jù)是真正的區(qū)塊呢?由于去中心化沒有統(tǒng)一的管理員,現(xiàn)在的
規(guī)則是這樣,
,而其它的區(qū)塊鏈將被無情舍棄。按照10分鐘一個(gè)區(qū)塊計(jì)算,一小時(shí)才能確
認(rèn)。
可以看到,即便傾全球的計(jì)算能力,交易速率也只能達(dá)到
?
。
前面說過區(qū)塊鏈?zhǔn)欠植际降?,而區(qū)塊鏈的設(shè)計(jì)方式簡(jiǎn)單粗暴,每個(gè)人都有所有人
交易的備份。
舉個(gè)例子,
也許你問,干嘛要把別人的賬單也發(fā)給我?我只需要自己的呀!
初次聽聞確實(shí)有點(diǎn)荒謬,有點(diǎn)反人類。
但數(shù)據(jù)人人備份才是區(qū)塊鏈去中心化的根基。試想一下,如果銀行的交易系統(tǒng)發(fā)
生故障,把你的賬戶金額清空了,如果銀行自身無法查出真相,估計(jì)你只能血本
無歸,因?yàn)槟茏C明自己賬戶曾經(jīng)有錢的人只有你自己。
中心化的好處在于有一個(gè)統(tǒng)一的中心,替我們承擔(dān)了很多不必要的管理工作。對(duì)
個(gè)體而言有諸多便利,可要知道,由于