Біткоїн-вузли тепер на крок ближче до миттєвої синхронізації

Біткоїн-вузли тепер на крок ближче до миттєвої синхронізації

Розбираємо ZeroSync: роль доказів із нульовим розголошенням у миттєвій синхронізації вузлів Біткоїна.

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

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

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

Легкі біткоїн-клієнти використовують механізм спрощеної перевірки платежів (SPV). Під час отримання платежу клієнт надсилає запит вузлам мережі для отримання заголовків (хедерів) найдовшого ланцюжка. Потім він може знайти блок, до якого було додано вхідну транзакцію – це означає, що вузли мережі прийняли її як дійсну. Чим більше блоків буде додано в ланцюжок після цього, тим більше підтверджень легкий клієнт отримає про те, що платіж дійсний та прийнятий мережею до блоку.

Докази ZK оптимізують цей процес, стискаючи заголовки в один доказ, без необхідності узгодження змін у Біткоїні. Подібно до того, як кожен блок Біткоїна ефективно стискає дані своїх транзакцій у дерево Меркла і включає корінь цього дерева у свій заголовок, ZeroSync бере кожен заголовок блоку і групує їх в інше дерево Меркла. Цей процес дозволяє синтезувати ланцюжок заголовків у короткий та легкий фрагмент даних – доказ.

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

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

Випуск першого повного ланцюжка заголовків ZK-доказу став першою віхою ZeroSync. Щоб реалізувати свої ширші задуми – забезпечити повну перевірку історичного блокчейну для повних вузлів, не вимагаючи від користувачів його завантаження та обробки – команді необхідно виповнити ще два пункти плану: дозволити вузлу синхронізуватися аналогічно функції Assume Valid у Bitcoin Core та забезпечити повну передбачену синхронізацію блокчейну.

Assume Valid – це параметр Bitcoin Core, увімкнений за замовчуванням, який передбачає, що всі скрипти до заданої висоти блоку дійсні. Це означає, що нові повні вузли, які синхронізують блокчейн з початковим завантаженням блоку (IBD), можуть пропускати перевірку скриптів з генезис-блоку, доки висота блоку не буде встановлена клієнтом Bitcoin Core. Ці сценарії є частиною транзакцій, повʼязаних із даними свідків – в основному це підписи, що дозволяють сценарії блокування та розблокування коштів, які будуть витрачені, а також часові блокування та інші запрограмовані умови витрат. Користувачі мають можливість встановити `assumevalid=0` і змусити свого клієнта виконувати повну перевірку всіх скриптів на додаток до перевірки іншого вмісту блоку. Однак загальне і досить безпечне припущення, яке лежить в основі включення Assume Valid за умовчанням, полягає в тому, що до заданої висоти блоку було показано достатньо доказів роботи, що дає підстави справедливо вважати, що попередні сценарії дійсні.

Проміжна пропозиція ZeroSync, коли вона буде завершена, дозволить користувачам Біткоїна синхронізувати свої вузли аналогічно до Bitcoin Core IBD. Вузол завантажує всі дані з моменту створення Біткоїна до сьогоднішнього дня, але перевіряє дані-свідки тільки після висоти assumevalid. Набір UTXO також є необхідною частиною рівняння. Щоб розв'язати цю проблему, ZeroSync використовує проєкт Utreexo для підвищення ефективності синхронізації вузлів Біткоїна. Utreexo надає останній набір UTXO для даного блоку, а ZeroSync може додати його у свій фреймворк, заснований на доказах ZK. В результаті виходить набагато коротший ланцюжок заголовків і компактніший і ефективніший набір UTXO, який клієнти можуть використовувати для перевірки платежів.

Ця пропозиція вищого рівня дозволяє зробити крок уперед і дозволить вузлам синхронізуватися з останнім станом Біткоїна, не припускаючи, що будь-який сценарій є дійсним. Використовуючи ZK-докази, повні вузли зможуть досягти набагато швидшої початкової синхронізації з, можливо, навіть більшими гарантіями безпеки, ніж налаштування Bitcoin Core за умовчанням, яке використовує acceptvalid.

Навіть якщо користувачі Bitcoin Core відключать assumevalid – перевірку всіх скриптів та досягнення аналогічних припущень щодо безпеки, як у пропозиції найвищого рівня ZeroSync – більша цінність останнього, як і раніше, полягає у суттєвому збільшенні ефективності та швидкості перевірки всієї цієї інформації. Хоча зараз у блокчейні Біткоїна зберігається 510 ГБ даних, підхід ZeroSync дозволить значно прискорити процес, враховуючи створення короткого та легкого доказу розміром трохи понад 1 МБ – покращення продуктивності на кілька порядків порівняно зі стандартним IBD, що використовує Bitcoin Core, забезпечуючи при цьому дотримання одних і тих самих правил консенсусу.

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

Як убезпечити біткоїни, якщо вам доведеться покинути країну Як убезпечити біткоїни, якщо вам доведеться покинути країну Іноді політична чи економічна ситуація стає настільки нестабільною, що у вас немає іншого вибору, окрім як тікати з країни. Біткоїн – це надзвичайно ефективний інструмент, який дозволяє взяти із собою свої заощадження. Шинобі 28 квітня 2024
Цікаві факти про халвінг Цікаві факти про халвінг Короткий список маловідомих фактів про графік емісії Біткоїна та минулі халвінги. Шинобі 28 квітня 2024
Біткоїн не знає меж Біткоїн не знає меж Біткоїн існує поза контролем центральної влади, і таким чином дозволяє людям контролювати та захищати свої кошти незалежно від політичного та соціального клімату, в якому вони опинилися. Bitcoin Magazine 27 квітня 2024