区块链:交易系统开发指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 区块链交易系统基础

1.1 区块链概述

1.1.1 区块链的定义

区块链技术是构建价值互联网不可或缺的底层应用技术,是具备多级层和多类型应用的价值传输技术的集合。它的本质是一种分布式数据库,或者说是一个可共享且不易更改的分布式分类总账。

该技术方案让参与系统中的任意多个节点,把一段时间系统内的全部信息数据,通过密码学算法计算和记录到一个数据块即区块中,并生成数据“密码”用于验证其信息的有效性和链接下一个数据块,并且由系统的所有参与节点来共同认定记录是否为真。

现在让我们从区块链的起源来更深入地了解区块链。2008年11月1日,正当金融危机席卷全球时,一位名叫中本聪的神秘人物向“密码学邮件组”发布了一个帖子:“我们正在开发一种新的电子货币系统,其采用完全点对点的形式,而且无需第三方信托机构。”这样一种不受任何政府或主权控制、去中心化的全球电子货币系统是“密码朋克们”数十年的梦想。

比特币的问世及稳定运行的10年证明了区块链技术对于价值传输的可靠性及安全性,开启了互联网由信息互联时代迈向价值互联时代的大门。

在中本聪发布的Bitcoin: A Peer-to-Peer Electronic Cash论文中,我们看到了这种电子货币体系的几项颠覆式创新。

(1)去中心化。比特币的发行和流通不依靠中央银行等第三方机构,而是依靠特定算法及密码学技术通过点对点的传输实现,是一种完全依靠网络节点的分布式虚拟货币。

(2)开源性。在比特币系统中,所有参与者都可以成为比特币的发行者及交易者,整个系统的运作规则是公开透明的,任何个人或机构都可使用比特币系统,整个系统是以开源的方式存在的。

(3)匿名性。在比特币系统中,任何个人或组织都可以开设比特币账户,而每个账户对应的地址实际上是与用户的现实身份没有任何关系的ID。比特币持有者可通过不断转换ID来隐藏自己的身份。同时,整个比特币网络都不存储可以辨认个人身份的信息。

(4)不可逆性。全部交易都被加上时间戳,并将交易信息并入一个不断延展的基于散列算法的工作量证明的链条上作为交易记录。除非重新完成全部的工作量证明,否则所形成的交易记录将不可变更。

(5)安全性。公钥与私钥相结合。公钥用于计算比特币地址,而操控比特币需要私钥,它可以被隔离保存在任何存储介质上,除了用户自己无人可以获取。此外,系统中的每个节点都能获得一份完整数据库的拷贝,得知所有比特币的交易信息。除非同时控制整个系统中超过51%的节点,否则在单个节点上对数据库的修改是无效的。因此,比特币的安全性将随着参与者的增加而提升。

(6)全球自由便捷流通。使用比特币没有烦琐的手续,只需要告知对方比特币地址就可进行支付。任何一台接入互联网的计算机都能被用来管理比特币。

从中本聪的这套点对点电子货币体系中我们可以看到区块链的雏形,即一种不依靠第三方而实现价值转移的分布式账本技术。这种账本具备以下几个特征。

◎ 无限扩展性:区块链上的每个区块都可被看作账本中的一页,在区块上记录着一条或多条交易信息,每增加一个区块就相当于账本增加一页,区块链上的区块数量是没有上限的。

◎ 全员维护:账本依靠网络中的节点共同记录与维护,不依靠第三方机构。

◎ 加密且有序排列:交易信息被加密打包和记录到每一个区块中,并加盖时间戳,一个个区块根据时间戳顺序链接成一个总账本。

在这里,我们必须要强调比特币并不等同于区块链,它只是区块链技术的一个早期的最典型的应用范例。这个应用范例的问世打开了区块链的“潘多拉魔盒”,让虚拟的互联网世界开启了价值互联的时代,其核心是依靠技术手段建立一种无需第三方担保的安全可信任的机制,让人人可以参与其中。

1.1.2 区块链的核心原理

区块链的核心理念是:构建前后关联且可相互验证的数据块(即区块),并通过时间戳将区块排序,结合密码学技术,形成集体维护、彼此验证、有序链接的网状价值传输系统。

关于区块链,我们需要理解几个核心概念。

1.区块

在区块链技术中,有价值的信息以数据的形式被永久存储下来,这些用于存储数据信息的载体被称为区块。区块按时间顺序排列,每个区块都记录着它在被创建期间所发生的交易信息,所有区块有序链接起来以汇聚成一本“总账”,而每个区块都可被看作总账中的一页。

每个区块均包含三个要素:①本区块的ID; ②若干交易单;③前一个区块的ID。

在比特币系统中,每隔10分钟创建一个区块,这个区块记录了在这段时间内发生的所有交易信息。同时,每个区块都包含前一个区块的ID,因此便可根据此ID找到上一个区块,依此类推,追踪到起始区块,从而可以生成一个完整的交易链条,形成区块链。

2.时间戳

顾名思义,时间戳是记录某一事件发生时点的信息。在区块链中从区块生成的那一刻开始,时间戳便存在于区块中。由于时间的唯一性,让每个加盖了时间戳的区块都是独一无二的,并且提供了认证依据,保证了它的真实性。通过时间戳,各个区块有序排列起来,最后生成一个完整的链条。

3.散列算法

散列算法是区块链中保证交易信息不被篡改的单向密码机制。区块链通过散列算法对一个交易区块中的交易进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。区块链的散列值能够唯一而准确地标识一个区块。在验证区块的真实性时,只需要简单计算出这个区块的散列值,如果没有变化就意味着这个区块上的信息是没有被篡改过的。

4.公钥和私钥

从密码学的角度定义,公钥和私钥其实是一种不对称的加密方式,其核心思想是加密与解密釆用不同的密钥。在区块链中使用公钥和私钥标识身份,信息发送者用私钥对信息进行签名,使用信息接收方的公钥对信息加密;信息接收方用信息发送者的公钥验证发送者的身份,使用私钥对加密信息解密。

在介绍了区块链的核心原理和几个核心概念后,我们不难发现,区块链技术是密码学、经济学、分布式存储技术、网络科学及应用数据等多种技术的整合,目的是构建一套可信任的价值传输体系。这些技术按特定规则组合在一起,构建了一套分布式数据记录和存储系统,并通过时间戳为存储数据的区块排序,形成一个连续且前后关联的分布式数据库,这个数据库是价值的天然载体。

1.1.3 区块链的特性

与传统记账方式相比,区块链具有去中心化、开放性、自治性、集体维护、信息不可篡改、匿名性、可追溯性、智能性等特性。

1.去中心化

区块链本质上是分布式数据库,因此区块链上的数据发送、验证、存储等均基于分布式系统架构,依靠算法和程序来建立可信任的机制,而非第三方机构。任意节点的权利和义务都是均等的,交易双方可以自证并直接交易,不需要依赖第三方机构的信用背书。同时,任何一个节点的损坏或者退出都不会影响整个系统的运行。

2.开放性

区块链系统是开放的,除交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用。

3.自治性

区块链采用协商一致的规范和协议(比如一套公开透明的算法),使得整个系统中的所有节点能够在去信任的环境中自由安全地交换数据,使得对“人”的信任改成对机器的信任,任何人为的干预都不起作用。

4.集体维护

区块链系统是由所有参与节点共同维护的系统。区块链上的每一个节点都可以对区块(数据块)进行维护,而整个系统的运行也依赖每一个节点,这是一个人人参与其中的集体维护系统。

5.信息不可篡改

经过验证的信息被上传至区块链后就会被系统永久存储下来,并得到所有参与节点的集体维护。除非能够同时控制系统中超过51%的节点,否则在单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

6.匿名性

区块链上的信任体系由程序和算法构建,节点之间的交换遵循固定的算法。交易双方无须通过验证现实中的身份信息来让对方产生信任,因此匿名性是区块链很明显的一个特征。

7.可追溯性

溯源是指追踪记录有形商品或无形信息的流转链条。在区块链上每一个区块都会被加盖时间戳。时间戳既标识了每一个区块独一无二的身份,又让区块实现了有序排列,为信息溯源找到了很好的路径。

8.智能性

在以上7个特性的基础上,区块链还具备可编程性、可承载智能合约等技术。这个特性让人们可以根据具体的应用场景,在区块链上创建和部署相关程序,以实现智能化运行。