Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 是否有可能验证NIST P-256曲线的近智能防锈合同?_Rust_Nearprotocol - Fatal编程技术网

Rust 是否有可能验证NIST P-256曲线的近智能防锈合同?

Rust 是否有可能验证NIST P-256曲线的近智能防锈合同?,rust,nearprotocol,Rust,Nearprotocol,我正在考虑使用iOS安全Enclave对其中一个签名进行multisig。但是,它仅支持NIST P-256曲线 我知道它在协议级别上不受支持,但有可能在Rust smart contract中实现它吗?如果是–我从哪里开始?目前,即使您可以在智能合约NIST p-256曲线内进行验证(例如,这里有用于验证的库),您仍然需要首先使用一些ED25519或SECP-256K1密钥签署交易,以便在执行合约代码之前实际让区块链接受它 我的理解是,现在您可以将字节序列存储在安全enclave中,然后读取它

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


我知道它在协议级别上不受支持,但有可能在Rust smart contract中实现它吗?如果是–我从哪里开始?

目前,即使您可以在智能合约NIST p-256曲线内进行验证(例如,这里有用于验证的库),您仍然需要首先使用一些ED25519或SECP-256K1密钥签署交易,以便在执行合约代码之前实际让区块链接受它

我的理解是,现在您可以将字节序列存储在安全enclave中,然后读取它,并在用户区中对任何函数进行签名。以下是如何安全地执行此操作-


如果这是支持iOS安全enclave的一个重要考虑因素,您可以创建一个规范更改建议,将SECP-256P1(即NIST p-256)添加为NEAR的替代密钥类型。它会有明显的缺点,但这也是一个明显的优点,它是可选的,因此每个用户都可以决定他们喜欢使用哪种曲线。

(我在上面提到的AlphaWallet iOS PR上工作过)是的,理想的情况是,如果安全Enclave支持secp256k1,那么我们可以直接使用它。不幸的是,不是这样,因此下一个最好的方法(在该PR中实现)是使用Secure Enclave创建和管理另一个密钥对,并使用基于Diffie Hellman的对称加密来加密以太坊密钥(或种子),并将其作为字节序列存储在iOS密钥链中。