Що таке повнота за Тюрінгом і до чого тут Біткоїн

Одним із важливих термінів сучасної математики та програмування є повнота за Тюрінгом. Скриптова мова програмування, що використовується в Біткоїні (Script), – один із прикладів відмови від повноти за Тюрінгом. Ми розглянемо, чому це важливо і що це означає на практиці.

Повнота за Тюрінгом

Повнота за Тюрінгом – це система, що може бути використана для будь-якого алгоритму (незалежно від його складності) для пошуку рішення. У мовах програмування це може бути представлене як реалізація циклів та умов. Термін названий на честь видатного британського математика та вченого-криптографа Алана Тюрінга.

Повнота за Тюрінгом. Джерело: Medium

Більшість сучасних мов програмування є повними за Тюрінгом, адже такий підхід сприяє їх більшій функціональності та практичним перевагам для користувачів. У розрізі блокчейнів цифрових валют повнота за Тюрінгом переважно використовується при реалізації смарт-контрактів. Проте існують різні підходи, що підкреслюють принципову відмінність Біткоїна від альткоїнів.

Script – не повний за Тюрінгом

Повні та неповні за Тюрінгом платформи для роботи зі смарт-контрактами пропонують принципово різні підходи щодо задоволення потреб клієнтів у таких інструментах. Хоча блокчейн Біткоїна дозволяє реалізовувати алгоритми типу «якщо…то…в іншому випадку…», розробники свідомо відмовилися від повноти за Тюрінгом. Але чому?

Script розроблений таким чином, щоб унеможливити створення розрахункових циклів, що призводять до використання надмірних обчислювальних потужностей та створення непропорційного навантаження на ноди Біткоїна. Якби Script був би повним за Тюрінгом, то були б можливі Denial-of-Service (DoS) атаки на мережу Біткоїна.

Біткоїн-максималісти традиційно виступають проти додавання повноти за Тюрінгом до алгоритмізації Біткоїна, адже такий підхід створює надмірне навантаження та сповільнює виконання смарт-контрактів. Головним аргументом є концентрація на забезпеченні сталої роботи мережі та перевірки коректності та завершеності всіх транзакцій. Така мета не може бути успішно реалізована, якщо розробники будуть покладатися виключно на Тюрінг-повні реалізації.

Альткоїни та різні проєкти на алгоритмі консенсусу Proof-of-Stake, навпаки, готові пожертвувати стабільністю та захищеністю даних користувачів задля досягнення більшої масштабованості та функціоналу. Поєднуючи ончейн та офчейн-операції, вони можуть запропонувати різні варіанти смарт-контрактів, але належний рівень стабільності та захищеності тоді не забезпечується. На жаль, не всі користувачі розуміють ці нюанси й можуть звертати увагу на вторинні фактори, нехтуючи власною безпекою.

Як Біткоїн відповідає на тренд щодо розширення можливостей смарт-контрактів? Шляхом використання сайдчейнів. У такий спосіб масштабування мережі може бути покращено через вдосконалення функціоналу смарт-контрактів, але без додаткових загроз безпеці та стабільності мережі. Учасники повинні мати стимули щодо використання повних нод задля перевірки транзакцій та сприяння стабільності всієї мережі.

Типи смарт-контрактів

Відмова від повноти за Тюрінгом не заважає Біткоїну представляти декілька типів смарт-контрактів для користувачів. Найпопулярніший та один із найпростіших – це P2PKH, що дозволяє відправляти монети на іншу адресу. В результаті лише власник приватного ключа може надсилати коїни в майбутньому. Функціонал мультипідпису дозволяє створювати різні конфігурації та залучати декількох учасників до підтвердження транзакцій. У такий спосіб можна досягти балансу між усіма партнерами та запобігти концентрації влади в одного з них. Розповсюдженими є варіанти мультипідпису 2 з 3 або 3 з 5.

Мультипідпис: 3 з 5. Джерело: MultisigTools

Також можливим є використання смарт-контрактів із тимчасовим блокуванням монет. Щобільше, можливо вимагати декілька підписів протягом певного періоду часу, а потім буде достатньо одного підпису. В такий спосіб стає можливим попередити різні форс-мажорні обставини та зберегти контроль над монетами. Стандарт P2SH дозволяє відправляти коїни на різні типи адрес, включаючи й згадані варіанти.

Оновлення Taproot ще більше розширює функціонал смарт-контрактів Біткоїна, адже воно дозволяє відправляти коїни на довільну адресу або скрипт. Загальна кількість можливих скриптів складає 2^128, а використання монет є можливим за активації будь-якого з них. Пропорційно й розширюється використання Lightning-каналів, які теж є видом смарт-контрактів на другому рівні.

Загалом наявні можливості блокчейну Біткоїна є досить ефективними для задоволення потреб учасників мережі й забезпечення її стабільності у повністю децентралізованій формі. Lightning Network та сайдчейни сприяють ще більшій приватності та функціональності для користувачів. Тому розробники Біткоїна наочно демонструють реалізацію різних типів смарт-контрактів, уникаючи повноти за Тюрінгом. Іншими словами, альтернативні підходи, що пропонують інші цифрові активи не витримують критики, адже вони створюють загрози для користувачів, а, отже, й для усієї цифрової екосистеми своїх блокчейнів.

Висновки

Повнота за Тюрінгом – важлива теоретична концепція, що дозволяє зрозуміти переваги Біткоїна над іншими блокчейнами. Script навмисно обмежує використання певних циклів та умов задля запобігання перенавантаження мережі та уникнення проблем для Біткоїн-нод. Тому проєкти, які надають перевагу повними за Тюрінгом мовам програмування, не мають відповідного рівня безпеки.

Боротьба з біткоїн-міксерами: чому це не має сенсу Останнім часом у США значно посилився тиск на компанії, які надають послуги біткоїн-міксерів. Але чи дійсно анонімність – це злочин? Володимир Гришенко 30 квітня 2024
На чому заробляють майнери Всі знають, що майнери видобувають біткоїни. Але мало хто знає, з яких компонентів складається їхній дохід. Дмитро Харьков 29 квітня 2024
Топ-10 сайтів для біткоїнерів Більшість новачків, що цікавляться Біткоїном, шукають інформацію про нього в інтернеті. Але навіщо витрачати час, якщо ми вже знайшли 10 найбільш корисних і актуальних сайтів для тих, хто цікавиться головним цифровим активом. Дмитро Харьков 26 квітня 2024