写了两篇关于区块链的文章,其实就是为讲清楚云计算和区块链的关系。
虽然云计算蓬勃发展了10来年,云计算是按需供给的理念还不被大部分人理解。人们习惯称为云计算技术。如果把云计算称为技术,准确的表述应该是云计算的技术,是为了现实对资源按需分配而应用的技术。这些技术不但包括了计算、网络、存储、安全等基础IT技术,还包括了所有涉及信息的技术,这些技术支撑了各种资源的按需分配。
区块链也不是什么新东西,也有10来年的历史,只是从今年爆红。区块链也不是技术,本质上就是一种无权威化的信任体系。同样,如果还是把区块链称为技术,也应该是区块链的技术。主要包括各种算法如哈希算法和安全算法、加密技术、P2P网络技术等。
按需分配的理念和无权威化的信任体系,好像并不能直接对比,没有直接关系,也就不存在谁取代谁的问题。但是区块链本身就是一种资源,有按需供给的需求,是云计算的一个组成部分。所以,在IaaS、PaaS、SaaS的基础上后来增加了新的“即服务”比如DaaS(数据库即服务)等的同时,我们还可以创造出BaaS (区块链即服务)。
但是,没有直接关系并不是没有关系,云计算的技术和区块链的技术之间是可以相互融合的。今天就分析一下这种技术关系。
云计算主要是以CPU为核心的复杂逻辑计算,而区块链是以GPU或ASIC为核心的简单线性计算。CPU是一个全能选手,主要实现各种复杂的应用架构。而GPU或ASIC擅长大量简单并行计算,来竞争获取工作量证明。区块链内的大量“矿机”是有擅长简单并行计算的GPU或ASIC组成。GPU并不能取代现有的以CPU为主的应用计算服务。
但是云计算还可以提供人工智能(AI)计算服务。和区块链相似,为了实现AI服务,云计算就需要大量并行简单计算的资源。如果各种以GPU为主的矿机大量闲置,我们可以通过改造软件和网络的方式来实现分布式的AI计算服务。但现在就想让矿机停止挖矿,提供AI的计算服务是不可能的。现在加密货币红的发紫,矿机们都在全力挖矿,挖矿带来的收益远远远远高于出租GPU带来的收益,不会有空余资源可以被云计算利用。所以在很长的一段时间内,云计算内还需要单独购置AI计算能力,不可能利用区块链里的矿机能力。
云计算内的网络一般认为是一个在大二层网络基础上构建复杂的应用网络,而区块链是一个扁平架构的P2P网络。云计算的网络为了实现应用的复杂网络拓扑,完全采用为应用进行定制的方式,每个计算单元之间是通过“路由”为核心来实现复杂的逻辑关系。而区块链的网络存粹就是一个建立在公共网络的P2P网络。在这个网络里,每个计算单元的网络地位都是平等的。在一个彻底扁平的网络里,是以快速传播信息为目的的。不可能实现云计算应用复杂的网络架构。
如果将来矿机资源大量闲置,还可以作为AI的计算单元,也不是一下子就能华丽转身。从AI应用的网络角度上看,现有的P2P网络完全也是不符合的。到时候需要有新的网络技术把这些东西串接起来,一定不会还是简单的P2P网络。具体是什么,只有这一天来临了,才知道。
云计算内的存储有很多种,有基于文件的、基于对象的、基于块的。这些存储作为一种资源,往往是独立存在的,一般采用共享的方式,由应用来选择。而区块链里的存储是作为链里各节点的存储空间,一般就是本机所带的普通廉价硬盘,独立存在。区块链里存储的价值不在于存储本身,而是在于相互链接的不可更改的块。
云计算内的存储和区块链内的存储都是由普通存储介质组成。只是相应管理物理介质的“文件系统”有所差异。最大的区别是区块链的文件系统可以写和读数据,但数据一旦写入就不能修改和删除。同时还会采用海量的独立副本来确保数据的不可修改性和数据的完整性。区块链存储的重点不在是”块“,而是在于“链”。通过链来确保记录内容的不可修改性,是一种特殊的存储服务。云计算里确实也需要这样的存储服务。如果一定让我来写关于区块链应用的白皮书,我觉得这才是真正的应用点。比如结合”平安城市“,将数据放在这种类型的存储里,利用不可修改性,让视频、语音、文件等作为公认有效的法律依据。
云计算里的区块链的存储服务实现有2种实现方法,第一种是将数据块直接记录在区块链里,第二种是将记录的数据块进行哈希,将哈希值记录在区块链里,但真正的内容还是记录在普通存储里或云端。第一种方法实现起来很容易,直接将内容写入区块链即可,但需要海量的存储,每个记录内容都有海量的副本。如果这样,将来每个链内节点的存储需求就不是现在的几百个G,而是大到海量。所以,现实这种方案是不可行的。而第二种方案采用控制和内容分离,就像在第二篇文章《打“假”区块链应用(1)》中介绍的基于区块链的DNS一样,区块链里只记录每个内容块的哈希值,就不需要让每个链内节点拥有海量的存储,而真正的内容是记录在传统的存储中。一旦存储内容被修改,所对应的哈希值也发生变化,和区块链内的哈希值就不能匹配,这样的行为是被禁止的,确保了存储内容的不可修改性。这才是区块链和云计算的有效结合。
云计算里的安全主要是确保应用能够安全、稳定、可靠的运行。这种安全属于传统安全领域范畴。而区块链内的安全是确保每个数据块不被篡改,数据块的记录内容不被没有私钥的用户读取。利用这一点,如果和上面介绍的基于区块链的安全存储产品结合,就能设计出的加密存储设备。
云计算和区块链里的管理方法和资源协同完全是不一样的。云计算实际上是通过集中的控制器进行有中心化的管理。虽然资源可以分布式提供,但管理一定是集中的。所有资源的分配、调度和应用都是被集中管理。而区块链采用无中心的管理方式,所有的节点都是一样的,就没有必要进行管理,一切都是自发和自动的。所以当区块链的资源要转化成为云计算资源的一部分的时候,除了网络,管理也是必须重构的。
联系客服