实验2:应用会话

  • ithaca
  • 发布于 2024-11-22 23:50
  • 阅读 13

本文介绍了在以太坊应用中使用会话(Sessions)来改善用户体验的方法。通过WebAuthn密钥和Web Crypto API创建非提取P256密钥账户会话密钥,并将其存储在IndexedDB中,从而实现无需每次操作都签名即可执行链上操作。文章还探讨了会话的潜在风险以及未来的改进方向,例如添加会话权限、支持跨应用和跨链账户等。

EXP-0002:应用会话

2024.11.20 · 实验

目录

背景

想象一下你正在使用一个app。你在web浏览器中打开该app,或者从设备的App Store下载它,使用电子邮件/密码、OAuth、Face ID或其他常用方法登录或注册,然后就可以开始使用了。

一旦你完成了身份验证过程,你就可以在该app中执行多个操作。你可以撰写评论、将产品添加到购物车、管理付款方式以及结账。所有这些操作都使用你当前的会话信息,而不是每次都让你重新进行身份验证。这是世界上大多数人在使用app时所熟悉的体验。

现在,想象一下你正在使用一个支持以太坊的app。在大多数情况下,你需要安装一个app或扩展程序才能开始使用。可能还会有额外的消息签名、提示批准和确认,以及更多贯穿整个体验。

如果有一种更好的方式呢?试用下面的内联交换app(开启和关闭“使用会话”),并继续阅读以了解它的工作原理。

image.png

会话允许你执行链上操作,而无需每次都签名。

概述

在本实验中,我们探索基于WebAuthn的账户的会话,以及它们如何使开发者能够构建感觉与传统身份验证选项(电子邮件/密码、OAuth、魔法链接等)相当或更好的app。

为了实现这一点,我们在EXP-0001的基础上,通过授权的不可提取的Web Crypto密钥引入会话。

示例

通过EXP-0001,我们演示了使用EIP-7702的账户委托,以创建一个由WebAuthn密钥(如Passkey)控制的外部所有账户(EOA),并使用RIP-7212 P256预编译进行验证。

这有很多用例,包括赞助交易和批量调用,但并不能显著改善用户体验,因为你在执行操作时仍然会看到确认提示。确认提示对于转移大量资金、可疑交易等非常重要(想想你的银行的欺诈过滤器拒绝了你从纽约到澳大利亚墨尔本的有效8000美元航班)。对于日常操作,如支付给朋友、订阅或在线购物,它们可能会给体验带来太多的摩擦。

对于此示例,我们将使用Odyssey测试网并与之交互。我们还将使用ExperimentDelegation合约进行账户(EOA)委托。

链ID: 911867

RPC URL: https://odyssey.ithaca.xyz/

区块浏览器: https://odyssey-explorer.ithaca.xyz

委托合约: 0xb46b3f3f7F8B198894d1787b9d6c0effbd3928c9

初始化账户

按照与EXP-0001相同的步骤,我们初始化一个账户。你可以单击“注册”以创建一个新账户,或者单击“登录”以登录到你之前创建的现有账户。

image.png

这一次,在生成账户之前,我们使用Web Crypto API创建一个不可提取的P256密钥账户会话密钥。然后,Web Crypto密钥存储在IndexedDB 1中,并与WebAuthn P256密钥一起授权。

这一步启用了什么?嗯,如果你一直在关注,你就会知道答案是:账户会话。

(注意:此示例使用Web Crypto API,但你可以使用其他方法创建会话。)

有会话和无会话的执行

基于账户的会话旨在解决提示疲劳和审查签名请求的用户体验问题。试试下面的两个app。它们是相同的,只是一个启用了会话,另一个没有。

image.png

这是一个简单的例子,但我们希望很容易看到会话在改善用户体验和消除摩擦方面的潜力。“有会话”示例中,一旦你登录,你就可以自由地执行操作,而无需提示签名。“无会话”示例中,情况恰恰相反,你每次执行操作都必须签名。2

结论

这是一个关于如何使用基于账户的会话来改善支持以太坊的app中的用户体验的演示。这是一个正在进行中的工作,并且具有高度的实验性,但我们对快速、安全的账户与无摩擦的用户体验(也恰好附加了支付功能)的潜力感到兴奋。

后续实验中需要解决的一些未来探索和改进(如果你对以下任何一项感兴趣,请联系我们):

  • 添加会话权限
  • 添加对跨app会话和密钥的支持
  • 添加对跨链账户的支持
  • 解决盲签问题
  • 批量处理登录和会话创建

我们很高兴看到你构建的内容,并欢迎对围绕基于账户的会话的讨论做出贡献。

脚注

  1. 为了本实验的目的,我们使用IndexedDB,因为它遵循同源策略,并且可以执行密钥材料的存储和检索,而无需将其暴露给应用程序或JavaScript环境。

  2. 显而易见的权衡是,会话可能会通过供应链攻击或其他向量被利用。计划在未来的迭代中解决这些类型的问题。

  • 原文链接: ithaca.xyz/updates/exp-0...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ithaca
ithaca
Accelerating the crypto frontier. https://ithaca.xyz/