中共中央政治局10月24日下午就區塊鏈技術(shù)發(fā)展現狀和趨勢進(jìn)行第十八次集體學(xué)習。中共中央總書(shū)記習近平在主持學(xué)習時(shí)強調,區塊鏈技術(shù)的集成應用在新的技術(shù)革新和產(chǎn)業(yè)變革中起著(zhù)重要作用。我們要把區塊鏈作為核心技術(shù)自主創(chuàng )新的重要突破口,明確主攻方向,加大投入力度,著(zhù)力攻克一批關(guān)鍵核心技術(shù),加快推動(dòng)區塊鏈技術(shù)和產(chǎn)業(yè)創(chuàng )新發(fā)展。
有觀(guān)點(diǎn)認為,區塊鏈與人工智能、大數據是金融科技三大支柱,區塊鏈或許會(huì )是10年后的“互聯(lián)網(wǎng)”
下文用簡(jiǎn)潔的語(yǔ)言和圖片,向大家解釋究竟什么是區塊鏈技術(shù)。
近年來(lái),包括摩根大通、花旗集團、高盛集團、納斯達克等在內的金融巨頭,都表達了對區塊鏈技術(shù)的熱衷。這些巨頭們熱衷的區塊鏈技術(shù),又被稱(chēng)為分布式賬本,那么分布式賬本究竟是什么呢?我們先從另外一件事說(shuō)起。
1區塊鏈與騎自行車(chē)的人
華爾街上騎自行車(chē)的人
在納斯達克成立之前,人們用自行車(chē)馱著(zhù)裝滿(mǎn)債券的包,在華爾街騎來(lái)騎去,目的就是盡快完成清算。后來(lái)業(yè)務(wù)越來(lái)越多,自行車(chē)就忙不過(guò)來(lái)了。20世紀60年代,華爾街每周只交易4天,每天4個(gè)小時(shí),就是為了能讓清算速度跟上交易量。
這樣發(fā)展下來(lái),大家覺(jué)得不行啊,自行車(chē)肯定跑不過(guò)計算機。1971年,有人就開(kāi)會(huì )說(shuō),咱們想想辦法吧,于是提出了DTC(美國存管信托公司)清算系統。這個(gè)系統的辦法就是所有的交易都要在系統內進(jìn)行,包括經(jīng)紀人也要接入這個(gè)系統,現在納斯達克還在用。
中心化的DTC清算系統
這個(gè)系統提高了交易的效率,但是并沒(méi)有改變交易的中心化結構。當交易足夠多、經(jīng)紀人足夠多的時(shí)候,這個(gè)系統也有癱瘓甚至崩盤(pán)的危險。
于是專(zhuān)家們想,自治式、分布式的系統會(huì )不會(huì )好一點(diǎn)呢?答案是肯定的。區塊鏈就是一個(gè)分布式的賬本,每個(gè)節點(diǎn)都可以顯示總賬,然后維護總賬,而且不能篡改賬本,除非你控制了超過(guò)51%的節點(diǎn),但這是不可能的。
再簡(jiǎn)單一點(diǎn),假如你們家里有個(gè)賬本,讓你來(lái)記賬。在以前,就是爸爸媽媽把工資交給你,讓你記到賬本上。中間萬(wàn)一你貪吃,想買(mǎi)點(diǎn)好吃的,可能賬本上的記錄會(huì )少十幾塊,然后你想買(mǎi)個(gè)手機,賬本上就少記錄幾千塊。這只是舉一個(gè)例子,我相信小時(shí)候大家都想從爸爸媽媽的口袋里拿點(diǎn)錢(qián)來(lái)花。
2中心化的家庭賬本
有了分布式賬本后,上述說(shuō)的問(wèn)題就不會(huì )有了,因為你在記賬,你爸爸也在記賬,你媽媽也在記賬,他們都能看到總賬,你不能改,爸爸媽媽也不能改,這樣想買(mǎi)煙抽的爸爸和想貪吃的你都沒(méi)辦法啦。
分布式家庭賬本
區塊鏈本質(zhì)上是一個(gè)去中心化的分布式賬本,其本身是一系列使用密碼學(xué)而產(chǎn)生的互相關(guān)聯(lián)的數據塊,每一個(gè)數據塊中包含了多條經(jīng)比特幣的網(wǎng)絡(luò )交易有效確認的信息。
3中心化與去中心化
前面我們說(shuō)到了區塊鏈的本質(zhì)是一個(gè)去中心化的分布式賬本,那么,所謂的中心化又是什么呢?我們首先思考這樣一個(gè)問(wèn)題,你要在網(wǎng)上買(mǎi)一本書(shū),交易流程是什么?
第一步:你下單之后把錢(qián)打給了支付寶。
第二步:支付寶收款后通知賣(mài)家可以發(fā)貨了。
第三步:賣(mài)家收到通知后給你發(fā)貨。
第四步:你收到貨之后很滿(mǎn)意,于是確認收貨。
第五步:支付寶收到了你的通知并打錢(qián)給賣(mài)家。
中心化的交易流程
我們可以看出,在這個(gè)過(guò)程中,雖然你是在和賣(mài)家交易,但是整個(gè)交易都是圍繞支付寶展開(kāi)。因此,如果支付寶系統出了問(wèn)題,比如天上降下來(lái)一塊隕石,把支付寶的服務(wù)器全砸了,或者由于全球經(jīng)濟危機支付寶倒閉了,無(wú)奈的支付寶只好淡然地表示不存在這筆交易,那么這筆交易就會(huì )以失敗告終,到時(shí)候買(mǎi)家賣(mài)家就會(huì )糾纏不清,雙方無(wú)法自證。
中心節點(diǎn)毀壞會(huì )導致交易失敗
4模擬一個(gè)區塊鏈小城市
為了說(shuō)明去中心化的區塊鏈是如何運行的,我們先把整個(gè)去中心化的分布式結構簡(jiǎn)化為一個(gè)極端的情況來(lái)探究。我們假設有一個(gè)去中心化的小城市,在這個(gè)城市里有5個(gè)可愛(ài)活潑的小伙伴,他們互相借錢(qián)的時(shí)候,是這么干的:
假設B向A借了1塊錢(qián),這個(gè)時(shí)候,城市里的人怎么辦呢?A在人群中大喊:“我是A,我借給了B1塊錢(qián)!”B也在人群中大喊:“我是B,A借給了我1塊錢(qián)!”
此時(shí)城市里的其他人C、D、E都聽(tīng)到了這些消息,他們拿出了手中的小賬本并默默記下:“某年某月某日,A借給了B1塊錢(qián)!
去中心化城市的記賬
當我們把一個(gè)去中心化的模型極度簡(jiǎn)化之后,我們就會(huì )發(fā)現,在這個(gè)只有5個(gè)人的城市中,已經(jīng)建立了一個(gè)去中心化的系統,這個(gè)系統不需要銀行,也不需要支付寶。這個(gè)模型不需要信任關(guān)系,也不需要一個(gè)擁有公信力的組織。當分布式結構中的每個(gè)人都記賬的時(shí)候,篡改賬本是不可行的。比如B突然不認賬了:“我不欠A的1塊錢(qián)!”這個(gè)時(shí)候,人民群眾C或D或E就會(huì )站出來(lái)說(shuō):“不對,我的賬本上明明記錄了你在某年某月某日向了A借了1塊錢(qián),并且沒(méi)有查到你還款的記錄!
去中心化賬本無(wú)法篡改
說(shuō)到這里,你有沒(méi)有發(fā)現一個(gè)問(wèn)題,在這個(gè)模型中,所謂的1塊錢(qián)根本不重要,也沒(méi)有人在意,“1塊錢(qián)”已經(jīng)變成了一個(gè)變量,它可以被替換成任何概念,只要大家承認這是一個(gè)有價(jià)值的東西即可。
比如A在這個(gè)城市中大喊一聲:“我創(chuàng )造了一個(gè)巴拉拉能量!”城市中的其他人都聽(tīng)見(jiàn)了,于是大家紛紛在自己的小本子上記下“某人有一個(gè)巴拉拉能量”,大家甚至不用知道巴拉拉能量是什么,A竟然真的有了一個(gè)巴拉拉能量。
A還能干什么呢?A可以再大喊一聲:“我給了B一個(gè)巴拉拉能量!敝灰鞘兄械腂、C、D、E,即城市里的所有人都承認了這個(gè)交易,那么這個(gè)交易就真的成立了,雖然現實(shí)生活中并沒(méi)有巴拉拉能量。
巴拉拉能量的流通
5小城市里的幾個(gè)問(wèn)題
當然,區塊鏈的世界不會(huì )這么簡(jiǎn)單,它還有其他的規則來(lái)相互制約,我們先來(lái)解決下面這幾個(gè)問(wèn)題:
問(wèn)題一:憑什么幫你記賬?
憑什么你對著(zhù)天空大喊一聲,別人就要幫你記賬,別人的時(shí)間不要錢(qián)嗎?別人的小本子不要錢(qián)嗎?于是,為了讓大家都幫我記賬,我增加了一條新的規則,我決定給第一個(gè)聽(tīng)到我喊話(huà)并且將其記錄在小本子上的人獎勵。獎勵機制也很簡(jiǎn)單,第一個(gè)聽(tīng)到我喊話(huà)并記錄下來(lái)的人,可以得到一個(gè)巴拉拉能量的獎勵。
這個(gè)巴拉拉能量不是白給的,是對你勞動(dòng)的報酬,就像打工可以?huà)赍X(qián)一樣,你幫我記賬,整個(gè)系統都會(huì )給你報酬。你要做的事情,有這樣幾點(diǎn):
首先,你要搶在所有人之前聽(tīng)到了我的喊話(huà)并記在了自己的小本子上;
記錄之后,你還要馬上告訴整個(gè)城市里的人——這句話(huà)我記錄完了,你們再記錄也沒(méi)有用了,別人就會(huì )放棄這筆賺錢(qián)的生意;
與此同時(shí),你還要做一件事,就是給自己的記錄加一個(gè)獨一無(wú)二的編號,然后把記錄和編號一起喊出來(lái),于是,下一個(gè)人再記錄的時(shí)候,就會(huì )帶著(zhù)這個(gè)記錄和獨一無(wú)二的編號繼續下去。
記賬獲得獎勵
在這條新的規則開(kāi)始實(shí)行之后,一定會(huì )有這樣一些人,他們?yōu)榱说玫桨屠芰,開(kāi)始屏氣監聽(tīng)周?chē)l(fā)出的各種聲音,只為了能在第一時(shí)間記下一條新的記錄。
這個(gè)時(shí)候,對區塊鏈有所了解的讀者是不是想到了這樣的名詞——“比特幣挖礦”。沒(méi)錯,這就是比特幣挖礦的簡(jiǎn)單說(shuō)明。
關(guān)于比特幣挖礦的話(huà)題,知乎用戶(hù)“玲瓏邪僧”的一篇文章舉過(guò)一個(gè)更生動(dòng)的例子,大致是這樣的:?jiǎn)紊砟惺總円遗笥,“國民岳母”說(shuō),我有好多膚白貌美、乖巧可愛(ài)的女兒,這樣吧,我給你們出一個(gè)曠世難題,解出一個(gè)就給你們其中一個(gè)姑娘的微信號。
“國民岳母”的曠世難題
于是,單身男士們瘋狂競爭,想破腦袋去解這道曠世難題。只要其中一位單身男士解出一道題,就立馬得意揚揚地昭告天下,示威全部單身男士,這個(gè)姑娘的微信號是我的啦,先到先得,你們放棄吧。其他單身男士雖然已經(jīng)算到一半了,但是沒(méi)有辦法,速度不夠快啊,只好立馬去解下一道題。
解出難題獲得獎勵
同時(shí),首個(gè)成功破解曠世難題的幸運的單身男士不僅不用付一二十萬(wàn)元的彩禮,被其才華征服的“國民岳母”還會(huì )給這位單身男士一筆巨額財產(chǎn)做嫁妝,也就是比特幣挖礦中的比特幣獎勵。
問(wèn)題二:分叉問(wèn)題聽(tīng)誰(shuí)的?
在這一段的論述中,我們引用了知乎用戶(hù)“汪樂(lè )–LaiW3n”的說(shuō)法。在這個(gè)廣闊的小城市里,一定還會(huì )存在這樣的問(wèn)題,B和C幾乎同時(shí)記錄完了,于是同時(shí)向天空大喊了一聲,“這個(gè)編號89757的巴拉拉能量歸我了”。但是,由于這個(gè)城市太廣闊了,有的人會(huì )認為這個(gè)編號89757的巴拉拉能量歸B,也有的人認為這個(gè)編號89757的巴拉拉能量歸C,但是編號89757的巴拉拉能量只有一個(gè)啊,只有一個(gè)人能得到,怎么辦呢?一人一半?當然是不可能的,這個(gè)時(shí)候我們會(huì )采用更原始簡(jiǎn)單的規則來(lái)解決,誰(shuí)長(cháng)聽(tīng)誰(shuí)的。
在不加任何限制條件的情況下,這件事件會(huì )發(fā)展成這樣:一部分人認為這句話(huà)是B說(shuō)的,在聽(tīng)到這句話(huà)之后開(kāi)始記賬,之后他們所做的所有事情都是基于B有了編號89757的巴拉拉
能量這個(gè)事實(shí),并且隨著(zhù)這個(gè)信息一次次地傳下去,這條信息鏈會(huì )越來(lái)越長(cháng);而另外一群認為C先說(shuō)這句話(huà)的人,也會(huì )按照這樣的趨勢發(fā)展。
分叉問(wèn)題聽(tīng)誰(shuí)的?
這下事情嚴重了,原本是一條唯一的、編號順序嚴謹的總信息鏈,在B和C喊出“這個(gè)編號89757的巴拉拉能量歸我了”這句話(huà)之后,硬生生地分叉了!這還得了,要是這種情況延續下去,每個(gè)人手里的賬本都變得不一樣了,而且根本沒(méi)法確定哪個(gè)是真的!
為了解決這個(gè)問(wèn)題,小城市又追加了新的區塊鏈規則,記錄的時(shí)候必須頂格寫(xiě),而且要保證,中心在離田字格上邊緣0.89757毫米的位置上,于是,每個(gè)人寫(xiě)字的時(shí)候都要拿刻度尺量好之后再寫(xiě),這非常困難,每個(gè)人的記錄需要5分鐘才能完成,因此,寫(xiě)這句話(huà)所用的時(shí)間變得不同了。于是,只要有人高喊“我寫(xiě)完了!那句話(huà)是某某某寫(xiě)的”,其他正在寫(xiě)這句話(huà)的人便會(huì )停筆,然后在小本子上重新開(kāi)始寫(xiě)“那句話(huà)是某某某寫(xiě)的,上一句的編號是×××”。
每次記賬的規則都很復雜
問(wèn)題三:雙花問(wèn)題
雙花問(wèn)題是指一筆數字現金在交易中被重復使用的現象。
如果我同時(shí)向B和C都喊了一句,我給你一個(gè)巴拉拉能量,怎么辦呢?巴拉拉能量只有一個(gè),如何保證一個(gè)巴拉拉能量在實(shí)際的交易中只被支付了一次呢?
我們以比特幣為例,中本聰在《比特幣白皮書(shū)》第五小節中是這樣說(shuō)的,運行比特幣網(wǎng)絡(luò )的步驟如下:
1.新的交易向全網(wǎng)進(jìn)行廣播;
2.每一個(gè)節點(diǎn)都將收到的交易信息納入一個(gè)區塊中;
3.每個(gè)節點(diǎn)都嘗試在自己的區塊中找到一個(gè)具有足夠難度的工作量證明;
4.當一個(gè)節點(diǎn)找到了一個(gè)工作量證明,它就向全網(wǎng)進(jìn)行廣播;
5.當且僅當包含在該區塊中的所有交易都是有效的且之前未存在過(guò)的,其他節點(diǎn)才認同該區塊的有效性;
6.其他節點(diǎn)表示他們接受該區塊,而接受的方法則是跟隨在該區塊的末尾,制造新的區塊以延長(cháng)該鏈條,并將該區塊的隨機散列值視為新區塊的隨機散列值。
也就是說(shuō),交易發(fā)生的一刻起,比特幣的交易數據就被蓋上了時(shí)間戳;而當這筆交易數據被打包到一個(gè)區塊中后,就算完成了一次確認;在連續進(jìn)行6次確認之后,這筆交易就不可逆轉了;在比特幣中,每一次確認都需要“解決一個(gè)復雜的難題”,也就是說(shuō)每一次確認都需要一定的時(shí)間。
6次確認后不可逆轉
在這種情況下,當我試圖于把一筆資金進(jìn)行兩次支付交易的時(shí)候,因為確認時(shí)間較長(cháng),后一筆交易想要與前一筆交易同時(shí)得到確認幾乎是不可能的,而這筆資金在第一次交易確認有效后,第二次交易時(shí)就無(wú)法得到確認。區塊鏈的全網(wǎng)記賬需要在整個(gè)網(wǎng)絡(luò )中達成共識,雙花問(wèn)題是無(wú)法產(chǎn)生的。