【问题标题】:Is it possible to verify NIST P-256 curve in NEAR smart contract on Rust?是否可以在 Rust 的 NEAR 智能合约中验证 NIST P-256 曲线?
【发布时间】:2020-09-17 19:43:32
【问题描述】:

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

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

【问题讨论】:

    标签: rust nearprotocol


    【解决方案1】:

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

    【讨论】:

    • (我在上面提到的 AlphaWallet iOS PR 工作过)是的,理想的情况是如果 Secure Enclave 支持 secp256k1,那么我们可以直接使用它。不幸的是不是,所以下一个最好的事情(在那个 PR 中实现)是使用 Secure Enclave 创建和管理另一个密钥对,并使用基于 Diffie-Hellman 的对称加密来加密以太坊密钥(或种子)并将其存储为iOS Keychain 中的字节序列。
    猜你喜欢
    • 2022-08-07
    • 2019-08-15
    • 1970-01-01
    • 2020-11-08
    • 2019-08-12
    • 1970-01-01
    • 2021-12-30
    • 2022-07-02
    • 2021-01-13
    相关资源
    最近更新 更多