Luca Aceto, Daniele Gorla, Stian Lybech, Mohammad Hamdaqa
{"title":"通过键入防止气源异常","authors":"Luca Aceto, Daniele Gorla, Stian Lybech, Mohammad Hamdaqa","doi":"arxiv-2407.15676","DOIUrl":null,"url":null,"abstract":"We continue the development of TinySol, a minimal object-oriented language\nbased on Solidity, the standard smart-contract language used for the Ethereum\nplatform. We first extend TinySol with exceptions and a gas mechanism, and\nequip it with a small-step operational semantics. Introducing the gas mechanism\nis fundamental for modelling real-life smart contracts in TinySol, since this\nis the way in which termination of Ethereum smart contracts is usually ensured.\nWe then devise a type system for smart contracts guaranteeing that such\nprograms never run out of gas at runtime. This is a desirable property for\nsmart contracts, since a transaction that runs out of gas is aborted, but the\nprice paid to run the code is not returned to the invoker.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"53 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-07-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Preventing Out-of-Gas Exceptions by Typing\",\"authors\":\"Luca Aceto, Daniele Gorla, Stian Lybech, Mohammad Hamdaqa\",\"doi\":\"arxiv-2407.15676\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We continue the development of TinySol, a minimal object-oriented language\\nbased on Solidity, the standard smart-contract language used for the Ethereum\\nplatform. We first extend TinySol with exceptions and a gas mechanism, and\\nequip it with a small-step operational semantics. Introducing the gas mechanism\\nis fundamental for modelling real-life smart contracts in TinySol, since this\\nis the way in which termination of Ethereum smart contracts is usually ensured.\\nWe then devise a type system for smart contracts guaranteeing that such\\nprograms never run out of gas at runtime. This is a desirable property for\\nsmart contracts, since a transaction that runs out of gas is aborted, but the\\nprice paid to run the code is not returned to the invoker.\",\"PeriodicalId\":501197,\"journal\":{\"name\":\"arXiv - CS - Programming Languages\",\"volume\":\"53 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-07-22\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Programming Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2407.15676\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2407.15676","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
We continue the development of TinySol, a minimal object-oriented language
based on Solidity, the standard smart-contract language used for the Ethereum
platform. We first extend TinySol with exceptions and a gas mechanism, and
equip it with a small-step operational semantics. Introducing the gas mechanism
is fundamental for modelling real-life smart contracts in TinySol, since this
is the way in which termination of Ethereum smart contracts is usually ensured.
We then devise a type system for smart contracts guaranteeing that such
programs never run out of gas at runtime. This is a desirable property for
smart contracts, since a transaction that runs out of gas is aborted, but the
price paid to run the code is not returned to the invoker.