Парачейн — це структура даних для конкретної програми. Вона глобально узгоджена та взаємодіє з валідаторами релейної мережі Polkadot (relay chain), яка відповідає за координацію роботи системи загалом. Майже завжди парачейн набуває форми блокчейну, але це не обов'язкова умова.
Парачейни можуть створити власний токен та запустити свою економіку. Вони не потребують таких схем, як PoS, але Polkadot дає їм повну свободу дій у реалізації ідей, чи то стейкінг, чи комісії за транзакції у власному токені. Релейна мережа забезпечуватиме виконання всіх транзакцій незалежно від правил парачейну.
Парачейни можуть взаємодіяти між собою. Для цього використовується Cross-Consensus Message Format (XCM, формат кросконсенсусних повідомлень) — стандарт, який визначає, як повинні надсилатися повідомлення. З його допомогою розробники визначають дані та джерела, які їх мережі отримуватимуть та надсилатимуть. Комунікація за допомогою XCM здійснюється не лише між мережами, а й між смартконтрактами та мостами. Ключовим елементом XCM є колатори.
Хто такі колатори?
Обслуговуванням парачейнів займаються мережеві адміністратори — колатори (collators). Вони дуже схожі на валідаторів будь-якого іншого блокчейну, наприклад Ethereum, але за гарантії безпеки відповідає Polkadot. Як учасники мережі (блокчейн-вузол, нода) вони підтримують повну ноду парачейна, зберігають всю потрібну інформацію про нього, збирають транзакції користувачів парачейна, об'єднуючи їх у кандидатів блоку, та створюють доказ переходу стану (state transition proofs proof-of-validity, PoV). За мотивацію та заохочення колаторів відповідає парачейн.
Можна подумати, що чим більше колаторів, тим безпечніша система, але це популярна помилка. Велика кількість колаторів уповільнює роботу мережі, а їх можливості зашкодити дуже обмежені. Вони можуть лише цензурувати транзакції, але парачейн легко подолає будь-яке блокування за рахунок всього кількох нейтральних колаторів, не досягаючи більшості. Теоретично навіть одного має вистачити для подолання цензури.
Як працює парачейн протокол?
Основна мета протоколу — провести блок парачейна від створення до включення за допомогою процесу. Він може повторюватися багаторазово і паралельно для кожного парачейна, підключеного до релейної мережі. У протоколі беруть участь валідатори та колатори. Загальна схема виглядає так:
Сам протокол складається з трьох етапів, що включають два розділи: конвеєр включення (inclusion pipeline) та процес затвердження (approval process). Нижче зображено переміщення блоку (білий квадрат) по всіх етапах справа наліво.
Конвеєр включення
Конвеєр включення — це шлях параблока від його створення до включення в релейну мережу, протягом якого він отримує різні статуси.
Ключові моменти в цьому розділі (процес на картинці йде справа наліво):
1. Валідатори призначаються всім парачейнам за допомогою процедури призначення валідатора (validator assignment).
2. Колатор створює кандидата в блок парачейна разом із PoV.
3. Колатор відправляє кандидата та PoV призначеним валідаторам. Кандидат отримує статус “відряджений” (seconded).
4. Валідатори є учасниками підсистеми “підтримка кандидатів” (candidate backing). Кандидати, які набрали достатньо тверджень про правдивість, стають підкріпленими (backable). Їх підкріплення — це набір підписаних тверджень.
5. Автора блоку релейної мережі вибирають за допомогою BABE (Blind Assignment for Blockchain Extension) механізму виробництва блоків. Автор може відзначити по 1 підкріпленому блоку для кожного парачейна, щоб увімкнути його в блок релейної мережі. Після цього кандидат вважається підтриманим (backed).
6. Кандидат отримує статус “очікує доступності” (pending availability), але ще не вважається частиною парачейна.
7. У наступних блоках релейної мережі валідатори є учасниками підсистеми “розподілу доступності” (availability distribution), щоб забезпечити доступність кандидата.
8. На цьому етапі машина станів релейної мережі отримує достатню кількість інформації, щоб вважати PoV блок доступним. Далі блок змінює статус на “включений” (included) і вважається частиною парачейна, переходячи в розряд повних блоків (параблоків).
У деяких випадках кандидат може бути не включений до парачейну:
1. Колатор не може передати блок жодному призначеному валідатору.
2. Кандидат не підтриманий валідаторами у підсистемі “підтримка кандидатів”.
3. Автор блоку релейної мережі не вибрав кандидата.
4. PoV кандидата недоступний протягом тайм-ауту, і він відкидається з релейної мережі.
Конвеєр включення повинен завершитися, перш ніж новий блок може бути прийнятий у певному парачейні. Після успішного завершення процесу включення параблок переходить у процес затвердження, який може відбуватися одночасно для багатьох блоків парачейна.
Процес затвердження
Попри те, що блок уже вважається частиною парачейну, він має статус “очікує затвердження” (pending approval). Polkadot припускає, що третина валідаторів може бути нечесними і помилково підтримати кандидата, навіть за випадкового відбору. Процес затвердження розв’язує цю проблему, дозволяючи виявити неправомірну поведінку постфактум.
Процес затвердження можна поділити на такі етапи:
1. Параблоки очікують затвердження протягом тимчасового вікна.
2. За цей час вторинні валідатори самостійно викликаються для повторної перевірки кожного параблока.
3.Вторинні валідатори отримують параблок з PoV і знову запускають функцію перевірки.
4. Далі відбувається обмін інформацією про результати перевірок, і там, де виникають розбіжності, починається суперечка, за якої всі валідатори повинні перевірити блок. Валідатори сторони, що програла у суперечці, — скорочуються.
5. Параблок затверджується чи відхиляється.
Візуальна демонстрація процесу затвердження (справа наліво):
Щоб застосунок міг використовувати парачейн та релейну мережу Polkadot, йому потрібно отримати доступ до слота.
Слоти для парачейнів
Нині кількість доступних слотів парачейнів обмежена на кілька років уперед. Їх всього близько 100 штук, а самі слоти розподіляються так:
1. Системні парачейни містять основні функції протоколу Polkadot, але у парачейнах, а не в релейній мережі.
2. Аукціони парачейнів — це аукціони, де користувачі голосують за проєкт власними токенами DOT. Переможець орендує слот. У разі, коли проєкт не може продовжити оренду, він стає паратредом.
3. Паратреди (Parathreads) — це ідея для парачейнів у вигляді тимчасового доступу до Polkadot без необхідності оренди слота, який ділиться між суперницькими мережами. Деякі з них не мають змоги орендувати слот. Вони вважають це недоцільним, адже у них іде плата за кожен виконаний блок.
Навіщо використовувати парачейни?
Парачейни масштабують систему Polkadot шляхом паралельної обробки транзакцій, зберігаючи при цьому загальну безпеку мережі.
У результаті парачейни вирішують відразу дві фундаментальні проблеми багатьох блокчейнів — масштабованість і гнучкість. Вони допомагають створити вузькоспрямовані блокчейни, які співпрацюють між собою для взаємовигоди.
Важливо зазначити і потенціал парачейнів. Наприклад:
1. Створення високочастотних мереж, що виконують багато швидких транзакцій завдяки великій оптимізації.
2. Створення приватних мереж, які не розкривають громадськості жодної інформації завдяки використанню нової криптографії.
3. Створення мереж, де реалізовано смартконтракти.
Навіть розробники Polkadot вважають, що повний потенціал використання парачейнів ще належить розкрити у майбутньому.