Блокчейн сегодня похож на музыкальную шкатулку: мелодия (правила игры) впаяна в механизм, и чтобы сменить её, приходится разбирать всю конструкцию. Каждый раз, когда разработчики хотят изменить логику приложения, они вынуждены проводить форк — раскалывать сеть на две ветки, которые потом конкурируют между собой. Это как если бы для установки нового приложения на телефон требовалось каждый раз пересобирать операционную систему.
Enso предлагает другой путь. Вместо того чтобы вшивать логику в код узла, она хранит её в самом состоянии блокчейна, рядом с данными. Состояние системы — это набор объектов, называемых акторами. Каждый актор имеет адрес, код и собственное хранилище. Когда пользователь отправляет транзакцию, она становится сообщением в общей очереди. Узел по очереди достаёт сообщения и передаёт их акторам-получателям. Те, в свою очередь, могут порождать новые сообщения. Так продолжается, пока очередь не опустеет.
Эта идея не нова: модель акторов придумали ещё в 1973 году. Но Enso доводит её до предела простоты. Убирает параллелизм и личные почтовые ящики, оставляя одну глобальную очередь. Остаются только два типа сущностей: акторы и сообщения. Ядерные акторы создаются при запуске и определяют правила, а пользовательские — создаются по шаблонам и хранят данные.
Практическая польза видна сразу. Разработчикам больше не нужно организовывать форки для рядовых обновлений логики. Пользователи получают меньше расколов сети и более предсказуемую эволюцию протокола. Форки остаются только для редких изменений виртуальной машины или консенсуса.
Блокчейн, который умеет хранить логику как данные, напоминает переход от компьютеров с коммутационными панелями к машинам с хранимой программой. Если идея приживётся, блокчейны станут похожи на операционные системы, где приложения можно обновлять без переустановки ядра. Музыкальная шкатулка превращается в пианино, на котором можно сыграть любую мелодию, не разбирая инструмент.
Название Enso отсылает к дзен-буддийскому кругу, который рисуют одним движением кисти: простота и завершённость в одном жесте. Виртуальная машина тоже стремится к минимализму: всего два типа сущностей — акторы и сообщения.