1.区块链定义
区块链是比特币的一个意外发现和生产物,源于化名为“中本聪”的学者在2008年发表的论文《比特币:一种点对点电子现金系统》,被认为是继大型机、个人电脑、互联网之后计算模式的颠覆式创新。但该文重点在于讨论比特币系统,并没有明确提出区块链的定义和概念,只描述其为用于记录比特币交易的账目历史。
关于区块链,Wikipedia定义:最早的区块链技术雏形出现在比特币项目中,作为比特币背后的分布式记账平台,在无集中式管理的情况下,比特币网络稳定运行了近八年时间,支持了海量的交易记录,并未出现严重的漏洞。
结合区块链的起源,在比特币系统中,“币”准确描述了其金融属性,但最重要的不是“币”的概念,而是一个没有中心存储机构的“账本”的概念,“币”只是在这个账本上使用的记账单位。通俗讲,比特币本质就是一个基于互联网的去中心账本,而区块链就是这个账本的名字。从记账角度,区块链可以被认为是第一个试图自带信任化和防止篡改的数字记账技术。
2016年10月工信部发布的区块链白皮书,定义:狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构和计算范式。
2.区块链工作流程
区块链对应的英文Block Chain,即“数据块组成的链条”,这要求参与到链上的所有节点,共同维护区块链数据,每个参与维护节点都能复制获得一份完整记录的备份。为进一步了解区块链技术,先了解其工作流程,如图所示:
图1 区块链工作流程
大致如下:
1) 发送节点将新的数据记录向全网进行广播;
2) 接收节点对收到的数据记录信息进行校验,包括记录是否合法,校验通过后,记录被纳入到一个区块中;
3) 全网所有接收节点对区块执行共识算法(工作量证明、权益证明等);
4) 区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,而表示接受的方法,就是将区块的随机散列值视为最新的区块散列值,新区块的制造将以该区块链为基础进行延长。
其中,节点始终都将最长的区块链视为正确的链,并持续以此为基础验证和延长它。如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差异,他们将在先收到的区块基础上进行工作,但也保留另一个链条,以防后者变成更长的链。接下来需要共识算法的进一步约束,当其中一条链被证实为较长的,则另一条分支上的节点开始在较长链条上工作,以防止链分叉。如下图所示:
图2 区块链分叉情况
根据工作流程,区块链的特点应该包括以下几点:
a) 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
b) 去中心化,也是多中心化,无需集中控制而能达成共识,实现上尽量分布式;
通过密码学的机制来确保交易无法抵赖和破坏,并尽量保护记录的隐私性。
3.区块链安全性
关键技术
根据定义和工作流程,本质上,区块链技术是在信息不对称的情况下,无需相互担保信任或第三方中介参与,采用基于共识机制和加密算法的节点间普遍通过即为认可的信任机制。共识机制[注]和加密算法也是区块链保证数据安全、不可篡改以及透明性的关键技术。其中,共识机制主要解决由谁来构造区块,以及如何维护区块链统一的问题;加密算法用来解决电子货币的所有权问题。区块链技术在不同领域中的探索,主要在于选择合适的共识机制和加密算法。(注:区块链系统中实现不同节点之间建立信任、获取权益的数学算法。)
共识机制保证区块链中节点数据一致,主流机制有工作量证明PoW、权益证明PoS、股份授权证明Dpos和拜占庭容错PBFT等。比特币的共识机制采用工作量证明,矿工通过编码生产器计算有效账号编码时,需要通过大量计算,平均10分钟生成一个有效账单编号并完成一笔交易清结算。这种机制不适用要求高效率的行业,无法保证用户体验。
信息的加密是区块链的关键环节,主要是哈希函数和非对称加密两部分的算法。其中,非对称加密部分使用私钥证明节点所有权,通过数字签名实现;使用哈希散列(hash)算法,把任意长度的输入变换成固定长度的由字母和数字组成的输出,具有不可逆性,实现不可篡改。比特币区块链其实就是哈希链的一个变种。
优势
在信息安全的角度分析,区块链的优势主要有:
1) 利用高冗余的数据库保障信息的完整性;
2) 利用密码学的相关原理进行数据验证,保证不可篡改;
3) 运用多私钥进行访问权限控制。
区块链以其可信任性、安全性和不可篡改性,让更多数据被解放出来,推进数据的海量增长。
局限及不足
现在的区块链尽管不断得到研究、应用,依旧存在着一定的安全局限,导致在技术层和业务层都面临诸多挑战。
1) 共识机制挑战
对于区块链中的共识算法,是否能实现并保障真正的安全,需要更严格的证明和时间的考验。采用的非对称加密算法可能会随着数据、密码学和计算技术的发展而变的越来越脆弱,未来可能具有一定的破解性。此外,区块链上包含账户安全的私钥是否容易窃取仍待进一步探索。
2) 51%攻击
在比特币中,若控制节点中绝大多数计算资源,就能重改公有账本,这被称为51%攻击。真实的区块链网络是自由开放的,所以,理论上,区块链上无法阻止拥有足够多计算资源的节点做任何操作。在现实情况下,发起51%攻击是具有一定可行性的。当然,拥有足够的算力并不会迅速破坏整个体系——至少不是短时间内,但可能会导致系统混乱。
3) N@S攻击
针对PoW共识算法容易遭受51%攻击的问题,一些研究人员对PoW共识算法进行了改进,但在解决旧有问题的同时,也引入了区块分叉时的N@S (Nothing at stake)攻击问题。比如,在某些情况下一个区块可以暂时拥有两个子区块。这种分叉状态出现时,一般是两个矿工都在短时间内发现了工作量的解答,然后将所添加的传播到临近网络中去,其他节点便慢慢形成两种版本(子区块)的区块链。区块链中规定,这种情况下的判定条件是选择工作总量最大的那条子区块。出于自身利益最大的考虑,节点上可以同时在两个分支上继续工作,以保证利益的获取。假设99%的节点用户都如此理性地考虑收益的话,即便攻击者只掌握1%的权益依旧可以决定区块链的分支走向。他可以发出交易请求,获得资产 ,然后再从另一条分支上获取添加货币到自己的钱包中。
此外,区块链也存在一些难以克服的不足:
比如效率问题。区块链没有单一节点可信任,通过计算来换取信任。简单的一个承认交易操作,需要大量的计算参与进来。以比特币系统为例,定义每个区块的一个账本大小是1M,每10分钟产生一个这样的区块,每个最基本的比特币交易大小是250B,每秒处理速度为1024000(=1024KB=1M)/250/600(=10分钟)=6.6,也就是说,理论上每秒可以处理6.6个比特币的交易。虽然比特币扩容有了技术解决方案,但实践仍需要时间。
比如匿名引发的风险。区块链开发者认为匿名性在区块链交易中是重要的,并非“抗审查”。如果矿工决定不处理某笔交易在地址间的收发,那就证明交易是受矿工审查的。如果交易是匿名的,矿工就不能决定优先处理哪些交易,也就不能进行审查。但匿名性会造成非法交易的猖獗,执法部门很难溯源。
4.结束语
尽管存在一定的安全局限和难以克服的不足,但区块链技术提供了一个规模化的共识机制,可以作为一种更高效解决信任问题的手段,建立去中心化的可信网络。目前,区块链的应用已从单一的数字货币(如比特币)应用,延伸到经济社会的各个领域,除金融服务行业的应用相对成熟外,其他行业的应用还处于探索起步阶段,期待区块链技术的更新和完善。
【本文为51CTO专栏作者“中国保密协会科学技术分会”原创稿件,转载请联系原作者】