Що таке Programmability?
Programmability це ідея про те, що криптоактиви можуть виконувати правила, записані в коді. Ви можете налаштувати, щоб гроші переміщувалися за тригерами, ділилися, надсилалися потоком або блокувалися без участі людини посередині. Уявіть автоплатіж у поєднанні з логікою if this then that для передачі вартості.
«Programmability означає, що все дозволено.» Не зовсім. Код виконується в рамках суворих правил блокчейну, з обмеженнями газу та жорсткими перевірками. Якщо код не дозволяє дію, ланцюг теж не дозволить її.
Як працює Programmability
Коротко: уявімо, ви хочете, щоб орендна плата розподілялася між співмешканцями першого числа кожного місяця.
- Крок 1: Ви надсилаєте транзакцію, яка викликає функцію контракту.
- Крок 2: Мережа виконує цю функцію точно так, як записано в Смартконтрактах, без прихованих домовленостей.
- Крок 3: Якщо правила пройшли перевірку, баланси оновлюються і перекази відбуваються. Якщо ні, все відміняється, ніби нічого не сталося.
- Крок 4: Для взаємозамінних токенів перекази слідують стандарту ERC 20, щоб кожен гаманець і додаток знали, що робити.
- Крок 5: Події записують дію, щоб панелі й боти могли реагувати, наприклад надсилати квитанції або запускати наступний крок.
Ось такий процес. Код встановлює правила, ланцюг підтримує їх виконання.
Чому Programmability має значення
Навіщо це потрібно? Бо код, що переміщує вартість, дає реальну можливість автоматизувати операції.
- Перевага: Автоматизуйте виплати, кредити, торги, повернення коштів або роялті під час сну.
- Перспектива: Це відкриває можливості для DeFi, ігор та інструментів для творців, але помилки можуть призвести до експлуатації, тож обережність краща за ажіотаж.
- Актуальність: Ви зустрінете це в dApps, DAO, NFT дропах та звичайних гаманцях, які планують або групують транзакції.
Дотримуйтеся перевірених стандартів і шаблонів. Для NFT найпоширеніший стандарт: ERC 721. Додавайте лише ті нестандартні елементи, які справді потрібні.
Основні характеристики Programmability
Що визначає її роботу:
- Детермінованість: Однаковий вхід дає однаковий результат на кожному вузлі.
- Компонуваність: Контракти можуть викликати інші контракти як блоки конструктора, швидко будуючи більші системи.
- Безперешкодність: Кожен може написати й розгорнути код, після чого інші можуть підключатися до нього.
- Прозорість: Логіка й транзакції публічні, тож ви можете перевірити, а не гадати.
- Атомарність: Усі кроки виконуються разом або жоден, що усуває напіввиконані стани.
Варіанти
Те саме поняття в різних варіаціях:
- Повні: Мови загального призначення, які можуть виразити майже будь-яку логіку.
- Скриптові: Обмежені інструкції, що роблять систему простішою й легшою для розуміння.
- На ланцюгу: Логіка виконується безпосередньо в ланцюгу для максимальної перевірності.
- Поза ланцюгом: Боти й оператори ініціюють дії в ланцюгу на основі зовнішніх спостережень.
Розгорнений код і минулі транзакції зберігаються в незмінному реєстрі. Якщо знадобляться оновлення, передбачте їх заздалегідь через проксі та таймлоки.
Приклад
Музичний dApp щохвилини надсилає роялті на кілька гаманців залежно від кількості прослуховувань, і все це з одного виклику контракту.
Цікавий факт
Віталік колись розповідав, що nerf у грі спонукав його уявити гроші, які дотримуються правил, які ніяка компанія не може змінити, і це допомогло надихнути Ethereum. Програмовані гроші з'явилися з нотаток до патчу, справжній шедевр.
Підсумок
Programmability дозволяє вказати грошам, що робити, а вони виконують це щоразу. Проста ідея, великий ефект.
