平台之所以重要,是因为它扮演了可信第三方,英文叫 Trusted Third Party ,简称 TTP 。这节看看为何有人说 TTP 是系统安全的漏洞,Web3.0 时代,如何对 TTP 进行去中心化?另外,信任最小化又是什么意思呢?
什么是 TTP ?
TTP 是线下生活中也是常见的,例如很多公证机构,而互联网上的 TTP 提供的信任显得尤其重要,那么什么是 TTP 呢?
TTP 就是交易双方的中间人。如果,我和朋友做个简单交易,是不需要中间人的。但是,互联网上都是陌生人,TTP 就显得尤其重要。例如,我承诺转账给你10块钱,不能只在我和你的数据库里面记录。因为未来,只要任何一方耍赖,就说不清了。所以交易,需要一个无利害关系的第三方去记录一下,这样,双方就可以基于对第三方的信任而达成交易了。例如,对于支付,Paypal 或者支付宝就是典型的 TTP 。TTP 通常都是一个交易双方都不熟悉的一小伙陌生人,例如,我给你转账,支付宝数据库中到底记录了什么,咱俩谁也不知道。可以说,TTP 的可信,是来自一种盲目的信任。人们假定 TTP 系统是安全的,这个假设其实是没有充分理由的。TTP 目前在互联网上的存在形式通常就是一个平台公司,平台公司要保证系统运行的多重安全。其中包括:第一,用户的数据不会被破坏;第二,数据没有泄露;第三,交易要能够顺利完成。
Web 架构自带的两个 TTP 是 CA 和 DNS 。Alice 和 Bob 在互联网上通信,Alice 收到 Bob 的信息之后,如何确认信息来自 Bob 呢?要知道,互联网上可能会出现黑客 Eve ,截获并销毁 Bob 的信息,接下来自己发假信息给 Alice 。这时,CA 作为 TTP 的作用就体现出来了,它会给 Bob 颁发一个证书,来证明 Bob 的身份,这样如果 Alice 信任 CA ,这个 TTP ,就可以信认她跟 Bob 的通信是安全的。这就是 CA 的作用了。而 DNS 是一个互联网的大电话本。电话不好记,但是有了电话本,我只需要知道你的名字就可以在电话本上查出你的电话了。互联网上,我想要访问你的服务器,但是 IP 地址很长不好记,但是域名好记,DNS 系统上记录了域名和 IP 的对应关系。于是只要我相信 DNS 系统,相信电话本是正确的,那么通过域名访问网站这个操作就可以安全的完成了。
可见,TTP 是交易双方的中间人,如果双方都信任 TTP ,交易就可以完成。
TTP 的危害
人们对 TTP 的信任是盲目的,那么这种盲目的信任到底会带来哪些危害呢?
笔者认为 TTP 本身是不可避免的,TTP 的过度中心化才是问题,那么 Web2.0 的对强中心化的 TTP 的依赖是如何形成的呢?首先一点,基于 TTP 的系统是相对简单的,开发比较容易,而去中心化去实现一个系统是有技术挑战的。回到支付这个例子,如果 TTP 是支付宝,那么只需要一个数据库就搞定了,交易双方只需要信任支付宝数据库中的账本即可。但是,为了实现去中心化的账本,人们探索了很多年,直到2008年才被中本聪研发出来。TTP 流行的第二个原因是,TTP 背后往往是公司化运营的,有了利润驱动就可以在平台上开发出各种好用的功能,给用户提供便利,例如,使用支付宝可以通过刷脸这种方式,其实刷脸支付是很不安全的,伪造人脸是很容易的,但是有平台公司在,用户有了损失,平台直接赔付即可,用户可以放心使用。去中心化的系统,迭代会比较慢,对安全性的要求也更为苛刻,通常用户体验不容易提升。
TTP 的问题首先是成本。第一层是经济成本。中心化的,或者说单点的 TTP 很容易形成垄断。CA 的作用很简单,但是有时候申请一个证书却要几百美元甚至更多,Verisign 这样的的 CA 公司可以价值百亿美金。第二层是人力成本。涉及 TTP 的流程也很难自动化,以 DNS 系统为例。注册过域名的同学都会知道整个过程,国内要注册域名,需要拍照送审,还要挂备案号接受定期检查。第三层是维权成本。TTP 之所以值得信任,很多时候是认为他们都是政府备案的大公司,出了事可很容易找到他们问责,但是走法律程序真的那么高效吗?实际上,很多人受到损失了之后,也考虑到成本问题,根本不去维权。
另外,TTP 的问题还表现在安全角度。公司化的 TTP ,手中掌握了大量的数据,本身就成了对黑客垂涎的目标。另外,TTP 由于掌握了系统的瓶颈,就可以掌握生杀大权。例如,CA 可以认为你有问题,而吊销你的证书。支付宝会由于各方面的压力,封你的账户。
这就是 TTP 会带来的各种危害了。
如何实现信任最小化?
Web3.0 追求的目标是“去信任”,但是信任实际上是不可能完全去除的。我们要实现的是 TTP 的去中心化,尽量用数学代替信任,实现信任最小化。
先聊聊 TTP 去中心化的必要性。一些不重要的数据,依托中心化的 TTP 是没有问题的。但是重要的东西,例如个人资产,不能被单一 TTP 控制。人们用黄金,珠宝,丝绸,古董来避险,就是因为这些财产是有去中心化特征的。银行支票需要作为 TTP 的银行没有倒闭,才有效。而黄金的价值是可以去中心化鉴定的,到任何国家,只要找到黄金鉴定专家就可以证明价值。
TTP 的去中心化,就是从信任单一组织,到信任网络。还是以转账为例,通过支付宝转账,就是单点信任,支付宝作为 TTP 见证了这次转账过程,而通过比特币网络转账,整个网络可以看成一个大的 TTP ,但是网络并不被任何人控制,这就实现了 TTP 的去中心化。网络上的每个节点,可以认为是一个小的 TTP ,大家共同见证交易,网络上几个节点下线了,并不影响安全。比特币的例子可以启发我们把同样的思路用到不同的场合。第一个例子,对淘宝作去中心化。淘宝上我发一个评论,要保证这个评论有价值,就需要淘宝作为 TTP 去证明很多东西才可以,其中主要是要证明我的确在某个时间发出过某个评论,并且没有修改过。如果我们信任淘宝,就可以相信淘宝数据库中的信息,所以评论以及它的相关属性都是可以被证明的。那么要去中心化的实现这个 TTP ,就可以让多个参与方去签署我的评论,比如我自己,被评论的商家,淘宝官方,大家都用私钥去签署这条评论即可。这样,同样可以起到见证评论的各种属性的作用,另外一个好处就是避免了对淘宝数据库的依赖,数据可以保存到用户本地了。第二个例子,是可以实现去中心化的 DNS 和 CA 。既然转账信息都可以用去中心化的方式记录,那么电话本当然也能,这就是去中心化 DNS 的实现思路,相关项目有 Namecoin 和 Handshake 等等 。CA 发证机构,也可以去中心化,从单一机构发证,转变成多方共同签发证书。这些内容后续章节中会展开聊。
去中心化的 TTP 需要运用数学方法来达成信任。去中心化的信任,很大的一个问题是如何在网络上达成一致性。例如,多个人都见证了我给小明转了1美元,但是如果回头这些见证人意见有了分歧,如何处理呢?所以,去中心化的 TTP ,要实现网络化的信任,同时网络要有能力达成共识。智能合约概念的提出者,密码学家尼克·萨博于2001年发表了一篇文章《 TTP 是安全漏洞》里面提到这样一句话
我们要用数学和简单的可信第三方去取代复杂而昂贵的可信第三方
后来的2008年,比特币诞生,用了数学方法来达成网络共识。
总之,信任最小化是 Web3.0 追求的目标。我们不能彻底摆脱对 TTP 的依赖,但是可以降低对 TTP 的依赖,或者通过依赖多个 TTP 来实现 TTP 的去中心化,来消除中心化 TTP 的种种弊端。
总结
总结一下本节,TTP 是不互信的双方达成交易的必要条件。中心化的 TTP 会形成瓶颈和垄断,代价非常昂贵。要实现信任最小化和 TTP 的去中心化,需要把单点信任转换为去中心网络化的信任,而且要保证网络上各个节点要达成共识。