
Одноразовая подпись, которую можно проверять снова? Да, и @quipnetwork действительно объясняет почему в своих документах. Аккаунты Quip используют SHRINCS — систему подписей на основе хеширования, разработанную для защиты от квантовых атак. Для обычных операций с аккаунтом каждая подпись расходует один слот. Используйте один раз — переходите к следующему. Довольно просто. Но интересное происходит, когда dapp проверяет подписи через ERC-1271. Эта проверка является только для чтения. Она не расходует слот подписи. И та же подпись может продолжать проходить проверку, пока ключ установлен. Подождите, разве это не противоречит самой идее одноразовости? Не совсем. Подпись нового сообщения тем же одноразовым ключом и повторная проверка существующей подписи — это две разные операции. Проблема возникает, когда протокол предполагает, что действительная подпись автоматически становится непригодной после одного действия. Документация Quip прямо предупреждает разработчиков об этом. Хотите одноразовую авторизацию? Отслеживайте нонсы. Добавляйте срок действия. Или реализуйте смену ключей. Не ожидайте, что ERC-1271 волшебным образом обеспечит защиту от повторного воспроизведения. И именно это я считаю интересным в инфраструктуре квантово-устойчивых кошельков. Обновление криптографии не автоматически повышает безопасность всех приложений, подключенных к этому кошельку. Вы можете иметь более надежные подписи и всё равно допускать ошибки авторизации на уровне интеграции. Я не называю это уязвимостью Quip. Это задокументированное поведение, на которое разработчики должны обращать внимание. Настоящая сложность — не просто сделать кошельки квантово-устойчивыми, а сделать их безопасными для интеграции с DeFi-приложениями, которые люди уже используют. Этот последний аспект заслуживает гораздо большего внимания.
