獵云注:對于區(qū)塊鏈這個概念來說,大部分人對此熟悉又陌生。目前,區(qū)塊鏈+大數(shù)據(jù)的應(yīng)用以及區(qū)塊鏈技術(shù)的應(yīng)用落地,被認(rèn)為將很快將會迎來一個大的發(fā)展機(jī)遇。在不久前結(jié)束的麻省理工科技評論區(qū)塊鏈峰會上,來自康奈爾大學(xué)的計算機(jī)學(xué)教授Emin Gun Sirer卻對人們提出了關(guān)于區(qū)塊鏈技術(shù)的警示——該技術(shù)還處于非常早期的階段,不應(yīng)過于狂熱。文章轉(zhuǎn)自: DeepTech深科技 作者:DT君
以下是由DT君整理的Emin Gun Sirer 教授演講全文:
關(guān)于區(qū)塊鏈的好處,以及可能對這個世界帶來的改變已經(jīng)被說的太多了,我在這里就不加贅述了。我想和大家分享的是人們?nèi)绾螒?yīng)用區(qū)塊鏈,以及區(qū)塊鏈背后的技術(shù)支撐。
如果要從整體上把握區(qū)塊鏈,首先要知道人類記錄財富的方式。當(dāng)人們看到黃金,馬上想到的就是財富、價值,但這屬于人類文化傳統(tǒng)對其價值的認(rèn)同。為什么唯獨是黃金?有很多石頭都比黃金更漂亮、更耐腐蝕,人們?yōu)楹螞]選擇這些石頭?
當(dāng)然,世界上還有其他類型物品被賦予過價值,比如貝殼,漂亮且難以偽造;以及中國古代的刀幣,用銅鑄造的特殊貨幣等。
我還見過一種比較神奇的貨幣。在一個南太平洋小島上,當(dāng)?shù)鼐用裼靡环N巨大的石頭圓盤作為貨幣(如下圖)。這種“巨石貨幣”存在的原因很簡單:因為這個島上找不到這么大的石頭。如果你想買別人家的土地,那就把這個大石頭硬幣推到別人家門口放好,地就歸你了。
有一個英國人類學(xué)家在 1963 年左右專門在這個島上做過研究,這個島上基本找不到這么大的石頭,得從別的島上開鑿后再運回來。偶爾一不小心,這些石頭硬幣會從船上掉下來落入海中,很難再撈上來。
那么問題來了,落入海中的石頭硬幣到底屬于誰?原來的主人肯定是花了力氣去開鑿并搬運它,島上都是善良的居民,彼此也都信任。所以會達(dá)成這么一種交易:把手頭現(xiàn)有的硬幣,外加躺在海底那枚硬幣的歸屬權(quán)都移交給賣主。
為了避免胡說八道的嫌疑,下面有張沉入海底的石頭硬幣圖片(全場大笑)。
大家請留意一點,在所有人都承認(rèn)這些石頭硬幣價值的基礎(chǔ)上,他們將海底那枚看不見的硬幣的所有權(quán)進(jìn)行了轉(zhuǎn)移。這是使得交易能夠順利達(dá)成的關(guān)鍵。實際上,這也是區(qū)塊鏈技術(shù)賴以存在的基礎(chǔ)。
如果要給區(qū)塊鏈技術(shù)下一個定義,我想應(yīng)該是這樣的:
區(qū)塊鏈?zhǔn)且环N將系統(tǒng)內(nèi)有效交易進(jìn)行編碼的可附加賬本,且滿足以下條件:
每次交易必須有效;系統(tǒng)必須對數(shù)字資產(chǎn)的歸屬達(dá)成共識;過往歷史不能篡改,這也是區(qū)塊鏈價值的來源;
然而,問題就往往出在這里,上面提到的三點在以前的實踐過程中都遇到過失效的情況。為了說明區(qū)塊鏈的重大隱患,接下來我圍繞這三點一一展開。
一、每次交易必須有效;
根據(jù)這一條件,所有的交易都必須符合事先約定的規(guī)則,那這些規(guī)則到底是什么?在計算機(jī)學(xué)里,對規(guī)則描述可以由外部技術(shù)說明文檔來定義。但對于區(qū)塊鏈及其應(yīng)用來講,這種定義方式完全不適用。
大家可能都聽說過“代碼即規(guī)則”(Code is Law),雖然勞倫斯·萊斯格當(dāng)時是在完全不同的語境下提出這個概念的。但這個說法其實多少解釋區(qū)塊鏈的某些應(yīng)用情況,比如,一旦代碼寫出來開始執(zhí)行,就就永遠(yuǎn)無法收回了。
但今天我想說的是,代碼并不是規(guī)則,規(guī)則才是規(guī)則,而且代碼到處是bug!
按照當(dāng)今工業(yè)標(biāo)準(zhǔn),每一百行代碼允許存在一個bug,而比特幣客戶端大約有 3 萬行代碼。幸運的是,至今我們還沒有在其中發(fā)現(xiàn)致命的bug。
然而,第一代的區(qū)塊鏈技術(shù)開發(fā)者們其實是避開了技術(shù)規(guī)范說明文檔的,原因當(dāng)然有很多,比如代碼和技術(shù)規(guī)范不一致會導(dǎo)致問題、缺乏調(diào)解差異的有效方法,以及最重要的一點:開源技術(shù)的開發(fā)者們認(rèn)為技術(shù)規(guī)范會抹殺他們的創(chuàng)造力。
也正是由于缺乏統(tǒng)一的技術(shù)規(guī)范,在 2010 年 8 月,發(fā)生了一起比特幣歷史上的大事:一名黑客利用整數(shù)溢出的漏洞憑空創(chuàng)造出了 1840 億個比特幣,而比特幣系統(tǒng)設(shè)計之初的限額僅為 2100 萬個。最終,比特幣開發(fā)社區(qū)在“礦工”們的幫助下重寫了相應(yīng)代碼封堵了漏洞。
二、系統(tǒng)必須對數(shù)字資產(chǎn)的歸屬達(dá)成共識;
共識機(jī)制是在交易發(fā)生時,所有節(jié)點都認(rèn)同的某種約定。共識機(jī)制也很容易失效,因為同一時間點可能會發(fā)生很多起交易,所以比特幣目前也面臨交易次數(shù)擴(kuò)容的問題。此外,交易過程中還存在一些誤導(dǎo)因素,比如“拜占庭將軍問題”(可簡單理解為各個利益方相互制衡的互不信任關(guān)系)。
畢竟,比特幣可以看做是一種為分布式系統(tǒng)復(fù)雜算法問題尋找通用解決辦法的方案,而共識問題一直是分布式系統(tǒng)所固有的。通用的邏輯是:所有交易必須在當(dāng)前世界允許的基礎(chǔ)上進(jìn)行。而早前的區(qū)塊鏈遵循的是:一旦做出決策就無法撤回。中本聰和他的比特幣的創(chuàng)新之處則在于:在有可能付出一定代價的前提下,允許對決策進(jìn)行修改。
共識機(jī)制失效在比特幣領(lǐng)域也確實發(fā)生過。2013年,比特幣客戶端被升級到v0.8版本,允許單個區(qū)塊能容納更多的交易頻次。不久以后,某個區(qū)塊的交易次數(shù)過多,直接導(dǎo)致該區(qū)塊一分為二。開發(fā)者社區(qū)只能對軟件進(jìn)行降級,同時撤銷了數(shù)小時之內(nèi)的交易。
三、過往歷史不能篡改,這也是區(qū)塊鏈價值的來源;
不可篡改性是區(qū)塊鏈技術(shù)最重要的特質(zhì),也是加密數(shù)字貨幣及其應(yīng)用場景的核心原則。沒有人愿意在互聯(lián)網(wǎng)上進(jìn)行數(shù)字貨幣交易后還要去處理退款這類的麻煩事,也不希望因為某些監(jiān)管機(jī)構(gòu)的介入使自己的數(shù)字資產(chǎn)化為烏有。
關(guān)于區(qū)塊鏈這一特征最激動人心的應(yīng)用就出現(xiàn)在2016年5月,數(shù)字自治組織DAO(Digital Autonomous Organization)正式啟動。DAO是區(qū)塊鏈領(lǐng)域一個非常成功的實踐案例,該項目由風(fēng)投基金、區(qū)塊鏈創(chuàng)業(yè)者、技術(shù)開發(fā)社區(qū)共同合作,試圖打造一個去中心化的分布式基金,用于投資各類區(qū)塊鏈項目。
這個項目在一份“智能合約”(Smart Contract)的基礎(chǔ)上建立了一個“以太坊”(Ethereum),由智能合約所包含的代碼和程序與其他合約進(jìn)行互動、作出決策、儲存數(shù)據(jù),以及將“以太幣”(Ether)轉(zhuǎn)給他人。
簡單的說,這是一個沒有任何中心機(jī)構(gòu)的基金,每個人都可以將自己持有的以太幣投資給你信任的項目,并根據(jù)少數(shù)服從多數(shù)的原則來對項目進(jìn)行投資。
項目啟動三周后,籌得的款項竟然超過1億美元,這引起了我和我同事們的極大興趣,因為我們從沒想過這樣一個項目居然能籌集到這么多錢。于是我們開始很認(rèn)真的檢查其代碼,結(jié)果發(fā)現(xiàn)漏洞百出,毫不夸張的說,誰要是開一輛卡車進(jìn)去,能裝一車以太幣出來……
后來我們以旁觀者的心態(tài),在谷歌文檔上發(fā)表了一篇文章,指出了DAO智能合約中存在9個重大漏洞,并警告人們不要放太多的錢進(jìn)去。可是好像大家不以為然。最終,狂熱的人們?yōu)檫@個區(qū)塊鏈投資基金貢獻(xiàn)了2.2億美元。
但就在DAO正式運行的第一天,有一個黑客利用我們公布的一個漏洞,以及自己發(fā)現(xiàn)的另一個漏洞,成功從基金的以太賬戶中竊取了5200萬美元。
當(dāng)然,這名黑客最終并沒有將以太幣兌現(xiàn)。當(dāng) FBI 和陪審團(tuán)找到我咨詢相關(guān)技術(shù)問題,問我這種案子該如何定罪。我半開玩笑說:“這可能會成為第一個指控機(jī)器人的案例了。”因為整個DAO的決策全部由預(yù)先寫好的代碼負(fù)責(zé)執(zhí)行,并沒有任何人工介入,所以也不存在違法行為了。
作為一個從事學(xué)術(shù)研究的人,我希望從技術(shù)角度給大家提個醒,因為現(xiàn)在區(qū)塊鏈過于火熱,可能會導(dǎo)致一些問題:
我們的電腦、手機(jī)等計算設(shè)備如果用來處理大額數(shù)字資產(chǎn),其安全性不堪一擊;所有的私有區(qū)塊鏈都是建立在“拜占庭將軍問題”之上,這是完全錯誤的做法,都會面臨獨立失效的可能性,如果進(jìn)一步這種可能隨時失效的協(xié)議部署在每個節(jié)點上,后果不堪設(shè)想;
智能合約是由類似JavaScript語言的工具開發(fā)出來的,缺乏技術(shù)規(guī)范和可靠性;失效保護(hù)和止損方式不明確。
最后,我想說的是,區(qū)塊鏈和太空、基因等其他前沿技術(shù)一樣,非常激動人心,其改變世界的巨大潛力也是可以預(yù)期的。當(dāng)然,在技術(shù)探索的過程中會遭遇很多失敗,我認(rèn)為如果要減少失敗,就應(yīng)該運用最可靠的科學(xué)方法。
設(shè)計合理的架構(gòu)、協(xié)議、應(yīng)用場景、安全系統(tǒng)、技術(shù)開發(fā)規(guī)范等,都是當(dāng)前區(qū)塊鏈亟需解決的問題。