Сегодня, 30 октября 2017 года, доктор Рассел О'Коннор из компании Blockstream, в ходе семинара PLAS 2017 в Далласе, США, обнародовал свой труд “Simplicity: A New Language for Blockchains”, в котором описал новый язык программирования под названием Simplicity.

Данный типизированный функциональный язык программирования призван стать альтернативой существующим языкам, которые используются для разработки смарт-контрактов на основе технологии блокчейна.

Одним из основных отличий Simplicity от Bitcoin Script - простого скриптового языка, на котором можно исполнять простые сценарии (прообраз смарт-контрактов) в блокчейне Биткоина, является отсутствие проблемы с нехваткой некоторых опкодов. Например, в Bitcoin Script можно лишь складывать числа, но нельзя перемножать. В данном случае Simplicity предоставляет большую гибкость за счёт расширения возможностей языка.

Среди других важных особенностей стоит отметить:

  • Simplicity является Тьюринг-неполным языком;
  • Возможность реализации конечных автоматов;
  • Органичение рекурсии, защита от бесконечных циклов;
  • Возможность статического анализа кода;
  • Поддержка формальной семантики, формальной верификации;
  • Интеграция мерклизованных абстрактных синтаксических деревьв (MAST), Simplicity имеет встроенную поддержку MAST;

Эти особенности дают возможность разработчикам создавать более безопасный, эффективный и функциональный код «умных контрактов».

Работа О'Коннора даёт лишь первое представление о новом языке программирования для криптовалют, который по факту является проектом отдела разработок и исследований компании Blockstream, но потенциал для применения этого языка в будущих проектах компании можно увидеть уже сейчас. А пока остаётся только ждать официального релиза средств разработки для программистов Simplicity SDK.

Создатели Simplicity не указывают, в каких блокчейнах может быть применен новый язык, однако очевидно, что в первую очередь он нацелен на применение в Биткоине. Кроме того, его название ассоциируется с основным языком программирования Эфириума - Solidity, и это сходство определенно нельзя назвать случайным.

Интересующиеся уже могут ознакомиться с описанием языка на сайте разработчика.