0
本文作者: momomomomo | 編輯:溫曉樺 | 2017-06-26 22:31 |
雷鋒網(wǎng)AI金融評論按:距DAO攻擊發(fā)生已經(jīng)一年時間,有足夠的時間來評估究竟出了什么問題。彭博社近日刊文,深度還原了這樁加密數(shù)字貨幣奇案。雷鋒網(wǎng)編譯如下:
夏季感冒是最糟糕的,Emin Gün Sirer從他1歲兒子身上抓到了一只調(diào)皮的臭蟲。這是在2016年6月13日星期一,這位康奈爾大學(xué)計算機(jī)科學(xué)系副教授流淚、鼻塞,在病床上工作。Gün無法離開他的筆記本電腦,他有另外一個臭蟲(bug)要解決,他擔(dān)心一行代碼的錯誤可能導(dǎo)致2.5億美元被盜。
這些代碼可不普通,這是區(qū)塊鏈行業(yè)最新、最具突破性的軟件設(shè)計的核心,這種新穎的組合結(jié)合了去中心化計算與加密系統(tǒng),給予了誕生于2009年的比特幣世界新的生命。從它誕生時起,區(qū)塊鏈從金融業(yè)到醫(yī)療業(yè)的應(yīng)用前景已經(jīng)開始讓企業(yè)和政府浮想聯(lián)翩。而這位土耳其出生的教授正在探索的是比特幣的下一個飛躍,這就是以太坊區(qū)塊鏈。
比特幣的移動是從一個用戶到另一個用戶,而以太坊區(qū)塊鏈可以承載的是名為智能合約的計算機(jī)程序——本質(zhì)上是通過代碼而不是法庭來執(zhí)行的協(xié)議。這意味著它可以自動化債券支付的生命周期,比如說,或者確保制藥公司能夠驗證其藥物的來源。 然而,智能合約也是新興的事物,和所有的軟件一樣,可靠性依賴于軟件代碼,而Gün很確信他發(fā)現(xiàn)了一個大問題。
在給他的一位研究生學(xué)術(shù)Philip Daian的一封郵件中,Gün指出他正在研究的智能合約在第666行代碼可能存在問題。Gün擔(dān)心黑客可能利用這個bug像ATM一樣無限制地提取數(shù)百萬美元。
涉及的資金共有4億美元,這個驚人的金額在一個去中心化的自治組織DAO計劃內(nèi)。The DAO是一個去中心化的風(fēng)險投資基金,以智能合約的形式運(yùn)行在以太坊區(qū)塊鏈上。它也是一個盈利性的DAO(去中心化自治組織),它將利用自己掌控的以太幣資金通過投資以太坊上的應(yīng)用為其成員創(chuàng)造價值。在The DAO創(chuàng)建期,任何人都可以向它的眾籌合約發(fā)送以太幣,獲得DAO代幣。
這就是The DAO的眾籌。The DAO不受任何人或者組織控制,持有DAO代幣的成員投票決定是否投資以太坊的應(yīng)用。這些是真正的錢,4億美元,這意味著為建立一個更好的世界,每一分投入都有風(fēng)險。
Gün一直在跟蹤和公布DAO設(shè)計的缺陷。 幾個星期前,在5月27日,他和兩位同事一起敦促投資者停止買入DAO,直到安全問題得到解決。 不過現(xiàn)在已經(jīng)太晚了,DAO這樣的智能合約是完全建立它們的代碼之上,一旦發(fā)布在以太坊區(qū)塊鏈上,DAO的代碼將無法修改。比特幣基金會的聯(lián)合創(chuàng)始人Peter Vessenes,也指出了這個智能合約中的安全缺陷,但是Gün似乎是第一個明確指出危險的缺陷。 問題是代碼是如此新,沒有人知道會發(fā)生什么問題。
Gün也有疑慮,這甚至不是他的工作,他這樣做只是因為有趣。他和他的學(xué)生都不確定這個代碼bug是否會造成實質(zhì)問題。
Gün說,“我們不會每次發(fā)現(xiàn)一個可疑的bug就發(fā)出警報”。所以他去睡覺了——為了解決他的感冒。
四天后Christoph Jentzsch躺在家里的地板上,深吸一口氣,平復(fù)自己的驚慌心情。這是星期五上午,Jentzsch創(chuàng)造的DAO正在受到攻擊。
Gün是對的。
這就是史上最大的數(shù)字搶劫案。去年,黑客從孟加拉國中央銀行竊取了8100萬美元,但DAO的攻擊完全不同,這次攻擊沒有辦法去干預(yù),正如五月份的全球WannaCry ransomware攻擊在計算機(jī)操作系統(tǒng)中的弱點(diǎn)一樣,DAO黑客暴露了智能合約安全性的早期缺陷,最后的結(jié)果導(dǎo)致了一場白帽黑客VS.黑帽黑客之間奇怪的、充滿未來主義的圍繞DAO戰(zhàn)爭。
DAO的根源來自于Jentzsch從互聯(lián)網(wǎng)眾籌中借來的想法。32歲的Jentzsch是一位理論物理學(xué)家,Jentzsch的公司Slock.it通過ICO融資。但是為什么每個新創(chuàng)業(yè)公司都要為自己的ICO提供一個計劃?Jentzsch想為什么不提供一個點(diǎn)巨大的基金來投資他們?
他于2015年11月在倫敦的DevCon 1上向世界介紹了自己的想法?!皠?chuàng)建公司的方式是什么?”Jentzsch問他的觀眾。 “當(dāng)然,它必須是一個DAO”,它將像這樣工作:以太網(wǎng),像比特幣這樣的數(shù)字貨幣將被用于資助和開發(fā)應(yīng)用程序,這些東西就像使用類似于iTunes或iTunes的音樂應(yīng)用程序。投資者將用以太幣購買DAO代幣; 代幣將允許他們投票支持他們喜歡的項目。 如果他們支持的項目賺錢,則代幣持有人分享利潤。
他用六個月的時間創(chuàng)造了DAO,Jentzsch認(rèn)為The DAO能夠融資500萬美元。從4月30日到5月28日,DAO大肆融資1.5億美元。
但是最初為什么會有人投資DAO呢? 這與數(shù)字自由主義的壓力有關(guān),這是以太坊社區(qū)的核心,就像一系列導(dǎo)致比特幣誕生的信念:認(rèn)為比特幣是第一個全球性的貨幣,它的使用不能被政府或公司阻止; 除此之外,比特幣幾乎是不可能被破解的。 以太坊是另外一個層面,這是一個無審查的電腦,這是前所未有的,也有一點(diǎn)可怕。
習(xí)慣于夜晚與北美的同事保持聯(lián)系,Jentzsch經(jīng)常在河邊慢跑或劃船鍛煉。 然而在那個星期五上午,他有更緊迫的任務(wù),把從地板上起來,處理這次攻擊事件。 “我進(jìn)入了緊急模式:不要試圖拯救DAO,”他說。 “不,已經(jīng)結(jié)束了。
幾個小時后,Alex Van de Sande在里約熱內(nèi)的公寓中醒來。 這個娃娃臉的以太幣開發(fā)者出生在巴西的一個小漁村,在三歲隨他的父母搬到里約。他在Reddit和Twitter的以網(wǎng)名“avsa”著稱。他的Skype接收到了無數(shù)的消息,隨后他轉(zhuǎn)身對妻子說:“記得我告訴你的不可能被黑掉的以太坊”她點(diǎn)了點(diǎn)頭。“它已經(jīng)被黑了。”他告訴她。
他的第一個想法是讓把他在DAO里面的代幣取出來。 他擁有約10萬代幣,當(dāng)時價值約15,000美元。 他是Ethereum Wallet應(yīng)用程序的首席設(shè)計師,這個程序允許用戶與區(qū)塊鏈進(jìn)行交互,Van de Sande匆忙登錄,但密碼錯誤,他又試了幾次,成功登錄了,他的恐慌消退。他意識到不應(yīng)該放棄DAO,而應(yīng)該嘗試挽救它,為了做到這一點(diǎn),他需要Griff。
Griff Green曾在洛杉磯擔(dān)任按摩治療師,是世界上少數(shù)幾個擁有數(shù)字貨幣碩士學(xué)位的人之一。 他是第一個將攻擊事件告訴Slock.it的聯(lián)合創(chuàng)始人、Jentzsch的兄弟Simon的人。
當(dāng)時,Green已經(jīng)為Slock.it工作了大約六個月,當(dāng)天早上他在Jentzsch媽媽家里醒來, Jentzsch提供了一件備用的臥室給Green。通過他廣泛的聯(lián)系人,Green開始盡可能確認(rèn)與DAO交互的人的身份,試圖從中區(qū)分?jǐn)橙撕团笥选?/p>
當(dāng)天早上在Mittweida的Jentzsch的媽媽家里醒來。 Jentzsch是九個孩子之一,所以他的母親有一個備用的臥室,她可以把綠色放在幾天。 使用他廣泛的聯(lián)系人,綠色開始確定盡可能多的人,他們可以與DAO進(jìn)行交互,以便讓陌生人發(fā)送圖片或掃描其ID,試圖從敵人中分揀朋友。
然后發(fā)生了一件奇怪的事情:攻擊停止了。在攻擊開始的六個小時內(nèi),攻擊者已經(jīng)設(shè)法竊取了DAO的30%的1200萬個以太幣,當(dāng)時價值約5500萬美元。Van de Sande說:“我們甚至不明白為什么這個人停了下來。
Green迅速去保護(hù)攻擊者沒有偷走的剩下的70%。 Green和其他兩三個恩,這就是被稱為被稱為俠盜羅賓漢的白帽軍團(tuán)。他們設(shè)計出一個大膽的優(yōu)秀計劃來拯救的DAO。 為了挽救DAO,他們必須竊取剩余的以太幣,然后將其交給合法所有者。
在他們進(jìn)行這一計劃的時候,內(nèi)部出現(xiàn)了質(zhì)疑的聲音,沒有人知道他們所做的是否合法。他們的行為會不會和他們想要阻止的盜竊行為一樣糟糕?必須有人這么做,“必須有人按下按鈕。”
在攻擊發(fā)生的前一天晚上,以太幣的價格達(dá)到了歷史最高的20美元。攻擊事件后以太幣下跌了15美元,近5億美元的市值蒸發(fā)。按照這個價格,DAO仍然持有1.25億美元。而白帽軍團(tuán)則擔(dān)心攻擊再一次襲來,他們可能是唯一的防線。
在這一點(diǎn)上,DAO就像電影異性中啟動了自毀程序的宇宙飛船。為了求生,必須使用逃生艙。
DAO的投資人不得不啟動類似的程序來部署逃生艙,以將它們的以太幣移出DAO。這個逃生艙的位置就在代碼bug的地方。所以羅賓漢白帽團(tuán)隊必須利用這個漏洞,并且他們只有一小段時間、只有幾個逃生艙可以利用。
在發(fā)起攻擊前幾分鐘,Van de Sande開玩笑地說:“我們?nèi)屻y行!”沒有人笑, “不是每個人都很喜歡幽默,”他說。
在他的公寓里,Van de Sande準(zhǔn)備按下筆記本電腦上的鈕。 然后突然間,他斷網(wǎng)了,路由器宕機(jī)?!笆裁辞闆r?”他說。他還有不到30分鐘的時間來執(zhí)行羅賓漢白帽團(tuán)隊的黑客攻擊。他瘋狂呼叫巴西互聯(lián)網(wǎng)服務(wù)提供商N(yùn)ET,得到的回應(yīng)是一個機(jī)器人的聲音“附近發(fā)生了一個網(wǎng)絡(luò)問題?!彼S刺說“我們試圖從一個機(jī)器竊取幾千萬美元,但遭到了另一個機(jī)器的伏擊?!?/p>
“然后我們錯過了這次機(jī)會,”他說。 窗戶期關(guān)閉。 他即將拯救DAO的喜悅被網(wǎng)絡(luò)運(yùn)營商打破。隨后他出門遛狗,然后爬到床上,感到挫敗。
第二天早上,Van de Sande重新召集羅賓漢白帽團(tuán)隊來潛入另一個逃生艙。但每個人都很忙,不能聚在一起。第二天早上是星期六,Van de Sande試圖重新召集羅賓漢集團(tuán)來滲透另一個逃生莢。 但是人們很忙,不能聚在一起。 “我們像史上最糟糕的黑客,”Van de Sande說。 “我們同時受到互聯(lián)網(wǎng)和家庭的不利影響?!?/p>
沒有人真的知道,但有一些線索。 攻擊者使用的一個地址是0xF35e2cC8E6523d683eD44870f5B7cC785051a77D。和區(qū)塊鏈的其他內(nèi)容一樣,用戶的地址是一個匿名的字符串,但每個地址都在區(qū)塊鏈上留下了公開的記錄。
為了完成他的攻擊,攻擊者需要創(chuàng)建一個與DAO進(jìn)行交互的合約,以緩慢吸干DAO當(dāng)中的以太幣。 Green說,他在6月15日這樣做了,并在兩天后的凌晨進(jìn)行了部署。 一旦激活,攻擊合約開始通過攻擊者的帳戶每三到四分鐘發(fā)送約4,000美元的以太幣,以吸干DAO。
但是最初資金的原始來源是哪里呢?為了與以太坊區(qū)塊鏈交互,每一個攻擊合約都需要兩個地址提供資金,但是進(jìn)一步追溯很困難,這是因為第二個地址使用了一個名為ShapeShift的交易所,在6月14日向其賬戶發(fā)送52個以太幣,ShapeShift不會收集有關(guān)其用戶的任何信息,并在10秒內(nèi)將其轉(zhuǎn)換為另一個虛擬貨幣(如比特幣) 。 雖然使用ShapeShift有正當(dāng)理由,但它也是一種很好的方法來洗白數(shù)字資產(chǎn)記錄的途徑
在攻擊合約停止工作后,這個小偷需要再次部署,但這個黑客終止了。 (Green說,攻擊停止的一個可能原因是黑客的代幣被破壞,這意味著他沒有辦法利用這個bug)
我們只能了解這個區(qū)塊鏈記錄有限的信息,數(shù)字資產(chǎn)交易所了解的更多,據(jù)一家交易所的內(nèi)部調(diào)查得出結(jié)論DAO攻擊者可能是位于瑞士的一個團(tuán)體,而不是一個孤狼。根據(jù)一家匿名公司的CEO,即使是匿名的區(qū)塊鏈,交易所也能夠分析客戶的交易活動的位置。這位CEO表示,交易所與聯(lián)邦調(diào)查局波士頓辦事處分享了分析,但從去年10月以來沒有進(jìn)一步聯(lián)系。
Gün表示他也和FBI波士頓和紐約分局的探員和紐約州總檢察長辦公室進(jìn)行了交談。但協(xié)助這種調(diào)查是非常困難的,因為攻擊者不會留下蛛絲馬跡。
“我很驚訝,為什么無法追溯到到底是誰干的?Slock.it的第三位聯(lián)合創(chuàng)始人Stephan Tual問道?!拔抑两袢匀徊幻靼?,那個人的所作所為是極其不道德的?!?/p>
在星期四,攻擊發(fā)生后的四天后,黑客回來了,以某種方式恢復(fù)了搶劫。羅賓漢白帽集團(tuán)擔(dān)心這一刻會來臨,并且做好了準(zhǔn)備。 星期天早上他們終于設(shè)法在網(wǎng)上召集并成功地滲透了一個逃生艙,但已經(jīng)停止了反擊。現(xiàn)在他們別無選擇。
“老實說,我很激動,”Green說。 “這是我遇到的最瘋狂的事情。”
是否合法仍然是一個沒有答案。
編程專家Vessenes說:。 “他們在做什么幾乎肯定是非法的,但他們聲稱這是為了更多人的利益?!爆F(xiàn)在,Van de Sande的工作讓以太坊社區(qū)知道羅賓漢集團(tuán)的反擊是良性的。 在Twitter上,他寫道:“DAO被安全地排干,不要驚慌?!?/p>
Van de Sande說:“我們逃離了母艦,但是現(xiàn)在我們和異形一起逃離太空,”Van de Sande說。 這是一個大問題。 由于Jentzsch寫了他的代碼,羅賓漢集團(tuán)將不得不等待幾個星期才能確保他們恢復(fù)的以太幣。 然而,如果攻擊者與該組織在一起逃跑,他可以跟隨他們 - 所謂的纏擾攻擊。 如果黑客跟蹤羅賓漢集團(tuán),以太幣根本不是真的安全。
Van de Sande說:“只有當(dāng)其中一方停止?fàn)幎返臅r候才會結(jié)束。 這實質(zhì)上是DAO戰(zhàn)爭的核心,這是不得不進(jìn)行的無休止的戰(zhàn)斗,以保持恢復(fù)的以太幣安全。 但愿能有一種方法可以一勞永逸地扭轉(zhuǎn)盜竊行為。
接下來發(fā)生的事區(qū)塊鏈誕生至今最最奇怪和最有爭議的事情之一。
由于羅賓漢白帽團(tuán)隊的挽救措施在私下進(jìn)行,產(chǎn)生的激烈的討論。白帽黑客并不是唯一想要保存DAO的人。 Jentzsch幾乎全天候工作,向DAO投資者發(fā)出了數(shù)百個要求,他們應(yīng)該做什么。 23歲的Vitalik Buterin,他在20歲之前創(chuàng)造了以太坊區(qū)塊鏈,成為社區(qū)的焦點(diǎn)。
簡而言之,他們可以做的是更改以太坊區(qū)塊鏈來修正DAO,但只有當(dāng)大部分運(yùn)行這一網(wǎng)絡(luò)的計算機(jī)同意,軟件才能進(jìn)行更新,擺脫掉漏洞,就好像攻擊從來沒有發(fā)生過。
這一過程被稱為硬叉(hard fork)。這一決定引發(fā)了強(qiáng)烈的反應(yīng),一年后仍然存在爭議,無論是在以太坊社區(qū)還是比特幣用戶都堅持區(qū)塊鏈的歷史不用改被篡改,有些比特幣用戶看到硬叉在某些方面違反了最基本的價值觀。
有些比特幣用戶看到硬叉在某些方面違反了最基本的價值觀。在以太坊社區(qū)內(nèi),世界各地的電腦節(jié)點(diǎn)都接受了這個觀點(diǎn)。 包含在1,920,000區(qū)塊中,對DAO的修復(fù)很簡單,只做了一件事 - 如果你投資了DAO,現(xiàn)在可以取出來。
與DAO有關(guān)的一切都是參數(shù):規(guī)則,if-then語句和更多的規(guī)則,在程序設(shè)置松散之前都已經(jīng)完成。 其中一個參數(shù)表明,任何想要將其脫離DAO的人都不得不等待一段時間 ,最初的請求后27天,然后再等7天。
這個由Jentzsch寫的故障安全也適用于攻擊者。 所以即使有人有效地?fù)尳巽y行,他也不得不等待34天才過街,讓他逃走。 在等待的時候,錢又被偷回去了。
回到康奈爾大學(xué)校園,Gün帶著香檳參加他正在教學(xué)的課程,他在瓶子上貼上了標(biāo)簽:“恭喜你成功Fork”
然后發(fā)生意外事件。 被攻擊的最初的以太坊區(qū)塊鏈繼續(xù)增長。硬叉就像是一根樹的分支,在主莖的末端以不同的方向發(fā)芽,該一段的樹枝應(yīng)該在硬叉之后枯萎,但是隨著一小群用戶繼續(xù)處理該版本的區(qū)塊鏈交易,它繼續(xù)保持增長,而不是死亡,
價值近5300萬美元的以太幣被轉(zhuǎn)移到綽號為“Dark DAO”的合約對象當(dāng)中。這起攻擊事件的機(jī)制,已引起了廣泛討論。此后, 白帽黑客利用同樣的漏洞,將the DAO剩余的資金轉(zhuǎn)移到“白帽DAO”羅賓漢白帽團(tuán)隊持有大約840萬美元,因為在這個平行的宇宙中,他們?nèi)匀豢刂浦呀?jīng)恢復(fù)的DAO資金的70%。
羅賓漢白帽團(tuán)隊不敢相信。 Van de Sande說:“我們盡全力避免這種情況,但是現(xiàn)在我們被拖回到這場戰(zhàn)斗中。
現(xiàn)在的比特幣支持者可以通過購買經(jīng)典的以太坊來支持他們的昔年,這也是比特幣圈子重量級人物創(chuàng)業(yè)家Barry Silbert所作的?!坝涀?,原來的區(qū)塊鏈?zhǔn)墙?jīng)典的以太坊”。他的公司最近發(fā)布了一篇投資論文,概述了經(jīng)典以太坊的優(yōu)點(diǎn)。一節(jié)標(biāo)題總結(jié)了理論基礎(chǔ)“DAO和死亡原則”。
瑞士數(shù)字貨幣經(jīng)紀(jì)商Bity.com的聯(lián)合創(chuàng)始人Alexis Roussel仍然驚奇于硬叉和區(qū)塊鏈的狂野世界他說:“這是傳統(tǒng)金融業(yè)不會發(fā)生的事情。” “如果蘋果公司發(fā)生了什么事,你不會突然出現(xiàn)蘋果的克隆版本?!?/p>
距DAO攻擊發(fā)生已經(jīng)一年時間,有足夠的時間來評估究竟出了什么問題。
Van de Sande德渴望繼續(xù)前進(jìn)。 “這真的只是一次插曲,”他說。 “我們準(zhǔn)備翻過這一頁,把DAO的故事留在我們身后?!?/p>
Green在火人節(jié)上組織了一次以太坊會議,他仍然保持著他的幽默感?!傲_賓漢白帽團(tuán)隊只是一個表演”,他笑著說。“我希望電影能拍得比實際更好?!?/p>
格林呢,在這個夏天在內(nèi)華達(dá)州沙漠的燃燒人節(jié)上組織了一個靈丹妙藥,他們一直保持幽默感。 “羅賓漢集團(tuán)只是一個節(jié)目,”他笑著說。 “我希望電影能拍得比實際更好。
對于bug本身,很明顯許多聰明人在Gün之前看過代碼,但錯過了一個重大的缺陷。代碼中的命令順序允許DAO代幣持有人從投資中獲得任何利潤。
如果代碼的順序正確,攻擊本來是不可能的,Jentzsch說,而實際上這成為黑客歷史上最大的后門之一。
如果第666行的首字母”T“是一個小寫的”t“,那也將阻止黑客入侵。
Jentzsch有很多遺憾,但堅持認(rèn)為沒有人知道666-667行代碼中的具體問題(其他觀察家指出其他方面的缺陷,只是不在這里)。 “根本沒有什么區(qū)別,”他說。 “如果你不知道在安全審查中要尋找什么,你根本找不到?!?/p>
Gün還是放過了這個bug,Green的情緒和Gün相關(guān)“我其實真的很生氣”,Green說,“他開始吹噓他是如何發(fā)現(xiàn)這個錯誤的?!彼a(bǔ)充說,“不要告訴任何人,他是非常不負(fù)責(zé)任的”。然而Green仍然非常尊重Gün,并表示他們已經(jīng)做出了修改。
Gün說“我認(rèn)為這是一個潛在的問題?!钡撬稍冞^他的學(xué)生Daian。Daian說過這個漏洞是“不可利用的”,Gün說如果他確定了危險,“那我會告訴人們的?!?/p>
對于攻擊者(無論他是誰)和愚蠢的經(jīng)典的以太坊(以太坊原來的鏈),Gün評價說說:“非常好,他應(yīng)該套現(xiàn)”。硬叉證明不僅僅是DAO需要修復(fù),而是以太坊區(qū)塊鏈本身。他說:“這個錯誤也在系統(tǒng)方面?!?/p>
對智能合約、對以太坊區(qū)塊鏈的擔(dān)憂已經(jīng)消失,至少根據(jù)以太幣的價格,市場的反應(yīng)是這樣的。
攻擊發(fā)生后的約9個月內(nèi),以太幣從10美元漲至12美元,然后在3月份開始飛漲,截至6月12日價格為341.19美元。
原來的Ethereum也上漲了,現(xiàn)在交易價為18.71美元。換句話說,兩種版本的以太網(wǎng)都是可行的。展望未來,你寧愿選擇相信誰?硬分叉之后,攻擊者最終已經(jīng)離開經(jīng)典以太坊,帶走了大約6740萬美元。
Source:Bloomberg,雷鋒網(wǎng)編譯
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。