Експертні консультації для цього матеріалу надали розробники проєкту "Робономіка".
Що таке Polkadot?
Увага! Стаття застаріла і чекає на оновлення.
Polkadot — це технологія, покликана підвищити сумісність різних блокчейнів, наприклад, біткойна і Ethereum, і об’єднати їх у рамках єдиного мультиблокчейна.
Хто і коли створив Polkadot?
Polkadot створив д-р Гевін Вуд [Gavin Wood], знакова фігура в ранній історії Ethereum — він був співзасновником, першим головним технічним директором і головним розробником Ethereum. Вуд розробив код для першої імплементації платформи, написав її формальну специфікацію і створив мову програмування Solidity.
11 січня 2016 року Вуд залишив Ethereum, щоб зайнятися реалізацією проекту, здатного виправдати очікування, які, на думку Вуда, не зумів виправдати Ethereum.
За словами Вуда, ідея Polkadot народилася в нього влітку 2016 року, коли він чекав на отримання технічної документації з шардингу в Ethereum 2.0, щоб почати її імплементацію. У співпраці з розробником Мареком Котевичем [Marek Kotewicz] Вуд почав роботу зі створення "шардованої", максимально простої версії Ethereum, і до жовтня 2016 року підготував першу чорнову версію white paper Polkadot.
Ще працюючи в команді Ethereum, Вуд спільно з кількома колегами заснував EthCore, комерційну компанію з розробки блокчейн-технологій. Згодом EthCore змінила назву на Parity Technologies. Співробітники компанії створили Parity Ethereum Client, фреймворк Substrate, мережу Polkadot і мультипідписний гаманець Parity.
Влітку 2017 року Вуд і розробник Пітер Чабан [Peter Czaban] заснували некомерційну організацію Web3 Foundation, покликану сприяти розробці протоколів ПЗ децентралізованого інтернету.
Одним із перших завдань Web3 Foundation став контроль коштів, зібраних під час ICO Polkadot, яке відбулося з 15 жовтня по 27 жовтня 2017 року. Проект залучив приблизно $145 млн, продавши 5 млн нативних токенів DOT.
Які проблеми вирішує технологія Polkadot?
Polkadot покликана вирішити ключові проблеми, що перешкоджають технології блокчейн стати повномасштабним практичним додатком, а саме:
- Масштабованість: блокчейни так званого першого покоління не можуть обробляти величезну кількість транзакцій у передбачуваному децентралізованому світі майбутнього. Поки що мережеві ноди обробляють транзакції у форматі "один на один". Цей фактор стримує подальше зростання мережі.
- Ізоляція: блокчейни залишаються дискретними і незалежними, їм бракує двостороннього зв’язку та операційної сумісності.
Як влаштований Polkadot?
Структура Polkadot включає такі компоненти:
1. Relay Chain (зв’язувальний або ретранслювальний ланцюг) — це основний ланцюг Polkadot, що з’єднує всі індивідуальні блокчейни (парачейни) в мережі.
2. Parachain (парачейн, скор. від "паралелізований ланцюг") — індивідуальні паралельні блокчейни, які здійснюють транзакції і переносять їх у вихідний блокчейн. Парачейни будують так звані колатори: вони збирають транзакції користувачів і підтверджують блоки на основі алгоритму Proof-of-Validity (доказ валідності). За свою роботу колатори отримують нагороду, розмір якої залежить від конкретного парачейна. Діяльність колаторів аналогічна роботі майнерів у блокчейнах з алгоритмами Proof-of-Work і Proof-of-Stake.
3. Bridge Chain (букв., "ланцюговий міст") — призначений для з’єднання блокчейнів, які не використовують протоколи управління Polkadot (наприклад, блокчейни біткоїна, Ethereum і Tezos).
Механізм Relay Chain контролює дотримання консенсусу, відповідає за доставку повідомлень між ланцюгами-учасниками, а також сприяє фіналізації транзакцій. Relay Chain являє собою блокчейн із пулом валідаторів, на яких у випадковому порядку покладається завдання додавати і валідувати блоки в різних парачейнах. Для кожної транзакції валідатори повинні вносити депозит. Якщо транзакція відповідає правилам консенсусу, депозит повертається і валідатор отримує нагороду. Якщо правила порушено, застава пропадає.
Консенсус у ланцюзі-ретрансляторі досягається за допомогою двох механізмів на основі принципу персональної відповідальності. Один із них відповідає за виробництво блоку, інший — за фіналізацію. Поділ виробництва блоків і фіналізації розв’язує проблему обмежень масштабованості в протоколах із миттєвою фіналізацією (наприклад, Tendermint), уможливлюючи швидке виробництво блоків і даючи змогу більшій кількості валідаторів брати участь у досягненні консенсусу.
Назви двох цих механізмів являють собою акроніми: за виробництво нових блоків відповідає BABE (Blind Assignment for Blockchain Extension), за фіналізацію старих блоків — GRANDPA (GHOST-based Recursive Ancestor Deriving Prefix Agreement).
BABE — це алгоритм для створення блоків ланцюга-ретранслятора, що складаються із заголовків усіх валідних і доступних блоків парачейна, вироблених колаторами. Алгоритм BABE працює на основі слотів (часових інтервалів): право виробляти блок у ланцюзі-ретрансляторі в певному часовому інтервалі випадковим чином надається валідатору, відомому як слот-лідер. Право випускати наступний блок надається за допомогою обчислення з використанням верифікованої випадкової функції. Модель BABE нагадує Ouroboros Praos, компонент виробництва блоків у протоколі консенсусу Cardano.
GRANDPA — це механізм фіналізації, у якому кожен валідатор голосує за найвищий блок, який вважає валідним (фактично голосування відбувається за всіх предків блоку).
Усі блоки, за які проголосували своїми стейками більше двох третин валідаторів, фіналізуються. Оскільки можна миттєво фіналізувати безліч блоків, на досягнення консенсусу щодо фіналізації у валідаторів може піти більше часу, ніж потрібно на створення одного блоку. Це дає змогу GRANDPA підтримувати більший набір валідаторів, ніж традиційні BFT-алгоритми, які мають фіналізувати кожен блок окремо.
Валідаторів знаходять і затверджують так звані номінатори [nominators]. Вони вносять за валідаторів заставу, яку в них конфіскують у разі, якщо поведінка обраних ними валідаторів не відповідає правилам консенсусу. Опція оплати роботи номінаторів відрізняє алгоритм Nominated Proof-of-Stake (NPoS), на якому працює Polkadot, від традиційних алгоритмів Delegated Proof-of-Stake (DPoS).
Номінатори не беруть участі в процесі здійснення та підтвердження транзакцій. За порушеннями з боку валідаторів стежать сторожові ноди, так звані рибалки [fishermen]: вони виявляють ("рибалять") випадки несумлінної поведінки, створюють докази, що містять дані про конфліктні голосування валідатора, і отримують частку від конфіскованих ставок порушників.
Така схема дає змогу GRANDPA забезпечувати асинхронну підконтрольну безпеку: фіналізація двох будь-яких конфліктних блоків призведе до того, що відповідальні валідатори втрачають свої депозити (щонайменше дві третини всього депозиту). Доти, доки механізм виробництва блоків відповідає певним критеріям, фіналізований ланцюг зростає.
Механізм фіналізації GRANDPA використовується для всіх парачейнів у Polkadot. В обмін на механізм фіналізації кожен парачейн отримує опцію інтероперабельності з іншими парачейнами. Цей компроміс дає змогу Polkadot забезпечити простий комунікаційний механізм, що дає колаторам парачейна можливість взаємодіяти безпосередньо через вхідні та вихідні черги повідомлень.
Хоча парачейни використовують один і той самий механізм фіналізації, кожен з них може імплементувати різні механізми виробництва блоків, з різними особливостями та параметрами, оптимізованими під певний клас додатків.
Засоби розробки парачейна (Parachain Development Kits/PDK) — це інструменти, що значно спрощують розробку парачейнів спеціалізованого застосування. Одним із таких PDK є фреймворк Substrate, що йде в комплекті з Framework for Runtime Aggregation of Modularized Entities (FRAME).
Substrate включає вбудовані імплементації алгоритмів виробництва блоків: BABE, Aura та інші. Інше PDK, Cumulus, містить сполучний код, необхідний для з’єднання ланцюга на базі Substrate із мережею Polkadot. Спільно Substrate і Cumulus полегшують створення і зв’язок парачейнів із мережею Polkadot.
Залежно від алгоритму виробництва блоків і параметрів транзакційна пропускна здатність кожної мережі може варіюватися, тому загальну транзакційну пропускну здатність мережі Polkadot можна оцінити тільки приблизно.
Перша версія Polkadot передбачає роботу 100 парачейнів. За умови, що кожен парачейн здатний підтримувати щонайменше 10 транзакцій на секунду, нижня межа пропускної спроможності становить приблизно 1000 транзакцій на секунду.
Майбутні версії Polkadot дадуть змогу парачейну функціонувати як ланцюгу-ретранслятору другого рівня з приєднаними додатковими парачейнами, що сформують деревоподібну структуру, яка теоретично забезпечує безмежну пропускну здатність.
На певній стадії головний ланцюг-ретранслятор стає елементом, що обмежує ефективність системи, але тільки для того, щоб валідувати обробку вхідної черги, оскільки парачейни безпосередньо комунікують один з одним. За деякими оцінками, пристрій деревоподібної структури дасть змогу Polkadot масштабуватися до 10 000x здатності одного PoS-ланцюга.
Які функції виконує токен DOT?
Нативний токен мережі DOT виконує три головні функції:
- Управління: власники токенів повністю контролюють протокол, маючи привілеї, які на інших платформах закріплені за майнерами, — визначення структури транзакційних зборів, рішення щодо зміни протоколу, додавання або видалення парачейнів.
- Операції: токени DOT забезпечують функціонування базового механізму консенсусу Polkadot. Власники токенів мають бути активними учасниками мережі та здійснювати стейкінг токенів, протидіючи порушенням правил консенсусу.
- Винагорода: токени роздаються активним учасникам мережі.
Як фінансується проєкт Polkadot?
Хоча під час першого токенсейлу 2017 року проєкт залучив $145 млн, коштів на розробку не вистачило. У червні 2019 року Web3 Foundation провела додатковий продаж 500 000 DOT. Прогнозована капіталізація проєкту після цього зросла до $1,2 млрд.
Наприкінці липня 2020 року Web3 Foundation провела черговий приватний токенсейл, зібравши $43,6 млн.
Як розвивається проєкт Polkadot?
У листопаді 2018 року відбувся реліз платформи для запуску блокчейнів Substrate — інструменту, покликаного прискорити розвиток Polkadot і дати корпоративним користувачам можливість швидкого запуску розподілених реєстрів.
У серпні 2019 року команда розробників Polkadot запустила експериментальну версію протоколу взаємодії блокчейнів під назвою Kusama. Її позиціонували як випробувальний полігон, "який дасть змогу командам і окремим розробникам створювати й розгортати парачейни, а також тестувати функціональність з управління та розподілу Polkadot у реальних умовах".
Мережа Kusama працювала на механізмі консенсусу Proof-of-Authority (PoA), за функції нод валідаторів відповідала Web3 foundation. Функціональність мережі залишалася обмеженою.
Наприкінці лютого 2020 року початкову інтеграцію з блокчейном на базі платформи Substrate завершив проєкт Chainlink. Розробники Polkadot назвали це важливою віхою у впровадженні мережі децентралізованих оракулів Chainlink в екосистему протоколу.
Оракули необхідні для виконання смарт-контрактів і роботи dapps, які використовують дані з-за меж власного блокчейна. Надання надійних інформаційних каналів третьою стороною дає можливість домогтися взаємодії різних мереж і розширення сфери застосування смарт-контрактів і dapps.
За заявою розробників, блокчейни екосистеми Polkadot стануть першими за межами системи Ethereum, які застосовують оракули Chainlink. До запуску основної мережі Polkadot у повному обсязі інформаційні канали Chainlink обслуговуватиме експериментальний протокол Kusama. Поки що парачейн між Kusama і Chainlink перебуває на стадії розроблення.
5 березня 2020 року Web3 Foundation виділила грант для розроблення "моста" між блокчейнами біткоїна і Polkadot. Проєктом займається компанія Interlay. Фреймворк XCLAIM в основі мостового BTC-парачейна дасть змогу випускати забезпечені біткоїном токени PolkaBTC. Ці токени можна буде пересилати в інші парачейни. Після спалювання PolkaBTC у BTC-парачейні користувачі зможуть отримати біткоїни у співвідношенні 1:1 або ж еквівалентну суму в токенах DOT. Вихідний код BTC-парачейна викладено на Github, також доступні його специфікації.
26 травня 2020 року Web3 Foundation після більш ніж трьох років розроблення запустила першу фазу основної мережі блокчейна Polkadot, після чого мережа працювала з використанням механізму доказу повноважень (Proof-of-Authority).
Web3 Foundation забезпечувала роботу нод і валідацію блоків, а також могла втрутитися у функціонування блокчейна в разі виникнення критичної ситуації. Ці заходи були потрібні для зниження можливого негативного впливу багів і порушень безпеки. Власники токенів DOT отримали доступ до своїх акаунтів і можливість подати запит на розгортання ноди або ж запропонувати валідатора.
Перекази токенів DOT залишалися недоступними. З технічного погляду запущена перша фаза основної мережі більше нагадує тестову.
18 червня 2020 року за підсумками аудитів і доопрацювання фінальних аспектів відбувся перехід блокчейна Polkadot у фазу Nominated Proof-of-Stake (NPoS). Крім того, компанія Interlay презентувала "міст" між блокчейнами біткойна і Polkadot, поки що в стані Proof-of-Concept.
На початку липня 2020 року розробники Polkadot, Cosmos і Terra пообіцяли до кінця третього кварталу 2020 року презентувати DeFi-протокол Anchor, який дасть змогу інвесторам отримувати відсотковий дохід за депозитами в стейблкоїнах Terra.
20 липня 2020 року Web3 Foundation за підсумками голосування учасників спільноти склала з себе повноваження адміністратора мережі Polkadot. До цього моменту кількість валідаторів досягла 197. Це дало змогу перевести процес підтвердження на децентралізовану модель за участю спільноти. Розробники задіяли алгоритм Proof-of-Stake, в якому заблоковано більше половини випущених токенів DOT.
Систему управління на основі токенів протестували для затвердження пропозиції про обмеження повноважень Web3 Foundation. Видалення контролюючого модуля Sudo, що відбулося в результаті голосування, засновник Polkadot і директор Parity Technologies Гевін Вуд назвав "поетичним".
Після голосування мережа Polkadot позбулася позначки "CC1" або "ланцюг-кандидат 1". Це ознаменувало перехід до основної мережі і початок третьої та четвертої фази запуску.
27 липня 2020 року проєкт підбив підсумки другого голосування валідаторів. Голосування визначило, що один токен DOT має містити 10 млрд Planck — найменших пайових одиниць. Один старий DOT еквівалентний 100 новим. Web3 Foundation і Parity Technologies у голосуванні участі не брали.
4 серпня 2020 року розробники Polkadot запустили тестову мережу Rococo для впровадження шардингу з використанням парачейнів. Rococo призначена для тестування протоколів Polkadot, які забезпечуватимуть комунікацію між шардами. У Rococo доступні три окремі парачейни: "tick", "trick" і "track", причому розробники зможуть додавати власні паралельні ланцюжки.
Тестова мережа підтримує горизонтальну передачу повідомлень і використовує механізм консенсусу доказу повноважень (Proof-of-Authority). Розробники попередили, що поки система нестабільна, і пообіцяли додати в неї новий код для підготовки до повноцінного запуску основної мережі.
Підписуйтесь на новини ForkLog у Telegram: ForkLog Feed — уся стрічка новин, ForkLog — найважливіші новини та опитування.