Що таке Compact Blocks?
Compact Blocks це спосіб, яким Bitcoin вузли передають нові блоки, витрачаючи значно менше байтів без втрати інформації. Замість надсилання кожної повної транзакції вузли обмінюються компактним підсумком, щоб інші могли відтворити блок з того, що вже мають. Уявіть, що ви надсилаєте назву плейлиста другу, який уже скачав пісні.
«Compact Blocks змінюють розмір блоків.» Ні. Блок у ланцюзі залишається тим самим. Йдеться лише про те, як вузли синхронізують його швидше і легше мережею.
Як працюють Compact Blocks
Уявіть, що майнер знайшов дійсний блок і ваш вузол хоче його одразу. Замість надсилання всього блоку сусід надсилає невеликий набір даних, щоб ви могли відновити блок локально.
- Крок 1: Вузол оголошує про новий блок, відправляючи його заголовки блоків та кілька підказок.
- Крок 2: Разом із заголовком він включає короткі ідентифікатори для транзакцій, які, за припущенням, уже є у вашому mempool.
- Крок 3: Ваш вузол зіставляє ці короткі ідентифікатори з записами у mempool і відтворює більшу частину блоку локально.
- Крок 4: Якщо чогось бракує, ваш вузол запитує лише ті конкретні транзакції, яких не вистачає.
- Крок 5: Ви перевіряєте відновлений блок і продовжуєте роботу, бажано на кілька сотень мілісекунд швидше.
Малі повідомлення, швидка синхронізація, та сама безпека. Саме в цьому суть.
Чому Compact Blocks важливі
Тому що час і пропускна здатність коштують грошей, і вузли цінують обидва ресурси.
- Перевага: Менше даних на блок означає зменшене використання пропускної здатності та швидше поширення мережею.
- Перспектива: Швидше поширення знижує ймовірність появи застарілих блоків і покращує загальну масштабованість на практиці.
- Актуальність: Якщо ви запускаєте вузол удома або в хмарі, це одна з причин, чому синхронізація лишається плавною навіть під великим навантаженням.
Якщо ви тримаєте Bitcoin вузол, підтримуйте mempool наповненим і слідкуйте за станом пірів. Чим більше спільних транзакцій, тим ефективніше працюють Compact Blocks.
Ключові характеристики Compact Blocks
Виділіть основні риси, що роблять цю ідею особливою. Пишіть коротко і легко для перегляду:
- Малий обсяг: Надсилає ідентифікатори замість повних транзакцій, коли це можливо.
- Швидкі: Менші повідомлення означають, що блоки поширюються між вузлами швидше.
- Вибіркові: Завантажуються лише відсутні транзакції, а не весь блок знову.
- Сумісні: Працюють з типовою перевіркою блоків та логікою mempool.
Варіанти
Різні протоколи мають схожі цілі, кожен з власним підходом.
- Compact: Стандарт у Bitcoin через BIP 152, практичний і широко впроваджений.
- Graphene: Дослідницька ідея з узгодженням множин і ефективнішим кодуванням.
- Xthin: Раніший підхід, що використовували деякі форки, орієнтований на передачу полегшених блоків.
- Erlay: Пропозиція скоротити витрати на ретрансляцію транзакцій, добре поєднується з концепцією Compact Blocks.
Compact Blocks змінюють спосіб обміну даними між сусідніми вузлами, а не спосіб формування чи перевірки блоків. Перевірки безпеки залишаються незмінними.
Приклад
Майнер знаходить новий блок, ваш вузол отримує заголовок і короткі ідентифікатори, заповнює більшу частину з mempool, отримує дві відсутні транзакції, потім перевіряє та ретранслює блок.
Цікавий факт
Compact Blocks зявилися в Bitcoin як BIP 152 і були впроваджені у 2016 році, що непомітно зменшило витрати пропускної здатності під час піків у mempool.
Підсумок
Якщо потрібен короткий висновок, ось він. Compact Blocks зберігають автентичність блоків і роблять завантаження схожим на скорочений шлях.
