目前数字钱包存在的三个问题
Web3.0大规模普及,需要解决一些关键问题,包括钱包私钥带来的一个用户体验问题与两个安全问题。
1.一个用户体验问题:
助记词与私钥难记、难保存,导致用户使用门槛过高
2.两个安全问题:
助记词和私钥的泄露,导致资产被盗。
助记词和私钥的丢失,导致资产丢失。
数字钱包为什么只能通过私钥的方式进行验证
为什么只能通过私钥的方式进行验证?为了回答这个问题,我们需要了一些背景知识和概念。首先是以太坊上的账户类型。
以太坊一共有两种账户:外部账户(EOA)和合约账户(CA)。
合约账户就是智能合约,其代码由以太坊虚拟机来运行。
外部账户就是我们平常用来发起交易的钱包账户,它之所以被称为“外部“是因为这种账户本身是没有代码的,因此独立于以太坊虚拟机之外,由用户通过私钥进行控制。
合约账户(CA)虽然有自定义逻辑,但它是无法主动发起事务的。因此任何合约状态的改变都依赖外部账户来发起,并由外部账户(EOA)支付gas。
如何验证事务的合法性呢?
以太坊上的验证方式为检查事务的发起人和资产账户的拥有者是一致的(同一个人)。因此需要用户通过钱包对交易进行签名。
而以太坊默认的验证逻辑是通过secp256k1非对称密钥算法实现,用户必须掌握用于签名的私钥。
这就是为什么无论如何优化钱包的用户体验也无法绕开私钥的问题。
外部账户(EOA)并不具备代码逻辑。如果想要引入更复杂的逻辑来实现其他的功