區(qū)塊鏈的三個“天然缺陷”
區(qū)塊鏈技術(shù)并不完美。
事實上,任何新技術(shù)誕生之初都會存在“先天缺陷”。缺陷會隨著技術(shù)進步而被完善,然后在新的技術(shù)背景下,再面臨新的“缺陷”。
比如飛機這個航空技術(shù)。1903年12月,萊特兄弟進行了人類歷史上首次試飛,但是并不受美國政府重視,同時受限于材料,空氣動力學(xué),飛機發(fā)展也相當(dāng)緩慢。直到兩次世界大戰(zhàn),才推動了飛機在軍事領(lǐng)域的應(yīng)用。
區(qū)塊鏈技術(shù)發(fā)展也不會例外。
時間回到2010年,彼時比特幣剛滿1周歲,由于核心代碼漏洞,有人利用該漏洞憑空造出了1840億個比特幣。
慶幸的是,在社群努力下,迅速修復(fù)了這個漏洞。而比特幣核心代碼組的開發(fā)者們,也在夜以繼日地為比特幣核心代碼庫做貢獻,以修補瑕疵,這才有了區(qū)塊鏈行業(yè)的今天。
我們總是會把區(qū)塊鏈技術(shù)“完美化”,殊不知,在經(jīng)濟學(xué)家、密碼學(xué)家、計算機科學(xué)家眼中,區(qū)塊鏈技術(shù)還有很多需要改進的地方。
例如《區(qū)塊鏈核心技術(shù)開發(fā)與應(yīng)用》就認(rèn)為目前區(qū)塊鏈技術(shù)在數(shù)學(xué)工具、博弈論、密碼學(xué)、代碼存在局限性的情況下,還有很大的改進空間。換言之區(qū)塊鏈技術(shù)要想被大規(guī)模商用,還有很長的路要走。
那么,目前的區(qū)塊鏈還存在什么不完美的地方呢?
1、完美代碼的錯覺
如果將比特幣網(wǎng)絡(luò)系統(tǒng)比作一個大型軟件,那么計算機技術(shù)與編程則為這項技術(shù)的落地提供了載體。
但是目前編程語言卻明顯存在一些不完美之處。
首先,語言種類繁多,沒有哪種語言能夠“一統(tǒng)江湖”。不同項目使用完全不同的編程語言,屢見不鮮:
- (1)比特幣與瑞波幣使用了C++;
- (2)以太坊則使用了四種專用語言:Serpent(受 Python啟發(fā))、 Solidity(受 Javascript啟發(fā))、Mutan(受Go啟發(fā))和LLL(受Lisp啟發(fā)),都是為面向合約編程而從底層開始設(shè)計的語言。專用語言意味著這種語言只在開發(fā)以太坊相關(guān)應(yīng)用時才應(yīng)用;
- (3)很多基于區(qū)塊鏈的DApps和Tools都是用的Go語言;
- (4)2017年著名的ICO明星項目Teos則使用了極其小眾的 Michelson 與 OCaml 作為編程語言,等等。

數(shù)量眾多的開發(fā)語言
世界上編程語言多達上五十多種,但尷尬的是,沒有哪一種語言能夠占據(jù)絕對優(yōu)勢。
國內(nèi)著名經(jīng)濟學(xué)家朱嘉明認(rèn)為,在現(xiàn)實中,很可能發(fā)生因為任何一種編程語言自身不足,以及不同的編程語言不足的迭加,對現(xiàn)有區(qū)塊鏈造成本源性的傷害。
其次,區(qū)塊鏈編程語言主要依賴C++、Java、Go等幾種 “高階語言”,而這些所謂的高階語言目前還存在諸多不完善之處。
以Go為例,創(chuàng)建時間是2009年,距今只有10年,其“錯誤處理機制”、“垃圾回收器”與“編譯器”等邏輯功能,還需要逐步完善,才能滿足未來區(qū)塊鏈開發(fā)需要。
同時,朱嘉明還認(rèn)為:現(xiàn)有的計算機語言正在面臨與其它新技術(shù)的融合,進而影響區(qū)塊鏈的技術(shù)體系。例如,人工智能技術(shù)和計算機語言的融合,很可能引發(fā)計算機語言系統(tǒng)的變革。

軟件失效的邏輯
最后,由鄒均等編寫的《區(qū)塊鏈核心技術(shù)與應(yīng)用》這本書中還提到了編程人員的自覺和非自覺的錯誤。
編程人員的錯誤,會導(dǎo)致軟件缺陷,而軟件缺陷又會導(dǎo)致軟件故障。軟件故障是指軟件在運行過程中導(dǎo)致不希望出現(xiàn)的錯誤,如果不加以適當(dāng)處理,就會導(dǎo)致軟件失效。
區(qū)塊鏈技術(shù)一般運行在相對不可信的公開環(huán)境,沒有專門的維護人員,更不可能做到像一般軟件那樣24小時公開維護,因此就要求軟件要有高度的穩(wěn)健性,但是現(xiàn)實情況卻往往不是這樣的。
人為導(dǎo)致的漏洞,也會讓區(qū)塊鏈資產(chǎn)化為烏有,這種案例也屢見不鮮。
4月22日中午,有黑客利用以太坊 ERC-20智能合約中BatchOverFlow漏洞攻擊BEC(美鏈的代幣“美蜜”)智能合約,成功向兩個地址轉(zhuǎn)出了天量級別的 BEC代幣,導(dǎo)致市場上海量BEC被拋售。此事使得當(dāng)日BEC的價值幾乎歸零。

4月22日當(dāng)天,BEC價格從0.32美金跌到0.02美金
4月25日,僅僅三天后,另一個智能合約SmartMesh(SMT)曝出漏洞,交易所表示,因SMT出現(xiàn)異常交易,各交易平臺暫停SMT的充提和交易。
現(xiàn)實世界里,財物失竊尚能夠通過立案偵查追回?fù)p失。但是在互聯(lián)網(wǎng)的世界里,盡管數(shù)字貨幣“錢途”無量,一旦被黑卻血本無歸。
因此,代碼進步十分重要,但是程序員素養(yǎng),對行業(yè)進步更為重要。
2、博弈論的局限
中本聰在白皮書中提到,比特幣是一種點對點的電子現(xiàn)金系統(tǒng)。實際上比特幣背后的共識機制也是點對點進行的,一臺臺礦機合作變成礦場,礦場之間通過礦池連接起來,在互相博弈中,形成一種平衡狀態(tài)。
這種博弈狀態(tài)的平衡,在朱嘉明看來,建立在“博弈論”基礎(chǔ)上的“納什均衡”最接近反映區(qū)塊鏈共識系統(tǒng)的狀態(tài)。

納什均衡是博弈論中的一種情況
“納什均衡”是指,在一個博弈過程中,博弈雙方都沒有改變自己策略的動力,因為任何單方面改變自己的策略,都會導(dǎo)致自己的收益減少。舉個例子,以即將來臨的雙十一為例,淘寶上兩家旗艦店都在打價格戰(zhàn),任何一方在活動期間都不敢隨便漲價,因為任何漲價行為都會導(dǎo)致自己一方失去優(yōu)勢。
無論是比特幣點對點的支付系統(tǒng),還是礦工之間的挖礦競爭,都無法擺脫一個問題,在轉(zhuǎn)帳、挖礦過程中每個節(jié)點都存在競爭,競爭的結(jié)果就是誰付出的礦工費用越高,誰的交易越快完成。
但是實際上,朱嘉明認(rèn)為,這種“納什均衡”狀態(tài)下的博弈,是當(dāng)年諾伊曼和納什研究的是有限“節(jié)點”下的小規(guī)模博弈,早已經(jīng)不足以面對“由幾十億節(jié)點的龐大對象構(gòu)成的社會、經(jīng)濟等復(fù)雜行為”。
當(dāng)然也無法支持目前比特幣、區(qū)塊鏈系統(tǒng)節(jié)點“幾何級數(shù)”的發(fā)展規(guī)模。

比特幣全網(wǎng)算力是47073540.92 TH/s
目前,比特幣全網(wǎng)算力是47073540.92 TH/s,市面上最常見的礦機是比特大陸的螞蟻S9礦機,官方給出的這臺礦機的額定算力時14.5TH/s,簡單算個除法,結(jié)果就是全球比特幣網(wǎng)絡(luò)運行著324.6萬臺螞蟻S9。

螞蟻S9參數(shù)
但是實際上,目前比特幣礦場中還運行著很多算力低于S9的礦機,這就意味著全球比特幣礦機數(shù)量遠大于324.9萬臺。
在數(shù)百萬的規(guī)模上實現(xiàn)礦機、礦場、礦池之間的博弈平衡,絕對不是個簡單的算術(shù)問題。實際上,比特幣全網(wǎng)算力還處于不斷增長中,這種指數(shù)級別的增長,正面臨“失控”著狀態(tài)。目前比特幣礦業(yè)消耗電力已經(jīng)超過整個大英帝國的用電量。
研究機構(gòu)曾做出過這樣的統(tǒng)計:如果按照去年11月份“比特幣挖礦耗電量”增長速度來計算,到2019年7月,比特幣挖礦耗電量將超過如今美國全國的用電量。

2010年以來,比特幣全網(wǎng)算力增長趨勢
同時隨著全球比特幣用戶增長,比特幣轉(zhuǎn)賬也正在消耗越來越多的“手續(xù)費”,網(wǎng)絡(luò)擁堵就像懸在每個礦工、用戶頭上的“達摩克利斯之劍”,隨時都有可能造成巨大的負(fù)面影響。
顯然,“納什均衡”狀態(tài)下的博弈論已經(jīng)無法支撐以比特幣為代表的區(qū)塊鏈技術(shù)的前行。亟待進行一場新的基礎(chǔ)科學(xué)的變革。
3、哈希算法的掣肘
“區(qū)塊鏈技術(shù)的核心其實是密碼學(xué),密碼學(xué)的重點則是哈希函數(shù)。”《區(qū)塊鏈核心應(yīng)用與開發(fā)》這本書提到。
你在區(qū)塊鏈上的每一筆轉(zhuǎn)賬、挖礦、應(yīng)用開發(fā)等等,只要涉及鏈上數(shù)據(jù)處理,都會涉及哈希函數(shù)。而素數(shù)與數(shù)論則與哈希函數(shù)聯(lián)系緊密。
我們經(jīng)常說的比特幣POW算法本質(zhì)是一個哈希函數(shù)。
事實上,已經(jīng)有很多哈希函數(shù)被設(shè)計出來并廣泛應(yīng)用,支付寶、微信、銀行的加密無不使用哈希函數(shù)。不過Hash函數(shù)一般安全壽命都不長,被認(rèn)為安全的算法往往沒能使用多久就被成功攻擊,新的更安全的算法相繼被設(shè)計出來,而每一個被公認(rèn)為安全可靠的算法都有及其嚴(yán)格的審計過程。

SHA256對“哈希”加密
加密算法SHA家族的更迭史最能說明這個問題,從1993年SHA0被發(fā)明,在不斷被破解與重新發(fā)明的較量中,目前已經(jīng)發(fā)展到第五代SHA-512。
在幣圈中我們經(jīng)常說某某幣發(fā)明了某種算法,其實主要都是使用那些被認(rèn)證過的安全算法,或是單獨使用,或是排列組合使用。
而哈希函數(shù)與數(shù)學(xué)問題關(guān)系十分緊密,具體是指數(shù)論與素數(shù)問題。

《區(qū)塊鏈核心應(yīng)用于開發(fā)》這本書認(rèn)為,目前數(shù)論還處于發(fā)展?fàn)顟B(tài),哈希函數(shù)當(dāng)然也處于發(fā)展?fàn)顟B(tài),這就決定了區(qū)塊鏈技術(shù)還存在諸多算法不當(dāng),進而導(dǎo)致區(qū)塊鏈技術(shù)性能不足。
比特幣的不可擴展性、效率低下、升級困難,很大程度上就是該邏輯導(dǎo)致。因為擴展性問題,導(dǎo)致了比特幣在2017年被迫分叉??偟膩碚f,區(qū)塊鏈技術(shù)的效率低下問題,在一定程度上還是數(shù)學(xué)問題。
有人可能會問,數(shù)論是什么?素數(shù)又是什么?
通俗理解,一切數(shù)學(xué)問題都可以歸結(jié)為數(shù)論問題,因此素數(shù)問題也屬于數(shù)論問題。
早在公元前300年歐幾里得就證明了有無窮多個素數(shù),在隨后接近2000年的時間內(nèi),主要內(nèi)容是以尋找素數(shù)通項公式為主要思想。這方面主要的代表人物有德國數(shù)學(xué)家高斯,英國著名數(shù)論學(xué)家哈代、李特伍德、拉馬努金等等。
今年9月20日,與證明“黎曼猜想”相關(guān)的新聞,在網(wǎng)絡(luò)上鬧得沸沸揚揚。知名數(shù)學(xué)家邁克爾· 阿蒂亞爵士宣布將會證明黎曼猜想,這引起了區(qū)塊鏈行業(yè)從業(yè)者的關(guān)注。為什么?
“一旦黎曼猜想被證實,就意味著素數(shù)出現(xiàn)規(guī)律就能找到,基于此的加密可能也就不安全了。”從事數(shù)學(xué)研究的阿嵐認(rèn)為。
因此,博弈論、代碼語言進步、數(shù)學(xué)理論發(fā)展,對區(qū)塊鏈技術(shù)進步都有著不可小覷的影響。
----------------------
比特幣誕生至今,10年過去了,期間被死亡200多次,被分叉20多次,但是任何一次危機都沒能成功“殺死”比特幣。
比特幣背后的區(qū)塊鏈技術(shù),雖然面臨數(shù)學(xué)問題、博弈論問題、代碼漏洞問題,但是這些也沒能阻擋區(qū)塊鏈行業(yè)的從無到有,從落魄到發(fā)榮的歷史進程。
而成功度過每一次危機,都能讓這項技術(shù)浴火重生、鳳凰涅槃。
雖然目前區(qū)塊鏈技術(shù)并不成熟、加密貨幣還沒有完全被主流認(rèn)可,但是時間會對這些問題做最好的注腳。
正如思想家阿卜·法拉茲所言:“暫時的失利,比暫時的勝利好得多。”