在过去几年里,我们经常会遇到一些自称“比特币经验丰富”的人声称区块链与云计算是截然对立的,认为区块链使用了云计算后会变成中心化应用,甚至由于比特币的矿机、矿场无法基于云计算服务来部署,就认为云计算不适用于区块链。然而,最近几年,云计算厂商开始积极拥抱区块链www.jikenets.com,它们所支持的区块链多为适用于企业的联盟链或私链,因此我们常会听到来自公链阵营的批判之声。各种交错的不同声音有时会让人困惑,到底区块链和云计算技术之间存在什么样的关系,是矛盾对立还是相辅相成?以下我们总结了人们对于云计算和区块链关系的常见误解。
误解一:用云计算搭建的不是真正的区块链。这一错误认知最初源自比特币等采用工作量证明共识的挖矿机制无法利用云计算的情况。但是,在本章我们将介绍云计算服务对区块链部署提供的价值,而且事实上,目前有数以千万计的区块链节点和应用都部署在云计算之上。
过往的区块链项目,因为云计算的技术和产品发展尚未达到现有的水平,往往在项目设计之初并没有考虑到与云计算相结合,或者是共识算法的局限导致其无法利用云计算服务的便利与高效等优势。新一代的区块链项目设计者已经意识到云计算对区块链项目大有裨益,无论是从底层设计和共识算法角度出发,还是从安全性与稳定性角度来说,都会更多地考量利用云计算服务。目前有越来越多的区块链项目支持云计算部署,这是一种趋势。
误解二:使用了云计算的区块链更为“中心化”。区块链该不该使用云计算,其实这一考量与是否中心化并无关系。区块链使用云计算会变得中心化这一误解,主要源于一种看法:部署在云计算平台上的区块链项目会受制于中心化的云计算厂商。但这种看法显然十分偏颇。因为事实上,任何一个项目就算不部署在云计算平台上,也需要部署在其他厂商的平台上并受制于该厂商,而根据一般经验,普通机房比大型云计算服务企业的风险显然要大得多。
误解三:出于商业目的,云计算厂商会让区块链服务变得更中心化。这种担心有一定的道理,云计算厂商作为商业机构当然希望把客户牢牢地“锁定”在自己的平台上,但恰恰区块链本身的去中心化特点使得云计算厂商更难把区块链占为己有。
正如前文所述,去中心化应用往往更多是一种“协议”,也就是应用可能会被多方部署在多个不同的环境中,只是因为采用相同的协议或者基于相同的区块链才能一起协作。在这种思路下,应用的开发者会更不容易被“云锁定”。
目前,云计算服务商被人诟病的问题集中于“云锁定”,即应用一旦使用了某个云平台上的很多“高级性能”,就会产生“依赖性”,难以切换到别的云平台上。从软件架构设计角度来看,区块链有时候像一种软件连接器或者处于类似软件总线的位置,能提供一种跨越云的高层协议,因此更难被“云锁定”。