Интеграция с 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, выбор операторов.







