摘要:Web3依旧是Web,它无法逃离“waistofinternet”问题的魔掌,它依旧高度依赖于Ip,DNS,服务器,节点等各种中心化设施。Ethereum基金曾经雄心勃勃的开启了Whisper项目[3],Whisper是一个基于Ethereum的,能够让点和点之间去中心化通信的项目,它曾经给Web3解决“Waistofinternet”带来了光明和希望。...
注:本文来自@Elder24601 推特,MarsBit整理如下:
互联网正在失败,Web2正在失败,而Web3也并不是真正地去中心化。那么希望在哪里?希望这篇文章能够告诉你答案。
1. 互联网正在失败
虽然Internet曾经承载着去中心化的互联网精神梦想,但是毫无疑问,如 web 之父 Tim Berners Lee 所言[1],它正在走向系统性的失败。我们不应该将这种失败归咎于正当的政府和商业行为,而是应该寻求Internet本身的系统性issue.
这个Issue就是著名的 “Waist of internet”[2] 问题,配图展示了一个经典的 HourGlass 模型,从这个模型我们看出,无论是在应用层或者协议层,哪怕这些部分再去中心化,也无法解决整个网络所依赖的 DNS/IP 的中心化问题。从最终的设计开始,Internet 实际上就被埋藏了可被中心化和可被控制审查的种子。
而这就是真正遏制 Web2 乃至现在的 Web3 未来的最重要的瓶颈。
2. 房间里的大象,is Web3 working ?
Web3是人们看到Web2失败的可能性后的一次重要探索,它在早期被赋予 Semantic Web 的含义,后来又变成了dWeb,随后被认为是和各种blockchain技术紧密结合的应用网络。
当人们讨论 Web3 时,一系列 big word 会源源不断的冒出来,去中心化,不可篡改,permissionless,隐私。然而这些big word背后所隐藏的,房间里的大象却从来没有人愿意提及和面对。
Web3依旧是Web,它无法逃离 “waist of internet” 问题的魔掌,它依旧高度依赖于Ip,DNS,服务器,节点等各种中心化设施。而这些 so-called web3 infrastructure 又由于高昂的成本和商业利益像Web2上所见的那样变得越来越中心化。
Ethereum基金曾经雄心勃勃的开启了 Whisper 项目[3],Whisper是一个基于 Ethereum 的,能够让点和点之间去中心化通信的项目,它曾经给Web3解决 “Waist of internet” 带来了光明和希望。但是现在,你只能在github上找到它遗址,在最后的墓志铭上,以太坊的开发者们这么说:
The rationale for archiving this project is that it is obvious that in its current implementation, Whisper will never scale beyond a couple hundred nodes. Further development has now been taken on by status.
Ethereum 将不再可能突破到几百个节点,因而构建类似Whisper这样的网络将不再具有意义。就目前的Web3而言,如果不解决最核心的问题,无论是L1还是L2,哪怕是闪电网络都无法突破The Waist of internet的诅咒。互联网精神,区块链精神,所谓的去中心化只是镜花水月。
3. 救赎之道
然而我相信救赎之道是存在的,但它首先需要解决的问题就是 The internet of waist。要去除这个waist,我们就不得不要求所有的网络服务和节点,是完全对等,完全的去中心化。网络本身应该如同Internet最理想主义的内涵里所表述的,每个人都是client,没有中心,没有server。让服务运行在每一个人的客户端里,并互相协作,互相分享。这才是真的互联网和 Web3.
但它依旧非常难,因为只有为数不多的解决方案。完全对等的网络意味着我们需要利用客户端,也就是用户用来上网的浏览器,允许他们在浏览器和浏览器之间直接构建链接,从而形成巨大地去中心化网络。让用户不再需要通过中心化设施就能够访问到服务。只有这样,我们才能够真正地绕开“waist of internet”问题。
这个条件其实非常苛刻,但幸好如此的苛刻条件其实指向了唯一的实现方案。
首先,我们需要浏览器之间可以直接建立链接,这指向了WebRTC技术,它能够通过类似TCP/IP的点对点握手来构建链接。
其次,我们希望所有的services,和复杂逻辑能够直接运行在浏览器中,这指向的webassembly技术,它可以让任意语言编写的逻辑(例如Rust, Golang, C++)直接运行在浏览器中。
然后,我们还需要有可靠的服务访问和路由机制,这将取代“waist of internet”中最核心的DNS/IP问题,而这则指向了DHT技术,DHT技术即去中心化hash table,它可以用来实现去中心化存储,节点发现。
而最后,我们希望这个网络能够将各种服务孤岛串联起来,我们希望能够用bitcoin, ethereum, polkadot乃至web crypto来进行身份验证。我们希望网络上的个体和个体之间能够直接对话,这又指向了Abstract Account和DID技术。
路径是唯一的,就如同救世主只有一个。而这也是我无比坚定地去开发Rings Network的原因之一。
4. 未来
所以,当我和同样是 developer 朋友聊起我做的事情。我说 Rings Network 正在用 WebRTC 做传输层,可以编译成 Wasm 运行在浏览器里,使用了 Chord 算法来实现DHT。并且支持了绝大部分椭圆曲线来实现 Abstract Account 和 DID 的时候。
他会心一笑,说:“哦,你们在实现未来呀”,甚至都不需要我去描述我们到底在做什么。
因为这是the only way。
[1] https://theguardian.com/technology/2017/nov/15/tim-berners-lee-world-wide-web-net-neutrality
[2] https://oilshell.org/blog/2022/02/diagrams.html
[3] https://github.com/ethereum/whisper
以下是精选回复:
@youyouAllen 回复:我们在2018年用DHT+webRTC+wasm已经尝试过了。走不通。原因如下3
1. DHT 的bootstrap node接入这个过程必须要基于ip栈。这个过程现有中心化体验最好。而且DHT的寻址开销并不小。
2.webrtc 底层的udp会被各种网关防火墙干扰,打洞后也不够稳定。特别是在移动端。还是得靠中心节点维持链接状态。
3. wasm跟这个waist问题没有关系。
@Elder24601回复:感谢回复,我来说说我的想法
1. 在接入网络时,中心化的relay/signaling server的确可以优化体验,但它只是“优化”,而不是必须/必要。我认为能够点对点手动handshake交换sdp才是关键所在。
1.1 请问你们是使用的哪种DHT,在什么场景下性能不好。如图所示,主流DHT算法的routing性能基本上都是O(LogN),我认为是可接受的。
2.首先ICE协议并不局限于UDP,其次,你们用的是turn还是stun,方便分享为什么移动端场景为什么不够稳定吗?是因为network changing?
3 我认为wasm和waist有非常紧密的关系,因为只有通过wasm+webrtc的方式,在浏览器上组网才能变得可能。
可能你想表达的意思是pure js也能实现,但这将意味着非常巨大的性能成本,以及不适用于复杂密码学设施(例如zkp)。