贡献者:?Hahaho。[2023/5/29 9:49:18]
因为现在传统钱包的私钥像是一个单点故障(Singlepointoffailure),即使你犯了一个很小的错误,你钱包里的财产也无法找回。比如前几天Moonbird社区的创始人,因为被社会工程,误点了一个链接,导致将钱包授权给黑客,价值几百万的几十个NFT都被转走。
所以我觉得目前的钱包安全问题还是比较严重的,特别是去年发生的FTX事件,大家意识到交易所也是可以跑路的,于是大家就都想把资产尽可能自己托管,虽然作为从业者当然很希望大家这么做,大家也听说过NotYourKeys,NotYourCoins的说法,但实际上要想尽可能好的做到还是很难的,像前面提到的“老手”或是资深从业者都发生过丢币的事情,未来下个牛市进场的小白用户根本没有相应的理论基础和操作实践,即使有10%的资产丢失也是非常恐怖的,所以一定要解决这个问题。这也是如今抽象账户被频繁提及的原因。
Q:我看到实际上在2015年账户抽象的概念就已经出现了,但好像一直没有引起像今天这么强烈的关注,为什么账户抽象突然之间成为了一个业内讨论的热点话题呢?这种现象产生的背景是怎样的?
这是一个很好的问题,我从几个方面来讲。首先要讲的还是大环境,刚才我们讲到传统钱包的问题,对用户的影响还是很大的,还有其它方面的问题,比如Gas费模型,其实大多数小白用户对这件事情还是很难理解的,比如你在OpenSea上想买一个Polygon链的NFT,如果你没有Matic的话又无法操作,需要再去想办法弄Matic,这对很多新用户来说还是一个比较大的门槛。
此外大家也知道了账户抽象对应的其实就是智能合约钱包,它并不是一个全新的概念,其实在很早就有了,比较流行的比如Argent,其实在上个牛市,17,18年就已经开始做了,但是没有流行起来。此外智能合约账户其实是一个“二等公民”,它仍有一系列的问题,目前只是用在了DeFi与NFT领域上,目前其实是没办法通过智能合约实现资产管理的操作的。
而从以太坊的发展历史来说,以Vitalik为代表的人们很早就有一个愿景,就是希望用户拥有的是一个智能的账户,并不只是通过一个简单的签名就可以操作所有东西。最早在2015年,EIP101就已经设想了未来版本的以太坊账户体系设计,它的主要思想就是每个账户都应该有一个自己的代码,但是因为这个方案改动较大,跟当时的以太坊的交易模型不是非常兼容,所以没有实现。
但是相关讨论每天都会有,包括以太坊基金会会提不同的EIP,比较知名的是2021年的EIP4337,2020年的EIP2938,它希望智能合约的账户能够自己付Gas费,以及执行交易,这在EVM里面是没办法操作的,因为在以太坊设计里,必须有一个外部的账号发起交易,支付Gas费,交易才可以完成。但因为当时以太坊的目标是要去先完成ETH2.0升级,所以这个EIP也就被搁置。直到2021年,Vitalik提出了一个比较巧妙的方案,这个方案并不需要修改协议层,利用了已经流行起来的Flashbots产生的架构,然后采用一个定制的Mempool去搭建一个基础设施,实现了把账户抽象的交易验证从协议层抽离出,放在了应用层,这个应用层其实是一个以太坊基金会发起的标准,大家如果要做新的智能合约钱包的话,就要遵循这个标准。所以我觉得以太坊基金会制定标准这件事一直做的很好,就像在2017年的ERC20,NFT的ERC721,账户抽象的EIP4337,其实现在应该叫ERC4337,因为它已经进入了下一个实现的阶段。
Visa 加密团队正在探索研究账户抽象、互操作性、可扩展性和隐私等主题:5月24日消息,Visa CBDC 和协议负责人 Catherine Gu 在接受 Blockworks 采访时表示,Visa 的加密货币团队仍处于起步阶段,目前还没有明确定义的路线图,但该团队目前正在研究账户抽象、互操作性、可扩展性和隐私等主题。
Catherine Gu 表示,随着区块链技术的成熟,在消费者、机构,甚至中央银行层面,隐私将是一个重要的焦点领域,我认为在未来理解隐私背后的影响和设计都是很重要的。[2023/5/24 15:22:28]
这就是大概的历史背景,首先有大的环境,传统钱包的对普通用户的的门槛,而且不安全。二是以太坊基金会很早就希望用户的账户可以有能力执行一些逻辑,这个逻辑可以让用户来选,或是应用开发者来实现,实现更多的可能性。所以这个方案并不是最近才火的,而是经过很多年的不断讨论,不断的技术更迭,最后落到了EIP4337。
Q:如果把账户抽象理解成两个词组,账户和抽象,那怎么理解抽象的定义呢?
抽象在计算机科学里,就是指从一个大块抽出相关的部分,分成小部分。用另外一个词来解释的话会更好理解,其实就是模块化。我举一个例子,TCP/IP,也就是网络协议,是互联网的基础,它其实是四层协议,再早之前有个叫OSI七层协议,它们就是比较典型的抽象的例子,它不是把所有的代码在一个地方完成,而是每一层完成一部分,之间有一个比较明确的接口的定义。如果没有技术背景,可以就把它理解成模块化。
Q:那像这种模块化的账户,它与现有的账户相比会有哪些优势?
我们回到刚才讲的问题上可能会比较好解释,EOA的功能逻辑是写“死”在以太坊虚拟机里的,然后做出判断,第一个判断是确定交易是不是由私钥持有人签名,也就是确认签名是否“正确”,第二是确认账户里有没有足够的Gas费,第三个判断是Nonce,可以把它理解成计数器,用来防止重放攻击。这三个逻辑都要经过判断,Check一下,都完成了才会判定这是一个合理的交易,完成打包发送到区块里,完成交易。
而账户抽象可以将刚刚提到的判断抽象出,交给开发者,也就是让开发者定义账户做什么,其实就是用一种可编程的方式来设置验证交易有效性的标准。有了这个功能,开发者就可以通过验证非私钥的方式进行验证,实现更多很“酷”的功能。
此外账户抽象的名词乍一听可能会觉得非常“高大上”,事实上它就是智能合约钱包。所以从某种角度上来说,还是要赞叹Vitalik的造词能力,我举另一个例子,就是去年提出的SBT,实际上它就是一个不可转让的NFT,但如果当时就叫它不可转让NFT,大家又可能会觉得比较“无聊”,但如果说SBT,灵魂绑定代币,格局就完全不一样了。
所以账户抽象某种意义上就是用智能合约管理账户的能力,不用想的过于复杂。
Q:那么它会有哪些实际场景的用例呢?会和什么实际场景结合?
具有账户抽象能力的钱包账户,其实可以理解为它的账户就是一段图灵完备的代码。就像为什么人们会说以太坊是对比特币的一种“超越”,就是因为以太坊区块链可以运行智能合约,除了比特币也可以进行的转账活动,还可以做很多业务的判断,它是图灵完备的。但是今天的以太坊链上的账户是没有图灵完备能力的,只是合约具有图灵完备能力。所以如果能在以太坊上实现账户抽象,那么我们的账户就有图灵完备的能力,实现智能合约可以实现的一系列业务逻辑。那能够做哪些事情呢,我们一个个来看:
Alchemy:以太坊账户抽象提案EIP-4337已在主网上部署:金色财经报道,Web3开发平台Alchemy在社交媒体上宣布,以太坊账户抽象提案EIP-4337已在主网上部署,未来将为我们带来实现的工具。1.无缝的用户入职、2.更多的账户安全、3.无Gas费交易。
一个全新的web3体验就在眼前。[2023/3/9 12:50:22]
我们前面讲到传统钱包存在比较大的安全隐患,就是如果丢失了私钥,资产也就消失了,它是一种单点故障,一个微小的失误就会导致很大的损失。这时我们就可以引入多方验证,就像我们在传统互联网中,如果想登陆银行账户,需要输入手机收到的验证码,这就叫做MFA,通过引入这种方式升级账号,比如授权其它的私钥操作自己的钱包进行交易;还有一种功能叫做社交恢复,它的能力是如果你常用的私钥丢失,但是在丢失之前我已经授权了几个人,那么我就可以联系这几个人帮我进行恢复。就像我们前面举的例子,如果你的豪宅钥匙丢失,通过这种方式就可以实现“换”钥匙,你还拥有豪宅的使用权限。
但这一点还是与前面提到的中心化交易所的半托管方案是天差地别的,也就是Coinbase的例子,因为通过账户抽象实现的这种功能,无论你授权给谁,仍然是可以将授出的权限收回,整个资产还是被用户所最终控制。虽然很多用户进入Web3是通过中心化交易所的路径,确实它们的体验现阶段也非常的好,但仍然无法完全排除其作恶的可能性,毕竟是由中心化交易所控制着你的资产,不是跑在智能合约上。通过将传统钱包升级成账户抽象的钱包就可以更加的安全。
第二个场景就是可以将账户配置给不同的角色或不同的支出策略,不同的人实现共同管理,比如一个公司或是DAO组织,不同的角色有不同的支出权限,比如财务部门或是普通出纳人员,有不同的支出限制,CFO可以随便花,超过一定金额需要一个更高级别的人的授权,出纳可能需要每个月发一次工资,或是DAO组织内部需要投票,可以拿去Snapshot里投票,但是不可以用来转账等等一系列复杂功能。
还有一个场景是刚刚谈到的Gas费,原有模式可能会影响用户的体验,造成一个门槛。而引入了账户抽象就可以支持多种支付方式,也就是不需要你的钱包账户里一定要有链上的原生代币,可以直接扣除钱包里的其它财产。或是由另一方代为支付,可能另一方是游戏开发商,或是社交类,这样的话就很大降低了门槛。
此外还有批量授权和交易的场景。如果大家与链上的DeFi协议交互过的话都知道,要完成一步步的繁琐操作,比如你想去Compound里质押借贷,至少要完成三个步骤,首先要授权Compound的合约,然后将代币进行质押,最后根据质押率进行借贷,每一步都要进行确认与操作交易,耗费Gas费。但如果可以将三步进行打包,只需要签一下就可以对应三笔交易操作,便捷的同时也节省了Gas费。
上面提到的功能在一个应用里已经比较好的实现了,就是LensProtocol,它是一个去中心化社交图谱协议,主要运行在Polygon上。它做了一个比较有意思的创新设计,就是通过调度器的设计,用户可以签名授权给另一个账号,LensProtocol也会为这个账号垫付Gas费,所以使用LensProtocol进行一些社交功能是不需要交Gas费的,同时你的互动它也会写到链上。目前LensProtocol已经处理了超过400万笔交易。
以太坊基金会启动账户抽象相关项目资助活动,截止日期为3月31日:2月28日消息,以太坊基金会宣布在2023年2月27日至3月31日启动新一轮资助,以鼓励围绕账户抽象和支持它的必要基础设施进行开发、研究和教育,包括webauthn交易验证、账户抽象区块浏览器、捆绑器、p2p消息传递、定序器RPC等。
据悉,本轮赠款的目的是促进和启动多个与账户抽象相关的新项目。单个提案的预算上限为50,000美元,项目可以申请标准赠款计划以获得额外资金。[2023/2/28 12:33:27]
此外,如果在游戏场景中,有时你可能不希望被打断,可能希望在10分钟或是一个小时内,所有的交互由游戏开发者帮忙代行操作就可以,因为游戏游玩过程不会涉及到数量较高资产的操作,那么就可以设置一个时间段,做一个临时会话,生成一个会话密钥(Sessionkey),就不会被打断。
最后一种使用场景也是以太坊基金会经常提到的,就是通过账户抽象实现以太坊签名算法的升级,因为如果某一天量子计算机问世,它强大的计算能力可以攻破目前以太坊使用的ECDSA,而实现账户抽象后,就可以将签名算法进行模块化升级。
Q:那么如何不用过多技术层面的的词语,较简单的解释账户抽象的工作原理呢?
我们所说的账户抽象的原理,其实都是围绕着ERC4337的协议标准来讨论的。这个标准是由Vitalik跟以太坊基金会的一些开发者提出,它最大的一个特点就是不需要改底层的协议,不需要改EVM。
它利用了一个定制化的Mempool,你可以把它理解成一个还没打包的交易,在某个地方停留的状态,有点像坐火车,上车就代表这个区块写“死”了,在你没上车之前,你必须在候车室等待,而Mempool可以通过写一个智能合约,用户再通过UserOperation的标准进行操作,调用刚才谈到的开发者定制的模块化验证手段,来确认这个交易是否合理,如果通过就会把交易写进区块。
具体的技术实现比较复杂,大家可以去看我之前写的一些科普文章。简单来说就是不需要更改EVM,但仍然还有很多工作要做,某种程度上是借助EVM运行起来的。
Q:既然谈到账户抽象和多方安全计算,因为我们前几期播客也有Cover相关的话题,包括MPC,隐私计算,包括DAOrayaki也有从事量子计算方面的研究。所以我们也讨论过当量子计算真正推广到民用阶段的时候,会不会就把目前整个区块链的底层打破。所以您怎么看待账户抽象和多方计算的技术结合呢?
我们刚刚简单讲了一下MPC钱包的定义,这里再重复一下,本质上它还是EOA钱包,但是私钥并不是在用户客户端完成签名,实际上是把私钥打成了多个碎片,碎片由用户或是MPC提供方各持有一部分,最终多方完成计算跟加密,当你需要签名的时候,几个碎片就拼接起来完成整个私钥的计算,这里面它的核心思路就是分散控制权,进而达到分散风险的目的,避免单点失败。
举例来说,一个私钥分成了三片,那对黑客来说它就要分别攻破三个人,难度就骤然上升。所以核心原理就是分散,那实现的方式就是通过算法,其实有不同的算法,有些算法发展较早,现在已经比较成熟,它会真的分成碎片,之后可以重构出一个私钥,这个私钥会在一定时间内,在某个计算环境中保持完整的状态。
还有一种最近提的也比较多,它实际上是利用了门限签名,它不会重构出私钥,它利用了比较高级的密码学原理,私钥并不会在某个计算环境里面保持一个状态,你可以理解成一个网络,这个网络由多方进行轮回的计算,这种方式会更安全,但是会有一些计算时间的问题。
其实MPC最近也比较火,因为大家也意识到了一个大前提,就是钱包真的很不安全,要么走智能合约的方向,要么走MPC的方向,刚才也举了Coinbase的例子,其实Coinbase之前也有很多成熟的公司,有个叫Fireblocks的公司也已经做了很多年,也有一定的这个市场。
其实MPC钱包跟智能合约钱包各有利弊,先说账户抽象的弊端,最大的弊端就是账户抽象钱包的兼容性问题,因为它依赖于智能合约,而智能合约是部署到某一条链的,所以它跟这条链绑定,如果部署在以太坊上,那么像BTC,Solana就无法支持。或是EVM也有很多种,Layer2上的比如Arbitrum,Polygon,如果没有部署好也会有一些安全性问题。
第二个问题,就是账户抽象钱包,它的运行逻辑是跑在链上的,所以就又回到了Gas费的问题,因为它的计算要消耗链上计算资源,所以它的Gas费肯定比传统钱包要高。所以账户抽象钱包可能在以太坊主网上还需要一段时间发展,因为以太坊主网的Gas费目前也比较高,在目前的阶段,还有好多的工作要做,那它肯定会先在Layer2上落地发展。
而MPC正好解决了这两个弊端,第一因为它的私钥是在链下完成,所以它天然支持不同的链,它只要支持对应的加密曲线算法就可以,大部分是由ECDSA椭圆曲线签名来支持,所以它有更好的兼容下。二是它在算的过程中不消耗Gas费,因为它是在链下完成计算。
但是这也衍生出了一个很大的问题,就是你需要相信MPC的提供方,相信第三方提供的计算能力,比如ZenGo自己也表示,如果它们的服务器出现故障,那服务也是无法继续的。包括Coinbase如果有一天受到了政府的通知,说要封停某个账号,它也可能会停掉。所以这种方式是在某种程度上牺牲了去中心化。
说到这里我也正好介绍一下我们的项目AstroX,因为在分析过这些情况后,我们觉得会有一个更好的方案,这个方案可以把账户抽象与MPC的优势都结合起来。我们的创新就是用第二条链来完成整个密码学流程,实际上就是把MPC的优势用智能合约跑在一个独立的链上来完成密码学计算。同时因为它是独立于目标链的,所以它对于目标链来说还是一个EOA,能保证兼容性,此外我们也支持智能合约钱包,实现了公链上的可组合性。所以我们的方案就是选了一些密码学能力较强的公链,在上面搭建一套计算模型,来支持不同链的私钥管理,同时实现跨链的账户抽象钱包的能力。
Q:最后我们聊一个开放式话题,您怎么看待账户抽象对未来Web3行业发展的影响?
我认为,账户抽象不仅仅是为了叙事而叙事,因为前面也聊到这个概念早在15年就已经出现了,我认为这个方案其实是Web3应用获得更大规模用户的先行基础。因为Web3能实现资产的自我掌控,但是用户体验不好,而Web2的体验服务很好,但数据资产不属于你。所以我觉得如果账户抽象如果能够实现,就可以将两者优势结合起来。比如在智能手机出现之前,互联网就已经存在多年,但直到智能手机真正出现,每个人都可以随时随地的上网,才真正有机会把互联网推向了更大规模的社会应用,改变了人类社会。所以我觉得我们目前还处于一个传统钱包的功能有限的“诺基亚时代”。
或者用另一个比喻,比如汽车,最早时候的汽车安全性不高,因为没有那些安全标配,安全带,气囊或是ABS系统,但汽车是实际意义上的将安全责任交给了用户,那后面就可能会出现很多意外,所以现在有了法律上要求一定要绑安全带。同理钱包也是一样,我们可以自己控制自己的资产,但是责任太大,所以有了账户抽象,我们就可以不断补充比如社交恢复,多签的设置,将其变成“标配”,有了标准,行业也会更好的发展。所以我们觉得这是一个很大的机会。
此外还有一个我的感触,就是现在钱包产品领域的竞争仍然很激烈,甚至不亚于Layer1公链的竞争,而公链的竞争是底层基础设施上的竞争,而钱包是面向用户。包括最近也有消息称Opensea和Uniswap都要做自己的钱包,说明它们在获得了原有用户的基础上也在考虑扩大受众,这也会挤压传统钱包的市场空间。
但我们也觉得未来是一片光明的,因为现在还处于“诺基亚”时代,而且像EIP4337这种标准,以太坊基金会一推出,大家就会又回到同一起跑线。像现在大家会经常用Metamask,如果它们不思进取,很可能就会被后来者超越,所以对于从业者来说还是有非常多的机会的。所以也很期望跟社区的小伙伴,同业者们一起交流,发掘共建新的场景,我觉得在熊市做Builder是很好的,所以在熊市里大家要多抱团取暖,做更多的事情。
总结
谢谢Brutoshi老师的分享。
账户抽象值得大家期待的原因,不仅是因为它会显着增加链上用户数量,还会给开发者带来极高自由度去解决当前账户体系的痛点,创造新的应用、玩法和想象空间。
尽管类似像EIP-4337这样的折衷方案仍然存在gas高、兼容性差等实际问题,但大力推广EIP-4337也是概念推广和共识增强的一种选择。
随着概念的普及,账户抽象和合约钱包将从小众走向主流,从用户需求出发推动协议兼容,形成新的账户范式。最终,在广泛共识下,以太坊具备了直接更改底层代码实现账户抽象的条件。这种新的账户体系将更有利于为web3吸引新的用户和流量,刺激生态的蓬勃发展,从而形成良性循环。
再次感谢Brutoshi的分享,让社区的小伙伴收益良多,今天相关讨论的音频晚些时候会上传在DAOrayaki官网,DAOrayaki.org的专属播客频道里。我们也会同时发布在国内的小宇宙播客平台,喜马拉雅FM,全球各大流媒体平台,例如苹果播客、谷歌播客、YouTube以及Spotify上,欢迎大家收听及订阅。祝大家新年快乐,我们下期不见不散。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。