您現在的位置是:首頁 > 動作武俠首頁動作武俠
如何構建一份智慧合約?
- 2022-07-09
如何建立智慧合約
智慧合約的構建
關於智慧合約和區塊鏈技術的關係,可以簡單理解為:
智慧合約為靜態的底層區塊鏈資料賦予靈活可程式設計的機制和演算法
,
區塊鏈為智慧合約提供一個完備的狀態機。
具體來說,當智慧
合約構建後,需要部署在區塊鏈上,使其按照預先設定的觸發條件自動執行,合約失效後廢止合約,合約正式執行前需要進行和合約測試和評估,滿足要求後才能執行。智慧合約的總體架構包括合約構建、執行、觸發、測試和評估
五大步驟
。
(
1
)
合約構建
合約的構建包括:
合約編寫
、合約編譯、
合約升級
編寫智慧合約程式碼時,應滿足
特定的
程式碼編寫要求和邏輯要求
;
合約
的
編譯
,必須符合特定的語言規範和技術規範;
合約升級應提供智慧合約升級方案和機制以修復智慧合約的漏洞
。
(
2
)
合約執行
合約的執行包括:
合約部署
、
合約執行
合約部署應有相應安全機制控制智慧合約的部署行為,防止惡意部署智慧合約
、且
應將智慧合約內容的雜湊值寫入到區塊鏈中
;合約執行應提供執行載體,如虛擬機器、容器等,保證智慧合約執行環境對外界隔離,呼叫智慧合約不能修改區塊鏈系統;
當滿足特定要求的情況下,智慧
合約
可以予以
廢止
。
(
3
)
合約觸發
合約
觸發
包括:
直接呼叫
、
合約間呼叫
和
預言機呼叫
三種情況。
直接呼叫的介面入參應明確引數的具體型別、數量和輸入資訊
,
介面返回資料應明確資料型別、數量和輸出資訊
,
介面協議
必須
包含安全傳輸協議
;
合約間呼叫
必須
應謹慎使用,減少合約功能上的相互依賴
;預言機的呼叫介面名稱應明確介面功能,並具有可讀性和可維護性
,且
介面協議
必須
包含安全傳輸協議。
(
4
)合約測試
合約測試包括:測試環境的搭建、測試內容的選定、測試過程和測試結果。
測試前,應構建單獨的測試環境來完成智慧合約測試,為合約排除潛在的故障;測試內容方面,應完成單元測試、整合測試,宜進行安全測試;單元測試時,宜對智慧合約進行功能拆分,進行完整的單元測試,在整合測試時,各部分合約程式碼組合起來應按期望的方式執行;測試結果應表明智慧合約可以完成使用者期望執行的工作、所有可能的執行路徑都能返回預期的結果、有原子性和一致性且在整個生命週期都可以進行正確的合約狀態遷移。
(
5
)
合約評估
合約評估要求
包括:
許可權訪問控制
和
安全評估
。
智慧合約應實現許可權訪問控制,許可權訪問控制應有相應的機制控制使用者對智慧合約的許可權訪問
,
宜透過函式的可見性宣告實現合約呼叫上的許可權控制
;智慧合約的安全評估物件應包括智慧合約設計與業務邏輯安全、合約原始碼、編譯環境及相關的應急響應機制等
。