Non-custodial стейкінг: розробка, впровадження, архітектура

Виведення активів зі стейкінгу застрягає на етапі підпису, а ключі зберігаються в одному місці — ми проєктуємо та впроваджуємо non-custodial стейкінг під ключ, розділяючи ролі підпису та зберігання. Налаштовуємо архітектуру, готуємо регламенти й передаємо схему вашій команді — час на узгодження операцій скорочується в рази.
Часті запитання

Чому non-custodial стейкінг дає збої під час виведення

Класичний сценарій: валідатор зібрано, активи розміщено в non-custodial стейкінгу, нагороди нараховуються місяцями.

А в момент, коли потрібно вивести кошти або вийти з валідатора, підпис поставити нікому: ключі та ролі підпису зведено в одну точку — одна машина, один каталог із ключами, один адміністратор із доступом до нього.

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

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

При цьому самі активи обліковуються на балансі й виглядають доступними — рівно до першої спроби вийти з валідатора.

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

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

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

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

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

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

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

Порогова схема розносить частки між незалежними зберігачами, тому одна скомпрометована машина підпису не дає.

Третій пункт — час відновлення доступу. Резервні частки зберігаються в різних сторін і збираються за описаною процедурою: відновлення займає десятки хвилин і не залежить від працездатності одного вузла або листування з підтримкою. Перевіряється репетицією — до того, як це знадобиться в аварії.

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

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

Формати non-custodial стейкінгу та їхні обмеження

Non-custodial стейкінг — це передусім про те, у кого залишаються ключі, а не про те, хто експлуатує обладнання. Навіть при делегуванні активи не переходять на баланс сервісу: виведення ініціює лише власник.

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

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

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

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

Пул знімає експлуатацію повністю, але разом із нею зникає й вплив на параметри. Оператор вузла — компроміс, де частина відповідальності залишається на підряднику.

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

Етапи впровадження: від аудиту ключів до передачі регламентів

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

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

  1. Аудит ключів. Інвентаризуємо всі ключі та частки: де згенеровані, де зберігаються, хто отримує до них доступ, чи є копії поза контуром. На виході — карта володіння та список розбіжностей між заявленою і фактичною моделлю.
  2. Схема підпису. Обираємо порогову конфігурацію: скільки часток потрібно для операції та як вони розподілені між сторонами. Один скомпрометований учасник або вузол не може вивести кошти самостійно.
  3. Налаштування ролей. Розділяємо ініціатора операції, підписувачів і спостерігача, задаємо ліміти та часові вікна. Дії потрапляють до незмінного журналу — спірні ситуації розбираються за фактами, а не за листуванням.
  4. Перевірка виведення. Проганяємо сценарії на малих сумах: штатне виведення, виведення при недоступності частини підписувачів, спроба операції поза лімітом. Переконуємося, що відкат не залишає кошти в підвішеному стані.
  5. Спостереження за вузлами. Піднімаємо контроль валідаторів і делегування: пропущені блоки, падіння дохідності, розбіжність балансів. Оповіщення надходять раніше, ніж проблема стає збитком.
  6. Передача регламентів. Віддаємо документацію: порядок видачі часток, ротація, дії при інциденті, зони відповідальності. Навчаємо команду замовника на тестовому контурі.

Що залишається у вас: конфігурації, схеми, політики, регламенти

Розробка non-custodial стейкінгу закінчується не демо-запуском, а папкою артефактів у вашому контурі.

Ми віддаємо не «чорну скриньку», а опис системи в тому вигляді, у якому її зможе супроводжувати ваш інженер або інший підрядник: схеми, політики, ролі, регламенти й процедури відновлення.

  • Схеми взаємодії компонентів — хто з ким обмінюється даними, де проходять межі довіри, як влаштовано шлях операції від ініціації до підтвердження в мережі.
  • Політики доступу — які сховища ключів використовуються, хто і через який інтерфейс ініціює дії, як видається і як відкликається доступ.
  • Матриця ролей — таблиця «операція × роль»: що допустимо одному черговому, що потребує другого підпису, хто власник рішення.
  • Конфігурації у версіонованому вигляді — параметри вузла, правила моніторингу, шаблони розгортання: середовище піднімається відтворювано, а не «за пам’яттю інженера».
  • Регламенти реагування — пропуск атестації, падіння вузла, розбіжність із мережею, компрометація оператора: порядок дій, зона відповідальності, цільовий час реакції.
  • Документація та журнал змін — інструкція з розгортання з нуля, пам’ятка чергового, процедура виведення коштів і виходу з валідації без участі підрядника.
  • Чек-ліст приймання — включно з тестовим відновленням на чистому середовищі: поки ваш інженер не підняв систему сам, передача не вважається завершеною.

Кейс: розділення ролей підпису та виведення активів без посередника

Клієнт — оператор валідаторів, який піднімав non-custodial стейкінг для кількох десятків гаманців.

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

Метрики до впровадження

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

За квартал фіксували 5-6 інцидентів підпису — від повторного підпису одного й того самого набору даних до спроби виведення з адреси, до якої доступу бути не повинно. Відновлення доступу після зміни інженера розтягувалося на дні й залежало від того, чи відповість посередник.

Що змінили і що стало

Розвели контури: ключ підпису залишився на валідаторі в закритому сегменті, ключ виведення переїхав до окремого сховища з пороговою схемою 2 з 3 — частки в різних держателів, зібрати підпис на виведення можна лише спільно.

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

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

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

Роздільне зберігання відповідає на питання, хто вправі розпоряджатися коштами, а пороговий підпис — скільки зберігачів потрібно, щоб підпис відбувся. У першій моделі в кожного учасника свій ключ повністю, і правило перевіряється за фіксованим списком підписувачів.

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

Мультипідпис прозорий: список підписувачів і поріг лежать у відкритому стані, операцію можна розібрати заднім числом і побачити, чий голос її блокує.

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

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

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

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

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

Часті технічні питання щодо впровадження схеми підпису

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

Хто отримує доступ до ключа підпису?

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

Наша команда налаштовує процедуру й аудит, але не отримує можливості одноосібно розпорядитися коштами або підмінити адресу виведення.

Що буде, якщо оператор вузла відмовить?

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

Відмова обладнання призводить до пропуску обов’язків і штрафу мережі, але не до втрати активів: вузол піднімається зі збереженого стану, а при тривалому простої актив виводиться і повертається в роботу без поспіху.

Як перенести вже розміщені активи?

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

Коли управління жорстко прив’язане до кастодіана, плануємо цикл виходу й повторного розміщення з вікном простою, у яке нагороди не нараховуються.

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

Обговоримо вашу схему зберігання ключів і ролей підпису

Оцінка такої задачі не рахується «на око» — вона розгортається з вашої поточної схеми.

Тому починаємо з розбору: де зберігаються ключі валідатора, хто ініціює підпис, як розділені ролі оператора й власника коштів, що відбувається при виведенні зі стейкінгу і наскільки пороги підпису (наприклад, 2 з 3) відповідають вашому профілю ризику. За підсумками розбору повертаємося з оцінкою, планом робіт і порядком передачі в експлуатацію.

Що у вас залишається на руках після цього етапу:

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

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

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142