Web3.0 的宏观架构 v20191219

对于区块链的价值可以有不同的理解角度,其中一个是区块链在下一代的互联网,也就是 Web3.0 中所扮演的角色。现在大家的共识是下一代 Web 一定是去中心化的。Peter 希望让各位看官理解互联网去中心化的过程会面临哪些具体的困难,区块链如何解决这些困难,DApp 为何要实现数据和 App 的分离。希望能帮大家能建立一个理解区块链价值的新角度,放眼一个比智能合约更大的场景。

分享的内容大致会分下面几个部分:

互联网的未来是去中心化的

去中心化,赋能个体是几千年来技术发展的明显趋势,但是具体到为何下一代互联网是去中心化的,Peter 认为有以下几个原因。

第一,技术准备已经到位了。首先,硬件已经去中心化了,从 IBM 认为世界上只要有5台计算机都够了,到微软和苹果带来的个人计算机普及,再到现在的人手一部智能手机,每个人都有了一定的计算能力,硬件的去中心化已经达成了。其次,网络基础层的去中心化已经达成。从几十年前大公司去努力创建自己纯洁的全球化内网,到现在互联网的胜利,这个趋势也是明显的,通信方式就像空气,不能被单一公司所把持,所以去中心化是必然的。最后,开源软件实际上就是软件的去中心化,不管开发成本多么昂贵的软件,也很多都是人人可以免费获取了。

第二,互联网的垄断已经非常严重,用户渴望自己的数据所有权。Google 的软件都是开源或者免费的,但是怎么赚钱呢?靠的是用户数据。去中心化互联网的最根本的目标是数据确权,让用户会拥有自己的数据。

第三,区块链的诞生,带来了事实层和激励层,去中心的技术突破具备了。互联网诞生之初,是一个完全去中心化的事物,期待赋能每一个个体,清除一切的社会层级,给每个人平等的机会。但是事实是互联网发展了几十年,垄断组织却变得越来越大,那么问题出在哪里呢?简单来讲,互联网缺乏属于自己的激励层和事实层。这个咱们下一部分中展开讲。

区块链作为事实层和激励层

先聊聊事实层为何是不可或缺的。

第一,信任之根,必须是不可篡改的数据。而互联网天生是个不安全的环境,数据也只能存在某人的数据库中,不能保证不被篡改,也不能让其他人验证有没有被篡改。所以说,互联网上只有数据,没有事实。那么什么是信任之根呢?也就是 Root Of Trust 。我们信任 taobao.com 这个域名,是因为 DNS 系统是不可篡改的,所以说 DNS 系统是域名的信任之根。我用支付宝转账给你1块钱,那么支付宝数据库是信任之根。我们相信 HTTPS 通信是安全的,原因是我们相信证书是安全的,而证书的安全取决于发证机构,发证机构,也就是 CA 是 HTTPS 的信任之根。

但是 Web3.0 的信任之根是区块链。随着互联网发展,我们需要越来越多的信任之根。Web3.0 条件下 DNS ,转账记录和证书为啥可信?因为基于区块链的不可篡改数据。当前互联网的实际情况是荒谬的,所有的信任之根都是中心化的,也就是说就是存在一小拨人的数据库中的,数据可不可信,完全在于你信不信这些人是靠谱的。而区块链的游戏规则是

In Math We Trust

我们不需要相信任何人,只需要相信数学就可以了。区块链的本质是全球任何人都有权利持有数据的一个拷贝,数学可以保证让诚实的人达成共识,去保证数据的不可篡改。

第二,有了事实层,才能实现规则的自动执行。现实世界中,法院是法律的执行者,可以来惩罚作恶。而当前的互联网,也就是 Web2.0 上就没有一个执法者,太自由了,适合分享,但是不适合惩治罪恶。但是有了真正可信的数据,我们就可以用程序去自动化的执行规则,这就是智能合约的基本思想了。Peter 这里插一句,我有朋友把智能合约叫做智障合约,说吹嘘智能合约的项目大都是骗钱的,这个说法不是没有道理,但是 Peter 坚信,区块链的不可篡改数据是既定事实了,他能带给人类社会的变革,不会只局限于比特币。只不过去中心化的世界里面,混沌一片,每一点滴的进展都是极其艰难的。

事实层的作用就介绍到这里,下面介绍为什么激励层是不可或缺的。

第一,去中心化系统必须是能够自运行的。真正去中心化的世界中是没有大公司,没有平台方,没有服务器的,那么用户为什么会有动力去自发的维护系统,持续的为他人存储数据呢?答案就是要有代币激励。区块链还有另外一个名字就是去中心化账本,运行在上面的代币给互联网带来了激励层。

第二,保证利益统一,大家可以朝着一个方向去努力。传统的民粹注意往往带来的是暴民政治。去掉一个暴君,换来成千上万的暴君。但是区块链是基于贡献值的民主,发言权的大小是根据贡献大小来分配的,这个跟简单粗暴的一人一票是不同的。回顾语义网和开放数据运动的发展缓慢,可以知道人都是逐利的,只要求我有爱心去开放自己的数据帮助别人,这样的说法不能调动起全社会的力量,有了激励,形成数据交换市场,让服务他人变得有利可图,才是互联网发展的正道。

第三,代币可以有效防止资源的滥用。互联网是公共资源,Web2.0 条件下很多资源都是免费的。坏人于是就可以滥用资源,发起 Email SPAM 或者 DDOS 攻击。比特币的前身之一 Hashcash 就是专门用来防范互联网资源滥用的,可见防止资源滥用是区块链的基因里面就有的东西。Web3.0 是去中心化的互联网,更多的资源都是开放的,任何人都可以不经批准的直接使用,所以防止滥用的最佳方式就是给资源定价,例如比特币协议是开放的,但是转账是要收手续费的,这就避免了有人滥用资源造成网络堵塞。

有了区块链带来的事实层和激励层,互联网才可能实现去中心化。

去中心化的 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-.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

有了 ID 的标识符了,那么主体的 ID 数据保存到哪里呢?

去中心化的世界是没有服务器的,用户自己保存自己的数据。类似以太坊这样的区块链项目有点像大型机,试图把所有数据都保存到链上。但是可以想象,一个人在使用社交 App 的时候,一天就会生成多少数据,所以比较可行的方式还是采用一个分层的架构。只把需要作为信任之根的数据保存到链上,而大部分的用户 ID 数据都加密后保存到链下。

用户可以把这些数据都保存到自己的设备上,或者完全受自己控制的云上。最好存储介质本身也是基于区块链的去中心化的,例如 IPFS 或者是 Blockstack 的 Gaia 系统等等。因为这样数据就完全不会某个公司控制了。当然,如果做好了足够多的备份,保存到多个普通云服务上似乎也问题不大,因为数据都是加密过的。

每一个 DID 都有自己的一个公钥,也一起存放到链上,用户可以用私钥来进行认证和授权。如果你不太熟悉密码学,不太了解数字签名是如何工作的也没关系。只需要知道,用户可以通过私钥签名去证明自己是 DID 的所有人。但是通过签名的方式进行认证,跟通过密码登录进行认证是有本质区别的。

针对扎克伯克想要通过区块链来重新定义 Facebook Connect 的想法,比特币开发者 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 之中了,而是一个完整的符合公开标准的金矿。开放统一的数据,就能赋能创业者,带来新的创新动力。

最后,这里的内容总体上还是比较粗线条的,如果大家想要了解更多的技术细节,Blockstack.org 项目可以作为参考。

谢谢!

参考资料: