密钥是一种安全且用户友好的身份验证方法,由于使用了椭圆曲线加密技术,也可用于创建和安全存储加密钱包。
在这篇文章中,我们将介绍密钥的工作原理,探讨在加密钱包中使用密钥的风险,并深入探讨帐户抽象如何使密钥与智能合约结合使用。
什么是万能钥匙?
密钥是用户登录应用程序的一种简单而安全的方式,无需他们存储敏感密码或记住任何登录详细信息。相反,用户使用熟悉的方法(例如 Face ID 或 Touch ID 等生物识别技术)创建和访问帐户。
这使得用户能够以授权的方式轻松登录并与应用程序交互,而无需存储敏感凭据;提供无缝体验和额外的安全性,防止数据泄露和网络钓鱼等常见攻击媒介。
在大多数设备(例如 iPhone)上,密钥存储在称为“密钥”的专用硬件内。 安全飞地;专用的隔离环境,旨在保护敏感数据,即使主处理器受到损害也是如此。
万能钥匙如何工作?
密钥利用 公钥密码学 在用户设备上生成公钥-私钥对,由两个密钥组成:
公钥: 任何人都可以查看。它存储在应用程序的服务器上,或者有时存储在链上的智能合约中。使用椭圆曲线密码术,公钥始终可以从私钥导出。
私钥:这应该只有帐户所有者知道(或者在某些情况下,所有者甚至不知道)。它存储在 Secure Enclave 或其他安全硬件(例如 YubiKey)内。
喜欢 区块链钱包,密钥的私钥可用于签署消息和交易,这些消息和交易可发送以在区块链上进行状态更改。
要使用密钥的私钥签署交易,交易将被发送到安全硬件,在那里进行签名,然后输出生成的签名。在整个过程中,所有者和应用程序开发人员都无法访问私钥;他们只收到生成的签名。
这为用户提供了增强的安全性,因为私钥通常不会加载到应用程序的内存中,从而降低了遭受潜在攻击的风险。例如,在 iPhone 上,用户甚至无法在其设置中访问密钥的值,因为密钥是生成并存储在界面无法访问的专用硬件中的。
使用加密钱包的密钥
密钥和加密钱包共享相同的椭圆曲线加密技术来生成公私密钥对。区块链应用程序开发人员可以利用密钥为具有强大用户体验的用户创建安全的应用程序内钱包。
然而,有一个重要的区别,在使用区块链账户的密钥时会带来复杂性;万能钥匙 使用不同的椭圆曲线 比区块链账户。
虽然 Apple、Android 和 WebAuthn 都使用 secp256r1 (AKA P-256)密钥曲线,区块链账户使用 secp256k1 椭圆曲线。
这意味着以太坊或 Abstract 等区块链无法理解(因此拒绝)由密钥的私钥签名的交易。区块链的默认期望是交易由在区块链上生成的密钥对进行签名 secp256k1 曲线。
由于常规(EOA)钱包是在 k1 曲线上生成的,因此需要智能合约钱包,因为它们可以包含自定义逻辑,用于在授权交易执行之前验证由密码生成的私钥签名的交易。
为什么区块链使用 secp256k1 曲线?
比特币是第一个采用 secp256k1 曲线进行加密操作的货币,这为以太坊和其他基于 EVM 的链使用 k1 曲线变体进行账户设定了标准。
曲线的 k1 变体还缺少某些功能,例如附加系数,这些功能使 secp256r1 稍微复杂一些,这意味着 secp256k1 在密钥生成、签名创建和验证方面的计算效率更高。
尽管没有发现直接漏洞,但也存在阴谋论,认为比特币选择使用 k1 而不是更广泛采用的 r1 曲线,以避免任何可能由国家安全局等政府机构秘密引入的后门,鉴于他们参与了 NIST 认可的加密标准的开发。
智能合约钱包如何启用密钥
智能合约钱包(例如支持的钱包) Abstract 的本机帐户抽象) 可以包含 EVM 执行的任意逻辑;包括对收到的由在 上创建的私钥签名的消息进行签名验证 r1 曲线。
开源库,例如 Daimo 的开源 P256 验证器 旨在验证以 Solidity 编写的智能合约内 secp256r1 曲线上的签名。
在以太坊上,这意味着您可以使用由 ERC-4337账户抽象标准 来验证 r1 智能合约钱包的“validateUserOp”函数内的用户操作签名。
论摘要, 本机帐户抽象 使智能合约钱包能够提交交易,并将签名字段设置为由密钥的私钥签名的消息。如果发送交易的账户是包含验证逻辑的智能合约 r1 签名(在“validateTransaction”函数中),交易被接受。
什么是智能合约钱包?
智能合约钱包使用代码(以智能合约的形式)来管理和控制其功能,这意味着它们可以具有任何自定义功能;包括恢复模块、多个批准的签名者、支出限制、会话密钥等等。
智能合约钱包比传统的 EOA(外部拥有账户)钱包提供更大的灵活性,并且由于它们可以包含任意 EVM 代码,因此能够验证在钱包上创建的密钥对的签名(即授权交易)。 r1 椭圆曲线。
什么是 RIP-7212 预编译?
作为验证签名 r1 曲线不是以太坊或 Abstract 等区块链原生的,执行此验证的计算成本很高;与 k1 签名相比,验证 r1 签名的 Gas 成本大幅增加(大约贵 100 倍)。
RIP-7212(Rollup Improvement Proposal)建议在以太坊 L2 中添加预编译的智能合约,以便在以太坊 L2 上进行更高效的签名验证 r1曲线。虽然这尚未包含在以太坊中,但与 EVM 兼容的扩展解决方案(例如 Abstract)已经实现了这一点,并为以下项目提供了 100 倍的 Gas 减少: r1 签名验证。
密码钱包的缺点
密钥钱包的缺点是它们绑定到单个域。例如,如果您在 some-domain.com 上创建钱包,您的密码(以及您的钱包)只能连接到该特定域。
这是一种有意的设计选择,旨在避免网络钓鱼攻击,但是,对于重视自我保管的用户来说,这是一个重大缺陷,因为您的钱包直接与一个应用程序绑定;意义:
您无法获得使用单个钱包跨多个应用程序登录的好处,而这是加密钱包的主要好处之一;和
如果域名出现故障或无法访问(例如开发人员停止支付托管费用),您将无法访问钱包或从钱包中提取资金。
出于这些原因,密钥钱包最适合小额资金或让初学者用户首次体验加密货币,直到他们对自我托管钱包更加了解。
如果我丢失设备会怎样?
这取决于您选择如何备份密钥。有多种选项可将您的密钥备份到云端(例如 Apple 钥匙串),以便在其他设备上访问,即使您丢失了原始密钥也是如此。
如果有人偷了我的设备会发生什么?
由于私钥位于 Secure Enclave 中,因此任何时候都无法在设备上读取私钥。但是,如果他们有权访问您的生物识别数据,他们就可以执行操作,就好像他们控制了您的密码/钱包一样。
该应用程序会获取我的生物识别数据吗?
不会。您的生物识别信息不会发送到任何地方;它们保留在您的设备上。您的生物识别数据仅用于“解锁”密钥。
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!