火星链 火星链
Ctrl+D收藏火星链
首页 > 火星币 > 正文

以太坊:抽象账户介绍(一):以太坊的账户现况

作者:

时间:1900/1/1 0:00:00

作者:AlfredLu,imTokenLabs实习生

本文受众:区块链初学者

抽象账户的讨论最近在以太坊社群如火如荼地展开,但由于AA涉及的内容包含了合约账户的特性、NativeProtocol的变更,以及各式各样的新式账户的提案层出不穷,导致AA非常难让人理解。

本文将以imTokenLabs近期的研究观点,从以太坊最原始的账户开始,带到抽象账户介绍。最后引至探讨AA能带给我们什么不同的账户体验,和它与我们常见的ContractAccount有什么差别,它到底为何重要。

目录

我期盼这次系列文章可以帮助一个初学者从完全不懂以太坊账户,到可以大概知道抽象账户的基本概念与设计缘由。

我把这篇文章拆解成几个重点问题,由浅入深依序介绍:

什么是账户什么是抽象账户抽象账户为何重要:与原生合约账户的差别未来账户:使用和开发体验而本篇文章将会着重在第一点:「什么是账户」。

什么是账户?

为什么这个章节提到的内容格外重要是因为许多人不懂AA,或不知道为什么需要AA。就是因为对以太坊的原生账户不够熟悉,导致无法理解许多AA的优点或想要解决的问题。

Arbitrum提案AIP-2已开启投票,旨在实现账户抽象的广泛采用:7月12日消息,Arbitrum提案AIP-2已开启投票,旨在实现账户抽象的广泛采用,投票截止日期为7月16日08:13。[2023/7/12 10:50:07]

如果大家觉得自己已经熟悉以太坊原生账户的话,可以跳过本篇直接看下一篇。

以太坊的原生账户

以太坊最原生的两种账户为:外部账户与合约账户。

外部账户作为外界与区块链互动的切入点,我们持有一组公私钥对来控制这个EOA,而公钥对应的地址会记录在链上,同时记录着这组地址的状态。

合约账户简单来说就是存了钱的智能合约,是另外一种储存我们资产的方式。我们能够利用智能合约的可编程性和签名的判断使账户更为灵活,以及实现众多特性。

例如:合约账户能做到多签钱包,可以让安全性大幅提升,也适合多人协同管理;抑或者是我们可以在合约中加入限制,让这个钱包只能汇款给某个指定角色,设置每日汇款上限等。

无论是哪种账户都能够储存以太币、收发以太币,也能够与智能合约互动。

EOA与ContractAccount最大的差别就在于,EOA能够作为交易的发起者,而Contract都只能是交易的中继者。

Worldcoin:World App使用Safe账户抽象堆栈提高钱包安全性:5月29日消息,Worldcoin 在社交媒体上表示,该生态首个加密钱包 World App 已成为 Polygon 网络最大 Safe 钱包部署者。

据悉,每个 World App 用户都会收到一个部署在链上的智能合约以太坊钱包。World App 使用账户抽象来提高钱包的整体安全性。在底层,这个智能合约钱包使用了一个由 Safe 开发的账户抽象堆栈 Safe{Core}。[2023/5/29 9:49:18]

也就是说当我们有一个ContractAccount想要汇款给另外一个账户,就必须要有一个EOA作为交易发起者,将这笔交易送到ContractAccount触发函数,再进而呼叫目标合约。其中合约去呼叫另外一个合约的行为就称作InternalCall。

本图每列的最左角色为交易发起者,最右角色为收款者。可以发现EOA账户同时持有资产又可以做为发起者,但CA就不能作为发起者,需要一个EOA完成发起的动作。

所有权与签名权

了解两种账户是什么之后,我们准备要介绍这两种账户所要面对的问题,但在此之前我觉得有两个概念非常重要,这将很大程度的影响大家能不能理解合约账户,甚至之后的抽象账户。

Safe发起的账户抽象黑客松在DoraHacks.io正式开启:3月1日,据官方消息,账户抽象黑客松(March for Account Abstraction Hackathon)申请入口已在开发者激励平台DoraHacks.io开启。本次活动由以太坊多签智能合约钱包Safe(原Gnosis Safe)主办,利用DoraHacks平台支持的自由组织黑客马拉松工具发起,总资助池达50,000美元。3月1日-31日,BUIDL团队可通过Dorahacks.io提交参与申请。[2023/3/1 12:35:56]

这两个概念就是所有权和签名权。

有所有权的人我们称之为Owner,拥有这个账户的人有签名权的人我们称之为Signer,能够决定这个账户发出的交易内容、决定资产动向的人这样讲可能难以理解,先从现实生活中的银行体系来介绍好了。假设我在银行开了一个户头之后,我便是这个户头的所有者,这应该无庸置疑。同时柜员会用镜头拍下我们的脸,记录我们的印鉴,以及所有个人资讯包含电子信箱、手机号码、个人收支状况等。这些都是以便未来判断我们的身份。

同时我会得到一组户头帐号和密码,持有这些资讯的我也将是这个账户的签名者,只要带着这组密码,理论上我就能够领出这个户头的所有钱。

Nervos network谢晗剑:未来的区块链不是追求性能更好,而是抽象层次更高:金色财经现场报道,10月26日,由万向区块链实验室主办的第七届区块链全球峰会在上海举行,Nervos network 架构师谢晗剑在题为《区块链抽象和演进》的分享中称,治理和抽象是区块链面临的新挑战。以太坊改变了一切,它是把区块链技术一般化,它去寻找利用区块链技术的应用,发现它们的共性,然后为各种应用、场景和需求,创造一个平台,使得在以太坊上可以创造各种应用,包括支付、游戏等。以太坊是抽象层次更高的系统,而未来的区块链,追求不是性能更好,而是抽象层次更高,更加一般化的设计。他认为区块链在抽象层面的问题有三个,比如特定的账户体系,特殊的密码学算法,特殊的运行时。区块链应该追求抽象层次越高,性能是副产品。[2021/10/26 20:57:53]

若是今天非常不幸,有一个小偷窃走了我的提款卡及密码,他也就有了这个账户的签名权对吧,因为他能够决定这个账户的资产走向。那他是否真的能够领出所有户头里面的钱呢?

答案是不行,因为银行会发现小偷并不是这个账户的所有者,也许是借由任何生物辨识或其他方法,反正银行绝对有办法知道眼前这位是不是当初来开户的人。

VitalikButerin等人发布Ethereum“账户抽象”提案ERC4337:9月29日,Ethereum创始人Vitalik Buterin联合KristofGazso、yoav.eth、DrorTirosh、NamraPatel、TomaszK.Stanczak等人发布账户抽象提案ERC4337,可在不改变以太坊共识层协议的情况下实现验证逻辑,该提案的开发者内测版本将于近期上线。

注:“账户抽象”是以太坊社区中讨论的改进提案之一,以实现交易不需要从私钥控制的EOA账户发起,而是可以直接从智能合约发起,具体的用例包括智能合约钱包、Tornado.Cash这类隐私保护工具等。[2021/9/29 17:15:22]

至此大家可能已经发现链下世界与链上世界的差别,那就是在区块链的世界中,账户的所有权和签名权理论上是同一个个体单位持有。也就是说持有私钥的人,就是拥有这个账户的人,同时他也能用这个账户发出任何他想要的交易,任意转移账户的所有资产。

我们没办法在链上仅通过一个签名,就判断出眼前这个送出交易的账户背后,到底是不是我们期待的那个人。因为私钥终究是一串乱码,而不是一个活生生的人。

退而求其次,我们只能认签名,也就是相信私钥没有外泄。只要签名通过验证:那我们就相信这个签名者真的是我们期盼的那个人。

接下来我们将会依序讲述一些现行账户设计的问题,这里先综述一下:

问题-私钥保存

从上述内容,我们知道了EOA的签名者就是所有者。但现实真的是这样吗?窃走了我们私钥的骇客就成为账户的所有者、当我们失去私钥之后就失去了一切。

这样的设计恐怕平民老百姓是很难接受的,毕竟我们已经习惯了「忘记密码」这个按钮。这也是为何区块链难以让一家老小都迅速上手的其中一个原因:私钥保存极度重要且危险。

而我们刚刚讲的EOA签名权和所有权的问题,其实能够在ContractAccount得到缓解,那就是我们能够将资产储存在合约的同时,在合约中记录代表着此账户的所有者。

当这个ContractAccount实现了SocialRecovery等功能时,即便我们丧失了控制这个合约的所有者私钥,也不至于失去对整个合约的控制,也不会失去这个合约上的资产。

大家对SocialRecovery有兴趣可阅读:SocialRecoveryWallet社交恢复钱包

问题-原生协议只能使用ECDSA

以太坊的原生协议中,我们只能使用ECDSA这个签名算法来验证用户送上来的交易签名是否正确。

理论上有更安全的签名算法,但这也不代表ECDSA是不安全的。同时在某些应用场景中它不一定是那么好用,如果能够使用其他更有效率的签名算法会让使用者体验更好、效率更高。

因此我们不会希望所有的交易验证都被绑在ECDSA上。

问题-EOA手续费只能通过Ether支付

在以太坊上发送交易时使用的手续费必须使用Ether支付,这导致一个问题:当我们有一个新的、没有ETH的账户想要收到别人赠予的ERC20代币或是NFT等等资产时,就无法触发提款交易。

举例来说,如果用户想要使用Uniswap,账户里面却只有DAI而没有Ether的话,他也是无法兑换的。

这个问题我认为有两个点:

使用者体验:当我们有一个新的账户想要跟合约互动时,就必须先将这个账户充值这可能会使使用者体验很差。隐私有风险:无论是用中心化的交易所,还是从持有ETH的另一个账户,用哪个东西汇款给这个新账户,都能够在链上被串起关系。问题-合约账户无法作为交易发起者

有别于imToken、MetaMask是做EOA的钱包商,像是Argent这样专门做ContractAccount的钱包商必须依赖Relayer来让用户送出交易。

Relayer是一个中心化的服务,它会代替我们发出交易,去执行我们的合约账户。此外它也可以解决必须要有ETH作为手续费的问题,甚至是隐私问题。

举Argent为例,它有提供一个中心化的Relayer。当我们使用钱包签名完交易后就会直接送给Relayer,Relayer会以EOA的身份作为交易发起者,把我们已签的交易送到ContractAccount。Relayer会从ContractAccount身上提走一定数量的ERC20代币做为手续费。

ArgentRelayer的一个缺点是它只会等待网路不拥塞、手续费比较低的时候才会送出交易,而且使用者也不能自己更新手续费来加速交易。

问题-EOA一笔交易只能包含一个函数呼叫行为

背景信息:呼叫合约的函数来更改状态时,必须通过送出交易来与合约互动,每呼叫一次合约函数就需要送出一笔交易。

我们在ERC20Token的操作上,常常需要先执行approve再执行transferFrom,也就是呼叫两次TokenContract的函数,总共EOA就需要两次交易才能完成这个转移Token的行为。而ContractAccount因为可以在合约内构建复杂的执行逻辑,所以可以直接在一笔交易就完成多个操作。

这样送出多笔交易的成本也会比送出一笔交易执行多个操作的成本来的高,这是因为每一笔交易都会被收一个固定的基本费用。

总结

相信大家看到这里已经有一定的概念了,除了EOA在某些应用场景没办法符合我们的需求;还有虽然合约账户能提供更丰富的功能,却因为种种原因导致使用上不如预期,例如需要依赖中心化的Relayer等等。

而以上提到的这些,其实都是抽象账户想要解决的问题!

所以未来的账户我们希望可以一笔交易完成多个操作,同时拥有有选择其他签名算法的弹性。

特别感谢NICLin,Chang-WuChen和imToken同事们校对本文并提供改进建议。

标签:以太坊区块链TRARAC以太坊最新价格行情分析美元区块链工程专业学什么Tracer DAOBRACE价格

火星币热门资讯
EDGE:CITEX平台早报-2022年12月21日

10:00数据BTC全网算力246.84EH/S当前挖矿难度35.36T理论收益0.00000354BTC/T/天FIL全网有效算力19.073EiB理论收益0.0135Fil/TiB1.

1900/1/1 0:00:00
OIN:2022世界杯落幕 币赢与50亿球迷共同见证梅西荣获大力神杯

2022卡塔尔世界杯决赛于北京时间12月19日凌晨结束,经过残酷的点球大战,阿根廷队以3:3战胜法国队,夺得2022卡塔尔世界杯冠军。上半场,梅西、迪玛利亚先后破门,阿根廷队2:0领先.

1900/1/1 0:00:00
OLG:俄罗斯检察官:调查机构应被允许设立加密钱包和交易所访问权限

12月19日消息,俄罗斯检察官MadinaDolgieva认为,除其他政府机构外,调查机构应被允许设立加密钱包,并能够存储没收的数字硬币并将其转换为法定货币.

1900/1/1 0:00:00
ORL:關於支持Mainframe(MFT)代幣置換、增量及品牌升級為Hifi Finance(HIFI)的公告

親愛的用戶:幣安將支持Mainframe代幣置換、增量及品牌升級為HifiFinance的計劃。時間安排:幣安賺幣將於2022年12月22日11:00停止提供MFT活期產品,用戶將無法繼續申購.

1900/1/1 0:00:00
ITA:2天10倍,特朗普也发起了NFT?

45000张,每张99美元,美国前总统唐纳德·特朗普的首个NFT系列「TrumpDigitalTradingCards」仅用12个小时就全部售罄.

1900/1/1 0:00:00
binance:比特币、以太币在周末暴跌后几乎没有变化,BNB收复失地

在对全球经济衰退和加密货币交易所稳定性的担忧持续一周后,比特币和以太币在周末暴跌后,周一上午在亚洲市场几乎没有变化.

1900/1/1 0:00:00