從經(jīng)濟學(xué)角度看區(qū)塊鏈
提到區(qū)塊鏈,大家都會提到“拜占庭將軍問題”這個分布式系統(tǒng)中的著名問題。
拜占庭將軍問題大概講的是:拜占庭N個在不同地方的將軍圍攻一個敵人,忠誠的將軍希望通過某種協(xié)議達(dá)成某個命令的一致(比如約定某個時間一起進攻),但其中一些背叛的將軍會通過發(fā)送錯誤的消息阻撓忠誠的將軍達(dá)成命令上的一致。如果同時發(fā)起進攻的將軍數(shù)量少于M個,那么不足以殲滅敵人反而容易被敵人全部殲滅。怎樣做才能保證有多于M個將軍在同一時間一起發(fā)起進攻?
拜占庭將軍問題是分布式系統(tǒng)的一個經(jīng)典模型,當(dāng)分布式系統(tǒng)沒有可靠的中心協(xié)調(diào)所有節(jié)點時,如何確保大多數(shù)節(jié)點的數(shù)據(jù)是一致的?拜占庭將軍模型就是描述的這個問題。一個區(qū)塊鏈系統(tǒng)能夠解決拜占庭將軍問題,那么我們就說這個區(qū)塊鏈系統(tǒng)滿足拜占庭容錯。
需要注意一點:
在拜占庭將軍問題模型中,將軍們被分成了“忠誠的”和“背叛的”兩種。這種分類事實上是以將軍們是否遵守“共識協(xié)議”來區(qū)分的。在區(qū)塊鏈系統(tǒng)中,當(dāng)一個節(jié)點不遵守共識協(xié)議,篡改正確的數(shù)據(jù)等行為,可以被看作是“背叛的”節(jié)點。
作為一個信息系統(tǒng),從“拜占庭將軍問題”角度(即分布式系統(tǒng)的數(shù)據(jù)一致性角度)分析就足夠了。然而我在本系列的第一篇文章中就提到過,區(qū)塊鏈不僅僅是一個信息化的工具,區(qū)塊鏈?zhǔn)巧钊氲綐I(yè)務(wù)內(nèi)部,能夠?qū)ι虡I(yè)模式起到?jīng)Q定性作用的一種技術(shù)。區(qū)塊鏈技術(shù)不僅僅是一個信息技術(shù),更是一個“經(jīng)濟技術(shù)”。因此,我們就不能只從信息技術(shù)角度來分析區(qū)塊鏈了。
回到本章的正題,我們怎么從經(jīng)濟學(xué)角度來看區(qū)塊鏈?這個題目太大了,并且我本人不是經(jīng)濟學(xué)專業(yè)的,只能嘗試著從經(jīng)濟學(xué)角度簡單分析一下比特幣區(qū)塊鏈系統(tǒng)。
從經(jīng)濟學(xué)角度來看,僅僅是遵守共識協(xié)議并不能保證一個經(jīng)濟系統(tǒng)的穩(wěn)定性。事實上,“中本聰”在設(shè)計比特幣系統(tǒng)時,已經(jīng)考慮到了很多經(jīng)濟學(xué)方面的問題,因此比特幣系統(tǒng)中對礦工有挖礦獎勵,礦工還可以獲得轉(zhuǎn)賬手續(xù)費,以確保有足夠的算力能夠參與整個比特幣系統(tǒng)的維護。
經(jīng)濟學(xué)的最基本假設(shè):礦工是要追求利益最大化的
首先,對于礦工來說,遵守整個比特幣系統(tǒng)技術(shù)協(xié)議,有可能獲得比特幣。不遵守,則直接就會被排除在系統(tǒng)之外,沒有收益。因此,從“拜占庭將軍問題”分類來說,比特幣的礦工都是“忠誠的”,這就能夠使得整個比特幣系統(tǒng)是趨于穩(wěn)定的。
然而,在遵守比特幣系統(tǒng)技術(shù)協(xié)議的前提下,其實還有很多種策略可以選擇。這些策略都是在不違背技術(shù)協(xié)議的行動,但是對整個比特幣系統(tǒng)的經(jīng)濟學(xué)運行穩(wěn)定性有影響。比如礦工可以選擇對其他礦工發(fā)起DDOS攻擊,拖慢競爭者的網(wǎng)絡(luò),以提高自己挖到區(qū)塊的概率等。這種情況可以讓礦工獲得更高的收益,但是一旦所有礦工之間都在相互DDOS攻擊,會造成整個比特幣網(wǎng)絡(luò)不可用,交易無法提交生效,進而導(dǎo)致整個比特幣的價值降低。
還要注意一點,礦工的身份有時候不僅僅是礦工,同時也是比特幣的交易者。在這種情況下,礦工如果發(fā)起“雙花攻擊”,則礦工有可能獲取到大量的利益。
舉例來說,如果一個礦工Alice需要轉(zhuǎn)賬給Bob 1000比特幣,此時Alice在比特幣網(wǎng)絡(luò)上廣播一個Alice轉(zhuǎn)賬給Bob賬戶 1000比特幣的交易,被其他礦工接收到,記入了他們的區(qū)塊中。然而Alice自己則在區(qū)塊中記錄了另一筆交易——Alice轉(zhuǎn)賬給Alice_new賬戶1000比特幣,也就是說,Alice人為制造了一個分叉,在這個分叉點,制造了一筆雙花交易(一筆錢花了兩次)。
之后Alice一直默默的挖礦,直到產(chǎn)生了6個區(qū)塊后再次廣播挖礦結(jié)果。如果Alice能夠掌握全網(wǎng)51%以上的算力,那么這筆雙花交易最終被全網(wǎng)承認(rèn)的將是Alice轉(zhuǎn)給Alice_new的這筆交易,而轉(zhuǎn)給Bob的將失效。這時如果1比特幣的價格是3000美元,那么Bob有可能損失掉了三百萬美元。這是一筆非常大的數(shù)字。這也就是我們經(jīng)常提到的比特幣中的“51%攻擊”。
由于整個比特幣系統(tǒng)是無中心化的,也就是說,我們沒有辦法記錄Alice這個礦工的信用,因此,即便發(fā)生了51%攻擊,Alice也得不到任何懲罰,相反,Alice還能夠繼續(xù)參與挖礦,并且繼續(xù)制造51%攻擊。當(dāng)然,如果這種事情頻繁發(fā)生,整個比特幣系統(tǒng)就會變得一文不值,因此,具有超級算力的礦工在發(fā)起51%攻擊時,也需要考慮是否會把整個比特幣系統(tǒng)拖垮。
其實不僅僅是算力超過51%的礦工可以發(fā)起雙花攻擊,如果一個礦工掌握了45%的算力,那么他依然可以發(fā)起雙花攻擊,在我們通常認(rèn)為6個區(qū)塊可以確認(rèn)交易成功的概念下,45%算力發(fā)起雙花攻擊的成功率為(0.45/(1-0.45))的6次方——30%,(考慮到他掌握了45%的算力,那么他單獨自己挖自己的分叉,另一個分叉就只有55%的算力了,所以是0.45/(1-0.45))也就是說,如果這個雙花交易的額度是1000比特幣,那么他收益的期望是300比特幣,這種情況下,從博弈論角度來看,礦工發(fā)起雙花攻擊的可能性是極大的。
由于比特幣區(qū)塊鏈系統(tǒng)的設(shè)計中,挖礦難度的變化率是比較慢的,因此,對于算力很高的礦工來說,在準(zhǔn)備大幅增加硬件提高算力的同時發(fā)起雙花攻擊,這樣的行為有可能讓礦工獲得很高的收益。當(dāng)然,這種行為也同樣會導(dǎo)致比特幣的價值受到損害。
綜合上面的分析,我們可以得出結(jié)論:雖然比特幣區(qū)塊鏈系統(tǒng)在技術(shù)設(shè)計上已經(jīng)非常成熟,但是一旦采用經(jīng)濟學(xué)分析,仍然可以發(fā)現(xiàn)無中心化的比特幣系統(tǒng)依然存在很高的經(jīng)濟風(fēng)險,這種風(fēng)險來源于算力的中心化。目前整個比特幣網(wǎng)絡(luò)中,幾個大的礦池已經(jīng)占有了非常高的算力比例,在這種情況下,比特幣系統(tǒng)的價值已經(jīng)很大程度上依賴于這些礦池的道德水平了。不過,上面的所有分析是假設(shè)礦工發(fā)起了大額轉(zhuǎn)賬交易。而目前由于比特幣價格非常高,大額交易是比較罕見的,因此,出現(xiàn)上述風(fēng)險的概率是很低。