智能合约的组合验证:原理、方法与工具评估
1. 参与转换图(PTG)的构建
在智能合约的分析中,参与转换图(PTG)是一个重要的概念。PTG 有两个映射,一个映射到智能合约账户,另一个映射到所有其他用户。PTG 是使用名为 PTGBuilder 的算法自动构建的。
1.1 PTGBuilder 算法流程
PTGBuilder 以合约 C 作为输入,并返回一个 PTG。隐式类定义为 (L := {implicit@a | a \in N}),其中 (implicit@a) 表示与地址 (a) 的隐式通信。PTG 的构建可归结为污点分析,输入地址变量、状态地址变量和文字地址是受污染的源,而内存写入、比较表达式和映射访问则是汇点。
PTGBuilder 计算 ((Args, Roles, Lits)):
1. (Args) 是传播到汇点的输入变量的索引集合。
2. (Roles) 是传播到汇点的状态变量的索引集合。
3. (Lits) 是传播到汇点的文字地址集合。
最终,PTG 被构建为 ((G, \rho, \tau)),其中 (G = (V, E, \delta)),(\rho \subseteq action(C, N) \times V),(\tau \subseteq action(C, N) \times N \times V),(sc) 和 (\star) 是唯一的顶点:
1. (V := Lits \cup {sc, \star}) 且 (E := {(sc, v) | v \in V \setminus {sc}})。
2. (\delta := {(e, explicit@
超级会员免费看
订阅专栏 解锁全文
56

被折叠的 条评论
为什么被折叠?



