智能合约行为预测的深入解析
1. 开放语义与分析模型
去中心化应用并非封闭系统,智能合约的方法不仅能被用户和与之交互的智能合约调用,还可能被未知参与者调用。所以,研究系统属性时,需分析开放配置,尤其是在对调用进行推理时,可能并不知晓调用者的实际参数。
为解决这一问题,常用的方法是使用符号变量。具体做法是将值扩展为包含(未绑定的)变量,并允许运算符除了返回整数和参与者名称外,还能返回如 x + 1 这样的项。这样一来,评估函数 eα,ℓ 可能返回带有符号变量的项,参与者的字段也可能记录此类项。
图 1 中运行时语句转换规则和图 2 中的状态转换规则在图 4 中有了扩展。对于运行时语句,原有的 [if - true] 和 [if - false] 规则被 [if - open - true] 和 [if - open - false] 规则替代,这些转换的公式会表明条件判断为真(̸= 0)还是假(= 0),它们与 [choice] 规则的公式将用于后续对智能合约系统的分析。
在开放状态转换方面,扩展了图 2 的规则,新增了调用未指定智能合约方法的规则 [invk - open] 和 [invk - open - id] 。以 [invk - open] 规则为例,函数 • /∈ s′′ 用于检查 • 是否不在运行时语句 s′′
超级会员免费看
订阅专栏 解锁全文
1147

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



