Перейти до основного контенту
Change page

Ключі в Ethereum на основі доказу частки

Останні оновлення сторінки: 22 січня 2026 р.

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

Ключі Ethereum генеруються за допомогою криптографії на еліптичних кривихopens in a new tab.

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

Цей новий тип ключа використовує схему підпису Боне-Лінна-Шахама (BLS)opens in a new tab. BLS дозволяє дуже ефективно агрегувати підписи, а також здійснювати зворотну розробку агрегованих індивідуальних ключів валідатора, і ідеально підходить для керування діями між валідаторами.

Два типи ключів валідатора

До переходу на доказ частки користувачі Ethereum мали лише один приватний ключ на основі еліптичних кривих для доступу до своїх коштів. Із запровадженням доказу частки користувачам, які хотіли стати соло-стейкерами, також знадобилися ключ валідатора та ключ для виведення коштів.

Ключ валідатора

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

  • Приватний ключ валідатора
  • Відкритий ключ валідатора

Призначення приватного ключа валідатора полягає в підписанні ончейн-операцій, таких як пропозиції блоків та атестації. Через це ці ключі повинні зберігатися в гарячому гаманці.

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

  • Спричинити слешинг валідатора шляхом:
    • Бути пропонентом і підписати два різні маякові блоки для одного слоту
    • Бути атестатором і підписати атестацію, яка «оточує» іншу
    • Бути атестатором і підписати дві різні атестації, що мають однакову ціль
  • Примусово ініціювати добровільний вихід, що зупиняє стейкінг валідатора та надає доступ до його балансу ETH власнику ключа для виведення коштів

Відкритий ключ валідатора включається в дані транзакції, коли користувач вносить ETH на депозитний контракт для стейкінгу. Це відомо як дані депозиту, і це дозволяє Ethereum ідентифікувати валідатора.

Облікові дані для виведення

Кожен валідатор має властивість, відому як облікові дані для виведення. Перший байт цього 32-байтного поля ідентифікує тип облікового запису: 0x00 представляє оригінальні облікові дані BLS (до оновлення Shapella, без можливості виведення), 0x01 представляє застарілі облікові дані, які вказують на адресу виконання, а 0x02 представляє сучасний тип облікових даних для компаундингу.

Валідатори з ключами BLS 0x00 повинні оновити ці облікові дані, щоб вони вказували на адресу виконання, для активації виплат надлишкового балансу або повного виведення коштів зі стейкінгу. Це можна зробити, надавши адресу виконання в даних депозиту під час початкової генерації ключа, АБО використавши ключ виведення коштів пізніше для підписання та трансляції повідомлення BLSToExecutionChange.

Докладніше про облікові дані для виведення коштів валідатора

Ключ для виведення коштів

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

Так само, як і ключі валідатора, ключі для виведення коштів також складаються з двох компонентів:

  • Приватний ключ для виведення коштів
  • Відкритий ключ для виведення коштів

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

Розділення ключів валідатора та ключів облікового запису Ethereum дозволяє одному користувачеві запускати кілька валідаторів.

схема ключа валідатора

Примітка: вихід із обов’язків стейкінгу та виведення балансу валідатора наразі вимагає підписання повідомлення про добровільний вихід (VEM)opens in a new tab ключем валідатора. Однак EIP-7002opens in a new tab — це пропозиція, яка в майбутньому дозволить користувачеві ініціювати вихід валідатора та виведення його балансу шляхом підписання повідомлень про вихід ключем для виведення коштів. Це зменшить припущення щодо довіри, дозволяючи стейкерам, які делегують ETH постачальникам стейкінгу як послуги, зберігати контроль над своїми коштами.

Отримання ключів із сид-фрази

Якби кожні 32 застейкані ETH вимагали нового набору з 2 абсолютно незалежних ключів, керування ключами швидко стало б громіздким, особливо для користувачів, які запускають кілька валідаторів. Натомість, кілька ключів валідатора можна отримати з одного спільного секрету, і зберігання цього єдиного секрету надає доступ до кількох ключів валідатора.

Мнемонікиopens in a new tab та шляхи — це важливі функції, з якими користувачі часто стикаються, коли отримують доступopens in a new tab до своїх гаманців. Мнемоніка — це послідовність слів, яка діє як початкове зерно для приватного ключа. У поєднанні з додатковими даними мнемоніка генерує хеш, відомий як «майстер-ключ». Це можна уявити як корінь дерева. Гілки з цього кореня потім можна вивести за допомогою ієрархічного шляху, щоб дочірні вузли могли існувати як комбінації хешу їхнього батьківського вузла та їхнього індексу в дереві. Прочитайте про стандарти BIP-32opens in a new tab та BIP-19opens in a new tab для генерації ключів на основі мнемоніки.

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

1m/44'/60'/0'/0`

Слеші в цьому шляху розділяють компоненти приватного ключа таким чином:

1master_key / purpose / coin_type / account / change / address_index

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

1 [m / 0]
2 /
3 /
4[m] - [m / 1]
5 \
6 \
7 [m / 2]

Кожна гілка розділяється символом /, тому m/2 означає почати з майстер-ключа і слідувати гілкою 2. На схемі нижче одна мнемонічна фраза використовується для зберігання трьох ключів для виведення коштів, кожен з яких має два пов'язані валідатори.

логіка ключів валідатора

Для подальшого читання

Чи була ця стаття корисною?