搜索
NFT元宇宙Web3
近期热门

如何把Web 2用户的身份桥接到Web 3?

Founder

信息来源:yenkel,作者:Damian Schenkelman

tl;dr: 本文探讨Web 2如何过度到Web 3生态系统的问题,以及身份如何在其中发挥重要作用。

我认为Web 3将会持续存在一段时间。我所说的Web 3是指优先考虑用户选择和所有权的哲学、概念和技术,并可用于建立去中心化的服务。区块链(如Ethereum、Solana)、代币、协议(如IPFS、TheGraph、Lit)、服务(如ENS、Filecoin)、dApps和用户的密钥构成了Web 3(我在这里并没有列出一份详尽的清单)。

我不清楚它会有多成功,而且我认为今天的一切都不会如此。但我认为它会成功。我相信它已经在某些方面取得了成功。

我还认为Web 3不是 “唯一 “存在的网络。它将与Web 2共存,至少在若干年(几十年)内。我不是唯一这么认为的人。

如何把Web 2用户的身份桥接到Web 3?

如何把Web 2用户的身份桥接到Web 3?

在那之后,也许会出现另一种范式。作为一名开发人员,尤其是为其他开发人员构建产品的开发人员,我花了很多时间思考这意味着什么。我认为以书面形式分享我的想法可能会很有趣。

这篇文章主要是为:

  • 构建与Web 3服务对话的Web 2应用的开发人员
  • 构建希望被Web 2应用程序使用的Web 3服务的开发人员

在这篇文章中,我链接了以太坊的文档和概念,因为我对这些最熟悉,而且它是当今最大的开发者平台。类似的事情也适用于其他许多链。

使用Web 3结构的Web 2应用程序

Web 2应用程序可以通过Web 3构造增强用户的体验。

——Shopify正在潜心研究 “tokengated commerce”,根据用户的NFTs来定制购物体验。这里有一篇关于这个问题的非常清晰、深入的文章。代币化商务是一个美妙的想法。你所拥有的东西说明了你喜欢的很多东西。根据你的NFTs定制购物体验感觉很自然。(
https://help.shopify.com/zh-CN/manual/products/digital-service-product/nfts)

——Twitter和Stripe正在合作,允许加密货币支付,使内容创作者很容易用加密货币获得报酬。(
https://stripe.com/blog/expanding-global-payouts-with-crypto)

——Reddit正在区块链的基础上建立其社区积分系统。(
https://www.reddit.com/community-points/)

这些都是面向消费者的大型平台。他们没有成为dApps,但他们正在涉足Web 3。

这对开发者意味着什么?

开发者将需要弄清楚如何整合Web 2和Web 3的世界。我们已经开始看到这种情况以不同的方式出现,但创建开发者工具和基础设施的公司正在探索和实施Web 3的整合。

  • Stripe正在建设Web 3支付基础设施(https://stripe.com/use-cases/crypto)
  • Auth0宣布支持Ethereum的登录方式(https://auth0.com/blog/sign-in-with-ethereum-siwe-now-available-on-auth0/)
  • 谷歌云正在组建一个web 3团队

模式:这些建立Web 2开发基础设施的大公司现在正在创建一些组件,使Web 2应用程序开发人员能够轻松地与Web 3概念(NFTs、加密货币、ENS等)集成,而不需要全身心投入(即建立一个dApp)。

他们正在Web 2和Web 3世界之间建立一座桥梁。他们的桥接是关于允许Web 2的开发者与Web 3的结构进行互动,这也是这篇文章的重点。

桥接的另一个方面是让Web 2的数据对Web 3的开发者可用。如果这篇文章引起开发者的兴趣,我可能会就此再写一篇博文。

Web 3的信任模式

Web 3的理念是去中心化。每个用户都拥有他们的数据,他们的$代币,等等。

如何把Web 2用户的身份桥接到Web 3?

Web 3的信任模型依赖于非对称密码学,其中信任的来源是用户的私钥。

虽然有一些委托的用例,但用户通常不会选择第三方作为信任代表,而委托将是用户的选择。

为使Web 2和Web 3之间的桥梁存在,关于用户地址所有权的信任必须在两个方向流动。

身份是桥梁的结构

归根结底,在Web 3的背景下,用户的地址是他们的 “身份”。这代表了他们是谁。所以,他们可能有许多这样那样的身份,每一个都是他们在不同背景下呈现的独立 “身份”。

沟通Web 2和Web 3的世界意味着解决桥梁两边的身份问题,并使开发者能够轻松地在此基础上构建。

当然,在搭建桥梁时,Web 3的原则不应受到影响。我们可能需要调整Web 2身份协议(如OIDC:
https://openid.net/connect/、OAuth 2:https://oauth.net/2/)和标准的工作方式,以适应Web 3的需求和理念。

一切从地址开始

一个Web 3地址有一个相关的私钥和公钥。

地址的数量正在快速增长:

如何把Web 2用户的身份桥接到Web 3?

Ethereum Addresses(https://etherscan.io/chart/address)

但活跃地址的数量增长较慢:

如何把Web 2用户的身份桥接到Web 3?

活跃的以太坊地址https://etherscan.io/chart/active-address

从上面的图表中,我们可以推断出,积极使用以太坊地址的互联网用户的比例很低。Metamask两个月前说他们有3000万月活跃用户。但是,那些不拥有地址的用户呢?

要让Web 3获得海量用户的长期采用,必须有一条铺设好的道路让大众用户采用它。不是每个人都对加密世界有兴趣。一种允许用户继续使用他们习惯的模式(如用Facebook、Google、Twitter等大平台登录),并且只有在他们后来想知道区块链(和密钥)时才会意识到的方法是非常有价值的。

虽然地址的数量增长极快,但所有互联网用户中相对较小的群体才拥有他们的私钥:要么离线创建密钥对,要么通过硬件钱包。更多的是以 “托管钱包 “的形式存在,由服务机构来管理钥匙。像Binance或Coinbase这样的中心化交易所是最常见的例子。

虽然从Web 3/去中心化的角度来看,这可能并不 “纯粹”,但它是非常积极的。它把Web 3的一些想法带到了大众中。

从开发者的角度来看,连接Web 2和Web 3世界意味着托管服务必须将区块链地址与用户账户相关联,安全地管理密钥,并提供控制(至少对其他内部开发团队而言)以管理钱包的互动。

像magic.link、bitski和venly这样的服务正在帮助Web 2连接Web 3世界,为典型的Web 2登录机制创建密钥对,并为开发人员提供API和UI来管理这些私钥。

一旦用户控制了一个私钥,这就是乐趣的开始 🙂

用我的私钥登录

让我们看一下一个相对简单的场景,看看它在Web 2和Web 3应用程序中是如何工作的。用户:

  1. 在一个应用程序上识别。
  2. 将他们的头像更改为 {input A} 并保存。
  3. 意识到他们在#2中犯了一个错误。
  4. 将他们的头像更改为 {input B} 并保存。

一个Web 3应用程序(dApp)允许用户 “连接 “他们的一个地址。这种操作本质上是给浏览器提供用户的区块链地址。除了区块链和其他去中心化的服务之外,没有任何 “后端”。通常情况下,需要在Web 3组件上验证用户的操作需要来自用户私钥的签名信息。

如何把Web 2用户的身份桥接到Web 3?

Web 3 案例

有了Web 2协议,用户不必在每次操作时都采取行动来证明自己的身份。用户通常只需登录一次,客户端/浏览器就会存储一个凭证,并在随后的请求中发送给后台,后台用它来验证用户的身份。

如何把Web 2用户的身份桥接到Web 3?

Web 2 案例

上面的图是过度简化的,以表达观点

Web 2的用户体验更好。衔接Web 2世界和Web 3世界需要保持与Web 2类似的用户体验,当调用区块链(或任何其他Web 3原生服务)时,证明用户控制了私钥并打算执行每个具体操作。

作为Web 2应用程序的一部分,开发人员如何将地址与用户账户联系起来?

上一节提到的服务已经将私钥与用户账户关联起来。但是,那些没有的服务呢?如果用户使用Metamask、Argent、Trezor或任何其他类型的钱包呢?

这就是用以太坊登录解决的问题(
https://eips.ethereum.org/EIPS/eip-4361)。它允许用户与一个服务建立一个会话(在Web 2的意义上),使用他们的私钥作为证明地址所有权的凭证。

如何把Web 2用户的身份桥接到Web 3?

图片来源:https://auth0.com/blog/sign-in-with-ethereum-siwe-now-available-on-auth0/

如果这听起来很有趣,你应该关注@signinwitheth和@SpruceID 。

而一旦Web 2应用知道用户的区块链地址是事实,这就开启了一个可能性的世界。

潜在的使用案例

一旦用户的Web 3身份被知晓,Web 2的开发者自然会想进一步发展。这将意味着:

  1. 读/写与地址有关的公开可用数据(如链上数据),并将其用于业务逻辑。我们把这些称为 “不需要用户认证的操作”。
  2. 读/写需要认证的数据(如存储在去中心化存储中的用户的私人视频或进行链上交易)。让我们把这些称为 “需要用户认证的操作”。

让我们详细看看每一项,以了解它如何运作。

不需要用户认证的操作

这是最简单的情况。开发人员将能够调用任何需要地址且不需要认证的API。我想到的一些用例是:

  • 读取 ENS(https://ens.domains/) 或 Unstoppable Domains(https://unstoppabledomains.com/) 以获取配置文件数据并显示它,如果用户选择拥有它,这将为“全球公共用户名和配置文件图片”打开可能性。
  • 通过获取用户的POAPs并根据这些POAPs(https://poap.xyz/)限制对资源的访问,实现令牌门禁。
  • 将资产转移到一个用户的链上地址。
  • 下一步,如果他们成为主流,使用像人类证明这样的服务来避免假的用户账户。

请注意,还有其他方法可以通过可数字验证的证书来实现其中的一些目标,而且这些方法不需要公共数据。但这是另一篇文章的故事…

如何把Web 2用户的身份桥接到Web 3?

需要用户认证的操作

哦,事情开始变得很棘手 🙂 我们都已经习惯了这样的对话框。

如何把Web 2用户的身份桥接到Web 3?

如果你想让Web 2应用访问你的Gmail数据,你要用Google登录,然后得到一个对话框,同意你希望的Web 2应用访问的账户中的资源。

这对Web 3服务应该如何操作?如果你的Web 2应用程序想要读取存在于两个不同的Web 3服务中的数据。

  • 你应该同时 “登录 “它们吗?
  • 还是只同意向他们俩授予应用程序权限?
  • 每种情况下的用户体验是怎样的?

在Web 2应用程序的背景下,一个由认证服务器(在前面的例子中是谷歌)发出的令牌被用来访问Gmail的API(Gmail是 “资源服务器”)。Web 2应用程序代表用户向API进行多次调用时发送该令牌。在Web 3服务的情况下,这应该如何操作?

  • 用户应该为每次与Web 3服务的互动签署一份协议吗?这不是最好的用户体验…
  • 他们应该把权限委托给应用程序吗? 如何委托?
  • Web 3服务需要如何适应这些授权情况?

Spruce公司的开发者已经开始思考如何解决这一挑战。我认为这是向前迈出的积极一步。我们需要了解用例和实际场景,以将这些案例概括为所有开发人员的可重复模式/指南。

我想这是未来挑战的一个重要部分。

总结

我很想知道你对此有什么看法,因为我正在积极思考并努力弄清这些东西。作为我的团队在Auth0Lab的工作的一部分,我们正在探索如何在Web 2和Web 3的世界中架起桥梁,而不是仅仅在一个应用程序的背景下,而是在为所有开发人员提供工具的背景下。

编辑于 2022-05-15 07:32
「 真诚赞赏,手留余香 」
赞赏

发表评论已发布0

手机APP 意见反馈 返回顶部 返回底部