“
什么是智能合约钱包?
使用托管型钱包还是非托管型钱包?托管式钱包(由集中式交易所发行和控制)虽然易于使用,但必须要有一个能够信任的第三方。非托管型钱包虽然安全性更加,减少了信任假设,但对普通用户来说难以使用。
但是,如果有另一种存储加密货币的手段,提供易用性和安全性呢?智能合约钱包就是为这个目的而设计的。
顾名思义,智能合约钱包依靠智能合约,打出来的招牌是用户体验更安全、更容易。与普通的Web3钱包不同,智能合约钱包是一种不需要私钥或助记词的钱包类型,相反,你通过智能合约设置谁和在什么条件下可以访问钱包。
好了,要继续再聊下去,先跟着我先来举个例子,回顾一下以太坊区块链架构的基本知识。
“
以太坊有哪些账户类型?
今年过年你微信里收到了一百块钱红包,你可以用这一百块钱去线上购物,发生一次交易行为。
换到区块链上,你的以太坊账户持有以太币(ETH),可以在以太坊上发送交易。帐户可以由用户控制,也可以作为智能合约部署。
账户是以太坊协议的核心组成部分,在每一笔交易和合约中都发挥着作用,以太坊有两种帐户类型:
外部所有的帐户 (EOA,Externally Owned Accounts) – 由任何拥有私钥的人控制
合约帐户(CA,Contract Accounts) — 部署到网络上的智能合约,由代码控制
这两种帐户类型共同点:
都可以接收、持有和发送ETH和token
都可以与已部署的智能合约进行交互
这两种帐户类型区别点:
外部持有——
创建帐户是免费的
可以发起交易
外部所有的帐户之间只能进行以太币和代币交易
由一对加密密钥组成:控制帐户活动的公钥和私钥
合约账户——
创建合约存在成本,因为需要使用网络存储空间
只能在收到交易时发送交易
从外部帐户向合约帐户发起的交易能触发可执行多种操作的代码,例如转移代币甚至创建新合约
合约帐户没有私钥。相反,它们由智能合约代码逻辑控制
我再用说人话的方式总结一下:
合约账户(CA):
这样的账户没有私钥,但有一个地址、代码和存储。基于合约的钱包,也被称为智能合约钱包,依靠合约账户来存储和运行代码。
合约账户是由代码中的逻辑编程控制的。它没有相关的私钥,不能发起交易,但它可以在收到来自EOA的交易后执行操作(例如,调用另一个合同或转移资金)。
外部拥有的账户(EOA):
可以承载多种功能,最常见的是作为一个钱包或简单的私钥/地址对。大多数流行的非托管钱包都是利用外部拥有的账户。一个外部拥有的账户(EOA)是由一个相关的私钥控制的。密钥持有者可以以EOA或合同账户为收件人发起交易。EOA仅限于基本功能(如转账),因为账户的状态中没有存储代码。
今天的许多钱包都是由EOA管理的,MetaMask 生成的钱包账户就是EOA,这就是用户通过用私钥签署交易,从钱包转移以太币(ETH)和其他代币。我们常用的以“0x”开头的一串字符,就是都是免费生成的EOA公钥,我们还需要自己去记住并且保管一串复杂的私钥。
相比之下,智能合约钱包是由合约代码而不是私钥控制的。智能合约钱包与智能合约账户互动。想想看,在用户控制的账户之上有一层自动化。是不是这样一来智能合约使钱包更安全,更容易使用了?
光是凭借“不需要私钥”这一个优点,就使万千用户把目光投向了智能合约钱包。合约代码定义了资金如何被访问,由谁访问,以及在什么条件下访问。此外,由于智能合约是可编程的,智能钱包通常设计有比传统钱包更先进的功能。
那么,再回到我们昨天内容中提到的,钱包本身是个无限潜力的赛道,现在各个钱包都在花样百出的提供更多服务,如果想要实现更多的功能呢?比如想要实现多方验证安全性更强,比如想要多签低成本等等,目前有什么样的方式可以解决此问题呢?明天的下一节内容中,我们将会一起探讨什么MPC钱包和多签钱包以及各自的特点。
尘埃科技
领取专属 10元无门槛券
私享最新 技术干货