Що таке шардінг? Пояснення цієї концепції масштабування Ethereum

As дебати про масштабування у криптовалютах, деякі потенційні рішення фактично розробляються протягом досить тривалого часу.

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

Шардинг є складною темою, особливо якщо це застосовувати до децентралізованої однорангової мережі наприклад Ethereum де глобальний стан мережі постійно оновлюється.

Отже, що таке шардінг і як він може допомогти мережам блокчейн масштабуватися?

Розподіл і фон розподілених обчислень

Насправді шардінг набагато старіший за технологію блокчейн і був реалізований в різних системах від оптимізації бізнес-баз до Глобальна база даних Spanner від Google.

  • По суті, шардінг — це особливий метод горизонтального розподілу даних у базі даних.
  • Загалом, база даних розбивається на маленькі шматочки, які називаються «шарди», які, об’єднані разом, утворюють вихідну базу даних.
  • У розподілених мережах блокчейн мережа складається з ряду вузлів, підключених у одноранговому форматі, без центрального органу влади.
  • Як і у випадку з поточними блокчейн-системами, кожен вузол зберігає всі стани мережі та обробляє всі транзакції.
  • Хоча це забезпечує високий рівень безпеки завдяки децентралізації, особливо в системах Proof of Work, таких як Біткойн та Ethereum, це призводить до законних проблем масштабування.

Шардінг Ethereum

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

На жаль, оскільки мережа збільшується в розмірах експоненціально, консенсус збільшується лише лінійно. Це обмеження пов’язане з необхідним зв’язком між вузлами, необхідним для досягнення консенсусу.

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

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

Простішим способом було б уявити поділ Сполучених Штатів на штати.

Хоча кожен штат (у цьому випадку шард) є частиною більшої Сполучених Штатів (мережі Ethereum), вони мають свої власні правила, кордони та підгрупи населення. Проте вони поділяють універсальну мову та культуру як частину їхньої більшої мережі, яка становить країну.

А ще краще, в Віталік Бутерінвласні слова:

 «Уявіть собі, що Ethereum розділений на тисячі островів. Кожен острів може робити свою справу. Кожен з островів має свої унікальні особливості, і всі, хто належить на цьому острові, тобто облікові записи, можуть взаємодіяти один з одним І вони можуть вільно насолоджуватися всіма його особливостями. Якщо вони хочуть зв’язатися з іншими островами, їм доведеться використовувати якийсь протокол».

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

Як працює шардінг в блокчейнах?

Ми продовжимо використовувати Ethereum як приклад у цьому, оскільки це найбільш відомі та найскладніші спроби шардингу на арені блокчейну, оскільки розробники Ethereum впроваджують те, що відомо як «розділення стану".

Поточний стан блокчейну Ethereum відомий як «глобальна держава” і це те, що кожен може побачити, коли подивиться на блокчейн у певному екземплярі.

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

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

Ethereum розбиває мережу на певні фрагменти. Кожному шарду призначається конкретна група транзакцій, яка визначається групуванням конкретних облікових записів (включаючи смарт-контракти) в сегмент. Кожна група транзакцій має заголовок і тіло, які складаються з наступного.

  • Ідентифікатор сегмента групи транзакцій
  • Призначення валідаторів через випадкова вибірка (перевірте транзакції в шарді)
  • State Root (стан кореня merkle шарда до та після додавання транзакцій)

тіло

  • Усі транзакції, які належать до групи транзакцій, які є частиною певного сегмента.

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

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

Замість того, щоб містити лише корінь стану, кожен блок блокчейну Ethereum тепер містить як корінь стану, так і корінь групи транзакцій. Корінь групи транзакцій — це корінь merkle для всіх груп транзакцій із конкретних сегментів для цього блоку транзакцій.

По суті, існує корінь merkle для всіх різних шардів, які містять оновлені та перевірені групи транзакцій. Цей корінь зберігається в блокчейні разом з оновленим коренем стану.

Використання концепцій дерева Меркла в цій структурі є життєво важливим для забезпечення валідності блокчейну. Розуміння того, як а дерево Меркле і, зокрема, коренева робота merkle, може допомогти вам зрозуміти ці поняття набагато легше.

Що таке дерево Меркла

Читайте: Що таке дерево Меркла?

Консенсус всередині шарда досягається за допомогою консенсусу Proof of Stake випадково вибраних вузлів, які застосовуються до шарда для певного раунду консенсусу.

Це не тільки забезпечує остаточний консенсус, який є необхідним у межах фрагментів, але також забезпечує особливий захист від атаки, яку Доказ роботи блокчейну було б сприйнятливим у цьому випадку.

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

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

Крім того, випадкова вибірка буде використовуватися для вибору валідаторів, які є насправді перевірка з цього випадкового набору перевірки.

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

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

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

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

Shading Moving Forward

Очікується, що шардинг в Ethereum буде реалізований після Casper PoS оновлення. Нещодавно там були деякі зміни щодо Ethereum 2.0 які передбачають реалізацію обох Каспер і шардінг.

Шардінг також був реалізований на кількох інших платформах, особливо Зілліка. Однак Zilliqa наразі не реалізує розділення стану, а замість цього зосереджується на забезпеченні високопродуктивного блокчейна за допомогою використання транзакцій та обчислювального шардингу.

Ціллігапрочитайте наші Путівник по Зілліці

Висновок

Шардінг пропонує кілька перспективних рішень для слона в кімнаті блокчейн-платформ прямо зараз, масштабованість.

У той час як мережа Lightning Bitcoin перебуває на етапі тестування і демонструє певний дуже багатообіцяючий прогрес, рішення Ethereum несе з собою деякі унікальні проблеми, оскільки воно прив’язане до світового комп’ютера, який є завершеним за Тьюрингом.

Шардінг безпосередньо працюватиме лише на рівні протоколу, тому для кінцевого користувача чи розробника dapp може не обов’язково знати про це.

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

Джерело: https://blokonomi.com/sharding/