陳躍
隨著區(qū)塊鏈技術(shù)的向前發(fā)展,其中特別是數(shù)字貨幣的快速興起帶來了一系列的爭議和質(zhì)疑,比如:比特幣是否是一個精心設(shè)計好的騙局?是否可以被少數(shù)人所控制或操縱?是否容易被攻擊?是否是一種安全可靠的、可信的和有價值的數(shù)字貨幣?其本質(zhì)上都是比特幣系統(tǒng)自身安全和風(fēng)險方面的問題。
分布式塊鏈為比特幣系統(tǒng)核心
在en.bitcoin.it網(wǎng)站上總結(jié)了比特幣系統(tǒng)的特點(diǎn):比特幣是一種去中心化的數(shù)字貨幣,可以向世界上任何地方的任何人提供即時支付。比特幣使用點(diǎn)對點(diǎn)技術(shù),在沒有中央機(jī)構(gòu)的情況下獨(dú)立運(yùn)作,管理交易和發(fā)行貨幣都由網(wǎng)絡(luò)中節(jié)點(diǎn)共同進(jìn)行。根據(jù)這個定義可知,比特幣系統(tǒng)是在去中心化的架構(gòu)模式下,基于點(diǎn)對點(diǎn)網(wǎng)絡(luò)完成對交易的管理與貨幣的發(fā)行。比特幣系統(tǒng)的去中心化,意味著沒有一個中央機(jī)構(gòu)負(fù)責(zé)跟蹤交易、管理貨幣的發(fā)行,沒有一個集中統(tǒng)一的中央數(shù)據(jù)庫負(fù)責(zé)保存交易記錄。
從中本聰白皮書可知,比特幣系統(tǒng)之所以能夠以自治、安全的方式運(yùn)行離不開一個用來保存交易記錄的分布式塊鏈,因此可以說這個分布式塊鏈?zhǔn)潜忍貛畔到y(tǒng)的核心,其相關(guān)技術(shù)都是為它服務(wù)的,如:工作量證明就是要解決由那一個節(jié)點(diǎn)負(fù)責(zé)生成塊的問題,類似某個時刻選舉誰來負(fù)責(zé)記賬的問題。由此可知,比特幣系統(tǒng)的核心安全就是需要維護(hù)好這個分布式塊鏈的安全,它的安全保障是整個比特幣系統(tǒng)得以正常運(yùn)轉(zhuǎn)的基石,或者說維護(hù)好了這個分布式塊鏈的安全就是保障了比特幣系統(tǒng)的核心安全,否則如果因某種原因或者在某種場景下這個分布式塊鏈被攻擊成功,比特幣系統(tǒng)的安全也就無從談起。不但比特幣系統(tǒng)的正常運(yùn)行無法保證,而且其創(chuàng)造的去中心化下的可靠信任和獨(dú)特價值,也就自然“皮之不存,毛將焉附”了,就像銀行數(shù)據(jù)庫被攻擊破壞導(dǎo)致無法保證其中賬戶信息和轉(zhuǎn)賬記錄的正確性一樣,這必將導(dǎo)致整個銀行系統(tǒng)的混亂和信任的喪失。
本文基于比特幣系統(tǒng)分布式塊鏈的安全(可簡單理解為鏈或賬本的安全),從概率和理性假設(shè)的角度出發(fā),對比特幣系統(tǒng)的安全性進(jìn)行了研究并對其風(fēng)險作出評估,首先對分布式塊鏈面臨的安全問題進(jìn)行了深入分析,然后梳理了比特幣系統(tǒng)為保障分布式塊鏈的安全采取的安全保障,最后基于分布式塊鏈的安全對比特幣系統(tǒng)的風(fēng)險進(jìn)行了總結(jié)。
分布式塊鏈被成功攻擊的概率
要對分布式塊鏈面臨的安全進(jìn)行分析,首先要弄清楚,攻擊者是如何攻擊比特幣系統(tǒng)的分布式塊鏈的?從中本聰白皮書可知,攻擊者通過工作量證明生成攻擊者鏈(競爭鏈),并在其中包含了攻擊者想要改變的交易記錄。攻擊者通過競爭方式,讓攻擊者鏈變成最長的鏈,超過誠實(shí)鏈以實(shí)現(xiàn)替換誠實(shí)鏈,完成攻擊的目的。至于為什么把攻擊者鏈變成最長的鏈就可以完成攻擊?是因?yàn)樵诒忍貛劈c(diǎn)對點(diǎn)網(wǎng)絡(luò)中,只有最長的鏈才被認(rèn)為是有效的,代表了網(wǎng)絡(luò)中大多數(shù)節(jié)點(diǎn)的決定(共識),是比特幣世界里的真理,所有節(jié)點(diǎn)都可以接受它。一旦網(wǎng)絡(luò)中的節(jié)點(diǎn)都認(rèn)可了攻擊者鏈,也就自然認(rèn)可了攻擊者鏈中包含的交易記錄,也就達(dá)到了攻擊者欺騙或篡改的目的,如:攻擊者通過改變他自己的交易記錄,即把之前支付給接收方的錢又轉(zhuǎn)回到自己的名下(雙重支付問題)。比特幣系統(tǒng)最主要的優(yōu)勢就是實(shí)現(xiàn)了去信任方情況下貨幣的點(diǎn)對點(diǎn)直接支付,還解決了貨幣被雙重支付的問題,這是其根本,如果這個問題因?yàn)樵獾焦簦p重支付攻擊或雙花攻擊)而沒有解決好,則比特幣系統(tǒng)的根基也就不存在了。
攻擊者和誠實(shí)節(jié)點(diǎn)之間,或者說攻擊者鏈和誠實(shí)鏈之間如何競爭?從中本聰白皮書可知,兩者之間的競爭關(guān)系可被描述為二項(xiàng)式隨機(jī)游走。從比特幣系統(tǒng)安全的角度看,成功事件是誠實(shí)節(jié)點(diǎn)將誠實(shí)鏈延長了一個塊,增加了一個塊的領(lǐng)先優(yōu)勢。失敗事件是攻擊者將攻擊者鏈延長了一個塊,縮短了一個塊的差距。一個攻擊者在落后誠實(shí)節(jié)點(diǎn)一定差距(塊數(shù))的情況下,還能追趕上誠實(shí)節(jié)點(diǎn)的概率相當(dāng)于賭徒破產(chǎn)問題中盈虧平衡的概率。假設(shè)一個有無限信用的賭徒從一個赤字開始(初始處于虧損狀態(tài)),為了達(dá)到盈虧平衡(收支平衡),他可能會進(jìn)行無數(shù)次的嘗試,我們可以計算出他達(dá)到盈虧平衡的概率。因?yàn)槭堑葍r關(guān)系,這個概率就是攻擊者追趕上誠實(shí)節(jié)點(diǎn)的概率,也就是比特幣系統(tǒng)中分布式塊鏈被攻擊成功的概率。關(guān)于如何計算這個概率,在中本聰白皮書中已經(jīng)有比較詳細(xì)的說明,此處為了便于簡化理解,就不再對推導(dǎo)過程的細(xì)節(jié)進(jìn)行進(jìn)一步梳理了,只針對結(jié)論進(jìn)行分析:
一個攻擊者在落后誠實(shí)節(jié)點(diǎn)一定差距(塊數(shù))的情況下,還能追趕上誠實(shí)節(jié)點(diǎn)的概率(聯(lián)合概率)為:
結(jié)合假設(shè)p>q,對這個公式進(jìn)行分析可知,隨著攻擊者落后差距(塊數(shù))的變大,他追趕上誠實(shí)節(jié)點(diǎn)的概率將呈指數(shù)下降,也就是他攻擊成功的機(jī)會隨著落后塊數(shù)的增加變得越來越渺茫,特別是當(dāng)他沒有在早期就開始追趕并且在當(dāng)前誠實(shí)鏈已經(jīng)成足夠長的這個事實(shí)下,攻擊者要攻擊成功絕對是小概率事件。
但這個結(jié)論得以成立的前提是這個假設(shè)p>q要成立,如果這個假設(shè)不成立,或者假設(shè)成立的概率很小,則攻擊者要攻擊成功絕對是小概率事件就無法成立,則比特幣系統(tǒng)分布式塊鏈的安全就得不到可靠的保障。
因此,進(jìn)一步梳理比特幣系統(tǒng)為此假設(shè)的成立采取了哪些安全保障,也就非常有必要。
用理念和機(jī)制保障系統(tǒng)安全
比特幣系統(tǒng)本質(zhì)上是一種數(shù)字貨幣(數(shù)字現(xiàn)金、電子貨幣)系統(tǒng),所以自然可從一個經(jīng)濟(jì)系統(tǒng)的視角去認(rèn)識為保障比特幣系統(tǒng)的分布式塊鏈安全而采取的安全保障,包含安全理念和安全機(jī)制。
要保證這個假設(shè)的成立,即誠實(shí)節(jié)點(diǎn)生成下一個塊的概率大于攻擊者生成下一個塊的概率,從工作量證明原理可知,從概率的角度講,要加大誠實(shí)節(jié)點(diǎn)生成新塊成功的概率,誠實(shí)節(jié)點(diǎn)的算力必須要大于攻擊者的算力。這點(diǎn)有些類似于購買彩票,對一次購買行為來講,投入的錢多未必一定可以中獎,但就總體分布或者說多次購買行為來講(可以想象為彩票中獎鏈),投入的錢(算力)越多,彩票中獎(生成新塊)的概率也就越大。比特幣系統(tǒng)為保證這個假設(shè)的成立,采用了以下幾點(diǎn)來共同保障:
讓網(wǎng)絡(luò)中的大多數(shù)節(jié)點(diǎn)更加愿意保持誠實(shí)
比特幣系統(tǒng)內(nèi)置了激勵機(jī)制,激勵有助于鼓勵節(jié)點(diǎn)保持誠實(shí)。如果一個貪婪的攻擊者能夠收集比所有誠實(shí)節(jié)點(diǎn)更多的算力,他必須在用算力偷回他之前的付款去騙人和用算力生成新貨幣之間做出選擇。他應(yīng)該會發(fā)現(xiàn),按照既定規(guī)則辦事有利于讓他擁有的新幣,比其他人累加起來的還要多。因此從合作博弈的角度看,攻擊可看作是攻擊者和誠實(shí)節(jié)點(diǎn)之間的博弈,如果攻擊者不去搞破壞,相當(dāng)于選擇了與誠實(shí)節(jié)點(diǎn)一起按照規(guī)則辦事,即選擇了合作博弈,做一個以利已為目的的理性人(rational man),則攻擊者的利益會增加且誠實(shí)節(jié)點(diǎn)的利益至少不會受到損害;如果攻擊者去搞破壞,相當(dāng)于選擇了與誠實(shí)節(jié)點(diǎn)對抗競爭,即選擇了非合作博弈,而且攻擊者的利益不但沒有增加而且還會受損害,甚至得到比非合作博弈更差的結(jié)果。因節(jié)點(diǎn)保持誠實(shí)會更加有利可圖,所以網(wǎng)絡(luò)中的大多數(shù)節(jié)點(diǎn)都會更加愿意保持誠實(shí),在這一選擇下,自然誠實(shí)節(jié)點(diǎn)就會更多。
另外,從分布式系統(tǒng)容錯性的角度說,幾乎所有的分布式容錯系統(tǒng)都需要假設(shè)系統(tǒng)中的絕大多數(shù)或超多數(shù)(例如,超過一半或2/3)的節(jié)點(diǎn)都是誠實(shí)和可靠的(誠實(shí)節(jié)點(diǎn)),但在傳統(tǒng)的分布式容錯系統(tǒng)中,這個假設(shè)不容易實(shí)現(xiàn),更多是依賴在一個的機(jī)構(gòu)的管控范圍內(nèi),通過類似內(nèi)部認(rèn)證節(jié)點(diǎn)的方式來實(shí)現(xiàn),但比特幣系統(tǒng)是去中心化的,沒有一個單獨(dú)的中央機(jī)構(gòu)來管控,看似更加無法實(shí)現(xiàn),但卻通過其內(nèi)置的激勵機(jī)制很好地做到了這一點(diǎn),即讓網(wǎng)絡(luò)中的大多數(shù)節(jié)點(diǎn)都保持誠實(shí)這個假設(shè)成為現(xiàn)實(shí)。
讓網(wǎng)絡(luò)中誠實(shí)節(jié)點(diǎn)的算力比攻擊者更大
因?yàn)榫W(wǎng)絡(luò)中的大多數(shù)節(jié)點(diǎn)更加愿意保持誠實(shí),所以網(wǎng)絡(luò)中誠實(shí)節(jié)點(diǎn)自然會更長,正如中本聰本人所說的那樣——根據(jù)長尾理論,小、中、大誠實(shí)節(jié)點(diǎn)構(gòu)成的集群加起來應(yīng)比由壞人控制的、最大的攻擊者節(jié)點(diǎn)構(gòu)成的集群大得多,所以網(wǎng)絡(luò)中誠實(shí)節(jié)點(diǎn)的算力必然比攻擊者更大。
從“讓網(wǎng)絡(luò)中的大多數(shù)節(jié)點(diǎn)更加愿意保持誠實(shí)”到“讓網(wǎng)絡(luò)中誠實(shí)節(jié)點(diǎn)的算力比攻擊者更大”,讓比特幣系統(tǒng)保障了假設(shè)p>q的成立,也就保證了攻擊者攻擊成功是小概率事件這一結(jié)果。同時也保證了網(wǎng)絡(luò)中誠實(shí)節(jié)點(diǎn)可控制大部分的算力,避免了攻擊者聯(lián)合起來發(fā)動“比特幣51%攻擊”,否則攻擊者將控制整個比特幣網(wǎng)絡(luò),對系統(tǒng)的安全構(gòu)成隱患,但一旦實(shí)現(xiàn)誠實(shí)節(jié)點(diǎn)控制了網(wǎng)絡(luò)中的大部分算力,一個攻擊者想要改變分布式塊鏈就變成了在計算上的不現(xiàn)實(shí)。
理性認(rèn)識比特幣潛在風(fēng)險
從以上分析逆向的角度看,本文從節(jié)點(diǎn)的理性人假設(shè)開始,到誠實(shí)節(jié)點(diǎn)會更多的假設(shè),到誠實(shí)節(jié)點(diǎn)算力更大的假設(shè),到p>q假設(shè),到攻擊者趕超上誠實(shí)節(jié)點(diǎn)的概率很小,到攻擊者攻擊成功是小概率事件,再到分布式塊鏈的安全得到保障,進(jìn)行了從定性到定量分析,完成了對比特幣系統(tǒng)分布式塊鏈的安全進(jìn)行了較深入的梳理及認(rèn)識。
基于以上認(rèn)識,如何理性地認(rèn)識比特幣系統(tǒng)潛在的風(fēng)險呢?實(shí)現(xiàn)對其風(fēng)險進(jìn)行一定的總結(jié)呢?
從概率和理性假設(shè)的角度來說,首先,比特幣系統(tǒng)分布式塊鏈被攻擊成功是極小概率事件,通常情況下,安全程度還是很高的,但畢竟概率還不為0,只要概率不為0,那么至少不安全的可能性還是有的。其次,為了保證比特幣系統(tǒng)中“讓網(wǎng)絡(luò)中的大多數(shù)節(jié)點(diǎn)更加愿意保持誠實(shí)”這一結(jié)論得以成立,利用了博弈論的思想,但博弈論的結(jié)論得以成立是有基本假設(shè)的,這個基本假設(shè)就是博弈參與人總體是共同理性的,即不僅假定了博弈參與人(player)是理性的(rational),而且假定了“所有參與人也是理性人”,即理性假設(shè)。因此,比特幣系統(tǒng)要想該結(jié)論得以成立,同樣也必須要求假定“比特幣網(wǎng)絡(luò)中所有參與節(jié)點(diǎn)總體是共同理性的”。脫離了這個假設(shè),該結(jié)論就不一定成立。但就像博弈論會陷入到理性假設(shè)困境一樣,同樣比特幣系統(tǒng)中的這個假設(shè)也會在某些場景下陷入到理性假設(shè)困境中,導(dǎo)致這個結(jié)論可能不再成立,例如:為了達(dá)到某種目的,對比特幣的惡意爆炒之下,比特幣投機(jī)屬性被無限放大,或者說人性之惡被無限放大的情況下,這些非理性的場景會加大這種理性假設(shè)困境出現(xiàn)的概率,或者說導(dǎo)致這種理性假設(shè)不再成立,這就意味著比特幣系統(tǒng)的安全性會因此遭到破壞,從而產(chǎn)生對比特幣系統(tǒng)的安全危機(jī)和對比特幣的信任與價值危機(jī)。
因此,當(dāng)前有觀點(diǎn)認(rèn)為比特幣系統(tǒng)是非常安全的,甚至是絕對安全的,從以上分析可知,這顯然是不對的,比特幣系統(tǒng)分布式塊鏈的安全性或者說比特幣系統(tǒng)的風(fēng)險已經(jīng)消除了灰犀牛危機(jī)(大概率危機(jī)),但并沒有徹底消除黑天鵝危機(jī)(小概率危機(jī)),盡管風(fēng)險很小,但畢竟還有存在的可能性。就像某天的天氣預(yù)報一樣,只要下雨的概率不為0,就還是有下雨的可能性。
那么比特幣系統(tǒng)什么時候會發(fā)生黑天鵝危機(jī)呢?從邏輯上講,只要本文中所講的這些假設(shè)之一,因某種原因不再成立,那么比特幣系統(tǒng)的黑天鵝事件就會發(fā)生,例如:BTG(比特幣黃金)被攻擊事件就是因?yàn)楣粽哒瓶亓酥辽?1%算力,直接導(dǎo)致了誠實(shí)節(jié)點(diǎn)算力更大的假設(shè)不再成立后發(fā)生的。
結(jié)語
無論是區(qū)塊鏈1.0中的加密數(shù)字貨幣,區(qū)塊鏈2.0中的智能合約,還是區(qū)塊鏈3.0中的其他行業(yè)應(yīng)用(金融領(lǐng)域之外),區(qū)塊鏈去中心化的分布式塊鏈的安全研究都是區(qū)塊鏈技術(shù)安全研究的核心內(nèi)容。
對區(qū)塊鏈技術(shù)來講,盡管安全涉及到方方面面的內(nèi)容,但其安全研究的重要性毋庸置疑,正如德勤發(fā)布的“2018年全球區(qū)塊鏈調(diào)查”報告指出,區(qū)塊鏈領(lǐng)域正發(fā)生的六大轉(zhuǎn)變之一——安全依然是區(qū)塊鏈創(chuàng)新的主要動力。
因此區(qū)塊鏈技術(shù)安全相關(guān)的研究與實(shí)踐對推動區(qū)塊鏈技術(shù)的創(chuàng)新發(fā)展至關(guān)重要,還需要相關(guān)人士共同努力通過持續(xù)的創(chuàng)新來提高安全性。
總之,區(qū)塊鏈技術(shù)的安全問題,如果沒有得到足夠的重視,其應(yīng)用就會留下很多潛在的風(fēng)險。如果有了較大的安全風(fēng)險發(fā)生,那么《經(jīng)濟(jì)學(xué)人》雜志中所提及的比特幣是創(chuàng)造信任的機(jī)器,以及業(yè)界所說的區(qū)塊鏈?zhǔn)莾r值互聯(lián)網(wǎng)等觀點(diǎn),也就無從成立。