YDT 4564-2023區塊鏈智能合約安全技術要求_第1頁
YDT 4564-2023區塊鏈智能合約安全技術要求_第2頁
YDT 4564-2023區塊鏈智能合約安全技術要求_第3頁
YDT 4564-2023區塊鏈智能合約安全技術要求_第4頁
YDT 4564-2023區塊鏈智能合約安全技術要求_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

ICS35.240

CCSL04

YD

中華人民共和國通信行業標準

YD/TXXXX—202X

區塊鏈智能合約安全技術要求

Securitytechnicalrequirementsforblockchainsmartcontract

XXXX-XX-XX發布XXXX-XX-XX實施

中華人民共和國工業和信息化部發布

YD/TXXXX-202X

前言

本文件按照GB/T1.1-2020《標準化工作導則第1部分:標準化文件的結構和起草規則》的規定起

草。

請注意本文件的某些內容可能涉及專利。本文件的發布機構不承擔識別專利的責任。

本文件由中國通信標準化協會提出并歸口。

本文件起草單位:深圳市騰訊計算機系統有限公司、騰訊云計算(北京)有限責任公司、成都鏈安

科技有限公司、鄭州信大捷安信息技術股份有限公司、國家計算機網絡應急技術處理協調中心、中國移

動通信集團有限公司、北京奇虎科技有限公司、電子科技大學、北京理工大學、西安郵電大學、螞蟻科

技集團股份有限公司、奇安信科技集團股份有限公司、北京郵電大學、中國信息通信科技集團有限公司、

陜西省信息化工程研究院。

本文件主要起草人:李克鵬、武楊、郭鐵濤、劉為華、劉獻倫、劉穎、李力、蘇慶慧、邵兵、郭銳、

蔡慶普、張子劍、楊霞、楊勇、甘祥、張建俊、敖萌、蘇蹦蹦、韓天樂、代威、梁軍、盧洋、王宗友、

藍虎、郭文生、孫海泳、岳亮亮、鄧嵐臏、章書、王劍、彭晉、昌文婷、張屹、鮑旭華、黃亮、韓剛、

張勇、尚進、于樂、程渤、趙帥、張祺琪、劉偉麗。

III

YD/TXXXX-202X

區塊鏈智能合約安全技術要求

1范圍

本文件規定了區塊鏈智能合約安全技術要求,包括區塊鏈智能合約的安全技術框架、設計開發安全、

測試驗證安全、編譯部署安全、觸發運行安全、維護治理安全方面的技術要求。

本文件適用于指導區塊鏈智能合約業務提供者、智能合約技術提供者、智能合約審計者等相關角色

在區塊鏈智能合約的設計、開發、測試、部署和運維等過程中進行安全保障,也適用于指導區塊鏈智能

合約系統的安全性評估。

2規范性引用文件

下列文件中的內容通過文中的規范性引用而構成文件必不可少的條款。其中,注日期的引用文件,

僅該日期對應的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本

文件。

GB/T25069-2022信息安全技術術語

ISO22739:2020區塊鏈和分布式賬本技術–術語(Blockchainanddistributedledger

technologies—Vocabulary)

3術語和定義

GB/T25069-2022和ISO22739:2020界定的以及下列術語和定義適用于本文件。

3.1

區塊block

區塊鏈的基本組成單元,由區塊頭和區塊數據組成。

[來源:ISO22739:2020,3.2,有修改]

3.2

共識consensus

在共識節點間達成區塊數據一致性的認可。

[來源:ISO22739:2020,3.11,有修改]

3.3

共識協議consensusprotocol

區塊鏈中通過數學算法實現不同節點之間對交易達成一致的方法。

[來源:ISO22739:2020,3.12,有修改]

3.4

1

YD/TXXXX-202X

區塊鏈blockchain

將區塊順序相連,并通過共識協議、數字簽名、雜湊函數等密碼學方式保證的抗篡改和不可偽造的

分布式賬本。

[來源:ISO22739:2020,3.6,有修改]

3.5

節點node

具有特定功能的區塊鏈組件,可獨立運行。

[來源:ISO22739:2020,3.27,有修改]

3.6

交易transaction

區塊鏈雙方或多方參與,并且會發生狀態變更的一種區塊基本組成單元。

[來源:ISO22739:2020,3.77,有修改]

3.7

用戶user

參與產生區塊鏈交易數據的個人、組織或進程。

[來源:ISO22739:2020,3.3,有修改]

3.8

智能合約smartcontract

以運行在區塊鏈中的軟件程序形式存在的合約,合約由區塊鏈部署、執行結果記錄在區塊鏈中。

[來源:ISO22739:2020,3.72]

3.9

執行環境executionenvironment

智能合約的執行容器,負責根據合約代碼和用戶發送的交易指令對區塊鏈狀態進行更新。

3.10

鏈上on-chain

在區塊鏈內定位、執行或運行。

[來源:ISO22739:2020,3.54,有修改]

4智能合約的安全技術框架

4.1智能合約安全的整體邏輯架構

本文件圍繞智能合約的生命周期,在智能合約的設計開發、測試驗證、編譯部署、觸發運行、維護

治理等各個階段提出安全要求。

智能合約安全的整體邏輯架構,如圖1所示。

2

YD/TXXXX-202X

圖1區塊鏈智能合約安全的整體邏輯架構圖

智能合約全生命周期各階段的安全要求,主要包括:

a)智能合約設計開發的安全:主要包括智能合約的設計安全、編碼安全、邏輯安全等;

b)智能合約測試驗證的安全:主要包括智能合約的靜態掃描、動態掃描、形式化驗證等;

c)智能合約編譯部署的安全:主要包括智能合約編譯安全、部署安全等;

d)智能合約觸發運行的安全:主要包括智能合約觸發安全、運行安全等;

e)智能合約維護治理的安全:主要包括智能合約凍結/解凍安全、升級安全、禁用安全、安全審

計等。

4.2智能合約的角色定義

參與區塊鏈智能合約的設計開發、驗證測試、編譯部署、運行和運維等過程的角色主要包括:

a)智能合約業務提供者

智能合約業務提供者是指提供區塊鏈智能合約業務的主體,主要負責鏈上部署運行、管理和維護區

塊鏈智能合約等,直接或間接地為區塊鏈用戶提供服務。

b)智能合約技術提供者

3

YD/TXXXX-202X

智能合約技術提供者是指為智能合約業務提供者提供技術支持的機構或者組織,主要負責設計、開

發、測試、配合維護區塊鏈智能合約等,并提供相關技術支持和服務。

c)智能合約審計者

智能合約審計者負責在區塊鏈智能合約的供應和使用過程中執行審計。區塊鏈智能合約審計通常

覆蓋運營、性能和安全,主要是檢查相關的審計準則是否得到滿足。

4.3智能合約各角色的安全職責

4.3.1智能合約業務提供者的安全職責

智能合約業務提供者的安全職責主要包括:

a)對智能合約技術提供者提出安全需求,并查驗安全需求的滿足情況;

b)執行智能合約服務的安全要求并保障智能合約業務的穩定,為智能合約的正常運行提供足夠的

資源;

c)當智能合約服務出現異常時,能夠及時修復異常,若自身不能處理,則及時聯系智能合約技術

提供者共同完成修復。

4.3.2智能合約技術提供者的安全職責

智能合約技術提供者的安全職責主要包括:

a)為智能合約業務提供者提供安全設計開發、測試驗證的智能合約,并提供保障智能合約安全的

支撐技術;

b)為智能合約審計者提供審計的技術支撐;

c)為保障智能合約業務的穩定運行提供管理運維支撐技術以及緊急情況下的處置方法。

4.3.3智能合約審計者的安全職責

智能合約審計者的安全職責主要包括:

a)遵循獨立性、客觀性原則,運用系統化和規范化的方法,通過監督、評價和咨詢等方式,促進

業務和技術提供者建立有效并持續完善的風險管理、內控合規和治理架構,實現區塊鏈智能合

約安全運行的業務目標;

b)與智能合約技術提供者、智能合約業務提供者明確需要滿足的智能合約審計服務和審計需求;

c)當發現安全問題時,及時通知智能合約業務提供者進行整改;

d)當發現不合規信息時,及時通知智能合約業務提供者進行屏蔽、訪問限制等。

5智能合約設計開發的安全技術要求

5.1智能合約功能設計的安全技術要求

5.1.1智能合約設計的安全性

智能合約技術提供者在智能合約設計安全性方面的要求如下:

a)在設計智能合約代碼時,應對整個合約的功能以及對外的交互進行安全設計,應規避因為設

計缺陷所導致的安全問題;

b)在智能合約設計時,應從多個來源收集輸入事實,保證需求的可追溯性;

c)在設計智能合約時,應對各個角色及其權限進行合理設計;

4

YD/TXXXX-202X

d)設計的智能合約應具備防篡改和抗抵賴性,智能合約應完全按照針對合約約定的條件、事項

和規則執行。

5.1.2智能合約的處理錯誤能力

智能合約技術提供者設計的智能合約應具備處理或緩解錯誤/缺陷的能力,如提前終止能力或線上

更新能力等,避免鏈上一直存在錯誤數據而不可更改的情況。

5.1.3智能合約的敏感信息規避要求

智能合約技術提供者在設計智能合約時,為避免隱私或其他敏感數據泄露,在敏感信息規避方面的

安全要求如下:

a)對于處理隱私數據等敏感信息的智能合約,不應直接將敏感數據存儲在鏈上;

b)代碼本身所包含的隱私數據或其他敏感信息,應進行加密或是將其轉移至鏈下;

c)加密算法應滿足相關國家監管合規要求。

5.1.4智能合約結果一致性的安全設計

智能合約技術提供者設計智能合約時,為保證各節點智能合約運行結果的一致性安全要求如下:

a)智能合約中運行結果不應包含隨機信息,否則有可能會導致結果不一致;

b)在設計智能合約時應對時序的邏輯進行合理設計,即不同節點執行合約相同部分的先后次序

可能是不同的,應避免由此產生的安全風險;

c)在設計智能合約時,應不要有對先后順序的依賴,如付款先后、申請先后等的依賴,以避免

由于條件競爭導致的安全問題。

5.1.5區塊鏈平臺的兼容能力的設計

當區塊鏈平臺升級時,智能合約技術提供者應評估原有智能合約在新升級平臺的運行差異,并做兼

容性方面的適配、調整,避免不兼容而導致的安全風險。

5.1.6智能合約安全風險規避要求

智能合約技術提供者應在設計時考慮:智能合約在整個生命周期中存在不可更改、代碼公開、分布

式計算、運行環境不安全等情況,制定智能合約安全風險分析與風險管理規劃,并對相關安全風險進行

規避。

5.2智能合約編碼的安全技術要求

5.2.1開發環境安全

智能合約技術提供者在智能合約編碼過程中,在開發環境方面的安全要求如下:

a)應對智能合約的開發、編譯等工具定期進行更新,修復所存在的安全缺陷;

b)在使用第三方工具和代碼,以及安全部署更新前,應對其安全性進行評估,防止引入新的安

全缺陷和風險。

5.2.2明確變量定義

智能合約技術提供者在編寫智能合約時,應明確定義變量的類型,以便確定變量的取值范圍,防

止變量溢出。

5

YD/TXXXX-202X

5.2.3盡量避免直接嵌入底層語言

為防止高級語言的安全特性被繞過,智能合約技術提供者在編寫智能合約時,應盡量避免底層語

言(如匯編語言)的使用。除非智能合約高級語言無法實現的情況下(如對性能要求高或者運行環境

要求使用底層語言等情況)而只能選擇使用底層語言時,應充分知悉此安全風險并做好安全加固措

施。

5.2.4數學運算的邊界條件

智能合約技術提供者開發的智能合約在進行數學運算時,應注意可能到達的邊界條件。當賦值過

大或過小導致可能發生溢出時,應支持對溢出進行正確處理。

5.2.5避免不可靠輸入

智能合約技術提供者在編寫智能合約實現預定的功能或邏輯時,應避免引入不可靠輸入。

5.2.6錯誤處理

智能合約技術提供者在智能合約時,應使用安全函數。在智能合約中調用其他函數時,應對可能

發生的錯誤進行處理以避免程序出錯導致安全風險,包括捕獲異常、處理錯誤返回值等。

5.2.7合約代碼庫

智能合約技術提供者在使用智能合約代碼庫時的安全要求包括:

a)應優先使用經過詳細測試或第三方安全審計的可靠合約代碼庫;

b)必須需仔細閱讀代碼庫使用說明,在正確理解外部代碼的情況下進行使用;

c)不應使用未知源碼的合約作為依賴。

5.3智能合約的邏輯安全技術要求

5.3.1身份驗證

智能合約技術提供者開發的智能合約在對用戶資產進行操作時,應對操作者身份進行驗證,防止惡

意操作。

5.3.2權限管理

智能合約技術提供者開發的智能合約,當包含多個用戶或者允許多個用戶與其交互時,應對各用戶

所擁有的權限進行限制,對于凍結、禁用等操作,僅允許特定用戶使用。

5.3.3業務邏輯安全

智能合約技術提供者在智能合約業務邏輯的設計方面的安全要求包括:

a)使合約代碼實現與邏輯設計相符合,應避免歧義或者偏差存在;

b)存在博弈機制的合約,應規避博弈設計中的缺陷;

c)應規避“拒絕服務”(Denial-of-Service)風險;

d)應規避“搶先交易”、“交易順序依賴”的風險。

6智能合約測試驗證的安全技術要求

6

YD/TXXXX-202X

智能合約測試驗證方面的安全技術要求如下:

a)智能合約技術提供者在發布智能合約之前,應進行安全評估和測試,規避已知常見安全風險

和隱患;

b)智能合約技術提供者應修復已知的安全漏洞,并使用規范的安全測試,以協助開發者提高合

約代碼的安全質量;

c)智能合約技術提供者宜進行函數可見性測試、合約限制繞過測試、調用棧耗盡測試、拒絕服

務測試等;

d)智能合約技術提供者若發現智能合約中漏洞,應能夠采取恰當的方法使其安全地恢復;

e)智能合約技術提供者應保證智能合約在測試環境中合約運行結果的正確性;

f)智能合約技術提供者的安全測試應覆蓋對合約代碼或字節碼進行常規漏洞檢測、安全屬性驗

證等;

g)智能合約技術提供者應在發現智能合約漏洞后,及時修復和更新智能合約代碼;

h)智能合約技術提供者、智能合約業務提供者、智能合約審計者應對智能合約的業務邏輯、業

務流程進行安全性的測試和評估;

i)智能合約技術提供者、智能合約業務提供者、智能合約審計者應基于智能合約安全規則庫和

問題合約模式庫實現智能合約的漏洞檢測;

j)智能合約技術提供者、智能合約業務提供者、智能合約審計者應支持對智能合約代碼進行靜

態安全掃描,以便發現安全風險;

k)智能合約技術提供者、智能合約業務提供者、智能合約審計者宜支持動態安全掃描,通過運

行智能合約代碼,根據運行狀態來判斷是否存在安全風險;

l)智能合約技術提供者、智能合約業務提供者、智能合約審計者宜支持形式化驗證,利用數學

方法,確定程序的運行結果是否符合預期,驗證智能合約代碼的正確性。

7智能合約編譯部署的安全技術要求

7.1智能合約編譯的安全技術要求

智能合約技術提供者在智能合約編譯時的安全要求如下:

a)在編譯智能合約時,應校驗智能合約的編譯實體和寫入策略;

b)應使用安全的共識算法,并通過第三方驗證;

c)應支持智能合約在區塊鏈平臺上編譯檢測;

d)應使用已知的成熟的編譯器;

e)當發現編譯器中的缺陷時,應及時更新以消除缺陷;

f)編程語言的編譯器應具備一致性;

g)智能合約源碼在編譯成字節碼后前后邏輯應一致。

7.2智能合約部署的安全技術要求

智能合約技術提供者在智能合約部署方面的安全要求如下:

a)智能合約的部署應由鏈上節點達成共識,防止產生惡意部署智能合約的行為;

b)宜校驗智能合約部署的完整性;

c)應校驗智能合約的執行權限和簽名。

8智能合約觸發運行安全技術要求

7

YD/TXXXX-202X

8.1智能合約觸發的安全技術要求

8.1.1直接接口調用安全

智能合約技術提供者在智能合約直接接口調用方面的安全要求如下:

a)智能合約在直接接口調用時接口名稱應明確接口功能,應具有可讀性;

b)智能合約的直接接口調用應執行規定的智能合約調用流程。

8.1.2合約間調用安全

智能合約技術提供者在合約間調用方面的安全要求如下:

a)智能合約的合約間調用,應豐富智能合約的內置方法和原生庫實現;

b)在涉及合約間調用時,應避免合約間調用可能存在的不確定因素安全風險,防止不受信任的

外部合約引發的風險和錯誤出現;

c)應選用恰當的限定詞對智能合約的調用范圍進行強制限制,防止外部調用,提高安全性;

d)當與外部合約進行交互時,應以變量名稱、方法名稱或者是接口名稱的方式明確標記交互是

外部的,并在調用時考慮可能存在的不安全風險。

8.1.3預言機調用安全

智能合約技術提供者在智能合約預言機調用方面的安全要求如下:

a)智能合約在預言機調用時,接口協議應基于安全傳輸協議;

b)預言機本身應通過第三方的安全性和可靠性評估;

c)預言機的安全和可靠性評估應為定期進行的持續行為;

d)如果發現預言機故意提供錯誤數據,應及時更正或者更換預言機;

e)預言機提供的外部數據源的影響范圍應僅限于智能合約范圍內,不應影響系統的整體運行。

8.2智能合約運行的安全技術要求

8.2.1運行環境本身的安全性

智能合約技術提供者在智能合約的運行環境(執行智能合約的軟件及硬件環境)本身的安全性方面

的要求如下:

a)應保證智能合約的運行環境提供確定性的功能執行、異?;謴?、常規錯誤運行時監測和恢復

等機制;

b)應保障智能合約的運行環境滿具備正確處理異常的能力,支持實時監測和狀態回滾,支持合

約正常終止。

8.2.2運行環境依賴性

智能合約技術提供者在智能合約運行環境依賴性方面的安全要求如下:

a)應保證智能合約中的核心邏輯盡量不依賴區塊鏈系統中的信息作為參數;

b)應保障智能合約核心邏輯對區塊鏈系統參數的依賴是安全的。

8.2.3規避惡意合約代碼對運行環境底層的影響

智能合約技術提供者對運行智能合約的底層系統的安全要求如下:

a)應保證運行智能合約的底層系統具備完備的拒絕服務防護;

b)應保證運行智能合約的底層系統具備完備的虛擬機逃逸防護;

8

YD/TXXXX-202X

c)應保證運行智能合約的底層系統具備完備的任意代碼執行防護;

d)應保證運行智能合約的底層系統具備完備的權限提升防護。

8.2.4運行環境中不同合約的交互安全

智能合約技術提供者對于運行環境中不同智能合約的交互安全方面的安全要求如下:

a)應提供權限管理的機制,以判斷本次合約調用是否有權限修改相應的數據,包括提供根據用戶

信息和交易簽名進行身份權限審查的功能(也可提供基于多密鑰對的權限管理)等;

b)對智能合約的接口應進行標準化定義并提供詳細說明,并防止攻擊者借用某合約身份對另一

合約發起調用,從而繞過權限檢查;

c)智能合約的代碼實現中,不應引入未知程序步數或執行時間的執行體,需支持合約能夠在有限

的程序步數和時間內完成執行;

d)應避免使用智能合約中嚴重消耗資源的操作。

9智能合約的維護治理安全

9.1智能合約的凍結/解凍安全

智能合約技術提供者在智能合約的凍結和解凍方面安全要求如下:

a)應提供智能合約凍結功能,當發現智能合約存在漏洞時可及時停止;

b)在凍結智能合約時,應對其所能支配的資源進行有效限制,防止資源被惡意濫用;

c)應提供智能合約解凍功能,當智能合約中的漏洞修復或者消除、轉移后可恢復使用;

d)在調用智能合約凍結和解凍功能時,應進行權限訪問控制。

9.2智能合約的升級安全

智能合約技術提供者在智能合約升級方面安全要求如下:

a)應提供智能合約的在線升級功能,智能合約的每次升級應為獨立版本;

b)智能合約的升級操作應以接口調用的方式提交,達成共識后生效;

c)對智能合約的升級操作應記錄在區塊中;

d)應提供智能合約的版本控制功能,在智能合約升級到新版本后,能向前兼容舊版本合約,并能

調用和訪問舊版本的歷史數據;

e)應保證區塊鏈平臺升級后,智能合約仍能穩定運行。

9.3智能合約的禁用安全

智能合約技術提供者在智能合約禁用方面安全要求如下:

a)應提供智能合約禁用功能,廢棄已部署的智能合約;

b)調用智能合約禁用時,應進行權限訪問控制;

c)智能合約禁用后,可在區塊鏈中保存被終止版本的智能合約代碼,但不會再次執行;

d)智能合約禁用時,應保證合約上的資產安全。

9.4智能合約的安全審計

智能合約技術提供者、智能合約業務提供者和智能合約審計者在智能合約安全審計方面安全要求

如下:

a)智能合約技術提供者和智能合約審計者應對源代碼進行審計,可通過人工審閱源代碼和靜態

9

YD/TXXXX-202X

代碼審計工具等方式,對智能合約編碼安全進行審計和分析,并保留審計記錄;

b)智能合約業務提供者對智能合約設計開發、測試驗證、編譯部署等過程進行安全審計以保證業

務邏輯安全,并保留審計記錄;應采取自身與第三方安全機構相結合的安全審計方式;

c)智能合約業務提供者和智能合約審計者應對智能合約的編譯環境進行審計,識別有漏洞的版

本,并保留審計記錄;

d)智能合約業務提供者和智能合約審計者應對智能合約進行合規性審計,并保留審計記錄;

e)智能合約業務提供者和智能合約審計者應對智能合約中的個人隱私和商業秘密的保護措施進

行審計,并保留審計記錄;

f)智能合約業務提供者和智能合約審計者應對源代碼安全、二進制代碼安全以及執行環境的安

全進行審計,并保留審計記錄。

10

YD/TXXXX-202X

目次

前言................................................................................................................................................................III

1范圍..................................................................................................................................................................1

2規范性引用文件..............................................................................................................................................1

3術語和定義......................................................................................................................................................1

4智能合約的安全技術框架..............................................................................................................................2

4.1智能合約安全的整體邏輯架構...............................................................................................................2

4.2智能合約的角色定義...............................................................................................................................3

4.3智能合約各角色的安全職責...................................................................................................................4

4.3.1智能合約業務提供者的安全職責....................................................................................................4

4.3.2智能合約技術提供者的安全職責....................................................................................................4

4.3.3智能合約審計者的安全職責............................................................................................................4

5智能合約設計開發的安全技術要求..............................................................................................................4

5.1智能合約功能設計的安全技術要求.......................................................................................................4

5.1.1智能合約設計的安全性....................................................................................................................4

5.1.2智能合約的處理錯誤能力................................................................................................................5

5.1.3智能合約的敏感信息規避要求........................................................................................................5

5.1.4智能合約結果一致性的安全設計....................................................................................................5

5.1.5區塊鏈平臺的兼容能力的設計........................................................................................................5

5.1.6智能合約安全風險規避要求............................................................................................................5

5.2智能合約編碼的安全技術要求...............................................................................................................5

5.2.1開發環境安全....................................................................................................................................5

5.2.2明確變量定義....................................................................................................................................5

5.2.3盡量避免直接嵌入底層語言............................................................................................................6

5.2.4數學運算的邊界條件........................................................................................................................6

5.2.5避免不可靠輸入................................................................................................................................6

5.2.6錯誤處理............................................................................................................................................6

5.2.7合約代碼庫........................................................................................................................................6

5.3智能合約的邏輯安全技術要求...............................................................................................................6

5.3.1身份驗證............................................................................................................................................6

5.3.2權限管理............................................................................................................................................6

5.3.3業務邏輯安全....................................................................................................................................6

6智能合約測試驗證的安全技術要求..............................................................................................................6

7智能合約編譯部署的安全技術要求..............................................................................................................7

7.1智能合約編譯的安全技術要求...............................................................................................................7

7.2智能合約部署的安全技術要求...............................................................................................................7

8智能合約觸發運行安全技術要求..................................................................................................................7

8.1智能合約觸發的安全技術要求...............................................................................................................8

I

YD/TXXXX-202X

8.1.1直接接口調用安全............................................................................................................................8

8.1.2合約間調用安全................................................................................................................................8

8.1.3預言機調用安全................................................................................................................................8

8.2智能合約運行的安全技術要求...............................................................................................................8

8.2.1運行環境本身的安全性....................................................................................................................8

8.2.2運行環境依賴性................................................................................................................................8

8.2.3規避惡意合約代碼對運行環境底層的影響....................................................................................8

8.2.4運行環境中不同合約的交互安全....................................................................................................9

9智能合約的維護治理安全..............................................................................................................................9

9.1智能合約的凍結/解凍安全......................................................................................................................9

9.2智能合約的升級安全...............................................................................................................................9

9.3智能合約的禁用安全...............................................................................................................................9

9.4智能合約的安全審計...............................................................................................................................9

II

YD/TXXXX-202X

區塊鏈智能合約安全技術要求

1范圍

本文件規定了區塊鏈智能合約安全技術要求,包括區塊鏈智能合約的安全技術框架、設計開發安全、

測試驗證安全、編譯部署安全、觸發運行安全、維護治理安全方面的技術要求。

本文件適用于指導區塊鏈智能合約業務提供者、智能合約技術提供者、智能合約審計者等相關角色

在區塊鏈智能合約的設計、開發、測試、部署和運維等過程中進行安全保障,也適用于指導區塊鏈智能

合約系統的安全性評估。

2規范性引用文件

下列文件中的內容通過文中的規范性引用而構成文件必不可少的條款。其中,注日期的引用文件,

僅該日期對應的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本

文件。

GB/T25069-2022信息安全技術術語

ISO22739:2020區塊鏈和分布式賬本技術–術語(Blockchainanddistributedledger

technologies—Vocabulary)

3術語和定義

GB/T25069-2022和ISO22739:2020界定的以及下列術語和定義適用于本文件。

3.1

區塊block

區塊鏈的基本組成單元,由區塊頭和區塊數據組成。

[來源:ISO22739:2020,3.2,有修改]

3.2

共識consensus

在共識節點間達成區塊數據一致性的認可。

[來源:ISO22739:2020,3.11,有修改]

3.3

共識協議consensusprotocol

區塊鏈中通過數學算法實現不同節點之間對交易達成一致的方法。

[來源:ISO22739:2020,3.12,有修改]

3.4

1

YD/TXXXX-202X

區塊鏈blockchain

將區塊順序相連,并通過共識協議、數字簽名、雜湊函數等密碼學方式保證的抗篡改和不可偽造的

分布式賬本。

[來源:ISO22739:2020,3.6,有修改]

3.5

節點node

具有特定功能的區塊鏈組件,可獨立運行。

[來源:ISO22739:2020,3.27,有修改]

3.6

交易transaction

區塊鏈雙方或多方參與,并且會發生狀態變更的一種區塊基本組成單元。

[來源:ISO22739:2020,3.77,有修改]

3.7

用戶user

參與產生區塊鏈交易數據的個人、組織或進程。

[來源:ISO22739:2020,3.3,有修改]

3.8

智能合約smartcontract

以運行在區塊鏈中的軟件程序形式存在的合約,合約由區塊鏈部署、執行結果記錄在區塊鏈中。

[來源:ISO22739:2020,3.72]

3.9

執行環境executionenvironment

智能合約的執行容器,負責根據合約代碼和用戶發送的交易指令對區塊鏈狀態進行更新。

3.10

鏈上on-chain

在區塊鏈內定位、執行或運行。

[來源:ISO22739:2020,3.54,有修改]

4智能合約的安全技術框架

4.1智能合約安全的整體邏輯架構

本文件圍繞智能合約的生命周期,在智能合約的設計開發、測試驗證、編譯部署、觸發運行、維護

治理等各個階段提出安全要求。

智能合約安全的整體邏輯架構,如圖1所示。

2

YD/TXXXX-202X

圖1區塊鏈智能合約安全的整體邏輯架構圖

智能合約全生命周期各階段的安全要求,主要包括:

a)智能合約設計開發的安全:主要包括智能合約的設計安全、編碼安全、邏輯安全等;

b)智能合約測試驗證的安全:主要包括智能合約的靜態掃描、動態掃描、形式化驗證等;

c)智能合約編譯部署的安全:主要包括智能合約編譯安全、部署安全等;

d)智能合約觸發運行的安全:主要包括智能合約觸發安全、運行安全等;

e)智能合約維護治理的安全:主要包括智能合約凍結/解凍安全、升級安全、禁用安全、安全審

計等。

4.2智能合約的角色定義

參與區塊鏈智能合約的設計開發、驗證測試、編譯部署、運行和運維等過程的角色主要包括:

a)智能合約業務提供者

智能合約業務提供者是指提供區塊鏈智能合約業務的主體,主要負責鏈上部署運行、管理和維護區

塊鏈智能合約等,直接或間接地為區塊鏈用戶提供服務。

b)智能合約技術提供者

3

YD/TXXXX-202X

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論