Не порушуйте користувацький простір!

Не порушуйте користувацький простір!

Філософія Лінуса Торвальдса щодо розробки ядра Linux базується на одному основному принципі: «Не порушуйте користувацький простір». Як ця філософія співвідноситься з розробкою протоколу Біткоїна?

«Мауро, чорт забирай! Так, це баг – у ядрі. Скільки часу ти вже цим займаєшся? І ти все ще не засвоїв перше правило обслуговування ядра? Якщо зміна призводить до зламу програм, це баг в ядрі. Ми НІКОЛИ не покладаємо провину на користувацькі програми. Хіба це важко зрозуміти?», - Лінус Торвальдс.

Не порушуйте користувацький простір. Це золоте правило Лінуса Торвальдса для розробки ядра Linux. Для тих, хто не знайомий з природою Linux або операційних систем в цілому, ядро – це серце і душа операційної системи. Ядро – це те, що фактично керує апаратним забезпеченням, переміщуючи біти між сховищем та ОЗУ, між ОЗУ та ЦП під час обчислень, а також усіма маленькими пристроями та частинами комп'ютера, якими потрібно керувати на апаратному рівні.

Кожна програма, написана для операційної системи, взаємодіє з ядром. Коли ви завантажуєте Photoshop або Telegram, все, що робить програма, по суті зводиться до виклику ядра. «Агов, ядро, візьми те, що я щойно надрукував, оброби й відправ через мережеве з'єднання на сервер». «Агов, ядро, візьми зміну кольору, яку я зробив, вийми її з ОЗУ і відправ в ЦП для модифікації, а потім помісти назад в ОЗУ».

Коли ядро змінюється, подібно до Біткоїна, головна мета розробників – гарантувати, що наявні програми, які мають певний спосіб взаємодії з ядром, не вийдуть з ладу через зміни в ядрі. Звучить дуже знайомо в контексті Біткоїна та необхідності підтримувати зворотну сумісність для оновлень консенсусу мережі, чи не так?

«Серйозно, невже так складно зрозуміти це правило? Не можна порушувати юзерспейс такими дурницями. Я злюся, тому що твій імейл був неправильним від початку до кінця, а патч – це взагалі дурня повна. Він вводить код помилки (ENOENT), а потім, попри це божевілля, пропонує кілька варіантів для його виправлення («ret = = -ENOENT? -EINVAL : ret»).

Той факт, що ти потім намагаєшся виправдати порушення користувацького простору і звинувачувати якусь зовнішню програму, яка раніше працювала, просто ганебний. Ми так не працюємо. Зміни свій чортів «compliance-інструмент», тому що він явно не працює. І виправ свій підхід до програмування ядра», - Лінус Торвальдс.

Linux – один із найважливіших, якщо не найважливіший проєкт з відкритим вихідним кодом у всьому світі. Android працює на Linux, половина серверної інфраструктури (якщо не більше) працює на Linux. Вбудовані системи, що керують усіма видами комп'ютеризованих речей у вашому житті. Світ практично працює на Linux. Можливо, він і не вийшов на передній план, як того хотіли багато прихильників Linux, але він непомітно зайняв своє місце на задньому плані.

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

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

Не тільки розробники можуть порушити простір користувача, але і самі користувачі. Про це свідчить поява Ordinals, записів та токенів BRC-20 протягом останнього року. Це створює серйозні труднощі, якщо поглянути на мантру «не порушуйте користувацький простір» з погляду розробників. Хоча багато біткоїнерів в цій індустрії не люблять протокол Ordinals і засмучені тим, що їхні власні сценарії використання порушуються мережевим трафіком, створюваним користувачами Ordinals, обидві групи є користувачами.

Як розробникам розв’язати цю проблему? Одна група користувачів порушує простір користувача для іншої групи користувачів. Внесення зміни, що забороняє використання Ordinals або записів, явно порушує вимоги не порушувати користувацький простір. Я впевнений, що хтось скаже: «Але ж Taproot порушив користувацький простір!» у відповідь на цю дилему, але це не так. Активація Taproot та можливість використання даних-свідків розміром цілого блоку не порушили роботу будь-яких наявних програм або способів використання, створених на базі Біткоїна. Це просто відкрило двері для нових програм та варіантів використання.

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

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

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

Якщо ми підемо цим шляхом, це явно не приведе до створення розподіленої та нейтральної системи.

Біткоїн не знає меж Біткоїн не знає меж Біткоїн існує поза контролем центральної влади, і таким чином дозволяє людям контролювати та захищати свої кошти незалежно від політичного та соціального клімату, в якому вони опинилися. Bitcoin Magazine 27 квітня 2024
Чому мультипідпис пропонує вищий рівень безпеки Чому мультипідпис пропонує вищий рівень безпеки Що стосується безпеки біткоїна, існує безліч варіантів її максимізації. Ми розглянемо, як окремі особи та установи можуть безпечно зберігати біткоїн, використовуючи різні методи. Unchained Capital 27 квітня 2024
MICA та майбутнє регулювання біткоїна в Україні MICA та майбутнє регулювання біткоїна в Україні Розроблення та введення в дію фреймворку MiCA відкриває нову сторінку в історії регулювання біткоїна та криптовалют, що значно вплине на їх легальне становище по всьому світу, не обмежуючись виключно країнами Європейської економічної зони. Нові правила принесуть значні зміни, створивши регульований простір, де інтереси споживачів та бізнесу у сфері криптоактивів будуть знаходитися в балансі. Ганна Воєводіна 22 квітня 2024