最近两周的工作集中在关于 DApp 中合约部署的思考,大部分时间,我在学习 zkRollup Layer2 的合约开发,并研究它们的网络设计特点。其中,StarkNet 设计的 Cairo 编程语言可以帮助我们更好地开发富应用的 DApp,并减少一个数量级的 Gas 费用消耗。 在 StarkNet 中,所有地址均为合约地址,没有外部账户(EOA)的概念,它的钱包账户由用户签名部署的「账户合约」组成,该私钥的签名才能操作这个「账户合约」的转账。这是一个很有趣的想法,我们知道,在以太坊主网中,EOA 与合约账户是一直以来的历史遗留问题之一,从 EIP86 草案到 EIP-2938 草案,都致力于将账户逻辑从 EOA 中抽象出来,并将其逻辑应用到智能合约所管理的账户中,以实现「智能合约钱包」。 StarkNet 的主流钱包方案 Argent X 即是一种「智能合约钱包」的实现,社区也提供了对应的 JS SDK,帮助开发者在本地或自己所部署的 DApp 中实现智能合约钱包。 如果我们把目光转向多签名合约,就会发现智能合约钱包作为服务,比作为 Inject Provider 的角色更受关...