正式验证的智能合约
该存储库包含已由和/或协作者正式验证的智能合约。
为了验证一个聪明的合同,我们需要先产生一个正式的规范,说明什么聪明的合同是应该做的。 这通常是验证工作中最困难的部分,有时需要与智能合约的所有者进行数轮讨论和会议,以确保每个人都在同一页面上讨论智能合约的预期功能。 毫不奇怪,在此早期阶段发现了许多错误或改进智能合约代码的机会。 然后,我们需要证明编译器从智能合约高级代码(例如或 )生成的二进制或低级代码(例如或)确实满足规范。 在我们的方法中,证明使用,Hoare逻辑,分离逻辑和模态逻辑的概括,并使用。 K框架将语言的形式语义作为可信输入(例如或),然后使用它来象征性地在所有路径上详尽地执行智能合约,从而利用诸如之类的SMT求解器来求解数学域。约束。
经验证的智能合约清单
2020-01-21
2019-02-27
2018-10-12
2018-07-12
20
1