您好, 访客   登录/注册

基于区块链的数据验证和网络安全研究

来源:用户上传      作者:

  摘 要
  区块链技术通过构建完整的验证过程进行责任认定,故区块链数据的完整性、正确性检测技术极为重要。除众所周知的比特币以外,区块链技术还应用在其他各个行业、各个领域,如金融、物流、保险、数字版权等。涉及的领域越多,区块链的网络安全研究就越重要。本文从算法、协议方面对区块链安全风险进行评估,对区块链数据正确性提供科学的验证方法,并从技术层面提出了区块链安全应对策略。
  关键词
  区块链;数据攻击;网络安全
  中图分类号: R-05;TP311.13;TP309         文献标识码: A
  DOI:10.19694/j.cnki.issn2095-2457.2020.11.010
  1 区块链技术概念与框架
  1.1 区块链的诞生
  区块链起源于一位自称中本聪(Satoshi Nakamoto)的学者发表了的论文《比特币:一种点对点的电子现金系统》。
  比特币作为第一个成功的虚拟货币,是数字货币生态系统概念和技术的组合,其原理包括P2P分布式网络、哈希与Merkle树、非对称加密算法、共识机制、时间戳等。区块链技术作为比特币底层的关键技术,有着去中心化、公开透明的特点,让每个人都参与到数据库的建立。通过比特币系统转账,信息公开透明,每一笔转账信息都会被全网记录,因此比特币的问世,代表着区块链的1.0时代的到来。
  1.2 区块链框架
  区块链是一种按照时间顺序将数据区块以链条的方式组合形成的特定数据结构。运用密码学,保证其数据的不可篡改的去中心化。区块链技术利用加密的链式区块来验证和存储数据,利用P2P分布式网络、共识机制将各个节点连接起来,并实现验证、通信以及信任关系的建立,利用脚本代码将技术与业务结合在一起,保证其具有复杂的业务逻辑功能;同时可以对数据进行自动化的操作,形成新的共同参与建立新的数据记录、存储形式。区块链的基础框架如表1所示。
  1.3 共识算法
  1.3.1 PoW工作量证明
  PoW(Proof of work)是最早的共识机制。也是比特币系统运行的重要算法之一。该算法通过工作量来获得相应的奖励,简而言之就是“多劳多得”。通过运算计算出满足规则的随机数,即可获得本次记账权,发出本轮需要记录的数据,全网其他节点验证后一起存储。
  1.3.2 PoS权益证明
  POS(Proof of stake)通过你所占代币的比例和时间来给你相应的利息。通过降低挖坑的难度,提高找随机数的速度。参与权益证明过程中要求所有参与者抵押一部分token验证交易,该token会被锁定,若验证着存在欺诈行为,则抵押token会减少。
  1.3.3 DPos股份授权证明
  DPos(Delegated proof of stake)通过不同策略在不同时间通过投票产生一小群节点,由这些节点来负责新区块的创建、验证和监督。
  2 区块链安全风险
  2.1 算法安全风险
  2.1.1 随机数算法漏洞
  对于区块链而言,随机算法十分重要,通常使用真随机数或伪随机数作为用户资产的私钥。比特币私钥使用的是SHA-256生成的256位随机数。以现有的计算能力,几乎不可能暴力破解。但如果随机数生成器被操控,生成的随机数就可以被预测,则私钥可能被解密。
  不同用户在不同区域交易不同币种时实现各自随机算法的过程不同。有的使用浏览器服务端随机数函数Random,有的使用高级语言库函数Random生成随机数,从而导致随机数算法漏洞,发生被攻击事件。同时,所有以用户输入作为随机源的随机数,都是有漏洞的。利用手动输入可以被修改,输入的数量和组合可以被节点控制,节点完全有动机和能力将随机数改为适合自己的组合。
  2.2 协议安全风险
  2.2.1 共识机制协议漏洞
  针对PoW共识机制,能源消耗大,可监管性弱,如果有人能控制51%的算力,就会有被攻击的风险。
  针对PoS共识机制,放弃了完整的去中心化,权益人可以获得大量成本极低的加密货币,信用基础不够牢固。PoS对分叉没有成本上的壁垒,也没有经济上的惩罚,几乎可以说毫无抵抗硬分叉原链存活的能力。
  2.2.2 共识机制安全性
  共识机制的种类很多,也有部分根据需要自发研发的共识机制。因此,共识机制能否被绝对信任还需要更长时间的考验和证明。
  3 如何验证区块链数据完整性和真实性
  3.1 哈希算法
  哈希算法是一种可以将任意长度的二进制数映射为较短的固定长度的二进制值,此二进制值称为哈希值。哈希值具有单向性及唯一性的特点,进而保证了其极强的抗篡改能力,对于任一数据块,改动一个比特位,其哈希值截然不同。作为一个单向非对称的加密函数,只有加密过程,没有解密过程,区块链技术将其特点应用到节点与节点之间的数据交换中,保证了数据的完整性和真实性。
  3.2 区块链节点间的数据验证
  以比特币网络中的一笔交易为例。在这笔交易中分为记录交易节点1和验证交易节点2。
  假设交易A在节点1处发出交易申请,节点1则负责记录交易A中的具体数据。前提是此交易为合理合法的(在虚拟货币交易中,主要体现在买家是否有足够余额支付)。节点1对交易A的数据进行哈希运算,生成交易哈希值1,再用自己的私钥对哈希值进行签名加密,生成签名信息。之后对外广播,广播内容=交易信息A+签名信息。
  假设节点2收到节点1的广播内容,节点2通过节点1的公钥对签名信息进行逆运算,即解密过程,即可证明此签名信息是否属于节点1。同时,节点2会对交易信息A进行哈希运算得到哈希值2,通过对比判断哈希值1与哈希值2是否一致。如果一致则说明数据传输无误,如果不一致,则说明数据发送了更改,无法验证成功,交易失败。
  4 區块链安全应对策略
  区块链技术在各个行业应用广泛,也从各个角度暴露了较多的安全威胁,针对这些安全威胁,可以通过一些科学的方法进行预防和解决。
  4.1 算法安全策略
  尽可能用较高级的密码学随机数生成器来生成随机数。对于随机数的生成,从安全级别的方面讲:内核态(dev/urandom)优于应用态(各种高级语言库中自动生成的Random随机数),更优于各种浏览器自行封装的Random解决方案;选用RFC6979规范生成随机数;加强对哈希函数本身的复杂度和抗攻击性研究;尽可能研究能够抵御量子攻击的密码学算法。
  4.2 使用安全策略
  区块链用户要保管好自己的私钥。通常用户会将私钥存放在电子设备或者网盘中,因此成为黑客的攻击目标,利用漏洞盗取私钥,转移客户的数字资产。为了确保用户的私钥时刻保持安全状态,最好的办法就是记在脑中或记录在非联网介质上。
  4.3 网络安全策略
  对网络传输过程要进行加密。开启Jsonrpc节点强制使用https传输,而不是HTTP协议进行传输;定期对使用的网络环境安全性进行评测;对于重要的步骤要有更强的验证手段。
  参考文献
  [1]房卫东,张武雄,潘涛,陈伟,杨旸. 区块链的网络安全:威胁与对策[J].信息安全学报,2018,3(02):87-104.
  [2]刘敖迪,杜学绘,王娜,李少卓.区块链技术及其在信息安全领域的研究进展[J]. 软件学报,2018,29(07):2092-2115.
  [3]程叶霞,付俊,彭晋,杜跃进.区块链安全风险分析及应对策略研究[J].信息通信技术与政策,2018(09):85-88.
  [4]张成成.区块链安全技术的研究与应用[D].西华大学,2018.
  [5]朱岩,甘国华,邓迪,姬菲菲,陈爱平.区块链关键技术中的安全性研究[J].信息安全研究,2016,2(12):1090-1097.
转载注明来源:https://www.xzbu.com/8/view-15219016.htm