TY - GEN
T1 - SmaCoNat
T2 - 2018 Forum on Specification and Design Languages, FDL 2018
AU - Regnath, Emanuel
AU - Steinhorst, Sebastian
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/11/5
Y1 - 2018/11/5
N2 - Smart contracts enable autonomous decentralized organizations (DADs) in large, trustless and open trading networks by specifying conditions for automated transactions of cryptographically secured data. This data could represent cryptocurrencies but also sensor data or commands to Cyber-Physical Systems (CPS) connected to the Internet. To provide reliability, the contract code is enforced by consensus and the transactions it triggers are nonrevertible, even if they were not intended by the programmer, which could lead to dangerous system behavior. In this paper, we conduct a survey over existing smart contract platforms and languages to determine requirements for the design of a safer contract language. Subsequently we propose concepts that enhance the understanding of code by limiting confusing language constructs, such as nesting, arbitrary naming of operations, and unreadable hash identifiers. This enables human reasoning about the contract semantics on a much higher abstraction layer, because a common understanding can be derived from the language specification itself. We implement these concepts in a new domain specific language called SmaCoNat to illustrate the feasibility and show that our concepts are barely covered by existing languages but significantly enhance readability and safety without violating deterministic parsability.
AB - Smart contracts enable autonomous decentralized organizations (DADs) in large, trustless and open trading networks by specifying conditions for automated transactions of cryptographically secured data. This data could represent cryptocurrencies but also sensor data or commands to Cyber-Physical Systems (CPS) connected to the Internet. To provide reliability, the contract code is enforced by consensus and the transactions it triggers are nonrevertible, even if they were not intended by the programmer, which could lead to dangerous system behavior. In this paper, we conduct a survey over existing smart contract platforms and languages to determine requirements for the design of a safer contract language. Subsequently we propose concepts that enhance the understanding of code by limiting confusing language constructs, such as nesting, arbitrary naming of operations, and unreadable hash identifiers. This enables human reasoning about the contract semantics on a much higher abstraction layer, because a common understanding can be derived from the language specification itself. We implement these concepts in a new domain specific language called SmaCoNat to illustrate the feasibility and show that our concepts are barely covered by existing languages but significantly enhance readability and safety without violating deterministic parsability.
KW - Blockchain
KW - CPS
KW - DSL
KW - IoT
KW - Smart Contract
UR - http://www.scopus.com/inward/record.url?scp=85057883955&partnerID=8YFLogxK
U2 - 10.1109/FDL.2018.8524068
DO - 10.1109/FDL.2018.8524068
M3 - Conference contribution
AN - SCOPUS:85057883955
T3 - Forum on Specification and Design Languages
BT - FDL 2018 - Proceedings of the 2018 Forum on Specification and Design Languages
PB - IEEE Computer Society
Y2 - 10 September 2018 through 12 September 2018
ER -