Інтеграція з SSV Network (DVT)
SSV Network (Secret Shared Validator) — протокол Distributed Validator Technology (DVT) для Ethereum. Розділяє приватний ключ валідатора на кілька зашифрованих частин (key shares) розподілених між кількома незалежними операторами. Один оператор offline або скомпрометований — валідатор продовжує роботу.
Як працює SSV
Key Splitting (DKG): приватний BLS ключ валідатора розбивається на N shares з threshold M (наприклад 3-of-4). Кожен share шифрується публічним ключем відповідного оператора. Жоден оператор не бачить повний ключ.
Distributed signing: при необхідності підписання attestation кожен оператор генерує partial signature своїм share. M підписів агрегуються в одну BLS підпис — невідрізнювану від звичайної.
SSV token: оператори отримують винагороду в SSV токенах. Стейкери платять операторам за їх послуги.
Smart Contracts інтеграція
Реєстрація валідатора
interface ISSVNetwork {
struct Cluster {
uint32 validatorCount;
uint64 networkFeeIndex;
uint64 index;
bool active;
uint256 balance;
}
function registerValidator(
bytes calldata publicKey,
uint64[] memory operatorIds,
bytes[] calldata sharesData,
uint256 amount, // SSV token amount для оплати операторів
Cluster memory cluster
) external;
function removeValidator(
bytes calldata publicKey,
uint64[] memory operatorIds,
Cluster memory cluster
) external;
}
Вибір операторів
interface ISSVViews {
function getOperatorById(uint64 operatorId)
external view returns (
address owner,
uint256 fee, // SSV fee за epoch
uint32 validatorCount,
bool whitelisted,
bool isPrivate,
bool active
);
}
Вибір операторів — важливе рішення. Фактори:
- Надійність (uptime history)
- Fee (SSV per epoch)
- Geographic diversity (різні регіони = fault tolerance)
- Client diversity (різні consensus клієнти)
Розрахунок SSV deposit
// Розрахувати необхідний SSV deposit
function calculateRequiredSSV(
uint64[] memory operatorIds,
uint32 numValidators,
uint64 blocksToFund
) external view returns (uint256 ssvAmount);
Потрібно періодично поповнювати SSV баланс кластера — інакше оператори перестають працювати.
SDK інтеграція
SSV надає JavaScript SDK для key splitting та shares generation:
import { SSVKeys, KeyShares } from 'ssv-keys';
const ssvKeys = new SSVKeys();
// Завантажити keystore валідатора
const { privateKey } = await ssvKeys.getPrivateKeyFromKeystoreData(keystore, password);
// Розбити на shares для вибраних операторів
const keySharesPayload = await ssvKeys.buildShares(
privateKey,
operators // масив {id, operatorKey} для кожного оператора
);
// keySharesPayload містить зашифровані shares готові для on-chain реєстрації
Інтеграція SSV Network — 2-4 тижні. Основна складність: DKG ceremony, правильний SSV balance management, вибір операторів.







