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

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

Розбираємо 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, забезпечуючи при цьому дотримання одних і тих самих правил консенсусу.

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

Як правильно пояснити, що таке Біткоїн Як правильно пояснити, що таке Біткоїн Пояснити Біткоїн так, щоб це було дійсно зрозуміло вашому співрозмовнику, завдання не з простих і, зрештою, це не найпродуктивніший спосіб залучити нових користувачів. Іван Македонскі 09 червня 2024
П'ята епоха Біткоїна: прогнози П'ята епоха Біткоїна: прогнози Прогнози переломних моментів П'ятої епохи Біткоїна. Джо Роджерс 09 червня 2024
Чому Джо Байден ненавидить Біткоїн Чому Джо Байден ненавидить Біткоїн Президент Джо Байден не зробив нічого для підтримки Біткоїн-індустрії перед виборами 2024 року. Нік Хоффман 08 червня 2024