Клієнти без громадянства: шлях до децентралізації в Ethereum

Початківець12/25/2023, 9:46:09 AM
Ця стаття містить детальний вступ до децентралізованого рішення Ethereum, клієнта без стану, а також пояснює, що таке стан, а також його основу, принципи та рішення.

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

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

Що таке держава Ethereum?

Щоб зрозуміти клієнтів без громадянства, нам спочатку потрібно зрозуміти концепцію «стану» в Ethereum. Стан Ethereum стосується поточного статусу всіх облікових записів, контрактів, балансів, nonces і сховищ у світі Ethereum. Його можна розглядати як базу даних, яка зберігає всю відповідну інформацію про мережу Ethereum на певний момент часу.

Стан зберігається в Merkle Patricia trie, яке, по суті, є модифікованим деревом Merkle, яке зберігає пари ключ-значення. Кореневий хеш цього trie підсумовує весь стан. Після кожного нового блоку стан оновлюється на основі транзакцій у цьому блоці. Новий кореневий хеш стану включено в заголовок блоку.

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

Чому зростання держави створює проблеми

Збільшення розміру стану Ethereum викликає кілька ключових проблем:

  • Довший час синхронізації для нових вузлів. Синхронізація нового вузла шляхом обробки всіх історичних змін стану займає надзвичайно багато часу. Це перешкоджає децентралізації, ускладнюючи запуск нових повних вузлів. Синхронізація нового вузла з Genesis зараз займає кілька днів, аж до тижнів, на споживчому обладнанні. Це є основною перешкодою для ефективного створення нових вузлів і надання можливості більшій кількості учасників приєднатися до мережі.
  • Підвищені вимоги до апаратного забезпечення. Більший стан потребує більше пам’яті, пам’яті та обчислювальної потужності для зберігання, доступу та оновлення. Це блокує менш забезпечених користувачів від запуску вузлів. Як мінімум для роботи повністю синхронізованого вузла Ethereum тепер потрібен SSD ємністю 1-2 ТБ. Це недосяжно для багатьох потенційних операторів вузлів.
  • Більше використання пропускної здатності. Трансляції нових блоків також повинні включати оновлений стан, що вимагає більшої пропускної здатності. Це збільшує витрати для операторів вузлів. Зараз штат домінує в більшості блокових трансляцій, тому розміри блоків продовжують зростати. Більша пропускна здатність означає вищі витрати для операторів вузлів.
  • Повільніша перевірка блоку. Читання та оновлення більшого стану робить перевірку блоку повільнішою, обмежуючи пропускну здатність транзакцій. Кожна транзакція потребує кількох читань і записів у сховищі для оновлення балансів, одноразових номерів, стану контракту тощо. Більший стан означає більше читання/запису на блок, зменшуючи кількість транзакцій, які можна обробити за секунду.
  • Витрати на постійне зберігання. Коли дані додаються до стану, вони повинні зберігатися назавжди. Це створює необмежений ріст стану. Наразі немає механізму активного видалення старих і невикористаних даних стану. Таким чином, витрати на утримання в стані збільшуються на невизначений термін, поки Ethereum продовжує працювати.

Пояснення щодо клієнтів без громадянства

Клієнти без стану надають можливість перевіряти нові блоки без доступу до повного стану Ethereum. Вони використовують криптографічні докази, які називаються «свідками», які підтверджують дійсність змін стану в блоці, не маючи базових даних про стан.

Ось як працюють клієнти без громадянства на високому рівні:

  • Клієнт зберігає лише заголовки блоків і корені стану, а не повні дані стану. Заголовки блоків містять такі метадані, як кореневий хеш стану trie після обробки цього блоку.
  • При перевірці нового блоку клієнт разом з блоком отримує «свідка». Цей свідок є набором доказів Merkle, які демонструють дійсність певних оновлень стану від транзакцій.
  • Свідок містить докази Merkle щодо конкретних державних цінностей, необхідних для обробки транзакцій. Наприклад, оновлені залишки на рахунках або зберігання за контрактом.
  • Клієнт використовує свідок, щоб переконатися, що транзакції дійсні щодо останнього відомого кореня стану. Докази засвідчують, що зміни стану відповідають попередньому кореню.
  • Якщо дійсний, клієнт оновлюється до нового кореня стану, указаного в заголовку блоку. Цей новий корінь стану буде використано для перевірки наступного блоку.

Використовуючи свідків для перевірки стану замість того, щоб зберігати повний стан локально, клієнти без стану отримують кілька переваг:

  • Дуже швидкий час синхронізації - не потрібно відтворювати історичні зміни стану. Клієнт без стану може майже миттєво синхронізувати лише заголовки блоків.
  • Низькі вимоги до пам'яті - корені стану становлять лише 32 байти. Замість сотень ГБ стану потрібні лише заголовки блоків.
  • Менша пропускна здатність – передаються лише заголовки блоків і свідки, а не повний стан. Використання пропускної здатності зведено до мінімуму.
  • Швидка перевірка - свідки містять лише невеликі відповідні підмножини стану. Підтверджуються лише оновлені облікові записи/сховище.
  • Легка підтримка легких клієнтів - легкі клієнти можуть легко перевіряти докази. Модель легкого клієнта дуже сумісна з перевіркою без збереження стану.

Проблеми з клієнтами без громадянства

Хоча клієнти без громадянства дають деякі основні переваги, існують також значні технічні проблеми, які необхідно подолати:

  • Розмір свідків – свідки можуть бути занадто великими для ефективної передачі. Якщо використовуються повні докази Merkle, вони можуть перевищувати обмеження розміру блоку.
  • Створення свідків – створення оптимальних свідків складно для пропонентів блоків. Заявники повинні зібрати правильні фрагменти доказів для перевірки кожної транзакції.
  • Жодних стимулів для свідків – надання свідків не приносить прямих винагород. На відміну від майнінгу, немає вбудованої структури стимулів для створення свідків.
  • Тимчасові дані - свідки підтверджують стан в певний момент часу, вимагаючи відновлення. Свідків не можна повторно використовувати в міру розвитку стану.
  • Зберігання стану - комусь все ще потрібно підтримувати повний стан, щоб створити свідків. Перевірка без стану базується на створенні свідків із збереженням стану.
  • Складні програми – деякі контракти можуть покладатися на великі підмножини станів, роздуті свідки. Наприклад, контракти, які оновлюють багато слотів для зберігання на транзакцію.

Можливі рішення

Дослідники запропонували різні рішення для вирішення цих проблем:

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

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

Потенційний вплив

Якщо вдасться подолати технічні перешкоди, клієнти без стану можуть значно просунути Ethereum:

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

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

Висновок

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

Відмова від відповідальності:

  1. Ця стаття передрукована з [Mirror]. Усі авторські права належать оригінальному автору [YQ]. Якщо є заперечення щодо цього передруку, будь ласка, зв’яжіться з командою Gate Learn , і вони негайно розглянуть це.
  2. Відмова від відповідальності: погляди та думки, висловлені в цій статті, належать виключно автору та не є жодною інвестиційною порадою.
  3. Переклади статті на інші мови виконує команда Gate Learn. Якщо не зазначено вище, копіювання, розповсюдження або плагіат перекладених статей заборонено.

Клієнти без громадянства: шлях до децентралізації в Ethereum

Початківець12/25/2023, 9:46:09 AM
Ця стаття містить детальний вступ до децентралізованого рішення Ethereum, клієнта без стану, а також пояснює, що таке стан, а також його основу, принципи та рішення.

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

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

Що таке держава Ethereum?

Щоб зрозуміти клієнтів без громадянства, нам спочатку потрібно зрозуміти концепцію «стану» в Ethereum. Стан Ethereum стосується поточного статусу всіх облікових записів, контрактів, балансів, nonces і сховищ у світі Ethereum. Його можна розглядати як базу даних, яка зберігає всю відповідну інформацію про мережу Ethereum на певний момент часу.

Стан зберігається в Merkle Patricia trie, яке, по суті, є модифікованим деревом Merkle, яке зберігає пари ключ-значення. Кореневий хеш цього trie підсумовує весь стан. Після кожного нового блоку стан оновлюється на основі транзакцій у цьому блоці. Новий кореневий хеш стану включено в заголовок блоку.

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

Чому зростання держави створює проблеми

Збільшення розміру стану Ethereum викликає кілька ключових проблем:

  • Довший час синхронізації для нових вузлів. Синхронізація нового вузла шляхом обробки всіх історичних змін стану займає надзвичайно багато часу. Це перешкоджає децентралізації, ускладнюючи запуск нових повних вузлів. Синхронізація нового вузла з Genesis зараз займає кілька днів, аж до тижнів, на споживчому обладнанні. Це є основною перешкодою для ефективного створення нових вузлів і надання можливості більшій кількості учасників приєднатися до мережі.
  • Підвищені вимоги до апаратного забезпечення. Більший стан потребує більше пам’яті, пам’яті та обчислювальної потужності для зберігання, доступу та оновлення. Це блокує менш забезпечених користувачів від запуску вузлів. Як мінімум для роботи повністю синхронізованого вузла Ethereum тепер потрібен SSD ємністю 1-2 ТБ. Це недосяжно для багатьох потенційних операторів вузлів.
  • Більше використання пропускної здатності. Трансляції нових блоків також повинні включати оновлений стан, що вимагає більшої пропускної здатності. Це збільшує витрати для операторів вузлів. Зараз штат домінує в більшості блокових трансляцій, тому розміри блоків продовжують зростати. Більша пропускна здатність означає вищі витрати для операторів вузлів.
  • Повільніша перевірка блоку. Читання та оновлення більшого стану робить перевірку блоку повільнішою, обмежуючи пропускну здатність транзакцій. Кожна транзакція потребує кількох читань і записів у сховищі для оновлення балансів, одноразових номерів, стану контракту тощо. Більший стан означає більше читання/запису на блок, зменшуючи кількість транзакцій, які можна обробити за секунду.
  • Витрати на постійне зберігання. Коли дані додаються до стану, вони повинні зберігатися назавжди. Це створює необмежений ріст стану. Наразі немає механізму активного видалення старих і невикористаних даних стану. Таким чином, витрати на утримання в стані збільшуються на невизначений термін, поки Ethereum продовжує працювати.

Пояснення щодо клієнтів без громадянства

Клієнти без стану надають можливість перевіряти нові блоки без доступу до повного стану Ethereum. Вони використовують криптографічні докази, які називаються «свідками», які підтверджують дійсність змін стану в блоці, не маючи базових даних про стан.

Ось як працюють клієнти без громадянства на високому рівні:

  • Клієнт зберігає лише заголовки блоків і корені стану, а не повні дані стану. Заголовки блоків містять такі метадані, як кореневий хеш стану trie після обробки цього блоку.
  • При перевірці нового блоку клієнт разом з блоком отримує «свідка». Цей свідок є набором доказів Merkle, які демонструють дійсність певних оновлень стану від транзакцій.
  • Свідок містить докази Merkle щодо конкретних державних цінностей, необхідних для обробки транзакцій. Наприклад, оновлені залишки на рахунках або зберігання за контрактом.
  • Клієнт використовує свідок, щоб переконатися, що транзакції дійсні щодо останнього відомого кореня стану. Докази засвідчують, що зміни стану відповідають попередньому кореню.
  • Якщо дійсний, клієнт оновлюється до нового кореня стану, указаного в заголовку блоку. Цей новий корінь стану буде використано для перевірки наступного блоку.

Використовуючи свідків для перевірки стану замість того, щоб зберігати повний стан локально, клієнти без стану отримують кілька переваг:

  • Дуже швидкий час синхронізації - не потрібно відтворювати історичні зміни стану. Клієнт без стану може майже миттєво синхронізувати лише заголовки блоків.
  • Низькі вимоги до пам'яті - корені стану становлять лише 32 байти. Замість сотень ГБ стану потрібні лише заголовки блоків.
  • Менша пропускна здатність – передаються лише заголовки блоків і свідки, а не повний стан. Використання пропускної здатності зведено до мінімуму.
  • Швидка перевірка - свідки містять лише невеликі відповідні підмножини стану. Підтверджуються лише оновлені облікові записи/сховище.
  • Легка підтримка легких клієнтів - легкі клієнти можуть легко перевіряти докази. Модель легкого клієнта дуже сумісна з перевіркою без збереження стану.

Проблеми з клієнтами без громадянства

Хоча клієнти без громадянства дають деякі основні переваги, існують також значні технічні проблеми, які необхідно подолати:

  • Розмір свідків – свідки можуть бути занадто великими для ефективної передачі. Якщо використовуються повні докази Merkle, вони можуть перевищувати обмеження розміру блоку.
  • Створення свідків – створення оптимальних свідків складно для пропонентів блоків. Заявники повинні зібрати правильні фрагменти доказів для перевірки кожної транзакції.
  • Жодних стимулів для свідків – надання свідків не приносить прямих винагород. На відміну від майнінгу, немає вбудованої структури стимулів для створення свідків.
  • Тимчасові дані - свідки підтверджують стан в певний момент часу, вимагаючи відновлення. Свідків не можна повторно використовувати в міру розвитку стану.
  • Зберігання стану - комусь все ще потрібно підтримувати повний стан, щоб створити свідків. Перевірка без стану базується на створенні свідків із збереженням стану.
  • Складні програми – деякі контракти можуть покладатися на великі підмножини станів, роздуті свідки. Наприклад, контракти, які оновлюють багато слотів для зберігання на транзакцію.

Можливі рішення

Дослідники запропонували різні рішення для вирішення цих проблем:

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

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

Потенційний вплив

Якщо вдасться подолати технічні перешкоди, клієнти без стану можуть значно просунути Ethereum:

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

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

Висновок

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

Відмова від відповідальності:

  1. Ця стаття передрукована з [Mirror]. Усі авторські права належать оригінальному автору [YQ]. Якщо є заперечення щодо цього передруку, будь ласка, зв’яжіться з командою Gate Learn , і вони негайно розглянуть це.
  2. Відмова від відповідальності: погляди та думки, висловлені в цій статті, належать виключно автору та не є жодною інвестиційною порадою.
  3. Переклади статті на інші мови виконує команда Gate Learn. Якщо не зазначено вище, копіювання, розповсюдження або плагіат перекладених статей заборонено.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!