Posted inОсвіта та поради

Що таке шардинг?

sharding_cover

Шардинг — метод поділу і зберігання єдиного логічного набору даних у вигляді безлічі баз даних. Інше визначення шардингу — горизонтальний поділ даних.

Коли і хто винайшов шардинг?

Концепція шардингу застосовувалася в управлінні традиційними централізованими базами даних з кінця 1990-х років. Термін "шард" (фрагмент) набув поширення завдяки одній із перших багатокористувацьких рольових онлайн-ігор, Ultima Online, у якій розробники розподілили гравців по різних серверах (різних "світах" у грі), щоб впоратися з трафіком.

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

Що таке шардинг у контексті блокчейну?

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

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

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

Як працює шардинг?

Пояснення на прикладі Ethereum:

Блокчейн Ethereum складається з тисяч комп’ютерів або нод, кожна з яких "позичає" мережі певний обсяг хешрейту. Саме цей хешрейт дає змогу Ethereum Virtual Machine (EVM) функціонувати — виконувати смарт-контракти та керувати децентралізованими додатками (DApps).

Наразі Ethereum працює на основі послідовного виконання, в якому кожна з нод повинна розраховувати кожну операцію і обробляти кожну транзакцію. Тому проходження транзакцією верифікаційного процесу вимагає значного часу: Ethereum здійснює приблизно 10 транзакцій за секунду, тоді як у Visa, наприклад, цей показник у районі 24 000.

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

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

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

Які проблеми вирішує шардинг?

Шардинг — потенційне вирішення проблеми масштабування.

Чим популярнішим стає блокчейн, тим більше користувачів ініціюють транзакції, запуск децентралізованих додатків та інші процеси в мережі. У результаті, швидкість транзакцій падає, що перешкоджає розширенню блокчейна в довгостроковій перспективі. Зростання транзакційної активності вимагає від нод інтенсифікувати процес верифікації транзакцій. Існує загроза того, що ці блокчейни можуть "закупоритися", як це сталося з Ethereum у період буму CryptoKitties, коли на частку гри припадало 11% транзакцій мережі.

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

Які недоліки шардингу?

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

У сегментованому блокчейні також виникає проблема безпеки, оскільки хакерам легше захопити один шард — через менший хешрейт, необхідний для контролю індивідуальних сегментів (так звана атака 1%).

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

Які альтернативи шардингу?

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

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

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

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

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

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

Хто використовує шардинг?

Zilliqa — перша платформа, яка впровадила шардинг. На стадії тестнету вона зуміла досягти показника в 2828 транзакцій на секунду.

Екосистема блокчейна Near дає змогу розробникам створювати і застосовувати децентралізовані додатки. Near називає себе "шардованим блокчейном на PoS" і стверджує, що його технологія шардингу дає змогу нодам залишатися досить невеликими для того, щоб функціонувати на пристроях невисокої продуктивності — потенційно навіть на мобільних телефонах.

Ethereum пропонує екосистему блокчейна для впровадження DApps на основі смарт-контрактів. Ethereum Foundation планує включити шардинг в оновлену версію протоколу Ethereum 2.0.

Серед інших проєктів, які працюють із шардингом: Cardano, QuarkChain і PChain.

Яке майбутнє шардингу?

Технологія шардингу фігурує в white paper цифрової валюти Libra. Напередодні запуску компанія Facebook придбала компанію Chainspace, чия команда розробників спеціалізується на шардингу. Конкретні деталі поки невідомі, але можна припустити, що в блокчейн Libra впровадять різновид шардингу.

Шардинг теоретично може стати вирішенням так званої трилеми блокчейна.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *