第一节
区块链
区块链(Blockchain)是去中心化金融中最重要的基础设施技术,是一个将按照时间顺序编排的数据存储在一系列连续增长的区块(Block)中的分布式系统,也被称为分布式账本技术(Distributed Ledger Technology,简称DLT)。一个区块指的是某个时间段内的信息储存单元,这些区块通过哈希(Hash)函数连接在一起,形成链状结构,也就被称为区块链。一个更简单的说法是,区块链是一个“交易数据库”,每次有一组新的交易添加到其中,就称为一个“区块”。本节我们将从发展历程、技术原理以及对去中心化金融体系的意义三个方面介绍区块链这种重要的基础设施。
总的来看,区块链的发展大体上沿着从思想观念到技术迭代,再到应用扩展的脉络。
区块链技术的诞生以密码学思想和方法以及密码学货币概念为理论基础。1976年,惠特菲尔德·迪菲(Whitfield Diffie)和马丁·爱德华·赫尔曼(Martin Edward Hellman)发表了《密码学的新方向》( New Direction in Cryptography ),讨论了密钥传输通道的安全性问题以及与书面签名等效的认证体系提供问题。1997年,为了遏制群发垃圾邮件等滥用电子邮件资源问题,亚当·贝克(Adam Back)提出了哈希现金(HashCash)系统,由此第一代工作量证明算法出现,为后来比特币挖矿功能提供了方法基础。 1998年,戴维(Wei Dai)设计的B-Money和尼克·萨博(Nick Szabo)设计的Bit Gold提纲使密码学货币概念成型。
比特币区块链是第一代公共区块链。第一个真正意义上的去中心化区块链由中本聪在2008年10月31日发布的论文《比特币:一种点对点的电子现金系统》中提出。2009年1月3日,在该论文的基础上,比特币的创世区块被挖出,这意味着比特币区块链诞生。创世区块被嵌入了一段文字:2009年1月3日,财政大臣正处于实施第二轮银行紧急援助的边缘(The Times 03/Jan/2009 Chancellor on brink of second bailout for banks)。这是当天《泰晤士报》的头版文章标题。据推测,中本聪可能认为比特币网络将革命性地改变传统金融体系。比特币区块链网络主要被用于转账,提供最基础的金融支付和交易服务。
随后,随着公链技术不断发展,开始有新的公链被开发出来。2013年末,维塔利克·布特林发布了旨在建设第二代区块链的以太坊白皮书。以太坊通过客户端连接以太坊网络,可以部署智能合约,并通过各种去中心化应用程序实现交互。以以太坊为代表的第二代公链的核心特点是可编程性,这使用户可以在区块链网络上构建和部署智能合约和去中心化应用。这也意味着,用户可以通过区块链来储存数据或运行程序,实现可以通过编程实现的任何事情,这极大地拓宽了区块链的想象边界。与第一代区块链比特币相比,智能合约等基础设施为隐藏底层技术复杂性提供了可能,更多区块链技术转化为应用落地。
现在,区块链进入了为各行各业提供去中心化解决方案的时代。游戏、社交、去中心化金融服务等各种更为丰富的应用程序相继上线。区块链技术被大规模应用在经济社会各个领域,例如目前区块链应用场景已经涉及贸易、物流、金融、政务、文娱、工业、农业、能源、医疗和教育等诸多行业。
接下来,我们以比特币区块链为例,详细阐述区块链的技术原理。一个完整的区块由区块头(Head)和区块体(Body)构成。如图3.1所示,一个区块用一个正方形表示,上方为区块头部分,下方为区块体部分。区块头主要包括前一区块哈希值(Previous Hash)、版本号(Version)、时间戳(Time Stamp)、随机数(Nonce)、难度(Difficulty)和梅克尔树根(Merkle Root)六个要素。区块体中则是通过梅克尔树形结构记录了该区块储存的交易数量(Number of Transactions)以及交易数据(Transactions)。本区块的哈希值由区块头要素进行哈希计算得到,并记录在下一区块的区块头中,从而构成一个可以持续增长的链状结构,也就是区块链,如图3.2所示。
图3.1 区块结构示意
图3.2 区块链示意
这些区块的哈希值通过哈希函数(Hash Function)创建。形象地说,哈希函数是一种为任意长度数据创建较短固定长度“数字指纹”的方法。它能够接受任意长度的输入,然后给出一个固定长度的输出。哈希函数最重要的特点是,给定相同的输入,哈希函数能提供相同的输出;而给定不同的输入,哈希函数极大概率会给出不同的输出。之所以说“极大概率”,是因为哈希函数本质上是将一个无限的输入集合映射到一个有限的输出集合中,所以只要给定不同输入,函数给出相同输出的概率足够小,我们就可以大致认为,给定函数的两个输出相同,函数的两个输入也应当是相同的。
在区块链中,每一个区块的信息能够通过哈希函数和一个哈希值对应,而这个哈希值就会被记录在下一个区块的区块头里。在这样的情况下,一旦区块链中的某个区块中的信息被篡改,那么该区块对应的哈希值就会改变。而由于该区块的哈希值是被包含在下一个区块中的,所以下一个区块的信息也发生了改变,从而导致下一个区块的哈希值发生改变。因此,一旦区块链上的某个区块的信息被改变,就会导致后续区块的信息全部被改变,因而对区块链上的信息进行篡改是很容易被发现的。
区块链的这一抗篡改的特性,使得用户在区块链上留下的所有信息都不能被改变。所以区块链的一个很重要的功能就是“记账”——所有记录在区块链上的交易都是公开的,并且可以被任何人在事后进行查验,这就是区块链产生信任的来源。以获得“记账权”为目标的分布式节点被称为矿工,而“记账权”的产生方式则被称为共识机制。
共识机制是指参与节点将一个新的区块添加到区块链中的验证方法。工作量证明方法是指矿工相互竞争解决一个复杂的计算问题,第一个解决问题的矿工验证新区块,将其添加到区块链中,并向网络中的其他节点宣布,其他节点验证矿工的解决方案,如果通过验证,节点会在验证下一个区块时使用这个新的哈希值。权益证明方法则是指随机选择节点成为验证者,一个节点必须抵押一定数量的加密数字货币才能进入备选池,该节点被选中成为验证者的概率与抵押金额大小成正比,而且抵押金额高于交易费用时可以保证验证的可靠性。
以以太坊为代表的区块链是去中心化金融得以发展的重要基础。一方面,区块链的公开、透明、防篡改等属性有效解决了传统金融体系中的信任痛点,使得金融实现向去中心化的转变;另一方面,开发者可以在以太坊等网络上构建和部署智能合约、去中心化应用,极大地拓展了去中心化金融的想象边界。
总之,自创立至今,区块链围绕去中心化、安全和可扩展的目标不断更新迭代,优化用户体验,未来一定会有更广阔的应用空间。一方面,区块链可以从共识机制层面进行优化,在保证安全性的同时加快交易确认的速度,例如目前的权益证明共识机制在理论上就能够比工作量证明共识机制有更快的交易确认速度。2022年9月15日,以太坊从工作量证明共识机制转向了权益证明共识机制,在提升效率的同时减少环境污染风险。另一方面,区块链可以通过二层网络(Layer 2)、侧链等解决方案提升可扩展性,例如基于以太坊的二层网络方案 ,在区块链上发生的交易会直接提交给第二层节点,并且在第二层达成共识,而后第二层区块链定期与以太坊通信将证明发回给第一层,这样一来,第一层主要负责安全性、数据可用性和去中心化,第二层负责承担具体的事务。在这种情况下,因为交易被汇总后统一提交到第一层,所以第一层的交易量显著减少,从而拥堵问题得以解决。