{"title":"基于谓词转换网络的智能合约建模与分析","authors":"Xudong He","doi":"10.1109/QRS-C51114.2020.00029","DOIUrl":null,"url":null,"abstract":"Blockchain technology has gained wide acceptance in recent years. Smart contracts facilitate the application of the blockchain technology. Smart contracts are programs running distributed environments and are thus error prone. Smart contracts often lack precise specifications and are written in high-level programming languages such as Solidity. In this paper, we present an approach to formally model and analyze smart contracts using predicate transitions nets. We use the blind auction smart contract to demonstrate our approach, which reveals some problematic implementation of some smart contract functions. We have applied predicate transition nets in modeling and analyzing all 11 smart contracts in Azure blockchain workbench. Although we cannot tell whether there is any problem in these smart contracts based on their informal descriptions and Solidity programs without designer input. Our experience has shown the applicability and suitability of predicate transition nets. We believe that our approach can help smart contract designers to detect and prevent early design problems in the current practice of using informal textual descriptions of smart contracts.","PeriodicalId":358174,"journal":{"name":"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)","volume":"25 21 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Modeling and Analyzing Smart Contracts using Predicate Transition Nets\",\"authors\":\"Xudong He\",\"doi\":\"10.1109/QRS-C51114.2020.00029\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Blockchain technology has gained wide acceptance in recent years. Smart contracts facilitate the application of the blockchain technology. Smart contracts are programs running distributed environments and are thus error prone. Smart contracts often lack precise specifications and are written in high-level programming languages such as Solidity. In this paper, we present an approach to formally model and analyze smart contracts using predicate transitions nets. We use the blind auction smart contract to demonstrate our approach, which reveals some problematic implementation of some smart contract functions. We have applied predicate transition nets in modeling and analyzing all 11 smart contracts in Azure blockchain workbench. Although we cannot tell whether there is any problem in these smart contracts based on their informal descriptions and Solidity programs without designer input. Our experience has shown the applicability and suitability of predicate transition nets. We believe that our approach can help smart contract designers to detect and prevent early design problems in the current practice of using informal textual descriptions of smart contracts.\",\"PeriodicalId\":358174,\"journal\":{\"name\":\"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)\",\"volume\":\"25 21 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/QRS-C51114.2020.00029\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/QRS-C51114.2020.00029","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Modeling and Analyzing Smart Contracts using Predicate Transition Nets
Blockchain technology has gained wide acceptance in recent years. Smart contracts facilitate the application of the blockchain technology. Smart contracts are programs running distributed environments and are thus error prone. Smart contracts often lack precise specifications and are written in high-level programming languages such as Solidity. In this paper, we present an approach to formally model and analyze smart contracts using predicate transitions nets. We use the blind auction smart contract to demonstrate our approach, which reveals some problematic implementation of some smart contract functions. We have applied predicate transition nets in modeling and analyzing all 11 smart contracts in Azure blockchain workbench. Although we cannot tell whether there is any problem in these smart contracts based on their informal descriptions and Solidity programs without designer input. Our experience has shown the applicability and suitability of predicate transition nets. We believe that our approach can help smart contract designers to detect and prevent early design problems in the current practice of using informal textual descriptions of smart contracts.