9月15日,Zeppelin的路線圖建議發布。Zeppelin是一種構建安全智能合約的開源架構,遵循MIT許可。該建議的推出正是時候,從DevCon2大會上圍繞著智能合約形式驗證的報告和討論的次數上就可以證實這一點。智能合約解決方案的創建者Demian Brener和Manuel Aráoz是Zeppelin相關工作的先行者。Zeppelin是一個社區驅動項目,目的在于實現安全的、經測試的且經審計的智能合約代碼開發。到目前為止最大規模的智能合約應用“DAO”,在今年早期由于在其智能合約中所存在的一個漏洞而被攻擊,造成了六千萬美元的損失。這個事件說明了社區中的許多關注是合理的,這將形式驗證問題置于了一個重要位置。鑒于以太坊是最廣為使用的智能合約開發平臺,Zeppelin項目在初期是側重于為Solidity語言構建工具。在發布的建議中,Brener提及將為Solidity語言構建下列的模塊:
拉動式支付(Pull payment)輔助模塊:
使用拉動式支付(起名源于其工作方式與需要發送操作的推動式支付相反)策略可避免許多的安全問題(包括臭名昭著的“DAO被破解”事件)。我們已經具有了簡易的PullPaymentCapable.sol合約,但是仍需要更全面的工具、文檔和實例。 合約生命周期工具:當前在沒有過多考慮未來將會發生什么的情況下,大部分的合約就被部署到區塊鏈中。我們需要構建能更好地去管理合約終結策略、合約屬主轉變、合約暫停及恢復、合約升級等的工具。 容錯和自動挑錯獎勵:其中包括對漏洞的自動檢測、從不一致狀態恢復的工具、限定合約所管理資金規模的簡易工具。我們也在致力于漏洞獎勵合約,并期望去改進該合約,這樣可實現自動去支付可攻破我們合約固定部分的安全研究者。 可重用的基礎組件:對于每個新的項目,其中的一些通用模塊依然是需要從零開發重新實現。我們希望能為代幣發行、眾籌、表決、投注、工資單、收益共享等構建標準的合約。 探究形式驗證理念:合約的形式驗證是一個活躍的研究領域。將這些研究工作成果集成到Zeppelin中,可為合約提供有意思的安全保障。形式驗證意味著對合約代碼做靜態分析,以形式上驗證合約的正確性以及存在的問題。 與oracle更好的接口:如何與離區塊鏈數據源進行交互是智能合約發展中的一個重要部分。其中一個值得去探究的有意思想法就是做反向控制。這種方式中,oracle通過通用接口方法調用合約(用于在Truth外進行通信),并按所需去實現oracle邏輯,其中包括了值得信賴的專家、關閉的投票、開放投票、API包裝器等。這樣并非是合約從oracle請求數據,而是在數據發生了改變時由oracle去通知合約。 更好的重用代碼工具:當前Solidity的代碼重用是基于拷貝-復制的,或是通過從其它的代碼庫中下載已有的代碼。一個成熟的生態系統應具有好的代碼庫管理系統,就像NodeJS的npm和Ruby的gems這樣。對已部署到區塊鏈中代碼重用的可能性,構成了以太坊的一個有意思的變體。我們正規劃去構建實現將合約輕易鏈接到已部署的程序庫上的工具。
這些功能模塊的設計都是基于通用合約安全模式的。Zeppelin是與以太坊開發者所使用的首要構建架構Truffle相集成的。先期采用者可在Zeppelin開發者協作群組(Slack channel)上提問并追蹤進度,也可在BlockParty項目中學習如何使用Zeppelin。首個公共發布版本計劃在11月發布,該發布將伴以基于Zeppelin構建的真正的DAO項目。
Zeppelin意圖在將來支持更多的區塊鏈平臺,其中包括Bitcoin、Tendermint、Bloq Ora等。