以太幣驚天大劫案
2016年6月13日(農(nóng)歷2016年5月9日),以太幣驚天大劫案。以太幣驚天大劫案2016年6月13日,某黑客盜取了價值5500萬美元的以太幣,本文嘗試將這段歷史重現(xiàn)于公眾面前。一、第666行代碼夏天感冒最痛苦不過,艾明·古恩·薩若(EminGünSirer)從他1歲的兒子那里傳染上了感冒病毒。于是,2016年6月13日,這位康納爾大學(xué)計算機科學(xué)副教授,發(fā)現(xiàn)自己不得不在病床上一邊流眼淚擦鼻涕,一邊抱著筆記本電腦跟代碼漏洞死磕——他懷疑某行代碼中的缺陷有可能導(dǎo)致2.5億美元有被盜風(fēng)險。這不是什么無足輕重的代碼,這是區(qū)塊鏈相關(guān)軟件設(shè)計最新突破里的核心代碼,而區(qū)塊鏈是創(chuàng)新組合了去中心化計算和密碼學(xué),在2009年締造了虛擬貨幣比特幣的核心技術(shù)。自那以后,區(qū)塊鏈改變眾多行業(yè)生態(tài)系統(tǒng)的前景,吸引了企業(yè)董事會和政府之類頭頭腦腦的關(guān)注和想象延伸。然而,這位土耳其出生的教授,在那個周一帶病探索的東西,卻是比特幣的下一個飛躍——以太坊(ethereum)區(qū)塊鏈。以太坊區(qū)塊鏈不是將比特幣在用戶間流轉(zhuǎn),而是托管被稱為“智慧合約”的全功能計算機程序——基本上靠代碼而非法庭執(zhí)行的協(xié)議。這意味著可以自動化債券付款生命周期,或者醫(yī)藥公司可以驗證藥品來源。不過,智慧合約還很新,基本未經(jīng)檢驗,且與所有軟件一樣,可靠性由其編碼決定——而古恩非常確定他在代碼中發(fā)現(xiàn)了大問題。晚上7:30的時候,在一封發(fā)給他門下研究生的郵件中,古恩指出,他正在審查的智慧合約代碼第666行可能有問題。細節(jié)決定成敗古恩怕該漏洞可使黑客無限制提款——即使攻擊者賬戶中僅有10美元(攻擊者的身份必需為虛擬貨幣投資人),也可以無限制提出上千萬美元。數(shù)量驚人的錢存在于一個名為“分權(quán)自治組織(DAO)”的程序中。該程序在近1年前編寫建立,由智慧合約監(jiān)管,用于民主化以太坊項目資金支持。數(shù)千名植根于計算機科學(xué)前沿的年輕夢想家、野心家和開發(fā)者,都投資了DAO。這都是真金白銀,2.5億美元,他們的錢,用來打造更美好的世界的錢,這每一分錢都籠罩了巨大的風(fēng)險。古恩,這位留著黑色短發(fā),看上去比實際年齡年輕10歲的45歲教授,一直在跟蹤并公布DAO設(shè)計中的缺陷。幾周前,5月27號,與兩名同事一起,他敦促投資人在安全漏洞未修復(fù)前別再往DAO里投錢。然而,已經(jīng)太遲了,該程序在第二天繼續(xù)在線。像DAO這樣的智慧合約,一旦在以太坊區(qū)塊鏈上發(fā)布,就完全依賴其代碼了。這意味著,DAO代碼無法修復(fù)。其他區(qū)塊鏈專家,包括比特幣基金會共同創(chuàng)始人皮特·維賽尼斯,也指出了智慧合約中的安全缺陷,但古恩似乎是首位定位該吞錢漏洞的專家。問題在于,該代碼太新了,沒人知道會發(fā)生什么,或者說,沒人知道里面有沒有問題。古恩也有自己的疑慮。這甚至不是他的工作。他只是出于興趣而已。戴安也不覺得他們發(fā)現(xiàn)了什么。郵件中,他說:“我們或許進退兩難了?!敝蟛痪茫诠哦髦赋?66行的錯誤時,戴安回復(fù)說:“我不這么認為。”古恩說:“我們并不是每次發(fā)現(xiàn)個可疑漏洞就會敲響警鐘?!毕喾?,他躺床上去緩解感冒了——這才是他認知中真正需要修復(fù)的漏洞。4天后,克里斯托弗·延奇躺在自家地板上,深呼吸,極力保持平靜。二、價值2.5億美元的虛擬貨幣那是周五早上,西方世界的軟件開發(fā)者們都被延奇創(chuàng)建的DAO遭到攻擊的新聞驚醒了。古恩沒說錯,真的有漏洞,能把錢吸走的漏洞。延奇一頭黑發(fā)滿臉胡子,與家人住在距捷克邊境不遠的德國米特韋達鄉(xiāng)下。延奇一家的早晨總是一片忙亂,因為他和他妻子得喂飽從2歲到9歲不等的5個小孩,并送他們上學(xué)。然而今天,在接到他哥哥的電話,聽說DAO被黑的消息后,延奇不得不放下他的家庭責(zé)任。他對妻子說:“你照看孩子,我有急事。”這是史上最大數(shù)字劫案之一的故事?;蛟S你聽說過去年黑客入侵Swift銀行間消息系統(tǒng),從孟加拉央行盜取8100萬美元的事,但DAO攻擊卻是完全不同的類型。它就發(fā)生在眾人眼前,想看就能看見,而且阻止不了。就像5月份WannaCry勒索軟件暴露出計算機操作系統(tǒng)漏洞一樣,DAO黑客事件也暴露出智慧合約安全中的早期弱點,讓社區(qū)中的很多人震驚于他們竟然沒能及時發(fā)現(xiàn)這些漏洞。事件余波最終會導(dǎo)致黑白帽子大戰(zhàn)——在奇怪又充滿未來感的DAO戰(zhàn)爭中。DAO的創(chuàng)意,源于延奇從另一個互聯(lián)網(wǎng)驅(qū)動的現(xiàn)象中借用的概念:眾籌。32歲的延奇是個理論物理學(xué)家,與幾個同事一起,于2015年創(chuàng)立了Slock.it。在他們考慮為公司籌資的時候,延奇采用了很多人都干過的做法——出售數(shù)字貨幣,也就是代幣。但是,為什么每家新初創(chuàng)公司都得研發(fā)自己的初始貨幣產(chǎn)品呢?延奇想,為什么不能是由一個大基金來監(jiān)管所有的數(shù)字貨幣?2015年11月,在倫敦舉行的DevCon1開發(fā)者大會上,延奇將自己的想法告訴了全世界。“創(chuàng)建一家公司的區(qū)塊鏈方法是什么?”延奇問他的聽眾,“顯然,必須是DAO。”它的運作方式是這樣的:以太幣,作為比特幣一類的虛擬貨幣,被用于在以太坊區(qū)塊鏈上注資并開發(fā)應(yīng)用。這類似于創(chuàng)建像iTunes一樣的音樂App,或是按Uber路線創(chuàng)建拼車服務(wù)。投資人用以太幣購買DAO代幣;代幣可用于投票支持自己喜歡的項目。只要支持的App賺到錢,代幣持有者就能分享利潤。延奇花了6個月時間創(chuàng)建DAO,在此期間,他覺得這東西可以籌集到500萬美元。從4月30日到5月28日,DAO眾籌拉來了1.5億美元。這是在以太幣交易價值略低于12美元的時候。隨著以太幣價值在隨后幾周猛漲——到攻擊前日已攀升至20.75美元,DAO的價值也水漲船高,來到了驚人的2.5億美元。延奇從未想過自己創(chuàng)建的這個東西竟是帶著致命原罪來到世間的,如此巨大的價值無疑也是個巨大的標(biāo)靶?!拔覀兿M@東西能成為去中心化共享經(jīng)濟的核心?!毖悠嫒缃窈苁呛蠡诋?dāng)初沒給籌資設(shè)個上限:“相對這么大個實驗來說,一切都還太早了?!惫舭l(fā)生后的幾周,延奇和以太坊社區(qū)的其他人,都將忙于設(shè)法應(yīng)付自身危機——縮小版的2008銀行和政府救市?!八罅?,不能倒?!薄斑@是我遭遇過最瘋狂的事。這是幾乎任何人能遭遇到的最瘋狂的事?!钡牵瑸槭裁磿腥送顿YDAO呢?這與以太坊社區(qū)固有的數(shù)字自由主義有關(guān)——類似導(dǎo)致了比特幣誕生的那套信仰??梢詫⒈忍貛趴醋鍪讉€不能被政府或公司阻止使用的全球貨幣;最重要的是,比特幣幾乎不可能被黑。以太坊,則又是另一個層面的事了。這就是一臺不可審查的全球計算機。前所未見和超級神奇之外,以太坊還有點可怕。誕生之后,DAO便點燃了極度渴求它的社區(qū)的投資熱情。習(xí)慣了工作到深夜以與在北美的同事保持聯(lián)系,延奇通過慢跑或在附近的喬保河劃皮劃艇,來釋放壓力恢復(fù)精神。但在那個周五早晨,他有更緊迫的任務(wù),必須把自己從地板上拖起來,去處理攻擊?!拔疫M入了緊急狀態(tài):別試圖救回DAO了。一切都結(jié)束了?!比欢h未結(jié)束。三、史上最大數(shù)字貨幣劫案數(shù)小時后,地球的另一邊,位于里約熱內(nèi)盧科帕卡巴納海灘附近的公寓里,亞歷克斯·范·德·桑德依然醒著。這位娃娃臉的以太坊開發(fā)者,出生于巴西巴伊亞地區(qū)圣克魯斯-卡布拉利亞的一個小漁村,在3歲的時候隨父母搬到了里約。他在Reddit和推特的網(wǎng)名叫“avsa”。在電話聯(lián)系一通,了解為什么Skype上都炸了之后,他對妻子說:“記得我告訴過你的那一大筆不會被黑的錢嗎?”她點了點頭?!艾F(xiàn)在那筆錢被黑了?!彼牡谝环磻?yīng)是取出自己的DAO代幣。他持有大約10萬個,當(dāng)時價值1.5萬美元。他是以太坊錢包App的主要設(shè)計者,該錢包App可讓用戶與區(qū)塊鏈互動。范·德·桑德火速登錄,然而他的口令不起作用。只是出了點小故障,而當(dāng)他努力解決時,他的恐慌平息了下來。他意識到,自己不應(yīng)該放棄DAO,而應(yīng)該嘗試拯救它。而要做到這一點,他需要格里夫。格里夫·格林,身兼數(shù)職的洛杉磯按摩師和西雅圖社區(qū)組織者,是全球少數(shù)幾個擁有數(shù)字貨幣碩士學(xué)位的人。當(dāng)然,他的學(xué)位是從尼科西亞大學(xué)在線獲取的。這個自我描述為“夢想家”的32歲男人,是最接近以太坊市市長這類人物的人。格林認識以太坊社區(qū)的每個人;事實上,他就是第一個將攻擊消息傳給西蒙的人。西蒙是延奇的哥哥,同時也是Slock.it的共同創(chuàng)始人。當(dāng)時格林已經(jīng)在Slock.it做了6個月了,那天早上他是在延奇媽媽位于米特韋達的房子里醒來的。延奇有8個兄弟姐妹,所以他媽媽有空余的臥室供格林暫住。利用他廣闊的人脈,格林開始盡可能地確認都有誰在操作DAO,甚至要求陌生人發(fā)送照片或掃描他們的身份證——試圖鑒別出內(nèi)部隱藏的敵人。然后,奇怪的事情發(fā)生了:攻擊停止了。攻擊開始后6小時里,盜賊成功竊得DAO120萬以太幣中的30%——當(dāng)時價值5500萬美元?!拔覀兩踔敛幻靼诪槭裁茨侨送J至?。”如今,格林忙于保護尚未被攻擊者偷走的剩下70%。四、合法的“搶銀行”?在德國,范·德·桑德一與格林取得聯(lián)系,便連同其他兩三個人,構(gòu)建了后來被稱為羅賓漢小組的基礎(chǔ)——大膽反搶DAO剩余資金的白帽黑客集合。為拯救DAO,他們不得不盜取剩余的以太幣,然后歸還給其合法擁有者。然而,在周五的一片硝煙狼藉中,團隊內(nèi)部冒出了些微疑慮。“黑掉什么東西到底意味著什么?”范·德·桑德問道。沒人知道他們將要做的合不合法。而且,他們的黑客行動難道不是跟他們試圖阻止的盜竊活動一模一樣嗎?然后,很現(xiàn)實的問題。“誰拍板動手?”這么做將開啟他們的反擊,驚動社區(qū)?!氨仨氂腥碎_第一槍。”攻擊前夜的以太幣價格,升到了歷史新高的20美元多一點。被黑的消息一出,周五晚間即暴跌至15美元,蒸發(fā)掉近5億美元市值。在那個價格點上,DAO依然持有1.25億美元價值,羅賓漢小組擔(dān)心攻擊會卷土重來。如果攻擊重現(xiàn),他們就是第一道防線,因此,范·德·桑德同時使用他的DAO代幣發(fā)動反擊,成為該小組的公眾形象。這時候,不妨將DAO看做《異形》中雷普麗啟動自毀程序之后的那艘宇宙飛船。想逃脫,她就得使用逃生艙。DAO投資人必須啟動類似的程序,來部署那可將以太幣救出DAO的逃生艙。支配逃生艙動作的代碼,就是漏洞存在的地方。所以,為盜出剩余DAO資金,羅賓漢小組得進入艙內(nèi)利用該漏洞——而由于延奇編寫DAO的方式,他們只有極短的時間窗口和少量幾個可供挑選的逃生艙。發(fā)動攻擊前幾分鐘,范·德·桑德在小組Skype聊天中開玩笑說:“去搶銀行咯!”沒人笑。“不是每個人都能理解其中的笑點?!痹诳婆量ò图{的公寓里,范·德·桑德已經(jīng)準備好按下筆記本上發(fā)動攻擊的按鍵了。但突然之間,他連不上網(wǎng)了。他的路由器宕機了。“我簡直想罵娘!”他說。他只剩30分鐘來執(zhí)行羅賓漢黑客行動。他瘋狂撥打自己的巴西互聯(lián)網(wǎng)服務(wù)提供商NET公司,但始終停留在自動語音客服階段。機器人的聲音告訴他:“我們知道您的社區(qū)發(fā)生了互聯(lián)網(wǎng)問題。”在他身上充分體現(xiàn)出現(xiàn)實的嘲諷:他正試圖從機器人那里盜取千萬美元,卻被另一個機器人給伏擊了?!叭缓笪覀兙湾e過了機會?!贝翱陉P(guān)閉了。他從正要拯救DAO的情緒高點,跌落到了他們的國際聯(lián)系被NET的故障強行切斷的崩潰邊緣。他去遛了遛狗,然后爬上床睡覺,滿身挫敗感。第二天是周六,范·德·桑德試圖再次召集羅賓漢小組,潛入另一個逃生艙。但伙計們都很忙,聚集不起來了?!拔覀兏杏X自己好像是史上最糟糕的黑客。我們被糟糕的互聯(lián)網(wǎng)服務(wù)和家庭責(zé)任給拖住了?!蔽濉⒄l是真兇?到底,誰是他們對抗的敵人?沒人真的知道,但線索還是有的。攻擊者使用的其中一個地址是0xF35e2cC8E6523d683eD44870f5B7cC785051a77D。明白了嗎?就像區(qū)塊鏈中的其他東西一樣,用戶地址也是一串匿名字符。但每個地址都在區(qū)塊鏈中留下了可供檢查的歷史。99.9%的人都看不懂,但格林能理解。為實施搶劫,攻擊者需要創(chuàng)建一個可與DAO互動的合約。他在6月15日創(chuàng)建了合約,并在2天后的凌晨時分進行了部署。一旦被激活,攻擊合約便開始經(jīng)由攻擊者的賬戶,以每3到4分鐘一筆的速度,發(fā)送價值4000美元左右的以太幣掏干DAO。但原始啟動資金是從哪里來的呢?為與以太坊區(qū)塊鏈互動,每個合約都必須由一定量的以太幣驅(qū)動。該攻擊合約受到2個地址的支持,但進一步追蹤變得有點棘手。這是因為,第二個地址使用了被稱為ShapeShift的交易,在6月14號向其賬戶發(fā)送了52以太幣。ShapeShift不收集任何用戶信息,并能在10秒鐘之內(nèi)將一種虛擬貨幣,比如比特幣,轉(zhuǎn)換成另一種,比如以太幣。盡管有正當(dāng)理由使用ShapeShift,它依然是清洗數(shù)字資產(chǎn)以掩蓋痕跡的絕佳方法。攻擊合約停止工作后,竊賊需要重新部署。他嘗試過,卻失敗了,幾個交易過后,黑客行動邁向尾聲。(攻擊停止的一個可能原因是,黑客的代幣損壞,沒辦法再利用漏洞。)從區(qū)塊鏈公共記錄得到的信息有限,且是單方面的。數(shù)字資產(chǎn)交易所雙方都能看到。某個這樣的交易所進行的內(nèi)部調(diào)查發(fā)現(xiàn),DAO攻擊者有可能是位于瑞士的一個組織,不是獨狼。交易所地位特殊,可以分析其客戶的交易活動,因為他們清楚客戶都是誰——即便在區(qū)塊鏈中是匿名的。透露信息的交易所高管稱,分析結(jié)果已共享給了FBI波士頓分部——盡管自去年10月其便沒有了進一步聯(lián)系。古恩稱,他還與FBI波士頓辦事處、紐約辦事處,以及紐約州總檢察長辦公室聯(lián)系過?!跋氩涣艉圹E地協(xié)調(diào)發(fā)起此類攻擊是非常難的?!彼膭頕BI查看以太坊測試網(wǎng),那里是程序員們在安全環(huán)境下執(zhí)行代碼挑出毛病的地方。古恩告訴聯(lián)邦官員,攻擊者不會不經(jīng)測試就直接發(fā)起這么一個復(fù)雜的黑客行動,政府可以從中獲得攻擊者身份的線索。古恩還向他們指出了與攻擊者有關(guān)的幾個地址,比如上面提到過的,由他的研究生戴安在博客里列出的那個。(FBI拒絕發(fā)表評論。)Slock.it的第三位共同創(chuàng)始人史蒂芬·圖爾詰問道:“我真的被震驚了。為什么沒人追回并找出真兇?這事兒至今困擾著我,因為那個人所做的非常之不道德?!绷?、無休止的戰(zhàn)斗周四,初始攻擊發(fā)生4天后,黑客殺了個回馬槍。羅賓漢小組早就擔(dān)心這一刻的到來,并做好了準備。周日早晨,他們終于在線集結(jié),成功滲透了一個逃生艙,但卻叫停了反擊。如今,他們已別無選擇。該小組面臨打擊之一,是他們相互之間的距離——一個人在里約,其他人分布歐洲各地。協(xié)同行動非常重要,正如《霹靂嬌娃》中展現(xiàn)的那樣,他們各自具備不同的專長:格林是社區(qū)組織者,范·德·桑德是公眾形象,其他人編寫羅賓漢小組攻擊合約。因此,范·德·桑德需要一步步審查他們打算發(fā)動的整個黑客行動過程,因為這不是他的專業(yè)領(lǐng)域。格林說:“老實講,我挺興奮。這是我遭遇過最瘋狂的事。這是幾乎任何人遭遇過的最瘋狂的事?!毙袆邮欠窈戏?,仍舊是懸而未決的問題。編程專家維賽尼斯說:“區(qū)塊鏈上確實有黑客在戰(zhàn)斗。他們做的是基本上都是非法的,但他們宣稱是為了大多數(shù)人的利益?!比缃瘢喌椒丁さ隆ど5聛碜屔鐓^(qū)知道,羅賓漢小組的反擊開始了。他選擇了推特,在上面以大寫英文字母寫道“DAO正被安全地清空。別恐慌?!毕蛳^(qū)柯克經(jīng)典電影《銀河系漫游指南》致敬,他“別恐慌”的請求,遭遇了推特所能處理的所有怪誕和顯示的關(guān)注。一名用戶回復(fù):“沒什么比全用大寫更令人恐慌的了?!绷硪幻脩舭l(fā)推:“現(xiàn)實生活比《機器人先生》更刺激!!”而隨著羅賓漢小組攻擊的加快,他們注意到有奇怪而令人擔(dān)憂的事情發(fā)生——每個逃生艙里都有攻擊者的身影。“我們逃離了母艦,但現(xiàn)在我們跟異形一起飄蕩在太空中。”范·德·桑德說。這是個大問題。由于延奇寫代碼的方式,羅賓漢小組不得不等待數(shù)周才可以保護他們找回的以太幣。而一旦攻擊者就跟該小組一起待在逃生艙里,他可以跟著他們——所謂尾隨攻擊。如果黑客尾隨羅賓漢小組,以太幣也就不安全了。范·德·桑德說:“只有其中一方退出爭斗,游戲才會終止?!边@基本上就是DAO戰(zhàn)爭的核心,這場永不停歇的戰(zhàn)斗將不得不進行,以保證恢復(fù)出的以太幣安全。要是有一種方法能徹底扭轉(zhuǎn)這種盜竊行為就好了。接下來發(fā)生的事,是區(qū)塊鏈早期歷史中最奇怪、最具爭議的一段。七、重塑歷史康奈爾大學(xué)本部所在地,紐約伊薩卡,迎來了7月20號清涼晴朗的早晨。一周的以太坊校園訓(xùn)練營將全球各地的開發(fā)者和程序員吸引到了這座小城。氣氛高漲,但不是因為研討會即將開始,而是因為這一天是以太坊社區(qū)決定重塑歷史的日子。DAO黑客事件后的幾周里,開發(fā)者、投資人、程序員和其他社區(qū)成員,在如何巡回被盜以太幣問題上爭論不休。因為羅賓漢小組基本是私下里對戰(zhàn)攻擊者,公開爭論正愈演愈烈。白帽子黑客不是唯一試圖拯救DAO的群體。延奇幾乎是徹夜不眠地工作,處理成百上千的DAO投資人質(zhì)詢。維塔利克·巴特林,未滿20歲之時就創(chuàng)建了以太坊區(qū)塊鏈的23歲男生,因引導(dǎo)社區(qū)做出抉擇,而成為了核心任務(wù)。簡言之,他們能做的,就是修改以太坊區(qū)塊鏈以修復(fù)DAO,但只有稱作以太坊區(qū)塊鏈網(wǎng)絡(luò)的絕大多數(shù)計算機同意軟件更新才行。實現(xiàn)了這個,攻擊就像從未發(fā)生過一樣了。這就是所謂的“硬分叉”。該決定引發(fā)了強烈的反向,以致1年后仍存爭議,以太坊社區(qū)和堅持比特幣歷史永遠不應(yīng)該被篡改的比特幣用戶,都反對該決定。10月的一次采訪中,巴特林毫不后悔推動了該改變?!澳承┍忍貛庞脩魧⒂卜植嬉暈槟撤N程度上違反了他們最基本的價值觀。我個人認為,這些被推向極端的基礎(chǔ)價值觀,很傻?!敝辽?,在以太坊社區(qū)內(nèi)部,巴特林的觀點在那一天勝出,全世界的計算機節(jié)點都接受了分叉。在接受DAO修復(fù)的1,920,000區(qū)塊中,它只干了一件事——如果你曾投資其中,現(xiàn)在你可以拿回了。但是,為什么攻擊者沒有拿走他偷到的錢呢?都已經(jīng)過了1個多月了。將DAO暴露在竊賊眼前的同一段代碼,最終幫助人們找回了被盜的以太幣。對DAO所做的一切,僅僅是設(shè)置參數(shù)而已:規(guī)則、條件語句,以及在程序釋放前全部實現(xiàn)的更多規(guī)則。其中一個參數(shù)聲明:任何想要從DAO取出以太幣的用戶,都必須等待一定的時間——初始請求后先等27天,然后再等7天?!拔覀儽M了一切努力避免發(fā)生這種事,但現(xiàn)在,我們被拖回了這場戰(zhàn)爭?!毖悠婢帉懙倪@個故障保護措施,也被應(yīng)用到了攻擊者身上。所以,即便某人真搶了以太幣銀行,他也得等足34天才能卷款潛逃。在竊賊等待的期間里,那些錢是可以再被偷回來的。1個月過去之后,這名以太幣大盜連個鋼镚兒都沒剩下?;氐娇的螤柎髮W(xué)校園,以太坊訓(xùn)練營參加者們開始慶祝。第二天的課上,古恩拿來了香檳。他在酒瓶標(biāo)簽外面貼了張刀叉的圖片,說:“致我們成功的分叉!”以太幣驚天大劫案八、區(qū)塊鏈的野生世界然后,不曾預(yù)料到的事情發(fā)生了。原始以太坊區(qū)塊鏈,也就是DAO攻擊合約存在其中的那個,仍在繼續(xù)增長??梢詫⒂卜植嫦胂蟪蓮拇髽渲鞲赡┒松龅囊粋€分支,伸向另一個方向。原本的主干應(yīng)該在硬分叉后凋零的,但因為有一小部分用戶繼續(xù)用該版本的區(qū)塊鏈處理交易,這主枝竟然還在繼續(xù)生長。這就演變成了第二種形式的以太坊,很快被命名為經(jīng)典以太坊,搭配上如今具備價值的數(shù)字貨幣。即便是在科幻小說似的區(qū)塊鏈世界,這也是前所未有的大反轉(zhuǎn)。這意味著,那名DAO攻擊者被稱為DarkDAO的賬戶上,突然之間擁有了大約360萬以太坊經(jīng)典以太幣,而且還在慢慢增加價值。羅賓漢小組持有大約840萬經(jīng)典以太幣,因為在這個平行世界里,他們依然控制著70%的DAO資金。羅賓漢小組簡直不敢相信。“我們盡了一切努力避免發(fā)生這種事,但現(xiàn)在,我們被拖回了這場戰(zhàn)爭。”現(xiàn)在,認為硬分叉破壞了區(qū)塊鏈核心價值的比特幣支持者,可以通過買入經(jīng)典以太坊來支持自己的信仰了。這也正是比特幣圈子里的重量級人物,企業(yè)家巴里·希爾伯特所做的。“要知道,最初的鏈就是經(jīng)典以太坊。而分叉是以太坊?!毖孕泻弦?,希爾伯特的公司GrayscaleInvestments,最近發(fā)布了一篇投資論文,指出經(jīng)典以太坊對比以太坊的優(yōu)勢所在。某章標(biāo)題總結(jié)了其理論基礎(chǔ):“DAO與原則的死亡?!眮喠宋魉埂ち_素,瑞士數(shù)字貨幣代理商Bity.com共同創(chuàng)始人,仍對硬分叉的后遺癥和區(qū)塊鏈野生世界驚嘆不已?!斑@是傳統(tǒng)金融界絕不會發(fā)生的事。即使蘋果公司出了什么事,你也不會馬上就弄個克隆版蘋果出來。”九、漏洞代碼的細節(jié)DAO攻擊事發(fā)已1年,足以盤點到底是哪里出了錯了。范·德·桑德渴望繼續(xù)前行?!斑@真的只是個變故。我們已經(jīng)準備好放下包袱,繼續(xù)前行?!备窳衷诓邉澖衲晗奶煸趦?nèi)華達沙漠的火人節(jié)上搞一個以太坊大會。他調(diào)侃了一下當(dāng)年的DAO被黑事件,“羅賓漢小組只是一場秀。我希望電影能比真實演得更好點兒。”至于漏洞本身,明顯有很多聰明人都在古恩之前就審查過代碼了,只是都看漏了一個重大漏洞而已。代碼中的指令順序,讓DAO代幣持有者可以從自己的投資中提取任意數(shù)量的盈利。漏洞代碼行是“withdrawRewardFor(msg.sender)”,而且,令人難以置信地,在下一行加了句注釋“不錯,拿取回報吧?!边@就是第667行——不妨稱之為“野獸漏洞的鄰居”如果提款代碼行是在下面這幾行代碼之后出現(xiàn):totalSupply-=balances`msg.sender`;balances`msg.sender`=0;paidOut`msg.sender`=0;returntrue;攻擊就不可能發(fā)生了。但如果代碼是按這種正確的順序?qū)懙?,回報參?shù)也就起不了作用了。從注釋上看,這行代碼應(yīng)該是想讓投資人取出任意盈利的——他們的投資所賺到的“回報”數(shù)額之內(nèi)。然而,卻變成了黑客歷史上最大的后門。還不如在被我們比作逃生艙的DAO分割函數(shù)里就不支付回報呢。在延奇對該漏洞一無所知的時候做出的另一個決定,也顯示出了代碼的古怪無情程度。“但凡666行的大寫字母‘T’是個小寫的‘t’,黑客事件也就不會發(fā)生了?!毖悠婊诓划?dāng)初,但堅稱,沒人注意到666-667行中的特定問題(其他觀察者曾指出別的代碼行中的錯誤,不僅僅是這里)?!凹幢阌懈嗟娜藢彶檫^,情況也沒什么不同。如果你不知道安全審計應(yīng)該查看哪里,你也是不會找到漏洞的?!鄙踔琳页隽寺┒吹墓哦鳎策x擇了放過。他說:“我還是錯過了?!备窳种两駥哦黝H有情緒?!拔艺娴暮芑鸫?。他開始吹噓他是怎么找到漏洞的。但不告訴任何人他找到的東西就太不負責(zé)了。”不過,格林還是很尊敬古恩的,稱他們此后做出了補救。十、共生共存當(dāng)被請求重述去年6月他在病床上的那個晚上發(fā)生的事時,古恩說:“我當(dāng)時覺得可能有點問題。”但他咨詢了自己的研究生戴安。戴安說這漏洞不會被利用。古恩承認,但凡他確認了風(fēng)險,他都會告訴世人的。戴安在攻擊當(dāng)晚發(fā)布的博客中解釋了DAO劫案的機制,并在致謝中向古恩喊話:“古恩,我們是如此接近真相——很遺憾接近得還不夠?!敝劣诠粽?無論是他或她還是他們)和經(jīng)典以太坊,古恩稱:“很好,很不錯,他應(yīng)該套現(xiàn)。”硬分叉證明了,不僅DAO需要修復(fù),以太坊區(qū)塊鏈本身也需要?!跋到y(tǒng)層面就存在有錯誤?!钡牵瑢χ腔酆霞s和以太坊區(qū)塊鏈太過聰明的恐懼,也僅在DAO攻擊之后一段時間里甚囂塵上,現(xiàn)在已經(jīng)平息消散了。至少,從以太幣的價格來看,這是市場做出的裁決。攻擊之后,以太幣在9個月間價格穩(wěn)定在10-12美元之間。然后,3月份迎來了猛漲,到6月12日,交易價格已升至341.19美元。(DAO因此價值41億美元。)經(jīng)典以太坊也隨之增長,如今交易價格是18.71美元。換句話說,兩個版本的以太幣都存活得好好的。竊賊掌控其中一個,修正派握有另一個。展望未來,選擇在于:你信哪個?由于硬分叉,攻擊者拐走了他的經(jīng)典以太坊。這意味著,如果沒被賣掉的話,他相當(dāng)于卷走了6740萬美元。真不算少了。