Мультиподпись (Multi-sig)
Расширенная функция
HyperCore поддерживает нативные действия с мультиподписью. Это позволяет нескольким приватным ключам управлять одним аккаунтом для повышения безопасности. В отличие от других сетей, мультиподпись доступна как встроенный примитив на HyperCore, а не полагается на смарт-контракты.
Рабочий процесс мультиподписи описан ниже:
- Чтобы преобразовать пользователя в пользователя с мультиподписью, пользователь отправляет действие
ConvertToMultiSigUserс авторизованными пользователями и минимальным числом авторизованных пользователей, необходимых для подписания действия. Авторизованные пользователи должны быть существующими пользователями Hyperliquid. После преобразования пользователя в пользователя с мультиподписью все его действия должны отправляться через мультиподпись. - Чтобы отправить действие, каждый авторизованный пользователь должен подписать payload, чтобы создать подпись. Действие
MultiSigоборачивает любое обычное действие и включает список подписей от авторизованных пользователей. - Payload
MultiSigтакже содержит целевого пользователя с мультиподписью и авторизованного пользователя, который в конечном итоге отправит действиеMultiSigв блокчейн. Отправитель итогового действия также известен какleader(ведущий адрес транзакции) действия мультиподписи. - Когда отправляется действие мультиподписи, проверяется и обновляется только набор nonce авторизованного пользователя, отправившего транзакцию.
- Аналогично обычным действиям, лидером также может быть API-кошелёк авторизованного пользователя. В этом случае проверяется и обновляется nonce API-кошелька.
- Набор авторизованных пользователей пользователя с мультиподписью и/или порог могут быть обновлены отправкой действия
MultiSig, оборачивающего действиеConvertToMultiSigUser, описывающее новое состояние. - Пользователь с мультиподписью может быть преобразован обратно в обычного пользователя отправкой
ConvertToMultiSigUserчерез мультиподпись. В этом случае набор авторизованных пользователей может быть установлен пустым, и будет выполнено преобразование в обычного пользователя.
Различные примечания:
- Лидер (ведущий адрес транзакции) должен быть авторизованным пользователем, а не аккаунтом мультиподписи
- Каждая подпись должна использовать одну и ту же информацию, например, одинаковый nonce, ведущий адрес транзакции и т. д.
- Лидер должен собрать все подписи перед отправкой действия
- Пользователь может одновременно быть пользователем с мультиподписью и авторизованным пользователем другого пользователя с мультиподписью. Пользователь может быть авторизованным пользователем для нескольких пользователей с мультиподписью. Максимально допустимое число авторизованных пользователей для данного пользователя с мультиподписью — 10.
Важно для пользователей HyperEVM: преобразование пользователя в мультиподпись оставляет пользователя HyperEVM контролируемым исходным кошельком. CoreWriter не работает для пользователей с мультиподписью. В целом пользователям с мультиподписью не следует взаимодействовать с HyperEVM до или после преобразования.
Примеры кода см. в Python SDK.