是否可以在 Rust 上的 NEAR 智能合约中验证 NIST P-256 曲线?



我正在考虑使用 iOS 安全隔区对其中一个签名进行多重签名。但是,它仅支持NIST P-256曲线。

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

目前,即使您可以在智能合约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 的替代密钥类型。它会有明显的缺点,但这也是一个明显的好处,它是可选的,所以每个用户都可以决定他们更喜欢使用哪条曲线。

最新更新