首页 > 解决方案 > 是否可以在 Rust 的 NEAR 智能合约中验证 NIST P-256 曲线?

问题描述

我正在考虑使用 iOS Secure Enclave 对其中一个签名进行多重签名。但是它只支持 NIST P-256 曲线。

我知道它在协议级别不受支持,但是否可以在 Rust 智能合约中实现它?如果是这样——我从哪里开始?

标签: rustnearprotocol

解决方案


目前,即使您可以在智能合约 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 安全飞地唱歌的重要考虑因素,您可以创建规范更改提案,将 SECP-256P1(即 NIST P-256)添加为 NEAR 的替代密钥类型。它有明显的缺点,但这也是一个明显的优点,它是可选的,因此每个用户都可以决定他们更喜欢使用哪条曲线。


推荐阅读