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