比特币所实现的基于零信任基础、真正去中心化的分布式系统,其实是解决一个30多年前由Leslie Lamport等人提出的拜占庭将军问题。区块链技术从诞生至今,其发展历程大致可以分为4个阶段:技术起源、区块链1.0、区块链2.0和区块链3.0,如图1.2所示。
图1.2 区块链发展历程
区块链技术源于中本聪创造的比特币。比特币是中本聪站在巨人的肩膀上,基于前人的各种相关技术和算法,结合自己独特的创造性思维而设计出来的。下面简要介绍区块链相关基础技术的发展历史。
区块链利用工作量证明(proof of work,PoW)这种共识机制来实现交易更新和共享,解决了莱斯利·兰伯特(Leslie Lamport)等人在1982年提出的拜占庭将军问题(Byzantine Generals problem),这是一个非常著名的、具有容错性的分布式计算领域问题,即在一个存在故障节点和错误信息的分布式系统中保证正常节点达成共识,从而保证信息传输的一致性。1990年,Leslie Lamport提出了 Paxos算法,该算法能在分布式系统中达成高容错性的全网一致性,但是它不考虑拜占庭将军问题。后来,Barbara Liskov在1999年提出的实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT)改进了Paxos算法,使其可以处理拜占庭将军问题。
PoW机制源于Cynthia Dwork在1993年提出的工作量证明思想,最初被广泛应用于过滤垃圾邮件。1997年,Adam Back发明了Hashcash(一种工作量证明算法),该算法利用成本函数的不可逆性,具有难于破解却易于验证的特点。其算法设计理念被中本聪改进之后,成为比特币区块链节点达成共识的核心技术之一,可以达到防止伪造交易的目的,是比特币的基石。1998年,Wei Dai使用PoW机制提出了匿名的“分布式电子货币系统”B-money,这是第一个去中心化的“电子加密货币”。比特币区块链的许多思想就是借鉴了B-money。1999年,Markus Jakobsson和Ari Juels正式发表了工作量证明这个概念。2005年,Hal Finney提出可重复使用的工作量证明机制(reusable proofs of work,RPoW),结合Wei Dai提出的B-money系统与Adam Back发明的Hashcash算法来创造“数字加密货币”。2008年,中本聪在一个隐秘的密码学论坛组发表了一篇关于比特币的论文,提出了利用PoW和时间戳机制构造出链式交易区块,实现了一种去中心化的匿名支付方式。而时间戳机制最早是由Stuart Haber与W. Scott Stornetta提出的,用来确保电子文件安全,中本聪在比特币中采用了这一技术,对账本中的交易进行追本溯源。
为保证区块链中交易的安全性,区块链技术采用了1992年Scott Vanstone等人提出的椭圆曲线数字签名算法(elliptic curve digital signature algorithm,ECDSA)。1985年,Neal Koblitz和Victor Miller两人最先将椭圆曲线用于密码学中,独立提出椭圆曲线密码学(elliptic curve cryptography,ECC)。ECDSA正是在ECC的基础上提出的。ECC与之前的RSA同为建立公开密钥加密算法,但是ECC可用简短且快速的密钥达到与RSA相同的安全强度,且更加难以攻破。ECC逐渐成为保障网络安全与隐私的首选之策。在安全隐私方面,比特币很多设计与创新借鉴了密码学匿名现金系统eCash,这是 David Chaum在1990年基于自己在1982提出的不可追踪密码学网络支付系统理念开创的。虽然eCash不是一个去中心化的系统,但它也是数字货币历史上重要的里程碑。
从上述技术发展历史来看,区块链技术并不是一蹴而就的,而是一定背景和技术发展下的必然产物。关于区块链的核心技术,后续章节会进行系统性的详细介绍。
在区块链1.0阶段,区块链技术的应用范围主要集中在“数字货币”领域。由于比特币区块链解决了双花问题和拜占庭将军问题,真正扫清了“数字货币”流通的主要障碍,很多“山寨数字货币”开始大量涌现。这些“数字货币”的技术架构一般都可分为3层:区块链层、协议层和“货币层”。区块链层作为这些“数字货币”系统的底层技术,是最核心的部分,系统的共识过程、消息传递等核心功能都是通过区块链达成的。协议层则主要为系统提供一些软件服务、制定规则,等等。“货币层”则主要作为价值表示,用来在用户之间传递价值。
在区块链1.0阶段,基于区块链技术构建了很多去中心化数字支付系统,对传统的金融体系有着一定的冲击。
在比特币和其他“山寨币”的资源消耗严重、无法处理复杂逻辑等弊端逐渐暴露后,业界逐渐将关注点转移到了比特币的底层支撑技术区块链上,产生了运行在区块链上的模块化、可重用、自动执行脚本,即智能合约。这大大拓展了区块链的应用范围,区块链由此进入2.0阶段。业界慢慢地认识到区块链技术潜藏的巨大价值。区块链技术开始脱离“数字货币”领域的创新,其应用范围延伸到金融交易、证券清算结算、身份认证等商业领域。涌现了很多新的应用场景,如金融交易、智能资产、档案登记、司法认证,等等。
以太坊是这一阶段的代表性平台,它是一个区块链基础开发平台,提供了图灵完备的智能合约系统。通过以太坊,用户可以自己编写智能合约,构建去中心化的DAPP。基于以太坊智能合约图灵完备的性质,开发者可以编程任何去中心化应用,例如投票、域名、金融交易、众筹、知识产权、智能财产,等等。目前在以太坊平台运行着很多去中心化应用,按照其“白皮书”说明,主要有3种应用。第一种是金融应用,包括“数字货币”、金融衍生品、对冲合约、储蓄钱包、遗嘱这些涉及金融交易和价值传递的应用。第二种是半金融应用,它们涉及金钱的参与,但有很大一部分是非金钱的方面。第三种则是非金融应用,如在线投票和去中心化自治组织这类不涉及金钱的应用。
在区块链2.0阶段,以智能合约为主导,越来越多的金融机构、初创公司和研究团体加入了区块链技术的探索队列,推动了区块链技术的迅猛发展。
随着区块链技术的不断发展,区块链技术的低成本信用创造、分布式结构和公开透明等特性的价值逐渐受到全社会的关注,在物联网、医疗、供应链管理、社会公益等各行各业中不断有新应用出现。区块链技术的发展进入了区块链3.0阶段。在这一阶段,区块链的潜在作用并不仅仅体现在货币、经济和市场方面,更延伸到了政治、人道主义、社交和科学领域,区块链技术已经帮助特殊的团体来处理现实中的问题。而随着区块链技术的继续发展,我们可以大胆构想,未来它将广泛而深刻地改变人们的生活方式,并重构整个社会,重铸信用价值。或许将来当区块链技术发展到一定程度时,整个社会将进入区块链时代,每一个个体都可作为区块链网络中的一个节点。社会资源的分配使用去中心化技术,区块链或将成为一个促进社会经济发展的理想框架。