Что такое Programmability?
Programmability это идея о том, что криптоактивы могут следовать правилам, записанным в коде. Деньги можно настроить так, чтобы они перемещались по триггерам, делились, передавались по потоку или блокировались без участия человека. Представьте автоплатеж вместе с логикой «если X, то Y» для управления средствами.
«Programmability означает, что всё позволено.» Не совсем. Код работает в рамках строгих правил блокчейна, с лимитами газа и жёсткими проверками. Если код не позволяет действие, сеть тоже его не выполнит.
Как работает Programmability
Краткий обзор: допустим, вы хотите распределять арендную плату между соседями в первый день каждого месяца.
- Шаг 1: Вы отправляете транзакцию, которая вызывает функцию контракта.
- Шаг 2: Сеть выполняет эту функцию точно так, как написано в Smart Contracts, без закулисных договорённостей.
- Шаг 3: Если правила пройдены, балансы обновляются и переводы происходят. Если нет, всё откатывается, как будто ничего не случилось.
- Шаг 4: Для взаимозаменяемых токенов переводы следуют стандарту ERC 20, чтобы каждый кошелёк и приложение знали, что делать.
- Шаг 5: События регистрируют действие, чтобы дашборды и боты могли отреагировать, например отправить чек или запустить следующий шаг.
Это и есть процесс. Код задаёт правила, цепочка следит за их исполнением.
Почему Programmability важна
И что с того? Потому что код, который перемещает стоимость, это способность, которой действительно можно пользоваться.
- Выгода: Автоматизируйте выплаты, кредиты, сделки, возвраты или роялти во время сна.
- Перспектива: Это открывает возможности для DeFi, игр и инструментов для создателей, но ошибки могут привести к exploit, поэтому осторожность важнее шумихи.
- Актуальность: Вы встретите это в dApps, DAO, NFT дропах и в обычных кошельках, которые планируют или группируют транзакции.
Придерживайтесь проверенных стандартов и шаблонов. Для NFT обычно используют ERC 721. Добавляйте только действительно нужные изменения.
Ключевые характеристики Programmability
Что делает это возможным:
- Детерминированность: Один и тот же ввод даёт тот же вывод на каждом узле.
- Композиционность: Контракты могут вызывать другие контракты, как блоки Лего, быстро создавая более крупные системы.
- Отсутствие разрешений: Любой может писать и развертывать код, а другие могут подключаться к нему.
- Прозрачность: Логика и транзакции публичны, поэтому можно проверить, а не догадываться.
- Атомарность: Все шаги завершаются вместе или ни один из них, что исключает наполовину выполненные состояния.
Варианты
Та же идея, разные исполнения:
- Полные: Языки общего назначения, способные выразить почти любую логику.
- Скриптовые: Ограниченные инструкции, которые упрощают анализ и понимание.
- На цепочке: Логика выполняется непосредственно в цепочке для максимальной проверяемости.
- Вне цепочки: Боты и операторы запускают действия в цепочке, отслеживая события снаружи.
Развернутый код и прошлые транзакции хранятся в immutable реестре. Если нужны обновления, планируйте их заранее с прокси и таймлоками.
Пример
Музыкальное dApp ежеминутно распределяет роялти по нескольким кошелькам в зависимости от числа прослушиваний, всё из одного вызова контракта.
Интересный факт
Виталик однажды сказал, что изменение баланса в игре заставило его представить деньги, которые следуют правилам, которые ни одна компания не сможет изменить. Это помогло вдохновить Ethereum. Programmable cash появился из заметок к обновлениям.
Итоги
Programmability даёт возможность задавать правила деньгам, после чего они выполняют их каждый раз. Простая идея, большое влияние.
