0
據(jù)外媒報道,微軟對外公開其已經(jīng)成立了一個專門負(fù)責(zé)提高智能合約安全性的工作小組“Kinakuta”,旨在讓行業(yè)內(nèi)共享智能合約信息和協(xié)議更加簡單。
所謂智能合約,是指基于區(qū)塊鏈自動執(zhí)行命令的代碼的合約形式。但由于The DAO等安全事件暴露了該技術(shù)還處于早期階段的現(xiàn)狀,不少對區(qū)塊鏈抱有希望的人們更多的意識到,如果使用不當(dāng)時是相當(dāng)危險的。
不過,微軟商業(yè)發(fā)展和戰(zhàn)略主管Marley Gray表示,開放共享的信息和革新的工具或?qū)椭_發(fā)者在未來避免類似錯誤。Gray稱,他已經(jīng)和紐約初創(chuàng)公司ConsensYs的全球業(yè)務(wù)發(fā)展負(fù)責(zé)人Andrew Keys達(dá)成了合作,并準(zhǔn)備邀請以太坊基金、R3CEV和初創(chuàng)公司BlockApps等35家公司進(jìn)行合作。
Gray稱:“我們想要探索能否有可能在最開始編寫智能合約的時候就使用一種安全的語言來書寫?!?/p>
據(jù)悉,微軟將于本月不久后推出與哈佛大學(xué)研究員共同完成的白皮書,并正式發(fā)布成立智能合約小組的公告。這本白皮書提出了一種“形式驗證”,或者說證明和反證明一個軟件程序的正確性,這里指的就是智能合約。
此外,這個白皮書提出了用三種方法驗證智能合約的兩個工具:
第一種是Solidity*。將一部分Solidity代碼翻譯為F*——一種能夠驗證程序是否會正確執(zhí)行設(shè)計的編程語言。然后還有EVM*,它會把智能合約的EVM字節(jié)碼陳述反編譯為Solidity源代碼。
第二個工具十分必要,因為為112802個合約中只有396個可以形成Solidity版本的Etherscan(區(qū)塊鏈瀏覽器)代碼,因此未來的最佳選擇是使用字節(jié)碼。
盡管Solidity*目前缺少復(fù)雜的Solidity功能支持,比如loops,但團(tuán)隊還是成功地從396份智能合約當(dāng)中破譯出46份。通過Solidity*運行這46份合約之后,他們發(fā)現(xiàn)當(dāng)中只有一小部分是“有效的”。
值得注意的是,雖然許多人對于智能合約安全工具的迅猛發(fā)展感到興奮,白皮書總結(jié)道:“很明顯,經(jīng)過對已發(fā)布合約的大量分析之后,很有可能會發(fā)掘出普遍存在的漏洞;我們把這些分析留給未來的工作。”但也有一位行業(yè)領(lǐng)導(dǎo)認(rèn)為,近期而言,開發(fā)者們將會繼續(xù)犯錯。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。