Debugging Smart Contract’s Business Logic Using Symbolic Model Checking
使用符号逻辑检查为智能合约的商业逻辑debug
(InfoTeCS, Russia)
智能合约是一种在区块链上运行的特殊程序。它不可更改、透明,为实现容错性、审查容忍性服务提供了一种可能的实现方式。不幸的是,它的不可更改性导致智能合约必须在发布到区块链上之前做好商业逻辑正确性的检测,而这是很困难的。几宗大型的事故已表明,智能合约的用户有必要使用专门的工具来验证智能合约的正确性。现有的自动检测工具只能发现已知的实现bug,但是不能检查商业逻辑是否正确。本文提出了一个符号逻辑检查技术,可用于一类solidity程序,以展示程序的状态信息和迹信息,后者其实是某种弱“时空”信息。我们对所提出的技术在MiniDAO智能合约上做了评测。我们的方法能在几秒钟内检测到这个合约中存在的非平凡的商业逻辑错误。