Не так давно Facebook відкрив завісу таємниці від своєї нової валюти - Libra.У рамках своєї презентації вони опублікувалидокументи - офіційний і три технічних - проблокчейне Libra, мовою Move і LibraBFT. Незважаючи на спричинений цим шторм в Твіттері тролінг на Github, я дав собі працю трохи почекати, щоб краще оцінити ситуацію перш, ніж сісти за клавіатуру.
</ P>Я зрозумів, що вся ця критика парадоксальним чином свідчить на користь важливості цієї події.
У цій публікації я розповім про технічні деталі нового блокчейну, включаючи такі аспекти, як консенсус і децентралізація.Перш за все, я постараюся пролити світло на характер запущеного Facebook соціального руху, макроекономічні та геополітичні ефекти Libra, а також розгляну питання про передбачуваний вплив нової валюти на блокчейн-простір.
технічний огляд
Саме ця частина викликає у мене найбільшерозчарування щодо Libra. На жаль, в Libra немає нічого особливого, а в деяких речах я б навіть сприйняв її технічні рішення як регрес. Давайте почнемо огляд Libra з тієї її частини, яка найбільш нагадує Ефіріум - її структури TX:
Переклад документа: "3.2 Транзакційна структура. Транзакція - це підписане повідомлення, що містить наступні дані:
- Адреса відправника: адреса облікового запису відправника транзакції. Віртуальна машина зчитує послідовність номера, ключа аутентифікації і балансу зберігаються на облікового запису Libra.Т ресурсів.
- Відкритий ключ відправника: відкритий ключ, відповідний закритому ключу, що використовується для підпису торгової операції. Хеш цього відкритого ключа повинен збігатися з ключем перевірки автентичності, що зберігаються на облікового запису Libra.Т відправника.
- Програма: сценарій транзакції переміщення байт-коду для виконання, додатковий список входів в сценарій і необов'язковий список модулів байт-коду для публікації.
- Ціна на газ: кількість монет Libra, які відправник готовий заплатити за одиницю газу за виконання транзакції.
- Максимальна кількість газу: максимальна кількість одиниць газу, яке транзакція може використовувати до того, як вона буде зупинена.
- Порядковий номер: ціле число без знака, яке має дорівнювати порядковому номеру облікового запису Libra.Т відправника ресурсу. Після виконання цієї транзакції порядковий номер буде збільшується на одиницю. Оскільки тільки одна транзакція може бути зафіксована для даного порядкового номера, транзакції не можуть бути відтворені ".
Перше, що кидається в очі, це те, що,подібно Ефіріуму і на відміну від біткойнов, основу Libra складають облікові записи, а не UTXO (вихід невитрачених транзакцій). Ми можемо бачити порядковий номер (відомий в Ефіріуме як "nonce"), що підраховує транзакції на кожній облікового запису, щоб запобігти дублюванню транзакцій. Наступний момент, що співпадає з Ефіріумом - це ціна газу і максимальне число одиниць газу - Libra навіть запозичує сам термін "газ" у Ефіріума.
По-друге, варто відзначити, що потрібновказувати і адреса, і відкритий ключ, з якого відправляються TX. Це робиться, щоб поширити різні схеми підписів, як це вже відбувається в Ефіріуме - цей механізм реалізований у них досить добре. Проте, на практиці, Libra вимагає підпису тільки однієї схеми - ECDSA, яка давно не є чимось особливим. Побачити щось на зразок підписів Шнорра було б актуальніше і по-новаторському, і залишало б набагато краще враження.
Перше цікаве відміну Libra від Ефіріумаполягає в тому, що у першій відсутній поле значення, а саме, поняття нативного токена системи у віртуальній машині Libra (вона називається Move), де токен Libra реалізований так само, як і будь-який інший токен поверх віртуальної машини Move (MVM). Я особисто вважаю цей хід суто позитивним явищем. Більшість розробників Ефіріума визнають, що одночасна підтримка ефіру і ERC20 - досить дивне захід.
Однак в програмному поле виявляється більшважлива відмінність від Ефіріума. Тут ми виявляємо, що MVM діє зовсім інакше, ніж EVM (віртуальна машина Ефіріума). Щоб відрізнити їх один від одного, важливо подивитися на твердження щодо MVM:
У Ефіріуме, коли ви публікуєте контракт, вінотримує свою власну адресу, який діє як окремий "об'єкт" зі своїм власним сховищем, і т.д. Він також може звертатися до інших контрактах, і це звернення буде неможливо відрізнити від будь-якого іншого (тут є невелика тонкість, що стосується tx.origin, в яку я не буду вдаватися).
Проте, в MVM код зберігається у вигляді модулів. Коли модуль публікується, він зберігається на адресу, який його створив. Модулі можуть створювати ресурси, які зберігаються під обліковими записами, з якими вони пов'язані (див. Малюнок).
Поле програми в транзакції схоже на основнийпрограмний метод. Воно містить код, який також може викликати різні модулі. Зверніть увагу, що це відчутно відрізняється від Ефіріума, так як навіть якщо модуль використовує інший модуль, що викликає сторона завжди є вихідною обліковим записом. Це зовсім інший тип "смарт-контрактів", ніж в Ефіріуме.
Однією з ілюстрацій цієї різниці можна вважативідсутність бібліотек в Ефіріуме. Весь код, опублікований в Ефіріуме - це код смарт-контрактів, який наділяється своєю власною сутністю. Для подібних цілей люди придумали такі речі, як проксі і логічні контракти, які дозволяють переробляти код. Але в Ефіріуме це реалізовано дуже неприродно, що призвело до таких речей, як, наприклад, злом Parity. Libra дотримується прямо протилежної підходу: тут контракти не наділяються властивостями суверенних суб'єктів, але є модулі, які можуть бути використані (зі схожими цілями).
Для мене це серйозний крок в невірному напрямку. Я відчуваю, що контракти як суб'єкти відкривають величезний спектр можливостей, найбільш очевидними і перспективними з яких безумовно є DAO структури. Я не впевнений, що розумію, з яких міркувань був обраний саме такий підхід. Головним аргументом Libra стала небезпечність смарт-контрактів, що, безумовно, є питанням надзвичайної важливості. Однак, на мій погляд, ці типи проблем можуть бути вирішені на більш високих рівнях, таких як компілятори, без впливу на архітектуру системи.
Останній технічний коментар стосуєтьсяконфіденційних транзакцій. Якщо і була у Libra можливість зробити щось реально революційне, привнести в свій продукт ряд істотних технологічних інновацій, що дозволяють виробляти конфіденційні транзакції, подібно Monero, ZCash і т.п. - то ця можливість Libra була повністю проігнорована, і це по-справжньому прикро.
Консенсус, децентралізація і семантика
Механізм консенсусу у Libra заснований на давньоїакадемічної традиції протоколів BFT. Ці протоколи використовуються для досягнення консенсусу між набором відомих валідаторів. Таке рішення явно не децентралізовано, в прямій відповідності з технічним документом Libra.
Проект Libra стверджує, що в майбутньому вонимають намір перейти до моделі proof-of-stake, при якій валідатори можуть бути панелізіровани, а також змінені. Мені дуже важко в це повірити з двох причин: по-перше, чим більше актив, тим важче централізованим суб'єктам відмовитися від його контролю, як з-за бажання зберегти свою владу, так і з-за вимог регулюючих органів. Тому, якщо вони не вирішують децентралізувати контроль над механізмом консенсусу в той період, коли використання активу ще дуже мало, важко повірити, що вони зроблять це в майбутньому.
По-друге, Libra будує модель, при якій токенпідтримується індексом активів. Це само по собі робить його централізованою системою. Важко собі уявити, як можна об'єднати безпомилкове доказ моделі proof-of-stake з прив'язаним токеном такого роду, який асоціація Libra повинна буде емітувати і спалювати.
Ще одним питанням, що підлягають обговоренню, явважаю семантику. Асоціація Libra називає свою систему блокчейном. Хоча цей термін може бути вірним з технічної точки зору, я б все ж визнав його таким, що вводить нас в глибока помилка. Треба розділяти блокчейн з дозволу (такий як Libra) і блокчейн не вимагає дозволів (такий як, наприклад, біткойнов, Ефіріум і т.д.), в якому кожен може брати участь в процесі консенсусу. Тут немає істинного або хибного, так як це чиста семантика, але я вважаю, що блокчейн - це концепція, яка була розроблена з тим, щоб прийти до консенсусу без необхідності в дозволах. Дозволені системи були відомі і можливі до виходу в світ статті, написаної Сатоши, і тому я думаю, що (в разі Libra) використання терміна блокчейн - це лише спроба пропіаритися на кріптошуміхе.
Макроекономічні, соціальні та геополітичні ефекти
Мабуть, найцікавіше в Libra, це соціальнінаслідки, які несе з собою нова криптовалюта. І хоча я досить критично налаштований по відношенню до її технічних особливостей, думаю, все ж запуск Libra - це величезний крок у правильному напрямку. За останнє сторіччя гроші встигли повністю трансформуватися в систему фіата, монополізовану державами. Я вважаю, що приватні компанії, такі як Facebook, що випускають свої власні маркери і конкуруючі з фіатнимі валютами на вільному ринку, де учасники мають можливість вибирати, що їм краще використовувати - принесуть безумовну користь користувачам цифрових валют по всьому світу.
Я також хотів би вказати на вибір Libra вщодо того, щоб не прив'язувати свій токен до долара США. Це може здатися дрібницею, але насправді це серйозне рішення, яке, ймовірно, довго і багато обговорювалося. Вибравши цей шлях - і навіть на повний голос оголосивши про нього в заяві, що метою рішення є підтримання стабільної вартості токенов - Libra (і Facebook) вступили в пряме зіткнення з центральними банками, і, перш за все, з Федеральною резервною системою США. Військові не забарилися зробити стійку: міністр фінансів Франції, Конгрес США і навіть сам Дональд Трамп встали в опозицію до цього кроку з боку Facebook.
Зверніть увагу, що на додаток достратегічного курсу - не прив'язуватися до курсу долара - заява Facebook про те, що Libra буде підкріплена валютним індексом, також є сильним тактичним ходом. Потенційно таким чином вони можуть впливати на держави, які будуть намагатися протистояти Libra тим, що не стануть включати валюту в індекс.
Не можна недооцінювати цей зрушення в розстановці сил. Хоча Libra НЕ децентралізована, вона є відкритою системою. А саме, вона не спирається на державну систему ідентичності. Будь-яка людина може отримати обліковий запис Libra, просто створивши пару закритого і відкритого ключів. Це може подарувати еквівалент банківського обслуговування двом мільярдам людей, позбавленим можливості користуватися банківськими послугами.
І останнє, про що хотілося б сказати - це протому, як вся ця історія вплине на долю не потребують дозволу бухгалтерських книг. Я бачу два сценарії: у одному регулятори в якійсь епічній битві битимуться з Libra і здобудуть перемогу. Facebook відмовиться від свого проекту і закриє його. У цьому випадку системи, які не потребують дозволу, отримають великий поштовх до розвитку, оскільки вони, будучи децентралізованими, виявляться єдиною реальною альтернативою, яка буде здатна допомогти уникнути тиску регуляторів. У другому сценарії Libra досягне успіху на вільному ринку, де приватні токени будуть конкурувати з фіатнимі валютами. У цьому випадку кожному користувачеві доведеться вибирати між такими функціями, як прив'язка до Фіату, децентралізація, конфіденційність і т.д. Хоча це може зайняти більше часу, ніж мені того хотілося б, я як і раніше оптимістично налаштований щодо того, що в довгостроковій перспективі децентралізація рано чи пізно проявить себе як найбільш цінне з усіх властивостей криптовалюта.
</ P>