天天看點

智能合約不夠安全?微軟建專項小組從程式設計語言入手根治

智能合約不夠安全?微軟建專項小組從程式設計語言入手根治

據外媒報道,微軟對外公開其已經成立了一個專門負責提高智能合約安全性的工作小組“kinakuta”,旨在讓行業内共享智能合約資訊和協定更加簡單。

所謂智能合約,是指基于區塊鍊自動執行指令的代碼的合約形式。但由于the dao等安全事件暴露了該技術還處于早期階段的現狀,不少對區塊鍊抱有希望的人們更多的意識到,如果使用不當時是相當危險的。

不過,微軟商業發展和戰略主管marley gray表示,開放共享的資訊和革新的工具或将幫助開發者在未來避免類似錯誤。gray稱,他已經和紐約初創公司consensys的全球業務發展負責人andrew keys達成了合作,并準備邀請以太坊基金、r3cev和初創公司blockapps等35家公司進行合作。

gray稱:“我們想要探索能否有可能在最開始編寫智能合約的時候就使用一種安全的語言來書寫。”

據悉,微軟将于本月不久後推出與哈佛大學研究員共同完成的白皮書,并正式釋出成立智能合約小組的公告。這本白皮書提出了一種“形式驗證”,或者說證明和反證明一個軟體程式的正确性,這裡指的就是智能合約。

智能合約不夠安全?微軟建專項小組從程式設計語言入手根治

此外,這個白皮書提出了用三種方法驗證智能合約的兩個工具:

第一種是solidity*。将一部分solidity代碼翻譯為f*——一種能夠驗證程式是否會正确執行設計的程式設計語言。然後還有evm*,它會把智能合約的evm位元組碼陳述反編譯為solidity源代碼。 第二個工具十分必要,因為為112802個合約中隻有396個可以形成solidity版本的etherscan(區塊鍊浏覽器)代碼,是以未來的最佳選擇是使用位元組碼。

盡管solidity*目前缺少複雜的solidity功能支援,比如loops,但團隊還是成功地從396份智能合約當中破譯出46份。通過solidity*運作這46份合約之後,他們發現當中隻有一小部分是“有效的”。

值得注意的是,雖然許多人對于智能合約安全工具的迅猛發展感到興奮,白皮書總結道:“很明顯,經過對已釋出合約的大量分析之後,很有可能會發掘出普遍存在的漏洞;我們把這些分析留給未來的工作。”但也有一位行業上司認為,近期而言,開發者們将會繼續犯錯。

本文作者:溫曉桦

繼續閱讀