首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EOA、CA、以太坊账户科普,智能合约钱包市场上亿?大话加密钱包系列1|重构研究院

什么是智能合约钱包?

使用托管型钱包还是非托管型钱包?托管式钱包(由集中式交易所发行和控制)虽然易于使用,但必须要有一个能够信任的第三方。非托管型钱包虽然安全性更加,减少了信任假设,但对普通用户来说难以使用。

但是,如果有另一种存储加密货币的手段,提供易用性和安全性呢?智能合约钱包就是为这个目的而设计的。

顾名思义,智能合约钱包依靠智能合约,打出来的招牌是用户体验更安全、更容易。与普通的Web3钱包不同,智能合约钱包是一种不需要私钥或助记词的钱包类型,相反,你通过智能合约设置谁和在什么条件下可以访问钱包。

好了,要继续再聊下去,先跟着我先来举个例子,回顾一下以太坊区块链架构的基本知识。

以太坊有哪些账户类型?

今年过年你微信里收到了一百块钱红包,你可以用这一百块钱去线上购物,发生一次交易行为。

换到区块链上,你的以太坊账户持有以太币(ETH),可以在以太坊上发送交易。帐户可以由用户控制,也可以作为智能合约部署。

账户是以太坊协议的核心组成部分,在每一笔交易和合约中都发挥着作用,以太坊有两种帐户类型:

外部所有的帐户 (EOA,Externally Owned Accounts) – 由任何拥有私钥的人控制

合约帐户(CA,Contract Accounts) — 部署到网络上的智能合约,由代码控制

这两种帐户类型共同点

都可以接收、持有和发送ETH和token

都可以与已部署的智能合约进行交互

这两种帐户类型区别点:

外部持有——

创建帐户是免费的

可以发起交易

外部所有的帐户之间只能进行以太币和代币交易

由一对加密密钥组成:控制帐户活动的公钥和私钥

合约账户——

创建合约存在成本,因为需要使用网络存储空间

只能在收到交易时发送交易

从外部帐户向合约帐户发起的交易能触发可执行多种操作的代码,例如转移代币甚至创建新合约

合约帐户没有私钥。相反,它们由智能合约代码逻辑控制

我再用说人话的方式总结一下:

合约账户(CA):

这样的账户没有私钥,但有一个地址、代码和存储。基于合约的钱包,也被称为智能合约钱包,依靠合约账户来存储和运行代码。

合约账户是由代码中的逻辑编程控制的。它没有相关的私钥,不能发起交易,但它可以在收到来自EOA的交易后执行操作(例如,调用另一个合同或转移资金)。

外部拥有的账户(EOA):

可以承载多种功能,最常见的是作为一个钱包或简单的私钥/地址对。大多数流行的非托管钱包都是利用外部拥有的账户。一个外部拥有的账户(EOA)是由一个相关的私钥控制的。密钥持有者可以以EOA或合同账户为收件人发起交易。EOA仅限于基本功能(如转账),因为账户的状态中没有存储代码。

今天的许多钱包都是由EOA管理的,MetaMask 生成的钱包账户就是EOA,这就是用户通过用私钥签署交易,从钱包转移以太币(ETH)和其他代币。我们常用的以“0x”开头的一串字符,就是都是免费生成的EOA公钥,我们还需要自己去记住并且保管一串复杂的私钥。

相比之下,智能合约钱包是由合约代码而不是私钥控制的。智能合约钱包与智能合约账户互动。想想看,在用户控制的账户之上有一层自动化。是不是这样一来智能合约使钱包更安全,更容易使用了?

光是凭借“不需要私钥”这一个优点,就使万千用户把目光投向了智能合约钱包。合约代码定义了资金如何被访问,由谁访问,以及在什么条件下访问。此外,由于智能合约是可编程的,智能钱包通常设计有比传统钱包更先进的功能。

那么,再回到我们昨天内容中提到的,钱包本身是个无限潜力的赛道,现在各个钱包都在花样百出的提供更多服务,如果想要实现更多的功能呢?比如想要实现多方验证安全性更强,比如想要多签低成本等等,目前有什么样的方式可以解决此问题呢?明天的下一节内容中,我们将会一起探讨什么MPC钱包和多签钱包以及各自的特点。

尘埃科技

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230124A004Q500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券