日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
金融科技 正文
發(fā)私信給溫曉樺
發(fā)送

0

“我不小心刪掉了(你們的3億美元)”

本文作者: 溫曉樺 2017-11-09 10:24
導(dǎo)語:更深層的問題是為什么以太坊的智能合約總是錯誤百出?

雷鋒網(wǎng)AI金融評論按:智能合約代碼失誤造成以太坊上價值3億美元的代幣“消失”,這究竟是怎么回事?本文從技術(shù)角度進行了解析。文章作者為CyberMiles首席科學(xué)家Michael Yuan博士。雷鋒網(wǎng)獲得作者授權(quán)發(fā)布。

Github 用戶 devops199 今天在 Twitter 上說:“I accidentally killed it”。等大家反應(yīng)過來,他的“小事故”已經(jīng)“刪除”了以太坊上價值3億美元的代幣,平均每個詞造成 7500 萬美元的損失。 

“我不小心刪掉了(你們的3億美元)”

光是 Polkadot 一個項目的一個賬號就有近 9000 萬美元消失??胺Q是今天最貴的一句話!

“我不小心刪掉了(你們的3億美元)”

事后有人問 devops199,為什么捅這么大一個簍子?他卻無辜地說“我是新手,正在學(xué)習(xí)?!钡拇_,他是新手,只是在試驗剛學(xué)的智能合約語言。

“我不小心刪掉了(你們的3億美元)”

這個新手捅的大簍子告訴我們:價值300億美元的以太坊智能合約開發(fā)如同兒戲,非常不專業(yè)。

那么,這背后的技術(shù)失誤,究竟是怎么回事?

為什么錢可以“消失”?

我們都知道,數(shù)字貨幣可以高度匿名??墒悄涿请p刃劍。錢上沒寫你的名字,錢掉了你也證明不了是你的。

在數(shù)字貨幣世界中,一個“錢包”一般指一對密?。公?是錢包的“帳號”,可以隨便宣傳,別人可以往里面打錢。比如下面是我的一個以太坊錢包公?,歡迎大家隨時打錢進來!

0xD69b30FAdf81882253329Ab0149131c67602eEd1

可是,要想從帳號中拿錢出來,你必須得有帳號的私鑰。那么問題來了:

如果我忘記了帳號私鑰怎么辦?

回答是:

那么再也沒人能夠動那個錢包中的錢,那些錢從世界上“消失”了。

中本聰曾經(jīng)說過“消失的比特幣讓所有其他人的比特幣更值錢一點(因為供給少了)。把你丟失的比特幣當作對社區(qū)的捐贈吧!”。

Lost coins only make everyone else's coins worth slightly more.  Think of it as a donation to everyone. — Satoshi Nakamoto

多重簽名的智能合約

這個帳戶密鑰對個人來說挺實用??墒菍τ诠緛碚f有點難用。首先密鑰切忌亂傳,只能一個人知道。但是一個人掌握全公司數(shù)千萬美元的帳戶是一件很危險的事(且不說貪污挪用,就想想個人或者家人被綁架的風(fēng)險)。

所以有聰明人利用以太坊的“智能合約”機制開發(fā)了一個智能合約可以支持多重簽名的帳號。這個帳戶沒有自己的秘鑰。從帳戶中提錢需要智能合約同時驗證幾個人的秘鑰。真是一個聰明的解決方法!

顯然,很多融資項目都需要這樣的智能合約。所以其開發(fā)者 Parity 把它放在以太坊公鏈上,作為一個“庫函數(shù)”讓大家自由調(diào)用。所以,很多 ICO 融資項目,包括 parity 自己的幾個大項目,用的智能合約帳戶都是通過調(diào)用這個庫實現(xiàn)的。

兩個小錯誤

可是,我們回憶一下,這個智能合約一開始并不是庫函數(shù)。只是后來出于方便,追求效率,要“彎道超車”,被大家當成庫函數(shù)用了。

作為一個獨立的智能合約,它有兩個特性是萬萬不該在“庫函數(shù)”中出現(xiàn)的:

  • 它可以有一個“擁有者”,而且設(shè)置“擁有者”的操作函數(shù)沒有任何保護。

  •  “擁有者”可以刪除這個智能合約。

我們現(xiàn)在知道 devops199 歪打誤撞地把自己設(shè)成了這個“庫函數(shù)”的擁有者,然后刪除了這個庫函數(shù)。造成的結(jié)果是,所有依賴這個庫函數(shù)的智能合約都無法工作了,這些智能合約對應(yīng)的帳號也都鎖死了,其中的錢沒有人能動了。

未來的希望

可是,系統(tǒng)不都是人設(shè)計的嗎?為什么不能進去人為改一下軟件,把刪除的智能合約恢復(fù)一下?

區(qū)塊鏈的重要特點是“去中心化”與“不可逆”。如果人可以改,又沒有權(quán)威中心,那是聽誰的,怎么改呢?而且你憑什么說這是個程序的“錯誤”?也許別人程序就是這么設(shè)計的,你理解不了其中的深意而己?

智能合約的一個重要特點是“代碼既是法律”?,F(xiàn)實生活中,律師經(jīng)常鉆法律的漏洞。在區(qū)塊鏈世界,程序員鉆代碼的漏洞,不也是合理的嗎?區(qū)塊鏈世界有自己的規(guī)則與邏輯。

不過,對于在這個事件中“消失”了3億美元的項目而言,希望還是有的。在以太坊開發(fā)的計劃圖上,有一個已經(jīng)擱置了一年多,優(yōu)先級不高的小項目:回收被智能合約凍住的資金(見EIP156)。

當然這個“回收”具體怎么做沒人知道,似乎在今天之前也沒人仔細想過。要有優(yōu)秀程序員能解決這個問題,相信1000萬美元的獎金不是夢。只是千萬不要又引入一個更壞的 bug。

我們學(xué)到了什么?

這一次出問題的 Parity 是以太坊生態(tài)中最有能力的軟件開發(fā)公司之一。它不但開發(fā)了不少以太坊核心軟件,而且做了不少銀行的應(yīng)用。不過,犯這種低級錯誤真是堪憂。

這個出問題的軟件是幾百人用來管理資金的開源軟件。Linus Torvalds 說過:在很多眼球的觀注下,所有的軟件錯誤都很膚淺。這里顯然沒有發(fā)生。

不過更深層的問題是為什么以太坊的智能合約總是錯誤百出?以太坊的圖靈完備虛擬機聽上去很好,可是很難編程。有經(jīng)驗的程序員都知道,用匯編語言是寫不出安全的現(xiàn)代程序的。安全的軟件一定是基于現(xiàn)代的編程語言與框架產(chǎn)生的。而以太坊在系統(tǒng)設(shè)計上的“不專業(yè)”已經(jīng)是不爭的事實。

所以,區(qū)塊鏈要有真正企業(yè)級的應(yīng)用,我們必須在“改進智能合約”這個方向上創(chuàng)新。比如在區(qū)塊鏈上引入經(jīng)過多年實戰(zhàn)檢驗的企業(yè)級軟件框架。我個人認為,這是區(qū)塊鏈發(fā)展的主要方向之一。

封面圖片來自Sohu

=================

CyberMiles(簡稱CM)是美國知名電商平臺5miles旗下5xlab實驗室近期正式推出的智能商業(yè)合約區(qū)塊鏈。據(jù)介紹,與一般區(qū)塊鏈企業(yè)不同,CM不但可以直接承載應(yīng)用,開發(fā)社區(qū)也可根據(jù)CM進行構(gòu)造全新的區(qū)塊鏈來建立自己的公開或者私有區(qū)塊鏈。

據(jù)稱,目前CM建立了12個大類、371個小類別的商業(yè)合約定制模版,以完善對多種商業(yè)場景的支持,支持快速創(chuàng)建智能合約建立商業(yè)的智能合約市場。

相關(guān)文章:

5miles:這家電商公司,想做推動區(qū)塊鏈技術(shù)落地的標桿

雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

分享:
相關(guān)文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說