2 a( H6 ^2 |7 G) K- ]% b
账户抽象对支持用户上链的意义重大。 “Not your keys, not your coins.” 自我托管不知道被加密老炮们强调了多少次,但能做到的人却还是占极少数。账户抽象带来的极高的自由度,才能真正赋予了普通用户一个更安全好用的去中心化体验,自我托管将不再是少数极客才能做到。虽然FTX的爆雷对加密世界的未来蒙上了层深深的阴影,但也无疑验证了去中心化应用与自我托管的必要性。随着账户抽象的落地,加密行业将更有实力从中心化的坏蛋和皇帝们中解脱,走向更高维度的去中心化和自由。7 p5 C: r% z i- G) c2 M1 e
目前,EIP-4337 被很多人视为账户抽象的方向标,但该提案仍然只是过于理想的草案。比如理想中交易打包能分摊gas,实际上却是验证过程额外增加了gas消耗;比如理想中合约钱包适用统一架构,实际是作为一种自愿采用的ERC提案,它的效应很弱;比如理想中使用EIP-4337 的账户可以带来更优秀的使用体验,实际是许多dapp禁止合约地址交互的尴尬现状......
EIP-4337 这样的温和方案是账户抽象演进路程中的一次转变,是对开发资源紧张、直接进行代码改动影响过大等种种现实的妥协。这种妥协的方案有助于提前将账户抽象的理念发散推广,为未来的抽象化打下共识基础,但并不是账户抽象的终点。最终,以太坊仍然需要在代码层真正实现账户抽象,抵达那片我们所向往的乌托邦。
/ a; g' Q7 k5 s7 c* s5 J( @. K% R
什么是账户抽象 —— 从算盘到智能计算器在讨论账户抽象的具体意义之前,我们可以先拆解开来,分别理解什么是“账户”和“抽象”。. n/ _( | `* A0 a d9 w+ R1 Q
简单来说,以太坊的基础建立在两种账户类型上,一种承载用户的钱包,另一种承载智能合约的逻辑。他们的功能大多不兼容:用户的钱包无法进行逻辑判断,而承载智能合约的账户无法做任何逻辑之外的事情。可想而知,这样的账户系统并不优化。账户抽象的目标就是消除这种不兼容,把他们的区别”一般化” —— 去掉特殊性,寻找共性。% e |1 x$ H* e2 o1 ]+ j! Y
账户Accounts以太坊有两种基本的账户类型:外部账户(Externally Owned Accounts - EOA)以及合约账户 (Contract Account – CA)。
EOA即普通用户最经常接触的一类账户,如MetaMask钱包中的地址,它由用户通过私钥控制;而CA则是被部署在以太坊网络中的智能合约,由其代码进行控制,没有私钥。两类账户的异同之处如下所示:; C7 A& F# X; \* k9 G5 Y

抽象抽象指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。换言之,抽象是一个“一般化”的过程,需要去掉特殊性,寻找共性。! W6 p: y' K! X4 h }7 F$ B
+ d; t) ~5 M+ R$ F
以一个更现实具体的例子来理解抽象化:小汽车玩具和乐高积木。一个小汽车玩具的结构是特殊的、具体的,由四个轮子和车身等一系列特殊的零部件组成。若你想有一个小卡车玩具甚至是飞机玩具,则需要重新购买新的玩具。而乐高积木则是更抽象的,更一般化的,他将玩具高度抽象化为了立方体、球形等一般的积木模块,玩家可以用这些积木搭建任何玩具形态。
( z9 m5 N8 Y5 S% [+ ]5 Q& A
在区块链的发展中,从比特币到以太坊实际上也是抽象化的过程。比特币网络最初的目的是想实现点对点的支付系统,带有特殊的明确目的;而以太坊把区块链变成了更加一般化的系统,去掉了专为点对点支付的特殊性,提取了区块链技术的共性搭建出了新的网络,有了以太坊虚拟机,使区块链上可以自由地构造各种不同的协议与应用,拓展了区块链生态。