Можно ли проверить кривую NIST P-256 в смарт-контракте NEAR на Rust? - PullRequest
4 голосов
/ 30 мая 2020

Я подумываю о создании мультиподписи с одной из подписей с использованием iOS Secure Enclave. Однако он поддерживает только кривую NIST P-256.

Я знаю, что он не поддерживается на уровне протокола, но можно ли реализовать его в смарт-контракте Rust? Если да - с чего начать?

1 Ответ

3 голосов
/ 30 мая 2020

В настоящее время, даже если вы можете проверить внутри смарт-контракта кривой NIST P-256 (вот библиотеки для проверки, например - https://github.com/RustCrypto/elliptic-curves/tree/master/p256), вам все равно нужно будет подписать транзакцию с некоторым ED25519 или ключ SECP-256K1, чтобы заставить блокчейн принять его до того, как код контракта будет выполнен.

Я понимаю, что прямо сейчас вы можете просто сохранить последовательность байтов в безопасном анклаве, прочитать ее и подписать любую функционировать на земле пользователя. Вот как это можно сделать безопасно - https://github.com/AlphaWallet/alpha-wallet-ios/pull/1272

Если это важное соображение для поддержки iOS безопасного анклавного пения, вы можете создать предложение об изменении spe c, чтобы добавить SECP-256P1 (который является NIST P-256) в качестве типа ключа, альтернативного NEAR. У этого были бы очевидные недостатки, но это также явный положительный момент, и это необязательно, поэтому каждый отдельный пользователь может решить, какую кривую он предпочитает использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...