Что такое Double Signing?
Double Signing происходит, когда валидатор подписывает два конфликтующих сообщения для одной и той же высоты или раунда в сети с доказательством доли. Это можно представить как два разных блока или голоса, каждый претендует на то, чтобы быть «тем самым» в один и тот же момент. Это похоже на одновременную регистрацию на двух концертах и ожидание, что охрана отреагирует улыбкой.
«Double Signing то же самое, что и двойная трата.» Не совсем. Двойная трата это транзакционный трюк, тогда как Double Signing представляет собой нарушение консенсуса со стороны валидаторов, подписывающих конфликтующие данные для одного и того же слота.
Как работает Double Signing
Краткий обзор того, как кто-то может попасть в неприятности в результате этого, намеренно или случайно.
- Шаг 1: Ключ валидатора в сети и готов подписывать сообщения для цепочки.
- Шаг 2: Оператор запускает второй узел с тем же ключом или клиент неправильно настраивает переключение резервирования. Упс.
- Шаг 3: Оба узла создают подписи для одной и той же высоты, но для разных данных.
- Шаг 4: Если возникают временные разветвления сети, каждая сторона может получить разную подпись от того же ключа.
- Шаг 5: Пиры обнаруживают конфликт, записывают доказательства, и протокол наказывает подписавшего.
Да, это может быть простая ошибка кликом с далеко не простыми последствиями.
Почему Double Signing важно
Почему это стоит знать, даже если вы никогда не запускаете узел:
- Преимущество: Знание о проблеме помогает избегать конфигураций, которые ставят под риск средства и репутацию.
- Реакция: Большинство сетей применяют slashing, потому что такое действие подрывает доверие к консенсусу.
- Актуальность: Ссылки на это встречаются в инструкциях по стекингу, голосованиях DAO и на панелях валидаторов.
Запускайте только один активный подписьщик для вашего ключа и осторожно относитесь к переключению резервирования. Используйте оповещения, архитектуру sentry и удаленный подписьщик, который откажется подписывать второй раз для одной и той же высоты. Доказательства хранятся в блокчейне, скрыться нельзя.
Ключевые характеристики Double Signing
Основные признаки, которые можно заметить и запомнить:
- Конфликт: Две подписи от одного и того же ключа для одной и той же высоты или раунда на разных данных.
- Наказание: Как правило ведет к потере залога и временной блокировке участия в валидации.
- Обнаружимо: Доказательства передаются и сохраняются, что помогает выявить нарушителя.
Варианты
Разные цепочки называют это по разному, но это тот же тип ошибки:
- Двойное голосование: Два голоса за одну высоту за разные блоки.
- Дублированное предложение: Два предложенных блока за один раунд от одного предложителя.
- Подпись на конкурирующих ветках: Тот же ключ подписывает на конкурирующих ветвях во время временного разделения.
Большинство случаев Double Signing носят случайный характер. Запуск двух машин с одним ключом достаточно, чтобы это произошло, даже на несколько секунд.
Пример
Валидатор запускает резервный узел, не отключив основной, оба подписывают блок на одной высоте, и сеть фиксирует Double Signing в течение нескольких минут.
Забавный факт
У многих клиентов есть встроенная «защита от двойной подписи», которая отслеживает последние высоты, на которых подписывался ключ, подобно небольшому охраннику, который откажется принять ваше второе фальшивое удостоверение.
Итог
Коротко: Double Signing это консенсусный эквивалент того, чтобы оказаться в двух местах одновременно и получить штраф за утверждение, что это нормально.
