Web 3.0 长什么样

前言

在2018这个时间点上,各路英雄都在鼓吹自己的web3.0畅想和计划,虽然每个设想听上去都特别科幻,但 gtt 作为技术人员总觉得各种不靠谱。

目前 gtt 认为最现实的,并且已经被社区执行的是 Gavin Wood 的观点。在 web3.js 1.0版本中,划分出了很多模块(web3-eth,web3-shh,web3-bzz),gtt一开始对这些模块特别疑惑,似乎他们之前没有什么特别的关系,但在阅读了 Gavin 关于 web3 的设定后,有种豁然开朗的感觉,才发现原来社区是一直按照这个思路在前进,只是 gtt 太孤落寡闻了。所以必须记录一下,若干年后回头看看大神是如何被打脸的也是非常有趣的事情。

Gavin Wood

在正经说 web3 之前先八卦下 Gavin 这位神人。他曾经和V神一起创建以太坊,作为以太坊的CTO编著了以太坊黄皮书的第一版,长得还非常帅:(图片来自:http://gavwood.com/)。另外这哥们还是音乐可视化的博士(PhD in music visualisation),除了英语外还会说意大利语、一些法语和西班牙语,还自称跆拳道溜到不行,其他乱七八糟的特异功能可以到Gavin的博客自行参观。

八卦结束,正经介绍 Gavin 脑中的 web3 长什么样,对于 gtt 的中文描述没兴趣的可以直接阅读 Gavin 原文,有两篇,内容差不多,第二篇比第一篇更易懂写,概括性更强,适合非技术的同学阅读。

web3.0

Gavin首先吐槽了后斯诺登时代,网名们对隐私和信息有了更深刻的认识,大家纷纷觉得把重要的信息放在一个实体(一个公司或者政府组织)十分的危险,这种模式从根本上就是错误的,因为公司为了盈利会越来越多的索要用户的信息,因为只有这样才能更好的推荐服务或推荐广告,才能让公司发展,但这和广大用户的利益是冲突的。比如当下和我们生活息息相关的云服务,Google,Facebook,Twitter,还有各种电商,游戏,银行厂商的服务都是建立在老的web协议和技术上的。但现在,随着我们对社会的运行机制以及信息技术更深刻地理解,我们会重新设计新的web架构,从根本上解决之前提到的问题,这就是web3.0。

web3中,信息分为三类:公开的、私有的、需要达成一致的。公开的信息我们就直接公开;私有的信息就加密,永远不可能会被泄露;需要达成一致的就存放在共识账本中(consensus-ledger)。所有的通信都是加密和匿名的,无法被跟踪的,也不会有类似IP这种东西可以跟踪通信。

从技术上 web3 分为四个组件:静态内容发布、消息通信、无信任交易、用户界面。static content publication, dynamic messages, trustless transactions and an integrated user-interface。

web3.js中有专门的客户端实现:

  • 静态内容发布:去中心化的对象存储系统,如 IPFS、swarm,对应 web3-bzz
  • 消息通信:点对点通信和广播,如以太坊生态中的whisper协议,对应web3-shh
  • 共识引擎:就是以太坊的核心,分布式账本和智能合约,对应web3-eth
  • 用户界面:通过 web3.js 实现的一个 Dapp。

静态内容发布

这是一个去中心化的、加密的对象存储系统。和传统的对象存储不同,新架构的文件地址是由文件内容决定的,比如用文件内容的哈希值,而不是一个和内容没啥关系的URL。这样通过哈希就可以判断下载到本地的文件是否是期望的文件,如果文件内容被修改,地址自然随着变化,这样就可以避免文件被篡改,这个设计和现在的磁力链接非常像。

大家肯定发现这个设计和 BT 下载非常像了,但是 Gavin 觉得 BT 协议可以做的更高效和精确,怎么做到?他希望在协议层中加入激励机制,类似比特币和以太坊的做法,通过激励机制来鼓励节点贡献资源,也可以避免DDoS攻击,因为比起攻击这个系统,为这个系统做贡献的收益更大。

消息通信

消息通信组件用于点对点通信和一对多(广播)通信。所有通信内容都是被加密的,确保第三方无法监听,从协议层避免了“棱镜门”的发生。同时,用户的物理位置信息被隐藏起来,让第三方监听者无法收集用户的蛛丝马迹。也因为加密无处不在,所以完全不用考虑哪些信息应该是私有的,哪些应该是公开,一切都应该是私有的。

共识引擎

传统的网络并没有从根本上解决共识问题,而是依靠ICANN,Verisign和Facebook等第三方组织或者政府。共识引擎将以去中心化的方式解决这个问题,是以太坊的核心。共识是一种商定交互规则的方法,因为未来的交互会按照大家约定的方式来执行,这就是共识(也叫契约),社会上任何人和人之前的交互本质上都可以归纳成一种契约,以程序的形式规定下来,并让程序强制执行。

用户界面

web3 的用户界面和现在的浏览器很像,主要的区别是底层的通信方式不同的。传统的地址栏写的是域名或者ip地址,在 web3 中域名解析将发生在共识引擎上的智能合约里,如 ENS,并且使用加密的消息通信机制,避免了域名劫持的发生。

web3中的应用叫ĐApp,它也后端共识引擎交互,利用消息通信来传输数据,因为通信层也是点对点的,所以响应时间会大幅提高。

未来已来

web2到web3是渐进式的,我们会看到越来越多的web应用将后端技术迁移到像以太坊这样的共识引擎之上。为了保证整个应用没有安全短板,未来应用将会完全的基于web3的技术来构建,让我们拭目以待。

发表评论

电子邮件地址不会被公开。 必填项已用*标注