Web3.0 的宏观架构
2019 M05 9 • ☕️ 3 min read
Language: English
对于区块链的价值可以有不同的理解角度,其中一个是区块链在下一代的互联网,也就是 Web3.0 ,中所扮演的角色。现在大家的共识是下一代 Web 一定是去中心化的。Peter 希望让各位看官理解互联网去中心化的过程会面临哪些具体的困难,区块链如何解决这些困难,DApp 为何要实现数据和 App 的分离。希望能帮大家能建立一套新的区块链项目的估值模型,放眼一个比智能合约更大的场景。
本期的内容是基于上周我在一块链习做的题为《 Web3.0 的宏观架构》的分享,稍微调整了一下。
分享的内容大致会分下面几个部分:
1)为何下一代互联网的未来是去中心化的 2)区块链作为激励层和事实层,如何解决中心化的问题 3)去中心化用户 ID 的工作流程,这个是上一期介绍过的内容了 4)从 App 到 DApp—设计范式转换,这个上一期提过,但是非常值得在这一期详细展开一下
下面正式进入第一部分。
互联网的未来是去中心化的
为啥下一代互联网一定是去中心化的?这个答案很简单,技术的发展都是去中心化的,技术永远是要赋能个体的。
1943年 IBM 董事长说世界上只要有5台超级计算机就够用了,大家都只需要用自己的傻终端连接到这几台计算机即可。后来小屌丝苹果和微软不信,于是带来了个人计算机这一波运动。这张美女图是苹果公司早期的一个非常著名的广告,里面拿着锤子要去砸独裁者,也就是 IBM 。右边这张图片是 Apple2 ,真正打响民用个人电脑第一枪的产品,注意,个人电脑的先行者是苹果,不是微软。
同样,互联网早期,很多大公司是很讨厌互联网的,因为底层协议不安全,同时没有人监管,黄赌毒充斥,所以大公司的愿景是建立严格监管的纯洁的全球化的公司内网。实际上,最终还是公有的互联网取得了胜利,因为无需批准的环境,才是创新爆发的环境。
以上都算是硬件角度的去中心化,软件行业其实也经历了去中心化。最早微软是通过买软件盈利的,2000年以后随着开源软件和 Google 这样的互联网公司的兴起,卖软件这个事显得不是那么常见了。Google 们的软件都是免费给大家用的,那么 Google 们靠什么挣钱呢?答案是持有用户的数据。
去中心化互联网的最根本的目标是数据确权,让用户会拥有自己的数据。这样,数据可以自由的去交易,经济就会更有活力。这让我想起了最近几年的农村土地确权问题。
互联网的中心化已经非常严重了。对于中国用户,微信加上淘宝,几乎就是半个互联网了。如果把常见的几大平台都关了,那么互联网对你我还剩多少实用价值呢。我自己从感情上特别喜欢这些新兴的大互联网公司,因为它们引领的社会运行方式要比之前的系统强很多,极大的赋能了个体。但是不可否认,这些都是私人商业公司,会成为新的独裁者。
互联网诞生之初,是一个完全去中心化的事物,期待赋能每一个个体,清除一切的社会层级,给每个人平等的机会。但是事实是互联网发展了几十年,垄断组织却变得越来越大,那么问题出在哪里呢?简单来讲,互联网缺乏属于自己的激励层和事实层。
区块链作为事实层和激励层
先聊聊事实层为何是不可或缺的。
第一,信任之跟,必须是不可篡改的数据。而互联网天生是个不安全的环境,数据也只能存在某人的数据库中,不能保证不被篡改,也不能让其他人验证有没有被篡改。所以说,互联网上只有数据,没有事实。那么什么是信任之根呢?也就是 Root Of Trust 。我们信任 taobao.com 这个域名,是因为 DNS 系统是不可篡改的,所以说 DNS 系统是域名的信任之根。我用支付宝转账给你1块钱,那么支付宝数据库是信任之根。我们相信 HTTPS 通信是安全的,原因是我们相信证书是安全的,而证书的安全取决于发证机构,发证机构,也就是 CA 是 HTTPS 的信任之根。
但是 Web3.0 的信任之根是区块链。随着互联网发展,我们需要越来越多的信任之跟。Web3.0 条件下 DNS ,转账记录和证书为啥可信?因为基于区块链的不可篡改数据。当前互联网的实际情况是荒谬的,所有的信任之根都是中心化的,也就是说就是存在一小拨人的数据库中的,数据可不可信,完全在于你信不信这些人是靠谱的。而区块链的游戏规则是
In Math We Trust
我们不需要相信任何人,只需要相信数学就可以了。区块链的本质是全球任何人都有权利持有数据的一个拷贝,数学可以保证让诚实的人达成共识,去保证数据的不可篡改。
第二,有了事实层,才能实现规则的自动执行。现实世界中,法院是法律的执行者,可以来惩罚作恶。而当前的互联网,也就是 Web2.0 上就没有一个执法者,太自由了,适合分享,但是不适合惩治罪恶。但是有了真正可信的数据,我们就可以用程序去自动化的执行规则,这就是智能合约的基本思想了。关于惩治罪恶,大家可以去了解一下 Nerovs 项目的加密法院思想,关于智能合约,以太坊等其他项目都可以参考,这个我们不展开。因为咱们今天的主题就是智能合约之外的另外一个角度。
事实层的作用就介绍到这里,下面介绍为什么激励层是不可或缺的。
第一,去中心化系统必须是能够自运行的。真正去中心化的世界中是没有大公司,没有平台方,没有服务器的,那么用户为什么会有动力去自发的维护系统,持续的为他人存储数据呢?答案就是要有代币激励。区块链还有另外一个名字就是去中心化账本,运行在上面的代币给互联网带来了激励层。
第二,保证利益统一,大家可以朝着一个方向去努力。传统的民粹注意往往带来的是暴民政治。去掉一个暴君,换来成千上万的暴君。但是区块链是基于贡献值的民主,发言权的大小是根据贡献大小来分配的,这个跟简单粗暴的一人一票是不同的。
第三,代币可以有效防止资源的滥用。互联网是公共资源,Web2.0 条件下很多资源都是免费的。坏人于是就可以滥用资源,发起 Email SPAM 或者 DDOS 攻击。比特币的前身之一 Hashcash 就是专门用来防范互联网资源滥用的,可见防止资源滥用是区块链的基因里面就有的东西。
以上就是对事实层和激励层作用的分析了。有了区块链带来的事实层和激励层,互联网才可能实现去中心化。
去中心化的 ID
下一代的互联网如果想要真正去中心化,那么最基础的条件是用户的数字身份,简称 ID ,也必须是去中心化的。那什么是 ID ?为啥它必须要去中心化?去中心的互联网上登录这个词是不是过时了呢?去中心的 ID 系统又是是如何工作的呢?好,咱们来一窥未来之鳞爪。
首先回答一个简单的问题,什么是数字身份,也就是我们这里说的 ID ?数字世界中,用户的 ID 是所有她说过的话,做过的事以及所有经历的总和。
ID 不仅仅是用户名和密码。举例来说,我的 Github 用户名是 happypeter ,这个 happypeter 是我的 ID 标识,英文叫 identifier ,而密码是用来证明我是 ID 拥有者的密钥,但是一会儿我们会聊到,密码跟私钥还是有很大不同的。强调一下,happypeter 不是我的 ID ,而只是我 ID 的标识。
我的 ID 是数字形式的我,或者说是一个虚拟的我。ID 是一切可以定义我的数据的综合,是通过技术产生的所有的我的个人数据。当前互联网条件下,我的 ID 就是由我使用过的 App 中保存的数据组成。
但是,我们并不拥有我们自己的 ID ,谷歌, Facebook,或者国内的淘宝和微信才拥有我们的 ID 。
现在要来问一个严肃的问题了。我们为啥需要去中心化的 ID 呢?答案其实很简单,用户需要掌握自己的数据。前面提过了,去中心化的目的就是实现数字资产确权。
先来介绍一下什么是去中心化的 ID 。它和当前中心化的 ID 有什么大的区别呢?我的微信 ID 是属于微信所有的,其中包含我的 ID 标识,也就是用户名,也包含其他的我的个人数据。所有的数据都是保存在腾讯的数据库中。相比之下,去中心化的 ID 不被任何其他人拥有,用户是它唯一的主人。它是用户自己生成的,自己拥有的,标识符是全球唯一且保存在区块链之上的。
每个用户都需要有一个真正能够被自己控制的 ID 。用户应该有权利决定我要分享什么内容,分享给谁,以及何时停止分享。
去中心的 ID 系统目前还没有大规模应用,所以很难说最终的方案是什么样的。但是目前有很多组织都在围绕 W3C DID https://w3c-ccg.github.io/did-spec 和 DIF https://identity.foundation/ 来推进基础设施建设和标准制定。DIF 的成员有微软,IBM ,Mastercard ,微众银行,以及一些区块链项目,例如以太坊,比原链和 Blockstack 等。
用户首先要去生成自己的 ID 标识,创建自己在去中心世界中的用户名。传统上比较常见的情况是,电话号码,邮件地址以及社交账户都经常被用来做用 ID 标识去登录各个应用,这种 ID 标识的好处是对用户友好,非常容易记忆。但是问题是,它们都是通过某个第三方提供的,可能会被人家删除。如果采用去中心化的系统,这里我们以 Blockstack 为例,如果使用 Blockstack 生成的标识,标识就会直接存放到区块链上,并且是遵守 W3C 的 DID 规范的,DID 的全名就是去中心化的标识。DID 的问题是对用户不友好,不像中心化系统中,我直接就可以用 happypeter 做我的 ID 标识。DID 看上去是下面这个样子:
did:example:123456789abcdefghi
因为 Zooko 三角的限制,DID 很难生成成人类容易理解的字符串。并且去中心化条件下,想要把 DID 绑定到 happypeter 也基本是不可能的。
去中心化的世界是没有服务器的,用户自己保存自己的数据。类似以太坊这样的区块链项目有点像大型机,试图把所有数据都保存到链上。但是可以想象,一个人在使用社交 App 的时候,一天就会生成多少数据,所以比较可行的方式还是采用一个分层的架构。只把需要作为信任之根的数据保存到链上,而大部分的用户 ID 数据都加密后保存到链下。
用户可以把这些数据都保存到自己的设备上,或者完全受自己控制的云上。最好存储介质本身也是基于区块链的去中心化的,例如 IPFS 或者是 Blockstack 的 Gaia 系统等等。因为这样数据就完全不会某个公司控制了。当然,如果做好了足够多的备份,保存到多个普通云服务上似乎也问题不大,因为数据都是加密过的。
每一个 DID 都有自己的一个公钥,也一起存放到链上,用户可以用私钥来进行认证和授权。如果你不太熟悉密码学,不太了解数字签名是如何工作的也没关系。只需要知道,用户可以通过私钥签名去证明自己是 DID 的所有人。但是通过签名的方式进行认证,跟通过密码登录进行认证是有本质区别的。
比特币开发者 Peter Todd 有一次在 Twitter 上说
If you’re logging in it is centralized
如果你登入一个 App ,那么这本身就是中心化的了。因为传统上,用户名密码都是 App 数据库中保存的,密码登录相当于用户去请求 App 把门打开,然后进入 App 之中,然后享受 App 赋予我的各项权力。而去中心化的方式下,用户根本没有必要待在 App 里面,每次我需要一个执行某个操作,只需要出示我的签名即可,用签名向 DApp 其它参与者证明我是有某项权力的。类似的,授权过程也是通过私钥签名来完成的,例如,我要允许哪些朋友查看我的帖子,哪些人可以编辑我的文档等等,这些都是可以实现的。
以上就是,去中心化 ID 的基本原理了。
范式转换
Web3.0 时代,应用设计思想会从以应用为中心,到以用户为中心,这是一个范式转换。
中心化条件下,数据和应用之间的关系是这样的。很多人会同时使用一款非常流行的应用,例如 Facebook 或者微信,用户的数据要按照 Facebook 或者微信的格式分别保存到它们各自的数据库中。这样带来两个结果:第一,数据的所有者是 Facebook 或者微信,或者说数据是属于应用的,很多底层的数据即使用户自己也拿不到。第二,虽然同是社交应用,但是 Facebook 最终为用户保存的数据格式跟微信是不一样的,或者说是不兼容的。即使用户能够下载到自己的所有facebook 数据,那么拿到其他应用中,其他应用也是不能解析的。这两个结果就造成了,用户的数据是跟 App 绑定的。
去中心化的 ID 条件下,这里发生了一个巨大的范式转换。
应用的设计原则从以应用为中心,变成以用户为中心。
以用户为中心,很大程度上就是以用户 ID 为中心。
去中心化条件下。用户持有自己的 ID ,也就是说自己持有自己的全部个人数据。同时,我和我的朋友们存放的社交类数据的格式都是一致的,因为大家都是遵循互联网上的同一套开放标准。我和朋友之间建立的关联,也是我 ID 的一部分。
用户的 ID 数据是自己存放的,而不是存放到某个应用的数据库中。那么应用的角色就从原来的规则制定者,变成了真正的工具。应用在保存数据的时候,必须要按照用户指定的那套开放标准去存。这样,用户就占有了完全的主动权,享有 Freedom To Exit 。因为如果我不喜欢应用 A ,那我可以随时切换到应用 B ,例如,我自己在使用微信的时候,其实有些功能我是不用的,这些功能总会骚扰到我。那么我就可以切换到 B 版本的微信。切换之后,即使我的朋友们并没有切换到应用 B ,那么我们的连接也依然不会中断,因为底层的数据是格式统一的,不同的应用都是一样可以解析的。或者说我们的链接是发生在数据层,而非 App 层。类似比特币这样的 P2P 网络,各个节点遵从统一的通信协议,那么不管你是用官方的客户端,还是自己手写一个客户端,都是可以正常跟网络交互的。这就是所谓的未来的应用设计是以用户为中心的。
传统的 App 为王,会变成 Protocol 为王。Facebook Google 有无限的资源,可以雇佣最好的开发者,去不断完善自己的 App ,App 吸引更多的用户,用户数据要依附于 App ,从而让价值都凝结到了 App 之上,于是垄断平台变得更强大。而去中心化的世界中,价值依然是凝结在数据上,但是数据是属于个人的,而所有的精力全部都用在开发协议的的构建上,所谓的开放协议其实说白了就是用户跟用户之间的沟通规则,游戏规则,这些都是开放的。
这种范式转换带来好处就是,用户成了网络上的第一等公民,不会被某个应用所绑定,同时也享有了对自己数据的完全支配权。理解这种范式转换,是理解去中心化互联网,或者说理解 DApp 的一个关键点,值得特别强调。
总结
主体内容就是这些了,最后来总结一下。
第一,Web3.0 将会是可信互联网,各项基础设施都会根植到区块链中,利用数据的不可篡改性,实现 trust-less 的系统。Web2.0 的这种,互联网本身不可信,大公司才可信的状况会被打破。
第二,我自己的一个感受是:
DAPP 是基础设施,会成为互联网的一部分。
目前来讲,互联网是公有的,但是 App 基本都是私有的,微信,淘宝,背后都是私营公司的财产。这就好比一个城市,道路,排水,公园,这些是公有的,但是具体到每一座房子,一般都是个人所有的。但是未来的 DApp 会成为互联网的一部分,DApp 可以被私人公司发起,但是最终要实现公有。比特币是一个成功运行了十年的 DApp ,关于 DApp 谁去维护,比特币的故事最有说服力。
第三,数据,其中主要的一个就是每个人的 ID 未来不会割裂到各个 App 之中了,而是一个完整的符合公开标准的金矿。开放统一的数据,就能赋能创业者,带来新的创新动力。
最后,今天的内容总体上还是比较粗线条的,如果大家想要了解更多的技术细节,正在运行的 Web3.0 的实例是 Blockstack.org 可以作为参考。
谢谢!
参考资料: