Андрій Кириленко, директор Центру глобальних фінансів та технологій, розповідає, як об’єктно-орієнтоване програмування допомагає подолати недовіру.
Блокчейн зазвичай описують як розподілений реєстр: база даних, доступна всім користувачам. Цей опис не є неправильним, але все ж залишає бажати кращого. Це ніби називати автомобіль «екіпажем, що самостійно рухається», а портативний персональний комп’ютер — «смартфоном».
Вперше стаття була опублікована на www.imperial.ac.uk
Насправді блокчейн — це комп’ютер: скінченний автомат (англ. finite state machine). Наразі він далекий від ідеалу. Він дуже повільний, і для зміни стану потребує кількох хвилин. Він не точний — ця зміна стану імовірнісна. Окрім того, він дорого коштує і споживає для зміни стану багато енергії. І все ж, це справді глобальний комп’ютер, який не знаходиться у жодній конкретній фізичній чи віртуальній машині. А, головне, він дозволяє анонімним користувачам ділитися обчислювальною потужністю та обсягом пам’яті задля отримання винагороди.
Існує безліч таких комп’ютерів — зокрема, Bitcoin, Ethereum та Ripple. Вони являють собою далекі від ідеалу скінченні автомати й нагадують перші комп’ютери, такі як ENIAC (електронний числовий інтегратор та обчислювач). Вони більше схожі на калькулятори, аніж на комп’ютери. Найбільша проблема з ENIAC полягала в тому, що він не був призначений для одночасного зберігання даних і програм у пам’яті, тож на початку нової операції доводилось перезавантажувати вхідні дані разом із кодом виконання.
На противагу цьому, блокчейн ґрунтується на блискучій концепції об’єктно-орієнтованого програмування. Основою об’єктно-орієнтованого програмування є механізм, згідно з яким дані й код виконання зберігаються разом в одному місці, яке називається об’єктом. Приміром, об’єкт у блокчейні Bitcoin чи Ethereum складається з даних (профілю користувача) та коду (команд для відправки й отримання платежів). Найважливіше те, що об’єкти мають ідентифікатори, але одразу після створення їхній вміст лишається повністю анонімним і незмінним — як у чорному ящику. На початку це робилося для зменшення кількості помилок у коді з метою, щоб недбалий програміст не міг помилково змінити об’єкт.
Після глобальної фінансової кризи цю задумку інженерів, покликану зберегти надійність коду, почали розглядати у значно ширшому сенсі — довірі. Одне з визначень довіри — «тверда віра у надійність, правдивість чи здатність когось або чогось». Саме її втратили фінансові установи, на порятунок яких пішли сотні мільярдів грошей платників податків. Об’єктно-орієнтоване програмування гарантує довіру за самою своєю суттю.
Як це працює? Щойно об’єкт визначено, він може робити лише те, що дозволяє його інтерфейс зв’язку — обмінюватися повідомленнями з іншими об’єктами. Для блокчейнів Bitcoin або Ethereum повідомлення є транзакціями. Транзакції передбачають обмін «вартістю» в криптовалюті — наприклад, Bitcoin. Далі транзакції можна майнити [від англ. слова mining — видобування корисних копалин]. Для цього слід розв’язати криптозадачу, яка чимось нагадує кросворд судоку. Її дуже складно розв’язати (саме тому це займає кілька хвилин), але легко перевірити. Тисячі майнерів використовують «гігахеші» обчислювальних потужностей, щоб розв’язати задачі з метою отримання винагороди. Майнінг однієї транзакції зазвичай не дуже вигідний, тож кожен майнер складає кілька транзакцій у блок, а потім майнить цей блок.
Часто кілька майнерів розв’язують задачу одночасно. У такому разі слід визначити, хто сформував останній блок і, відтак, має право отримати винагороду. Цей процес робить зміну імовірнісною — стан блокчейну змінюється, оскільки інший блок «закривається» і прикріплюється до ланцюжка, але заздалегідь невідомо, хто саме вирішив криптозагадку, і чиї рішення увійдуть до наступного блоку. Саме тому блокчейн є імовірнісним скінченним автоматом (англ. probabilistic finite state machine)..
Тепер стає зрозуміло, що надійність блокчейну ґрунтується на його об’єктно-орієнтованій архітектурі. Всередині об’єктів користувачі можуть залишатися анонімними. Їм не потрібно бути знайомими між собою чи довіряти одне одному. Транзакції виконуються лише у тому випадку, якщо підтверджено, що користувачі дійсно володіють заявленими коштами. Немає потреби в «довірених» посередниках, інспекторах чи регуляторах. Обробка транзакцій та перевірка блоків передаються до розподіленої мережі майнерів, які через розв’язання криптозадач разом формують блоки за винагороду у вигляді криптовалюти — незалежно від ідентичності користувачів.
Таким чином, можна підсумувати, що блокчейн — це досить надійний комп’ютер, який, втім, далекий від ідеалу. В 1946 році ENIAC також був далеким від ідеалу. Втім, усім нам відомо, що відтоді комп’ютери кардинально змінили світ. Отже, питання насправді полягає в тому, чи вдасться блокчейну докорінно змінити галузь обчислювальної економіки, об’єднуючи покупців і продавців обчислювальних ресурсів.
У Центрі глобальних фінансів та технологій бізнес-школи Імперського коледжу ми працюємо над відповіддю на це питання вартістю трильйон доларів. Як фінансові економісти, ми вважаємо, що відповідь зводиться до розробки блокчейну, який мінімізує чисті експлуатаційні витрати, а також до створення гнучких стимулів винагороди, що максимізують використання розподілених обчислювальних ресурсів. Ми переконані, що відповідь існує. Знайдeмо її.
Головне зображення: depositphotos.com/Tzido
Застереження
Автор не є співробітником, не консультує, не володіє акціями та не отримує фінансування від жодної компанії чи організації, яка б мала користь від цієї статті, а також жодним чином з ними не пов’язаний