最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

論文解讀——Securify: Practical Security Analysis of Smart Contracts

2022-05-26 13:21 作者:安靜的禿頭怪  | 我要投稿


完整流程

Securify分三個(gè)步驟進(jìn)行:

  1. 將合約的EVM字節(jié)碼反編譯成靜態(tài)的單一賦值形式( SSA——static-single assignment);

  2. 將SSA形式的代碼轉(zhuǎn)為基本事實(shí)(base facts)并推斷關(guān)于合約的其他語(yǔ)義事實(shí)(semantic facts);

  3. 匹配由特定領(lǐng)域語(yǔ)言(DSL)編寫的各種安全屬性,輸出對(duì)應(yīng)模式并整合成安全報(bào)告。

Securify流程示意圖

Securify檢測(cè)結(jié)果分類圖

安全模式匹配結(jié)果分為真陽(yáng)性(violation)、假陽(yáng)性、真陰性(compliance、no violation)、假陰性。對(duì)于真陽(yáng)性與真陰性Securify都能直接給出準(zhǔn)確結(jié)果,而對(duì)于假陽(yáng)性與假陰性Securify只能在報(bào)告中給出警告標(biāo)識(shí)(warning),之后通過額外人工或其他檢測(cè)方式繼續(xù)識(shí)別確定。

SSA

先講講SSA是什么東西。靜態(tài)單一賦值形式(SSA)是中間表示(IR)的屬性,它要求每個(gè)變量只分配一次,并且每個(gè)變量在使用之前定義。原始IR中的現(xiàn)有變量被拆分為版本,新變量通常由原始名稱用下標(biāo)表示,以便每次定義都有自己的版本。(注:在本方案中部分操作碼如push、dup等會(huì)被消除)

base fact

當(dāng)EVM字節(jié)碼反編譯成SSA形式的中間表示之后,我們需要將其轉(zhuǎn)換成基本事實(shí)。

表示形式:一種Datalog語(yǔ)言(stratified Datalog)

上圖即一個(gè)基本事實(shí)的表示,其中instr是指令名稱,L是指令標(biāo)簽(CFG中的基本塊),Y是存儲(chǔ)指令結(jié)果的指令(如果有的話),Xn是參數(shù)。

semantic fact

接著我們用基本事實(shí)推斷出語(yǔ)義事實(shí)。

在智能合約的語(yǔ)義分析中,我們通常需要根據(jù)兩種依賴關(guān)系來推斷語(yǔ)義事實(shí)(流控制依賴+數(shù)據(jù)控制依賴)。

流控制依賴的兩種語(yǔ)義事實(shí)

MayFollow(L_%7B1%7D%20%2CL_%7B2%7D)意思是存在某條路徑使得L1基本塊流向L2基本塊。

MustFollow(L_%7B1%7D%2CL_%7B2%7D%20%20)意思是對(duì)任何路徑都是L1基本塊流向L2基本塊。

數(shù)據(jù)控制依賴的三種語(yǔ)義事實(shí)

MayDepOn(Y%2CT)意思是數(shù)據(jù)T修改了,數(shù)據(jù)Y也可能跟著被修改。

Eq(Y%2CT)意思是數(shù)據(jù)Y和數(shù)據(jù)T是相等的。

DetBy(Y%2CT)意思是數(shù)據(jù)T不同的取值會(huì)導(dǎo)致數(shù)據(jù)Y的取值不同。

語(yǔ)義事實(shí)推斷規(guī)則1
語(yǔ)義事實(shí)推斷規(guī)則2
語(yǔ)義事實(shí)推斷規(guī)則3

注:

  1. 使用通配符(_)來代替在規(guī)則中只出現(xiàn)一次的變量

  2. isConst、Taint、join是其他謂詞表達(dá),與op、mload、mstore、goto同樣屬于基本事實(shí)的表達(dá)。

trace、property

trace解釋
property解釋

結(jié)論:

trace:指區(qū)塊鏈從一個(gè)老狀態(tài)更新到新狀態(tài),狀態(tài)包括存儲(chǔ)和內(nèi)存狀態(tài)、堆棧狀態(tài)、事務(wù)信息和塊信息。

property:指在trace上的一種關(guān)系,用一階邏輯規(guī)則定義。

DSL(領(lǐng)域?qū)S谜Z(yǔ)言domain specific language)

表示形式:一個(gè)由DSL表示的BNF合取范式
兩種安全模式的表達(dá)
  • some+BNF合取范式:一部分路徑符合條件

  • all+BNF合取范式:全部路徑符合條件

security patterns of properties

7種屬性及其安全模式

pattern classification

安全模式分類解釋
  • instruction patterns:指令模式,即由某條指令導(dǎo)致違反該安全屬性(例如上圖中后6個(gè)安全模式)。

  • contract pattern:合約模式,即因?yàn)檎麄€(gè)合約的整體原因?qū)е逻`反該安全屬性(很難找出一個(gè)單一的指令對(duì)其違反負(fù)責(zé),例如上圖中第一個(gè)安全模式)。

Securify2.0

https://github.com/eth-sri/securify2

文章傳送:https://arxiv.org/pdf/1806.01143.pdf


論文解讀——Securify: Practical Security Analysis of Smart Contracts的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
临桂县| 防城港市| 浏阳市| 内江市| 景洪市| 江北区| 鹰潭市| 深圳市| 凤山县| 扎赉特旗| 山东省| 阿城市| 慈利县| 阿拉善左旗| 阜新| 盐亭县| 临邑县| 保靖县| 朝阳县| 塘沽区| 中西区| 临夏市| 江城| 通化县| 台江县| 乌审旗| 怀宁县| 二连浩特市| 陕西省| 靖西县| 鲁山县| 舞钢市| 惠东县| 柘城县| 丰县| 睢宁县| 南雄市| 邵东县| 敖汉旗| 辛集市| 嘉义市|