区块链技术初步应用研究
2018-07-11周文刚冯贵兰
周文刚,冯贵兰
(中国民航飞行学院,四川广汉,618307)
0 引言
区块链技术起源于日本学者中本聪于2008年所发表的论文《比特币:一种P2P电子现金系统》[1],目前在业界尚没有统一的区块链定义,但普遍认为,区块链是一种将数据区块以特定链条的形式构成相关数据结构。而广义的区块链技术则集成更多新兴技术,可通过使用加密链式结构来确认与存储数据;使用分布式节点共识算法来产生与更新相关数据;使用智能合约技术来预设操作条件,以自动执行相关脚本代码操作数据。
目前,人们最熟悉的应用场景是近年来比特币在全球范围内的快速发展,此外,政府机构、金融部门、高科技企业以及风投资本等也对这一新兴技术投以广泛的关注,2016年1月,英国政府发布区块链专题研究报告[2],大力推进区块链技术在金融和政务中的应用;中国人民银行也召开数字货币研讨会讨论利用区块链技术发行虚拟货币的可行性,在风头资本端,也有高达数十亿美元的资金涌入这一领域,初创公司R3CEV推出的BAAS(Blockchain as a service)服务,已吸引花旗、汇丰、高盛、摩根大通、摩根斯坦利等多家大型银行集团的加入,力图制定银行业的区块链行业标准[3]。与此同时,学术界也积极探索区块链技术特征并对区块链技术在各领域的广泛应用提供了重要支撑。
1 区块链技术原理和特点
1.1 区块链构成
区块链是由网络中各区块通过有序方式链接起来而形成的一种数据结构,数据区块是相关信息和特点记录的集合,是构成相关区块链的基本数据单元。通常地,每个数据区块由包含区块头(Header)和区块体(Body)的两个部分所组成,其中,区块头版本号、当前区块哈希值、时间戳等相关信息被封装于区块头内部[4],同时,区块头还记录前一区块的地址以链接到前一区块,为整个区块链的完整性提供支持,如图1所示。哈希算法通过数学计算可以将大小各不相同的数据换算生成固定长度的字符串,并且,这是一个单项函数,即很难通过计算后的哈希散列值反推出原始数据,这一特点对区块链技术很重要。Markle树就是一基于哈希方法的数据结构,所生成的树中的每一个非叶子节点都是节点自身所包含的叶子节点的哈希散列值[4],区块链网络中所有记录节点再利用Markle树的哈希过程生成唯一的Markle根并存储于区块头中。区块体则主要记录当前区块的相关交易数据以及整个网络中所更新的数据信息。各数据区块依据区块头的相关信息依次相连形成链式结构。
图1 区块结构
1.2 区块链关键技术
组网方式:区块链系统利用P2P方式来组织网络节点,形成一个去中心化的P2P点对点网络,由于整个网络系统中没有任何中心化的管理机构和特殊节点,整个网络中每个节点的地位对等且以相对扁平化的拓扑方式互联互通,可同时充当客户端和服务器端。同时,在整个区块链系统中,每个数据节点都存储了区块链的全部数据信息,在这种全网节点式数据架构下,每个节点可以不依赖于其他节点独立完成数据的查询与更新,另外,由于数据有多个备份,个别节点的加入或离开不会影响到整个区块链网络运行的稳定性,增强了网络的鲁棒性和健壮性,也使得数据信息被恶意篡改的可能性更小,保证了网络数据的前后一致性。
非对称加密:由于P2P网络没有中心化的硬件或权威机构,为解决网络中各节点信息的相互信任问题,区块链系统采用非对称加密算法以满足网络安全性和所有权验证的实际需求。非对称加密通常需要两个密钥:公开密钥和私有密钥[5]。在其加密和解密过程中,首先用其中一个密钥(公钥或私钥)进行数据加密后,只有与之相对应的另一个密钥(私钥或公钥)才能进行数据解密操作,其次公钥可以向其他方公开,而私钥则只有操作方自己知晓。相比于对称加密技术,其安全性更好,常见的非对称加密算法有 :RSA,Elgmal,D-H,Rabin,ECC等。
区块链中各数据节点都有各自特定的公钥和私钥,其中公钥公开给全网用户,私钥则由用户自己保存。特定信息被用户用私钥加密后,其他节点用户可用对应的公钥解密信息,同时,私钥用户加密时可在数据尾部加注数字签名信息,其他节点用户在用公钥解密后可通过相关签名信息验证数据的合法性和真实性。
2 区块链应用的实际访问过程
考虑区块链协议的访问过程,如果用符号对(,)S∏表示区块链协议,其中表示状态算法,输入特征值k并维持局部状态量state.算法 S ( k, s tate)输出记录的有序序列我们称S( k, s t ate)为一个参与者的记录链,且其特征值为k,局部状态量为state。算法通过封装有效语义值V来实现特征参数化,以表示,旨在达到原区块链设计所想要实现的目标。
定义1:假设Z为一次执行环境,A为某一消息传播者,参与方(1,2,......,)n,执行过程在模型时间步长的回合中进行。如果在回合r,参与方在执行环境Z接收一条消息(记录),然后,它可以执行相关操作,并向其他参与方广播信息,并更新其局部状态量是参与方i的本地状态集。采用表示一个联合所有各方意见的随机变量,显然,这一联合视图能决定区块链执行过程。
3 区块链应用的特点
区块链这一特殊的数据组成形式,使相关区块链技术主要有以下几个特点[6]:去中心化,透明公开性,脚本智能自动执行,可追溯性。
去中心化主要体现在整个网络中没有强制性的特定控制中心,网络中所有节点具有同样的义务和权利,而全网数据在多个节点互为备份,互为补充,互为监督。这样,如果某个节点想进行篡改数据的单方面操作,其成本将非常高,也几乎不太可能同时修改所有节点的备份数据。这样,存储数据的安全可靠性有了较高的保障,另一方面,由于其高度分布式自治结构,任意网络节点的异常或损坏不会影响到整个区块链,保证了整个数据系统具有较高的鲁棒性。
透明公开性主要体现在整个区块链系统的运行规则透明公开,任意数据的操纵、更新等也对所有节点透明公开,其数据为全网所有节点所共享,并共同维护这一特定组织网络。任意节点之间很难互相欺骗,从而保证了各网络节点间较高的信任忠诚度,极大降低了整体信用成本。
脚本智能自动执行主要是指区块链技术能够为用户提供方便灵活的脚本代码系统,用户可以加入一系列的通过脚本实现的智能合约,在合约中设置一定的前置条件,区块链系统自动判断执行的前置条件,当所有条件都达到设定值时,区块链系统能够在没有第三方监督的情况下,自动强制执行预先设定好的合约条款,能够有效保障合约的正常执行,降低了合约执行的人力、物力成本。
可追溯性主要体现在区块链中的所有节点在区块头中有数据区块的时间记录信息:包括区块写入与交易时间,同时,交易的完整传递路径也能被记录和追溯,不易被篡改,这一特性也为区块链技术增加了时间维度,为数据的可追溯性提供了重要支持。
4 总结与展望
区块链技术作为一种新的数据库技术,因其公开透明,去中心化,可编程,可信度高等特点,正受到越来越多的关注,产业界最近几年对区块链技术的重视也在不断提高。当然,我们也应看到,基于区块链技术的实际应用还比较少,其应用范围还比较窄,目前在全球范围内最成熟的应用还是比特币系统,将区块链技术从金融交易领域应用到其他领域,仍然有一定的行业壁垒和相对不确定性,还需要相关产业与研究人员不断努力,积累应用经验,推动区块链技术的持续发展。