Overview of the Languages for Safe Smart Contract Programming

Blockchain technologies are gradually being found an application in many areas, especially in FinTech. As a result, a lot of blockchain platforms have emerged with the support of smart contracts that are intended to automate party interactions. However, it has been shown that they are prone to attac...

Full description

Bibliographic Details
Main Authors: Alexey Valerievitch Tyurin, Ivan Vladimirovitch Tyulyandin, Vladimir S. Maltsev, Jacob Alexandrovitch Kirilenko, Daniil Andreevitch Berezun
Format: Article
Language:English
Published: Ivannikov Institute for System Programming of the Russian Academy of Sciences 2019-09-01
Series:Труды Института системного программирования РАН
Subjects:
Online Access:https://ispranproceedings.elpub.ru/jour/article/view/1185
_version_ 1819025431436722176
author Alexey Valerievitch Tyurin
Ivan Vladimirovitch Tyulyandin
Vladimir S. Maltsev
Jacob Alexandrovitch Kirilenko
Daniil Andreevitch Berezun
author_facet Alexey Valerievitch Tyurin
Ivan Vladimirovitch Tyulyandin
Vladimir S. Maltsev
Jacob Alexandrovitch Kirilenko
Daniil Andreevitch Berezun
author_sort Alexey Valerievitch Tyurin
collection DOAJ
description Blockchain technologies are gradually being found an application in many areas, especially in FinTech. As a result, a lot of blockchain platforms have emerged with the support of smart contracts that are intended to automate party interactions. However, it has been shown that they are prone to attacks and errors which lead to money loss. To date, there has been a wide range of approaches for making smart contracts safer that included analysis tools, reasoning models, and safer and more rigorous programming languages. In this paper, we provide an overview of smart contract programming languages design principles, related vulnerabilities, and future research areas. The provided overview is meant to outline the to date state of languages and to become a possible basis for future proceedings, and show approaches, used by the community, to reach safe and usable language for smart contracts. We have split all found vulnerabilities by source of their arising. Various languages’ characteristics such as abstraction level, paradigm, Turing completeness and main features are summarized in the table. Additional information about languages is provided, e.g. model of execution and tools for static analysis.
first_indexed 2024-12-21T05:10:34Z
format Article
id doaj.art-1703302e3e6a4662838a0bea957b0192
institution Directory Open Access Journal
issn 2079-8156
2220-6426
language English
last_indexed 2024-12-21T05:10:34Z
publishDate 2019-09-01
publisher Ivannikov Institute for System Programming of the Russian Academy of Sciences
record_format Article
series Труды Института системного программирования РАН
spelling doaj.art-1703302e3e6a4662838a0bea957b01922022-12-21T19:15:04ZengIvannikov Institute for System Programming of the Russian Academy of SciencesТруды Института системного программирования РАН2079-81562220-64262019-09-0131315717610.15514/ISPRAS-2019-31(3)-131173Overview of the Languages for Safe Smart Contract ProgrammingAlexey Valerievitch Tyurin0Ivan Vladimirovitch Tyulyandin1Vladimir S. Maltsev2Jacob Alexandrovitch Kirilenko3Daniil Andreevitch Berezun4Санкт-Петербургский государственный университетСанкт-Петербургский государственный университетСанкт-Петербургский государственный университетСанкт-Петербургский государственный университетНациональный исследовательский университет «Высшая школа экономики»Blockchain technologies are gradually being found an application in many areas, especially in FinTech. As a result, a lot of blockchain platforms have emerged with the support of smart contracts that are intended to automate party interactions. However, it has been shown that they are prone to attacks and errors which lead to money loss. To date, there has been a wide range of approaches for making smart contracts safer that included analysis tools, reasoning models, and safer and more rigorous programming languages. In this paper, we provide an overview of smart contract programming languages design principles, related vulnerabilities, and future research areas. The provided overview is meant to outline the to date state of languages and to become a possible basis for future proceedings, and show approaches, used by the community, to reach safe and usable language for smart contracts. We have split all found vulnerabilities by source of their arising. Various languages’ characteristics such as abstraction level, paradigm, Turing completeness and main features are summarized in the table. Additional information about languages is provided, e.g. model of execution and tools for static analysis.https://ispranproceedings.elpub.ru/jour/article/view/1185блокчейнбезопасность смарт-контрактовязыки программирования
spellingShingle Alexey Valerievitch Tyurin
Ivan Vladimirovitch Tyulyandin
Vladimir S. Maltsev
Jacob Alexandrovitch Kirilenko
Daniil Andreevitch Berezun
Overview of the Languages for Safe Smart Contract Programming
Труды Института системного программирования РАН
блокчейн
безопасность смарт-контрактов
языки программирования
title Overview of the Languages for Safe Smart Contract Programming
title_full Overview of the Languages for Safe Smart Contract Programming
title_fullStr Overview of the Languages for Safe Smart Contract Programming
title_full_unstemmed Overview of the Languages for Safe Smart Contract Programming
title_short Overview of the Languages for Safe Smart Contract Programming
title_sort overview of the languages for safe smart contract programming
topic блокчейн
безопасность смарт-контрактов
языки программирования
url https://ispranproceedings.elpub.ru/jour/article/view/1185
work_keys_str_mv AT alexeyvalerievitchtyurin overviewofthelanguagesforsafesmartcontractprogramming
AT ivanvladimirovitchtyulyandin overviewofthelanguagesforsafesmartcontractprogramming
AT vladimirsmaltsev overviewofthelanguagesforsafesmartcontractprogramming
AT jacobalexandrovitchkirilenko overviewofthelanguagesforsafesmartcontractprogramming
AT daniilandreevitchberezun overviewofthelanguagesforsafesmartcontractprogramming