细数区块链中那些关键技术
2018-04-17甘国华
甘国华
当以云计算、大数据、物联网等技术为代表的新一代信息技术正在各个领域中得到广泛应用的时候,区块链技术作为又一项重量级信息技术正越来越引发人们的关注。从极客社区到创新企业、从科技巨头到跨境联盟,乃至于各国央行和政府纷纷投入到了区块链技术的研究及应用实践中来。分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,整合了区块链技术P2P网络技术、分布式账本技术、非对称加密技术、共识机制技术、智能合约技术这5个关键技术。所有这些关键技术的引入或发明,都是为了将区块链技术打造成一个开放公正、安全可靠、高效智能的新一代信息处理技术。其中,安全可靠又是这些技术所重点考虑的关键因素。
P2P网络技术
比特币系统之所以能够从2009年一直稳定运行到现在,是与其采用了P2P网络技术密不可分的。相比较传统的客户机、服务器模式的信息系统而言,采用P2P网络结构的系统具有去中心、高性价、健壮、保护隐私、负载均衡等特点。按照设计思想、网络体系结構以及出现时间的不同,目前可将P2P网络分为三种类型,即第一代混合式P2P网络、第二代无结构P2P网络与第三代结构化P2P网络。
分布式账本技术
区块链与传统数据库的最大区别就是,传统的数据库提供对数据的增、删、改、查四种数据的基本操作,但是在区块链中,却只有增加和查询两个操作,没有修改与删除操作。传统数据库分为中心化数据库和分布式数据库两种,分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。区块链被认为是一种分布式账本技术,与分布式数据库一样都是分布式的,但两者之间在存储方式和数据结构上仍有不同。
从存储方式上来讲,数据的存储方式可以分为集中式、分割式、复制式以及混合式。集中式就是将所有数据都存储在同一个存储空间中;分割式指的是将数据分割成固定大小或者不固定大小的块状,分别存在不同的存储空间。按照分割的维度,可以分为水平分割和垂直分割。
对于数据结构来说,传统数据库分为结构化数据库和非结构化数据库,区块链的结构可以分为3个层次来描述,首先是链,然后是区块,最后是交易。同一个时间周期中的交易组成了区块,按时间顺序将区块链接起来就会形成区块链。
非对称加密技术
非对称加密技术是保证区块链安全的基础技术。非对称加密技术含有两个密钥——公钥和私钥。首先,系统按照某种密钥生成算法(例如SHA256哈希算法、base58转换),将输入(例如随机数)经过计算得出私钥(一串固定长度的字符串),然后采用另一个算法(例如secp256k1椭圆曲线)根据私钥生成公钥(公钥的生成过程不可逆)。由于采用SHA256算法的密钥可以达到2256个,在现有的计算条件下难以通过公钥来穷举出私钥,因此可以认为密码学是安全的,从而能够保证区块链的数据安全。
非对称加密技术在区块链中有两种用途,一是数据加密,二是数字签名。数据加密是将信息发送者(记为A)采用信息接收者(记为B)的公钥对待发送的信息进行加密后发送给B,B采用自己对应的私钥对加密信息进行解密获得原始信息。数字签名是将信息发送者A采用自己的私钥对待发送信息进行加密后发送给接收者B,B采用A对应的公钥对加密信息进行解密获得原始信息。非对称加密在区块链的交易信息中得以被应用,从而实现了对交易双方的隐私保护。
共识机制技术
共识机制是区块链中的另一个基础技术。共识机制用来决定区块链网络中的记账节点,并对交易信息进行确认及一致性同步。目前,人们研究和采用的共识机制有POW、POS、DPOS。
POW的基本思想是设定一种激励机制吸引区块链网络中的节点来做一个求解困难但验证容易的SHA256数学难题,该数学难题要求计算得出的随机数小于或者等于目标hash值。
POS的基本思想是以权益证明替代工作量证明由区块链网络中具有最高权益的节点而不是拥有最高计算能力的节点来记账并获得激励收益。
DPOS的基本思想是每个节点按照其所拥有的股份享有对应的投票权利,节点可以将其选票投给某一个代表节点。
智能合约技术
智能合约在区块链2.0中得到了长足发展,以太坊为代表的区块链将智能合约的应用推向了更高水平。早前,尼克萨博(Nick Szabo)将智能合约定义为“一套以数字形式定义的承诺”,包括合约参与方可以在上面执行这些承诺的协议。
从安全的角度来看,智能合约首先是同一般的区块链数据一样,具有分布式、存证、一致完整、不可篡改删除等特性;其次,智能合约也是作为保证区块链安全的一种技术手段。在智能合约里规定了参与方的权利义务,合约执行的触发条件以及对应结果。一旦该智能合约被加入到区块链中,就可以不受任何一方的影响,客观、准确的执行。
其他安全技术
基于区块链的系统在运维过程中还面临着许多其他的安全问题挑战,需要采取相应的技术可以应对,例如密钥管理技术、密文访问控制技术、防DDoS攻击技术等等。
在区块链中,如何安全合理地管理密钥,防止因密钥丢失而导致财产丢失,或因密钥泄露而导致财产被盗,是区块链应用中需要解决的问题。根据实际需要,密钥管理会有所不同,可以是一人多个密钥的管理,也可以是群组密钥的管理。
区块链从第一天被应用到比特币中就非常重视安全,从区块链1.0、2.0到现在的3.0,区块链的安全技术不断得到改进。为了满足更多工程化应用的需要,更多新的安全需求和安全技术被不断提出与研究,人们对区块链安全的认识也发生了一些改变。例如,为了适应社会管理的需要,也是为了保护用户利益的需要,在实际的应用中还需要提供身份认证、日志审计、监管等功能。
未来,区块链将与人工智能、大数据、云计算、物联网、移动互联网等技术愈发深地入融合,其安全问题也会不断涌现,相应的安全技术手段也会越来越丰富。除了传统安全手段之外,还需要将这些领域中的安全技术手段与区块链的安全技术手段相结合,使得相互融合的信息技术获得更强的安全性。