Zeppelin:用于區(qū)塊鏈應(yīng)用的開源安全智能合約架構(gòu)

責(zé)任編輯:editor004

作者: Jeevak Kasarkod

2016-10-11 11:46:20

摘自:INFOQ

拉動式支付(Pull payment)輔助模塊:使用拉動式支付(起名源于其工作方式與需要發(fā)送操作的推動式支付相反)策略可避免許多的安全問題(包括臭名昭著的“DAO被破解”事件

 

 

9月15日,Zeppelin的路線圖建議發(fā)布。Zeppelin是一種構(gòu)建安全智能合約的開源架構(gòu),遵循MIT許可。該建議的推出正是時候,從DevCon2大會上圍繞著智能合約形式驗證的報告和討論的次數(shù)上就可以證實這一點。智能合約解決方案的創(chuàng)建者Demian Brener和Manuel Aráoz是Zeppelin相關(guān)工作的先行者。Zeppelin是一個社區(qū)驅(qū)動項目,目的在于實現(xiàn)安全的、經(jīng)測試的且經(jīng)審計的智能合約代碼開發(fā)。到目前為止最大規(guī)模的智能合約應(yīng)用“DAO”,在今年早期由于在其智能合約中所存在的一個漏洞而被攻擊,造成了六千萬美元的損失。這個事件說明了社區(qū)中的許多關(guān)注是合理的,這將形式驗證問題置于了一個重要位置。鑒于以太坊是最廣為使用的智能合約開發(fā)平臺,Zeppelin項目在初期是側(cè)重于為Solidity語言構(gòu)建工具。在發(fā)布的建議中,Brener提及將為Solidity語言構(gòu)建下列的模塊:

拉動式支付(Pull payment)輔助模塊:

 

使用拉動式支付(起名源于其工作方式與需要發(fā)送操作的推動式支付相反)策略可避免許多的安全問題(包括臭名昭著的“DAO被破解”事件)。我們已經(jīng)具有了簡易的PullPaymentCapable.sol合約,但是仍需要更全面的工具、文檔和實例。 合約生命周期工具:當(dāng)前在沒有過多考慮未來將會發(fā)生什么的情況下,大部分的合約就被部署到區(qū)塊鏈中。我們需要構(gòu)建能更好地去管理合約終結(jié)策略、合約屬主轉(zhuǎn)變、合約暫停及恢復(fù)、合約升級等的工具。 容錯和自動挑錯獎勵:其中包括對漏洞的自動檢測、從不一致狀態(tài)恢復(fù)的工具、限定合約所管理資金規(guī)模的簡易工具。我們也在致力于漏洞獎勵合約,并期望去改進該合約,這樣可實現(xiàn)自動去支付可攻破我們合約固定部分的安全研究者。 可重用的基礎(chǔ)組件:對于每個新的項目,其中的一些通用模塊依然是需要從零開發(fā)重新實現(xiàn)。我們希望能為代幣發(fā)行、眾籌、表決、投注、工資單、收益共享等構(gòu)建標(biāo)準(zhǔn)的合約。 探究形式驗證理念:合約的形式驗證是一個活躍的研究領(lǐng)域。將這些研究工作成果集成到Zeppelin中,可為合約提供有意思的安全保障。形式驗證意味著對合約代碼做靜態(tài)分析,以形式上驗證合約的正確性以及存在的問題。 與oracle更好的接口:如何與離區(qū)塊鏈數(shù)據(jù)源進行交互是智能合約發(fā)展中的一個重要部分。其中一個值得去探究的有意思想法就是做反向控制。這種方式中,oracle通過通用接口方法調(diào)用合約(用于在Truth外進行通信),并按所需去實現(xiàn)oracle邏輯,其中包括了值得信賴的專家、關(guān)閉的投票、開放投票、API包裝器等。這樣并非是合約從oracle請求數(shù)據(jù),而是在數(shù)據(jù)發(fā)生了改變時由oracle去通知合約。 更好的重用代碼工具:當(dāng)前Solidity的代碼重用是基于拷貝-復(fù)制的,或是通過從其它的代碼庫中下載已有的代碼。一個成熟的生態(tài)系統(tǒng)應(yīng)具有好的代碼庫管理系統(tǒng),就像NodeJS的npm和Ruby的gems這樣。對已部署到區(qū)塊鏈中代碼重用的可能性,構(gòu)成了以太坊的一個有意思的變體。我們正規(guī)劃去構(gòu)建實現(xiàn)將合約輕易鏈接到已部署的程序庫上的工具。

這些功能模塊的設(shè)計都是基于通用合約安全模式的。Zeppelin是與以太坊開發(fā)者所使用的首要構(gòu)建架構(gòu)Truffle相集成的。先期采用者可在Zeppelin開發(fā)者協(xié)作群組(Slack channel)上提問并追蹤進度,也可在BlockParty項目中學(xué)習(xí)如何使用Zeppelin。首個公共發(fā)布版本計劃在11月發(fā)布,該發(fā)布將伴以基于Zeppelin構(gòu)建的真正的DAO項目。

Zeppelin意圖在將來支持更多的區(qū)塊鏈平臺,其中包括Bitcoin、Tendermint、Bloq Ora等。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號