摘要区块链是一项具有颠覆许多传统行业的潜力的新兴技术.自以比特币为代表的区块链1.0诞生以来,区块链技术获得了广泛的关注,积累了大量的用户交易数据.而以以太坊为代表的区块链2.0的诞生,更加丰富了区块链的数据类型.区块链技术的火热,催生了大量基于区块链的技术创新的同时也带来许多新的问题,如用户隐私泄露,非法金融活动等.而区块链数据公开的特性,为研究人员通过分析区块链数据了解和解决相关问题提供了前所未有的机会.因此,总结目前区块链数据存在的研究问题、取得的分析成果、可能的研究趋势以及面临的挑战具有重要意义.为此,全面回顾和总结了当前的区块链数据分析的成果,在介绍区块链技术架构和关键技术的基础上,分析了目前区块链系统中主要的数据类型,总结了目前区块链数据的分析方法,并就实体识别、隐私泄露风险分析、网络画像、网络可视化、市场效应分析、交易模式识别、非法行为检测与分析等7个问题总结了当前区块链数据分析的研究进展.最后针对目前区块链数据分析研究中存在的不足分析和展望了未来的研究方向以及面临的挑战.
关键词区块链;数据分析;比特币;以太坊;智能合约
区块链技术是一种新型的分布式账本技术,它可以在互不信任的环境下实现去信任中介的可信交易.与传统数据库技术相比,区块链技术具有防伪造、不可篡改以及能方便实现智能合约等特点,被誉为一种将引发社会变革的新型技术[1].国务院印发的《十三五国家信息规划》将区块链等相关技术列入强化超前布局的战略性前沿技术.著名信息技术研究分析公司Gartner①连续2年(2017年、2018年)将区块链及其相关技术列入十大战略科技.
区块链技术是比特币等新型数字货币的底层支撑技术.由于要在分布式环境中实现可信的交易,区块链技术大量使用密码学技术隐藏用户信息,同时所有交易信息则由分布式网络共同验证、存储.区块链技术可根据应用场景和网络加入许可机制的不同划分为公有链、联盟链和私有链[2].比特币[3]、以太坊[4]等对节点的加入与退出没有任何限制,是典型的公有链.传统数据库中的数据通常隶属于某家企业或机构,只有内部人员能够查看和分析,而公有区块链因为可以自由加入与退出,其中的数据即区块链数据可以方便地获取.这为数据分析人员通过获取公有链的交易数据,进而分析系统中的各种行为提供了前所未有的机会.
当前,各种公有链如比特币、以太坊等获得了大量用户的参与,积累了大量交易数据.以比特币为例,一份ARK投资公司和Coinbase联合发布的研究报告指出,截至2016年底,全球有超过1000万用户持有比特币,每天比特币的交易量达到2亿美元[5].大量用户的参与和活跃的用户交易使得基于区块链的数据分析成为一个重要且有价值的研究问题.随着区块链技术的发展,各行各业将区块链技术作为底层技术引入,势必导致大量的数据以区块链数据的形式存在,因而研究基于区块链的数据分析问题具有重要的理论和现实意义.
与典型数据形式相比,区块链数据具有2个重要的特点:1)在区块链系统中,尤其是在公有链中,用户都是匿名的,各种用户的属性数据(如性别、年龄等)都无从获得;2)区块链系统中用户通过交易形成联结,构成各种网络、数据之间彼此互相关联.因而,基于匿名网络的数据分析技术将成为区块链数据分析的重要技术.
目前,由于区块链技术尚处于初始阶段,缺乏大量成熟的区块链应用项目,因而基于区块链的数据分析亦处于探索阶段.区块链数据分析相关的文献主要针对目前相对成熟且已有足够数据的区块链如比特币、以太坊等.其中,又以比特币区块链因其创立时间较长、广受关注而成为区块链数据分析研究的重要对象.
目前,已有大量针对区块链技术不同角度的文献综述,如技术架构[6]、共识机制[7]、安全和隐私的问题[8-9]、攻击问题[9]、应用现状[10-11]、研究方向与挑战[2]、研究热点[12]等,但尚缺乏对区块链数据分析技术的进展的相关报道,为弥补这一缺失,本文对目前区块链(主要是比特币、以太坊)数据分析的相关文献进行了对比分析,概括出2类典型的区块链数据和相应的分析方法,并总结了区块链数据分析的七大研究问题和进展,希望能够给当前区块链技术的相关研究提供一定的参考与帮助.
1区块链基础介绍
当前,我们处于一个信息泛滥的时代,各种数据充斥我们周围.然而,数据是否真实可信却不得而知.
区块链技术因其特殊的机制,其中的数据具有“可信”的宝贵特征,这使得基于区块链数据分析的信息具有重要的价值.为理解为何区块链数据具有可信的特征,本节将介绍区块链的基本架构,并重点分析使得区块链数据可信的关键技术.
1.1区块链架构
2008年,化名为“中本聪”(SatoshiNakamoto)的学者在密码学邮件组发表比特币奠基性论文[3],并于2009年1月实现了比特币的最初版本.在经过一段时间的运行之后,比特币开始走进大众的视野.由于比特币具有许多优良特性,其迅速成为金融市场的宠儿.区块链技术正是指比特币等加密货币的底层支撑技术.
目前,尚未形成行业认可的对区块链技术的统一定义.在2016年10月由中国工业和信息化部发布的《中国区块链技术和应用发展白皮书》将区块链技术描述为分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式.在区块链的技术架构方面,袁勇等人[13]将其划分为数据层、网络层、共识层、激励层、合约层和应用层.然而,随着区块链技术的不断发展,区块链的内涵与外延也在不断演化.比如一些实际商业应用中,并不需要币的存在,因而激励层也并不存在.文献[14]从隐私保护的角度将区块链的架构划分为3个层次:网络层、交易层和应用层.本文站在数据分析的角度,从数据的类型和环境出发,认为区块链可以描述为三横一纵的结构,如图1所示:
三横既是对区块链数据类型的抽象,同时也代表区块链的3种发展阶段.最底层是交易(transaction)层,对应的是以比特币为代表的区块链1.0阶段.交易是改变区块链数据的手段,也是区块链中重要的基础数据.记录交易以及确保区块链数据本身的全局唯一性和不可篡改性是区块链1.0的核心.中间层是智能合约层,智能合约是密码学家尼克·萨博(NickSzabo)于1996年提出的概念[15],旨在将合约条款电子化,当条件满足时,条款能自动执行,因而智能合约本质上是一段计算机程序.由于区块链数据具有不可篡改、完整可信等重要特征,基于区块链数据构建智能合约具有天然的优势.因而,区块链加智能合约被称为区块链2.0.智能合约本身亦是构成区块链2.0的一种重要数据类型,我们称这种数据为合约数据.当然,智能合约的部署和运行离不开交易,同时也会产生交易数据.最顶层是应用层,应用层代表的是基于区块链的各种应用,对应区块链3.0.应用可以建立在智能合约之上,实现许多复杂的自动化功能,也可以没有智能合约(因而合约层以虚线表示),如基于比特币的各种应用.目前,由于区块链技术尚处于发展初期,因而缺少与实际场景结合的应用数据.
一纵代表的是区块链的运行环境是分布式的.分布式环境穿越区块链的3个不同层次,表示3个层次都处于分布式环境中.比如同一个智能合约,作为一种数据存储在分布式环境中的每一个节点上,当接收到触发合约运行的交易时,每个节点基于本地的区块链数据运行相关合约,并将运行结果存入本地数据中,最后通过共识机制,使得本地的数据与整个分布式网络达到一致.在区块链的分布式网络环境中,通常存在着大量节点.不同的节点在网络中可能扮演着不同的角色.在比特币系统中,节点有钱包、挖矿(争夺记账权)、完整区块数据存储、路由4种角色[16].通常一个节点会因功能的不同实现不同的角色,比如一个轻量级的钱包节点不仅需要实现钱包功能,同时需要链接一定数量的节点以实现发布交易和验证交易的功能,即需要实现路由功能,但大部分情况下,由于资源的限制,并不需要实现完整区块数据存储,而只是存储区块链头部.我们把同时实现4种角色的节点称为全节点,通常一个挖矿节点会实现所有的角色而成为全节点.由于全节点实现了所有的角色,因而是整个网络中重要的支持和维护节点.本文中,当谈到节点时,若没有特别指明,都表示这类全节点.
1.2区块链关键技术
区块链在本质上相当于一个去中心化的账本数据库,相对于传统数据库,其核心特征是“不可篡改”.正是不可篡改的特性,使得区块链数据具有“可信”的特征.在分布式环境中,实现一个不可篡改的账本,其关键的问题是数据如何组织以确保不可篡改以及如何在分布式环境中对账本状态达成共识.我们将解决这2个问题的技术概括为数据结构和共识机制.下面以比特币系统为例分别介绍这2个关键技术.
数据结构决定了区块链中账户和交易的组织形式.在区块链系统中,通常采用Merkle树组织账本中所有的账户或发生的交易[16].Merkle树,又称Hash树,其上所有的值都是Hash值.图2展示了比特币系统中采用的Merkle树结构.在比特币系统中,当交易发生时,节点根据接收到交易的先后顺序或手续费高低等条件将交易排在一起,然后通过Hash运算得到每个交易的Hash值.这个Hash值就是Merkle树的叶子节点值,此后通过将Hash值两两拼接在一起的再次Hash运算得到一个新的Hash值,依此自底向上通过不断地拼接Hash运算就可以得到Merkle树的树根节点值(Merkleroot),这个根节点值代表了一段时间内被打包的所有交易的摘要信息.当交易发生任何的篡改(如地址、数额等发生变化)或者交易组织的顺序发生任何改变,重复这个过程得到的新的树根节点必然与改变之前的树根节点完全不同.与比特币的做法不同,在以太坊等区块链中,为了方便实现智能合约,引入了账户的概念,因而它们的做法是将账户组织到一个Merkle树上,账户代替了交易去做Hash运算,当账户状态发生变化时,对应的Hash值发生变化,最终导致Merkle树根节点值发生变化.因此,不管是通过将账户还是交易组织到一棵Merkle树上,引进Merkle树的一个重要作用是当交易或账户状态被篡改时,重新计算对应区块中的Merkle树根节点必然跟篡改之前的不同,换句话说,Merkle树根节点值可以看成是对账本当前状态形成了一个“快照”,这是区块链系统防篡改的第1步.
采用Merkle树组织交易的另一个重要作用是简化支付验证(simplifiedpaymentverification,SPV)[16].如图2所示,设想某轻量级钱包节点需要验证交易4的合法性,此时,该钱包节点只需要与邻近的数据节点(存储了所有区块数据的节点)通信获取对应区块的Hash12的值即可,而不需要区块中所有相关的交易信息.因为有了这个值,该钱包节点即可通过Hash运算重新构造出区块的Merkle树根节点,与本地存储的对应区块头部中的根节点比对以验证其合法性.
相关知识推荐:区块链论文一般发在哪些杂志
区块链是未来发展行业之一,今后有关区块链的论文也会越来越多,那哪些期刊可以刊登区块链方面的论文呢?许多人不禁会问。本文小编针对这个问题,给大家整理了一部分可以投稿区块链的期刊,供大家参考。有投稿需求的作者,可以咨询在线编辑。
决定区块链数据不可篡改的第2步也是最重要的一步是链式结构和共识机制.在以比特币为代表的区块链中,当节点接收到系统中发生的交易时,首先验证交易的合法性,如是否存在“双花”问题等,确认不合法的交易被直接抛弃,而合法交易将广播给相邻节点同时存储在本地的区块中.由于系统存在网络延迟,不同节点接收到交易的顺序可能不同,而且由于交易支付的手续费差异,不同的节点打包交易的顺序可能不同.因而,不同的节点计算的系统当前状态的“快照”可能都不一样,那么如何在分布式环境下维护一个完整和唯一的账本即形成唯一的“快照”呢?一个普遍的做法是:根据某种条件,在分布式网络中挑选一个具有“优先记账权”的节点,然后网络中所有的节点都与之保持同步即可.我们称选择具有优先记账权节点的机制为共识机制.
在比特币系统中,共识的过程可以划分为3个阶段:1)各个节点根据协议将接收到的交易打包进区块,并产生本节点对本地账本当前状态的快照;2)节点将当前状态的快照信息与其他信息一起填入区块头并找到一个合适的随机数,使得该区块头的Hash值小于某个给定的数或者该值的高位有足够的零.由于Hash运算具有随机性和不可预测性,这个合适的随机数可能需要重复多次Hash运算才能找到,这一过程就是常说的“挖矿”.在填入区块头的各种值中,有一个重要的值是上一个区块的Hash值,通过这个值,区块之间形成了一个“链”式结构(如图2所示).一个节点选择将某个区块的Hash值存入当前区块然后去挖矿,代表着该节点接受了这个区块以及该区块链接的所有之前的区块的交易.当然,每个节点都可以自由地选择从哪个区块开始挖矿,但系统规定节点应该选择接着最长的链去挖.最后,最先找到合适的随机数的节点将其对应的区块广播给网络中相邻的节点,每个节点在接收到最新的块时,首先验证其合法性(如是否从最长的链开始挖,区块头Hash值是否满足条件等),在确认合法之后,节点将该区块广播给相邻节点,并以该新的区块为始,构造、寻找下一个合法区块.当这个新的区块被全网50%以上节点接受之后,找到该区块的节点相当于获得了优先记账权.
* 稍后学术顾问联系您