“当这个时代到来的时候,锐不可当。万物肆意生长,尘埃与曙光升腾,江河汇聚成川,无名山丘崛起为峰,天地一时,无比开阔。”这是财经作家吴晓波在撰写《激荡三十年》时,对一个突飞猛进的伟大时代的描述,区块链也是如此。在经历了忽视、追捧、质疑、纷争……,区块链行业依然锐意向前,打破一面面固有的认知之墙。
但历史总是任人打扮的小姑娘。我们在讨论区块链发展时,总是不得已穿梭于其他行业的意见领袖对区块链的侧写之中,亦或听到许多区块链项目团队掺杂了自身利益的表达。
而在对于区块链团队的技术贡献,尤其是对国内团队的判断上,也往往是建立在感性的,带着主观色彩的表达之上。
可见区块链行业,缺乏系统化的历史沿革描述,这不利于这种全球化技术今后在国际的沟通。
感慨至此,事情总是要有人去做的。作为国内最早一批从事区块链研究,并且深扎行业至今的老兵,我们也希望能为再行业做一些基础性的工作,因此,我们将以公链为序幕,展开区块链十年激荡篇章。
公链是区块链的基础设施,是最接近于区块链本源理想的技术形态,因此,了解公链的发展就变得十分重要。我们把公链的历史大致分成三个时代:
1.鸿蒙初辟:史前公链时代
2.天地初开:公链单机版
3.万物生长:公链分布式版
1. 鸿蒙初创:史前公链时代
一生二,二生三,三生万物。
很多人进入区块链行业,都是先从研究比特币白皮书开始的,比特币作为区块链技术第一个及其重要的应用,也得益于三个重要的技术准备。
技术一 非对称加密
比特币作为一种现金支付体系,首先要解决的是归属问题。
非对称加密就是区块链的解决方法,最早的非对称加密算法是 RSA,是1977年由罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼一起提出的。
不过比特币并没有采用 RSA 算法,原因是RSA的公钥长度太长,占用空间太大。比特币使用的椭圆曲线加密算法是 1985年提出来的,离现在大概有30多年了。
技术二 P2P技术
分布式网络中动辄就要存在上万个节点,处理每个节点间的通讯问题是重中之重。而解决这个问题的技术,也是一门古老的技术 P2P 技术,P2P 技术在互联网发明之初就大行其道,这项技术的提出最早是在 1969年,离现在差不多有 50年了,但是技术的成熟大概是在 2000 年左右,P2P 现在已经渗透到每个角落,包括你在qq,微信上传输文件,用迅雷下载之类的都会用到这个技术。
第三个技术 工作量证明共识算法(POW)
区块链网络如果想稳定运行,其安全性必须通过技术手段得以保证,在众多安全问题中,比较严重的就是有节点妄图作弊,篡改区块链上的数据,POW共识算法就可用于解决这个问题。
Pow(proof of work)工作量证明机制,要求对方服务前,必须出具某种工作证明机制,这并不是一个新概念,主要用于防止拒绝服务信息和反垃圾信息。类似于用于防止DOS和垃圾信息的机制Hashcash,它最早在2002年被提出,不过最早的应用不是用于虚拟货币,而是用于解决垃圾邮件问题。
邮件的发送方需要计算一个固定难度的hash,这样发送一个邮件就需要大量的cpu 的消耗。比特币的原理实际上和这个类似,只是发送邮件改成了打包区块,如果你要打包区块,那么你得先计算一个指定难度的hash。而比特币保证全球的节点,要求平均十分钟才有一个人能计算出这个难度的hash,这样上万个节点每时每刻都有人打包区块时,不至于引发混乱。另外如果有节点妄图篡改之前区块数据以威胁网络安全,那么他就要重做当前区块和被篡改区块间所有的区块,并比所有其他节点先完成这一系列操作,可想而知,这种作弊的成本是及其高昂的,通过这种机制,比特币网络得以实现安全运行。
以上三点不难看出,在比特币的诞生之前的很长一段时间,公链技术都已经准备好了。区块链新世界的开辟只是需要一个扳机,而扣下这个扳机的,就是2008年美国次贷危机引发的全球金融危机。人类金融体系的周期性问题让大家意识到,传统中心化的金融机构所维持的经济结构不仅十分脆弱,而且漏洞颇多到了不得不考虑大变革的地步,正是这样强烈的需求,比特币横空出世。
2. 天地初开:公链单机版
区块链新世界的开辟,要从比特币的诞生说起。
比特币的诞生无疑是划时代的,但是这并不意味着比特币是一个完美的产品。比特币最大的缺陷就是无法支持大的吞吐量。受制于当时的技术和需求,比特币被设计成了一个单机软件,一台家庭个人电脑,就可以运行出一个完整的节点。这意味着就算10亿台电脑都运行比特币节点,比特币的性能还是不会提高,整个系统的吞吐量受限于单台机器的性能。但比特币的诞生,却带来了巨大的思想解放,让大家意识到这是一个全新的世界,无数怀揣信仰的人开始试图改进比特币,以太坊是第一个比较有影响力的项目。
以太坊虚拟机的是与非
以太坊和比特币的唯一区别就是虚拟机编程能力的区别。可能很多人还不知道,比特币也有一个脚本,这个脚本的能力非常有限,并且考虑到安全问题,还刻意的做了限制。而以太坊在虚拟机上则表现得过于大胆,所以引起了一系列的安全问题,而且至今这种潜在的安全隐患仍然存在。众所周知,允许用户在链上编程是一件非常危险的事情,但却又必须去满足的需求,这就像我们平时用的浏览器,浏览器内嵌了JavaScript引擎,但是同时,黑客就可以通过JavaScript引擎的漏洞,通过脚本来攻击浏览器。在这里以太坊做出了取舍,它让区块链拥有了编程能力,其本质代价是牺牲了安全性。最近Facebook提出了一个叫做 move 语言,试图解决 evm的缺陷,但是,从业界软件工程的实践来看,允许用户编程会大大扩大攻击的面,系统的安全性仍是今后悬在区块链网络上的达摩克里斯之剑。
EOS 并不是划时代的产品
以太坊解决不了吞吐量问题后,EOS应运而生。但是,EOS不是通过技术创新来实现吞吐量的,而是通过让系统更中心化来实现高性能。以太坊牺牲了比特币的安全性,EOS牺牲了比特币的去中心化的特性。同时,eos 也减掉了以太坊真正的性能瓶颈 mpt树,这样通过mpt树的方式创建轻钱包的功能成为不可能事件。通过一定的妥协措施,eos 的确做到了性能的提升,但是,这肯定不是未来真正的区块链解决方案。
区块链世界初开,诞生了各具优势的项目,他们根据各自的方向在开辟不同的道路,后来者将在三条路上探索前行,开枝散叶。
3. 万物生长:公链分布式版
纵观互联网发展史,最初人们搭建网站,只用一个单机版本的数据库就可实现,但随着业务的发展,单机版本已不能满足要求,分布式数据库随之产生。在这里我们也不得不感叹,历史总是惊人的相似,因为区块链世界也延续了这样的发展趋势。
区块链技术已经进入更加深入的商业化结合阶段,伴随着业务逻辑的复杂,单链架构成为历史只是时间问题,分布式版的公链系统将成为主流,分布式公链系统的特点是节点越多性能越高,因此衡量此类公链的重要指标之一,就是看节点数量。
目前,较为主要的分布式公链有cosmos 模式 和 平行链模式两种,我们将分别研究列举。而更重要的是,许多中国团队更早的看到了未来的发展方向并提前布局。可以预见,在分布式时代,中国的区块链企业有望实现全面超越。
cosmos 照搬了互联网模式上链
互联网是由无数局域网连接而成的,cosmos也类似,很多条公链通过hub互相连接,构成一个大的区块链。这是个绝妙的想法,甚至未来可能成为区块链全球协议的一部分。但是,cosmos却仍然有两个问题没有解决:
1. 单链的性能依然没有解决:这种模式与eos类似,一定程度上牺牲了去中心化。
2.子链搭建成本非常高:Cosmos希望汇聚更多的链,但它却忽略了成本问题。
这种模式下,一方面搭建一个链的成本很高,几乎等同于搭建一条公链,同时安全防护的成本也十分高昂。比如链上21个节点,如果存在ddos攻击(Distributed Denial of Service:分布式拒绝服务攻击),或者被黑客入侵,21个节点全部被黑客数据删除,那么可能这条链就永远从地球上消失。