原文标题:《观点 | 为什么 「通用登录」 可能行不通?》
撰文:Weiwu Zhang
翻译及校对 : 闵敏、阿剑
自人们开始探索区块链的非金融用例以来,Web 3.0 中的身份概念一直是讨论的焦点。
身份一般以 「通用登录(Universal Login)」的形式应用于网络,即,使用一个身份访问所有网页。本文将分析为什么通用登录对于 Web 3.0 来说不是上策。提示:通用登录的问题既不出在 「通用」上,也无关乎密码,而在于 「登录」。
通用登录的主要支持者之一UniLogin 已停止运营(复制链接打开:https://unilogin.io/)。Gas 价格飙升、DeFi 「贵族化」以及浏览器隐私的不断变化意味着浏览器本地存储的效用降低。
当新冠疫情还没有成为全球危机时,Bokky 在悉尼举办了一场 「带着你的啤酒来(复制链接打开:https://www.meetup.com/en-AU/BokkyPooBahs-Ethereum-Workshop/)」区块链研讨会来探讨区块链背后的密码学原理。我记得有一个场景,当演讲者说到任何密码学签名都可用于登录网站之类的两方身份认证时,其他参与者脸上出现了惊讶的表情。
「也就是说,我们可以使用地址登录网站,不需要输入密码了?」 一位参与者问道。
「是的」演讲者回答,或者,你可以根据你的以太坊密钥生成一把 「钥匙」,来向网站隐藏你的真正地址。如果你的所有 「钥匙」都只有一个来源,你就能实现 「通用登录」 —— 获得一把能够打开所有门的 「万能钥匙」。
听了这位演讲者的话,研讨会的参与者都激动不已。我只能想象在其它城市的类似场景中出现过的同样令人大开眼界的画面。
密码学身份认证热潮
演讲者说的没错,「通用登录」背后真正发挥作用的机制是密码学身份认证。自网络诞生以来,每隔十年就会有人尝试实现 「通用登录」。
如今,人们称赞 W3 的 Web Authentication API (一份发布于 2020 年关于如何使用密码学技术解决登录问题的规范)是先驱,但它不是什么新想法。W3 早在 2014 年就发布了 Web Authentication API 的前身 WebCrypto API,只是后者并不出名。
同样用于公钥登录的 HTML 表单元素 早在 2008 年就有了,但是很少有人知道,甚至没有网站使用它。等到了 HTML5,这个表单元素才真正发挥作用。时至今日,大多数浏览器已经在清理不常用功能时禁用了该元素。在经历过辉煌之后, 还是悄无声息地消亡了。
从小就迷恋密码学的我知道密码学身份认证技术只是迎来了又一次迭代。看到人们如此激动,我不禁感到诧异,希望这次迭代会有所不同。
如果 「通用登录」 这次真能成功,那一定会是个奇迹。除非……
如果出现了新的用例会怎么样?就像 2008 年初那样,Web 2.0 用例让沉寂已久的 AJAX 技术死灰复燃?
密码学身份认证的新用例
你可能会想,是否有新的网络登录用例?在我们深入探索之前,我们应该思考一个问题:为什么网络身份认证就一定跟登录有关?
这个问题可能看起来很愚蠢。细想一下:身份认证跟登录之间有什么差别呢?身份认证就是登录;登录就是身份认证。它们根本就是一回事。
但是,到 Web 3.0 这里就不一样了。
如今,区块链用户倾向于认为 Web 3.0 未来将成为一个代币化网络。在这个网络中,用户持有来自各种去中心化组件(即智能合约)的代币,来避免大型公司对网络的控制。
我们来畅想一下新的应用场景。假设代币化网络已经实现,你的浏览器钱包里有一些代币。这时,你访问了一家线上游戏商城。
你使用年龄证明(身份代币的一个功能)访问限制级游戏。结果,神奇的事情出现了,商城的游戏列表发生了变化。
然后你使用另一个代币:捆绑折扣代币。这是 开发的会员代币,提供多款游戏的折扣价。充值 ◈100 DAI,AAVE 就会给你 100 个捆绑折扣代币,可用来在线上游戏商城享受多款游戏的折扣价。
你看了看游戏列表,决定购买热门日本游戏《集合啦!动物森友会》。你可以用 DAI 支付,但是商城知道你持有 ,于是为你提供额外奖励:如果你使用等额的 SUSHI 购买这款游戏,就会赠送你一个特殊的钓鱼竿游戏道具,助你开启冒险之旅。
付款成功后,你会得到一个游戏所有者代币。这个代币可以让你在支持的平台(如 Steam 和 Xbox)上畅玩已购买的游戏。
这一切都非常简单。没有登录界面,不需要输入密码,也不需要填 「出生日期」。而且,在哪家商城购买游戏没有任何限制。(例如,Humble Bundle 要求用户从自己的网站上购买电子游戏。用户也可以订阅。)
但是,登录步骤是哪一步呢?
哪一步都不是,根本没有登录步骤。从传统意义上来说,退款和获取 DLC 等操作需要账户,但是账户可以编码到游戏所有者代币内。当然了,游戏商城网站还想采用一些提高客户忠诚度的机制。因此,网站所有者可能会决定增加一个登录选项,并通过代币(例如,针对品牌的忠诚度代币)整合该选项。
但是,登录不是必须的。再强调一遍:登录不是必须的。有了代币之后,信任关系不再局限于用户和网站。
代币可以代替密码学身份认证技术、零知识证明和通用登录吗?
当用户使用代币时,真正发挥作用的其实是这些代币背后的技术,如,密码学身份认证、零知识密码学(例如,在不泄漏年龄的情况下提供年龄证明)、会员证明(例如,使用捆绑折扣代币时提供)。上述所有方法都是不同形式的身份证明。
这些代币可以在多个接受它们的网站上使用,因此是 「通用的」。
网站会愿意取消登录功能吗?
网站不需要这么做,而且代币的成功并不依赖于网站所有者是否愿意取消登录功能。我只是想说登录不一定要是 Web 3.0 发展的焦点。
假设你是发行捆绑折扣代币的 AAVE 团队的一员。你不需要游戏商城取消登录功能,只要他们接受你的代币就好。当用户在这些网站上使用捆绑折扣代币时,在 「通用登录」 或 「网络身份认证」背后发挥作用的依然是同样的密码学技术。
我们如何实现 「通用登录」?
真正发挥作用的机制是网站和用户之间使用代币进行协商。我还没有找到更贴切的表达,姑且先将这一过程称为 「代币协商(复制链接打开:http://tokenscript.org/TokenNegotiation.html)」。
我们将对应的 TokenScript 技术称为 「代币协商」。如果你之前没有听说过这个技术,请允许我介绍一下 —— TokenScript 是支持 Web 3.0 的技术。换言之,它可以让你借助密码学和区块链的力量在网站上使用代币。虽然 TokenScript 还在开发中,但是已经可以用来开发用于用户钱包的代币了。
你可以在 TokenScript 网站上 查看简介(复制链接打开:http://tokenscript.org/intros/token-negotiation.html) 和代码 / 项目示例。
如果你想参与 TokenScript 项目,欢迎:
加入 TokenScript 论坛(复制链接打开:http://community.tokenscript.org/)
参与北京时间每周五下午 5 点的 设计会议(复制链接打开:https://us02web.zoom.us/j/89309860113)。
访问 TokenScript 项目网站上 Github 库(复制链接打开:http://tokenscript.org/) 的链接。
为 TokenNegotiation(复制链接打开:https://github.com/TokenScript/TokenScript/pull/387) 测试用例 pull request。
Devcon 门票(复制链接打开:https://github.com/TokenScript/token-negotiator) 示例
来源链接:medium.com(复制链接打开:https://medium.com/alphawallet/why-universal-login-isnt-working-this-might-81baa682e3cc)
内容搜集自网络,整理者:BTCover,如若侵权请联系站长,会尽快删除。