Abstrakt. Bitcoin har dragit till sig allas uppmärksamhet och intresse på senare tid. Ethereum (ETH), en andra generations kryptovaluta, utökar Bitcoins design genom att erbjuda ett Turing komplett programmeringsspråk som kallas Solidity för att utveckla smarta kontrakt. Smarta kontrakt gör det möjligt att utföra kontrakt på EVM (Ethereum Virtual Machine) utan tredje part. Att utveckla korrekta smarta kontrakt är en utmaning på grund av dess decentraliserade beräkningskaraktär. Buggy smarta kontrakt kan leda till enorma ekonomiska förluster. Dessutom är smarta kontrakt mycket svåra, om inte omöjliga, att lappa när de är utplacerade. Således finns det en ny våg av intresse för att analysera / verifiera smarta kontrakt. Medan det befintliga arbetet fokuserar på SVM opcode, hävdar vi att det är lika viktigt att förstå och definiera semantik av Solidity eftersom programmerare program och resonera om smarta kontrakt på nivån för källkod. I detta arbete utvecklar vi de strukturella operationella semantiken för Solidity, vilket gör att vi kan identifiera flera designfrågor som understryker många problematiska smarta kontrakt. Dessutom är våra semantik körbara inom K-ramverket, vilket gör att vi kan verifiera/förfalska kontrakt automatiskt.
Jiao m.fl. REF formaliserar de körbara operationella semantiken för soliditet inom ramen för K.
Executable Operational Semantics of Solidity
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}