钱包授权一直是与DApp交互的必要流程,但我们在DeFi、GameFi中交互的过程中往往会需要在短时间内多次授权,这非常影响用户体验。Odaily星球日报最近关注的“会话密钥”技术,则允许用户对DApp仅授权一次就可以在后台默认签署后续交易并支付gas,实现类似Web2免密支付的功能,从而极大地优化用户体验。
会话密钥是如何工作的?
简单来讲,会话密钥允许用户在与应用交互之前签署一个token以提前批准特定的交易,用户可以自定义频率、gas最高价、每日限额等参数,当用户签署该token再与该应用交互的时候,符合之前参数条件的交易就会在后台被自动执行并支付gas。但目前会话密钥并不支持所有的钱包,仅仅支持智能合约钱包,它是基于账户抽象的智能合约钱包的子技术。在进一步介绍会话密钥之前需要先介绍一下以太坊上的地址、智能合约账户以及账户抽象的发展情况。关于地址、智能合约账户、账户抽象
目前以太坊上有两种地址:第一种地址就是通常的钱包地址,也称为外部拥有账户,具有发送与接收代币、支付gas、执行交易的功能;一种是智能合约地址,各种部署在以太坊上的dapp就是以智能合约的方式运行着。
但是这样的地址设计存在很多问题,许多以太坊开发者认为EOA地址的设计阻碍了钱包在多签、隐私保护、gas优化等方面的发展,并且不利于交易的可编程。因此,V神、AnsgarDietrichs、MattGarnett,、WillVillanueva、SamWilson等人提出并完成了以太坊改进提案EIP-2938,并提出了“用户抽象”的概念。关于账户抽象,简单来讲就是让智能合约地址可以支付gas和执行交易,使之具备钱包地址的所有功能。基于账户抽象的智能合约地址就是智能合约账户,也由此衍生出了智能合约钱包概念。而会话密钥是基于账户抽象的智能合约钱包的子技术。前面已经提到,支持会话密钥的钱包支持用户自定义免密支付的参数,但是这些参数的可选项完全取决于钱包开发商。且会话密钥并不支持所有DApp,所支持的DApp取决于你所使用的智能合约钱包是否允许调用该Dapp的合约,这个过程是中心化的。总结一下,会话密钥就是Web3的免密支付,允许用户对DApp仅授权一次就可以在后台默认签署后续交易并支付gas。那么现在有哪些用例呢?用例
StarkNet上的链游孵化器MatchBoxDAO在《HowtoMakeOn-ChainGamingCompetitive:‘SessionKeys’》中提出了会话密钥的一些用例,它们包括:用户友好的且不间断的游戏;设置多个DeFi仓位的能力;填写包含许多输入项的表单时进行确认;非托管和自我指导的IRA;重新管理钱包/库存中的资产……
从工作原理来看,由于会话密钥可以允许用户提前批准一些交易,从而减少用户批准次数,因此所有有高频授权、交互的应用场景都会用得到它。我们可以据此推理,会话密钥可以解决Web3社交媒体的高频链上交互影响用户体验的问题。以Lenster为例,基于社交协议LensProtocol开发的链上社交媒体Lenster上的所有交互都需要授权并支付Matic,每次评论和转发都需要钱包授权,非常影响用户体验。
如果Lenster实现了会话密钥,这将让用户省去繁琐的多次授权,有更加顺滑的产品体验,极大缩小与Twitter这些Web2应用巨大的产品差距,我们也许可以期待在未来的某天可以用上一些产品体验媲美Web2产品,但架构却是Web3的去中心社交媒体。参考链接
1.ArgentX关于会话密钥的推文2.《HowtoMakeOn-ChainGamingCompetitive:‘SessionKeys’》——MatchBoxDAO3.《FromSign-InwithEthereumtoSessionKeys》——WayneChang4.《AnoverviewofAccountAbstractioninEthereumblockchain》——YashKamalChaturvedi5.EIP-86:Abstractionoftransactionoriginandsignature6.EIP-2938:AccountAbstraction7.EIP-4337:AccountAbstractionviaEntryPointContractspecification相关阅读
主动拒绝“投攻击”——合约钱包的登场机会
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。