
1.2 区块链技术起源
1991年,Stuart Haber和W.Scott Stornetta[6]为了设计一个不可被篡改的系统,提出了最早的加密安全链式区块;次年,两位作者与Dave Bayer将Merkle Tree[7]纳入区块结构,使许多文件的加密验证可以在一个区块内进行,提高了整个系统的运行效率。然而,对于最早的链式区块,依然需要一个可信的第三方进行签名。1999年,Markus Jakobsson和Ari Juels正式提出工作量证明(Proof of Work,PoW)的概念,即利用计算一致性哈希的方式来达成共识,其思想可以追溯到1993年Cynthia Dwork和Moni Naor利用计算数学难题的方式来减少垃圾邮件的一篇论文[8,9]。2008年,中本聪[1]在设计比特币时提出一种“区块+链”的新型数据结构,其中改进了原始的链式区块,利用工作量证明算法达成共识,以此免除了可信第三方。同时,通过调节一致性哈希计算结果的难度,可以控制区块产生速度。由于在分布式系统中,计算难题出解效率是不可控的,为解决不同节点同时处理计算难题时出现的公平问题,比特币在设计时采用的是最长链原则,即当计算难题导致多条合法链存在时,只考虑最长的链。
在此之后,区块链技术被广泛应用于加密货币,如何拓展加密货币的表现形式、增加成交量、减少交易时间、提高计算资源利用率等成为技术发展的重点。因此,一系列能够提高交易效率的共识协议被提出来,目的是解决加密货币交易效率低等问题,以消除区块链链式结构分叉的影响。同时,为了服务于不同的应用场景,专有链和联盟链的概念也在这一时期被提出,通过牺牲部分平等性、公平性,换取效率的提升。
2013年年底,以太坊平台项目启动[10],通过智能合约等技术的应用,同时提供应用开发环境和虚拟机,将分布式应用(DApp)的开发推向新的发展时期,孵化了大量DApp。以太坊独创性地将智能合约加入区块链系统中,使区块链系统的应用不再局限于加密货币,拓宽了区块链技术应用的边界。智能合约的概念最早是于1994年由Nick Szabo提出的,当时被定义为“一套以数字形式制定的承诺,包括合约参与方可以在上面执行这些承诺的协议”[11]。当智能合约被预先部署在区块链上且条件满足时,系统会自动执行合约中的代码。智能合约可以被视为在区块链上运行的程序代码,由于程序本身不具备违约的可能性且天然可信,因此可以被用来进行链与链、链与非链之间的交互。