Що таке peer-to-peer (P2P)?
В інформатиці peer-to-peer (P2P) мережа (P2P) складається з групи пристроїв, які спільно зберігають файли та обмінюються ними. Кожен учасник (нода) діє як окремий пір. Як правило, всі ноди мають однакову потужність і виконують одні й самі завдання.
У фінансових технологіях термін “peer-to-peer“ зазвичай стосується обміну криптовалютами або цифровими активами через розподілену мережу. P2P-платформа дозволяє покупцям та продавцям здійснювати угоди без посередників. У деяких випадках вебсайти можуть також надавати P2P-середовище, яке пов'язує кредиторів та позичальників.
P2P-архітектура може бути придатною для різних варіантів використання, але вона стала особливо популярною у 1990-х роках, коли були створені перші програми обміну файлами. Сьогодні P2P-мережі лежать в основі більшості криптовалют і складають значну частину блокчейн-індустрії. Однак вони також використовуються в інших розподілених обчислювальних програмах, включаючи пошукові вебсервіси, стримінгові платформи, онлайн-маркетплейси та вебпротокол InterPlanetary File System (IPFS).
Як працює P2P?
По суті P2P-система підтримується розподіленою мережею користувачів. Зазвичай вони не мають центрального адміністратора або сервера, оскільки кожна нода містить копію файлів, виступаючи і як клієнт, і як сервер для інших нод. Таким чином кожна нода може завантажувати файли з інших нод або відвантажувати файли на них. Саме це відрізняє P2P-мережі від традиційніших систем клієнт-сервер, у яких клієнтські пристрої завантажують файли з централізованого сервера.
У P2P-мережах підключені пристрої обмінюються файлами, які зберігаються на жорстких дисках. Використовуючи програми, призначені для обміну даними, користувачі можуть запитувати та завантажувати файли на інші пристрої в мережі. Після того, як користувач завантажив цей файл, він може бути джерелом цього файлу.
Іншими словами, коли ноди діють як клієнти, вони завантажують файли з інших мережевих нод. Але коли вони працюють як сервер, вони є джерелом, з якого інші вебсайти можуть завантажувати файли. Однак на практиці обидві функції можуть виконуватись одночасно (наприклад, завантаження файлу А та відвантаження файлу B).
Оскільки кожна нода зберігає, передає та отримує файли, P2P-мережі стають швидшими та ефективнішими в міру зростання їхньої бази користувачів. Крім того, їхня розподілена архітектура робить P2P-системи дуже стійкими до кібератак. На відміну від традиційних моделей, P2P-мережі не мають єдиної точки відмови.
Ми можемо класифікувати peer-to-peer системи відповідно до їхньої архітектури. Існують три основних типи: неструктуровані, структуровані та гібридні P2P-мережі.
Неструктуровані P2P-мережі
Неструктуровані P2P-мережі не представляють будь-якої конкретної організації нод. Учасники випадково спілкуються один з одним. Ці системи вважаються стійкими до високої активності відтоку (тобто кілька нод часто приєднуються до мережі та виходять із неї).
Незважаючи на те, що неструктуровані P2P-мережі легше побудувати, вони можуть вимагати більшого використання центрального процесору та пам'яті, оскільки пошукові запити надсилаються максимально можливій кількості пірів. Це має тенденцію перевантажувати мережу запитами, якщо невелика кількість нод пропонує бажаний контент.
Структуровані P2P-мережі
І навпаки, структуровані P2P-мережі є організованою архітектурою, що дозволяє нодам ефективно шукати файли, навіть якщо вміст не є публічним. Найчастіше це досягається за допомогою використання хеш-функцій, які полегшують пошук у базі даних.
Хоча структуровані мережі можуть бути більш ефективними, вони зазвичай мають більш високий рівень централізації та зазвичай вимагають більш високих витрат на налаштування та обслуговування. Крім цього, структуровані мережі менш надійні, коли стикаються з високою швидкістю відтоку.
Гібридні P2P-мережі
Гібридні P2P-мережі поєднують у собі звичайну модель клієнт-сервер із деякими аспектами peer-to-peer архітектури. Наприклад, завдяки цьому можна створити центральний сервер, який спростить з'єднання між пірами.
Порівняно з двома іншими типами, гібридні моделі мають покращену загальну продуктивність. Зазвичай вони поєднують у собі деякі з основних переваг кожного підходу, одночасно досягаючи значного ступеня ефективності та децентралізації.
Розподіл чи децентралізація?
Хоча P2P-архітектура за своєю суттю розподілена, важливо відзначити, що існують різні ступені децентралізації. Отже, не всі P2P-мережі децентралізовані.
Насправді багато систем покладаються на центральний орган управління мережевою активністю, що робить їх дещо централізованими. Наприклад, деякі P2P-системи обміну файлами дозволяють користувачам шукати та завантажувати файли від інших користувачів, але вони не можуть брати участь в інших процесах, таких як керування пошуковими запитами.
Крім того, можна сказати, що невеликі мережі, контрольовані обмеженою базою користувачів із загальними цілями, мають більш високий ступінь централізації, незважаючи на відсутність централізованої мережевої інфраструктури.
Роль P2P в блокчейнах
На ранніх стадіях Bitcoin, Сатоші Накамото визначив його як “peer-to-peer електронну грошову систему”. Bitcoin було створено як цифрову форму грошей. Його можна передавати від одного користувача до іншого через P2P-мережу, яка керує розподіленим реєстром під назвою “блокчейн”.
У цьому контексті P2P-архітектура, властива блокчейн-технології, дозволяє переказувати Bitcoin та інші криптовалюти по всьому світу без необхідності використання посередників або центрального сервера. Крім того, будь-який бажаючий може створити ноду Bitcoin, якщо він хоче брати участь у процесі перевірки та підтвердження блоків.
Таким чином, у мережі Bitcoin немає банків, які обробляють або записують транзакції. Натомість блокчейн діє як цифрова книга, яка публічно записує всі дії. По суті, кожна нода зберігає копію блокчейну та порівнює її з іншими нодами, щоб забезпечити точність даних. Мережа швидко відкидає будь-яку шкідливу активність чи неточність.
У контексті блокчейнів криптовалют, ноди можуть виконувати безліч різних ролей. Повні ноди, наприклад, забезпечують безпеку мережі, перевіряючи транзакції на відповідність до правил консенсусу системи.
Кожна повна нода підтримує повну, оновлену копію блокчейну, що дозволяє їм брати участь у спільній роботі з перевірки справжнього стану розподіленого реєстру. Однак, варто зазначити, що не всі ноди з повною перевіркою є майнерами.
Переваги
Peer-to-peer архітектура блокчейнів дає багато переваг. Серед найважливіших є той факт, що P2P-мережі забезпечують більшу безпеку, ніж традиційні механізми клієнт-сервер. Розподіл блокчейнів по великій кількості нод робить їх практично несприйнятливими до атак типу Denial-of-Service (DoS), від яких страждають багато систем.
Оскільки більшість нод повинні досягти консенсусу перед додаванням даних до блокчейну, зловмиснику практично неможливо змінити дані. Це особливо правильно для великих мереж, таких як Bitcoin. Блокчейни меншого розміру більш схильні до атак, тому що одна людина або група можуть зрештою отримати контроль над більшістю нод (це відомо як атака 51%).
В результаті розподілена peer-to-peer мережа, у поєднанні з вимогою консенсусу більшості, дає блокчейнам відносно високий рівень стійкості до зловмисної активності. P2P-модель – це одна з причин, через яку Bitcoin (та інші блокчейни) змогли досягти так званої “візантійської відмовостійкості“.
Крім безпеки, використання P2P-архітектури у блокчейнах криптовалют також робить їх стійкими до цензури з боку центральної влади. На відміну від стандартних банківських рахунків, криптовалютні гаманці не можуть бути заморожені чи спустошені урядами. Цей опір також поширюється на спроби цензури з боку приватних платформ обробки платежів та контенту. Деякі творці контенту та онлайн-мерчанти прийняли криптовалютні платежі, щоб уникнути блокування їх платежів третіми особами.
Обмеження
Незважаючи на численні переваги, використання P2P-мереж на блокчейнах також має певні обмеження.
Оскільки розподілені реєстри повинні оновлюватися на кожній окремій ноді, а не на центральному сервері, додавання транзакцій до блокчейну потребує величезної обчислювальної потужності. Хоча це і забезпечує підвищену безпеку, у свою чергу значно знижується оперативність роботи, що є однією з основних перешкод, коли йдеться про масштабованість та широке прийняття. Тим не менш, криптографи та розробники блокчейнів вивчають альтернативи, які можна використовувати як рішення для масштабування. Яскравими прикладами є протоколи Lightning Network, Ethereum Plasma та Mimblewimble.
Ще одне потенційне обмеження пов'язане з атаками, які можуть виникнути під час подій хард-форку. Оскільки більшість блокчейнів децентралізовані та мають відкритий вихідний код, групи нод можуть вільно копіювати та змінювати код і відокремлюватися від основного ланцюга, щоб сформувати нову паралельну мережу. Хард-форки це абсолютно нормально і самі по собі не становлять загрози. Але якщо певні методи безпеки не будуть прийняті належним чином, обидва ланцюги можуть стати вразливими до атак повторного відтворення.
Більш того, розподілений характер P2P-мереж робить їх відносно складними для контролю та регулювання не тільки в блокчейн-сфері. Декілька P2P-програм і компаній були замішані в незаконній діяльності та порушенні авторських прав.
Підсумки
Peer-to-peer архітектура може розроблятися та використовуватися по-різному, і саме вона є основою блокчейнів, які роблять криптовалюти можливими. Розподіляючи реєстри транзакцій у великих мережах нод, P2P-архітектура забезпечує безпеку, децентралізацію та стійкість до цензури.
На додаток до їхньої корисності в блокчейн-технології, P2P-системи також можуть обслуговувати інші розподілені обчислювальні програми, починаючи від мереж обміну файлами і закінчуючи платформами для торгівлі енергією.