区块链安全部分解读

区块链安全

区块技术是一个非常适合安全人员研究的技术,因为区块链的非常重要的一个特性就是安全。展开来说,区块链安全方面涉及的有关知识课题包括但不限于:

  • Hash算法
  • 对称加密
  • 非对称加密
  • PKI体系
  • 椭圆加密算法
  • SHA-256、RIMPED160、Base58
  • Merkle树
  • 同态加密
  • 数字签名
  • 量子计算冲击

本文对区块链安全,进行一些细微的研究。

区块链解决了传统安全的什么问题?

Hash 唯一性

在blockchain中,每一个区块和Hash都是以一一对应的,每个Hash都是由区块头通过sha256计算得到的。因为区块头中包含了当前区块体的Hash和上一个区块的Hash,所以如果当前区块内容改变或者上一个区块Hash改变,就一定会引起当前区块Hash改变。如果有人修改了一个区块,该区块的 Hash 就变了。为了让后面的区块还能连到它,该人必须同时修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于区块计算的算力需求强度很大,同时修改多个区块几乎是不可能的。

由于这样的联动机制,块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变,确保了数据的唯一性。

哈希算法简介

目前流行的 Hash 算法包括 MD5、SHA-1 和 SHA-2。SHA-2包括SHA-224、SHA-256、SHA-384 和 SHA-512。SHA = Secure Hashing Algorithm.

SHA-256 的意思是它的输出结果是 256 位二进制字节长的。

下面是一个SHA-256哈希运算的例子,输出结果是 16 进制的:

明文 SHA256加密后的密文
今天天气很好 c5236d7074f2dff0f93229864f4e9957eb2913a195b8b997c7444bcff09fc528
今天天气很好啊 20d9f1ea877c7561eba19cb5fef1e481f9270a3c86d7a7e672d0ab7494d989f6

你可以发现两个特点:

  • 任何小的改动,都会使哈希值变动很大。
  • 无论输入长度如何变化,哈希值都是定长的。实际上你用相同的哈希算法来运算的话,无论输入数据时一个很短的字符串、一个文件、一个硬盘的数据、甚至一个数据中心的数据,得出的结果都是定长的。
  • 给定明文和哈希算法,在有限时间和有限资源内能计算出哈希值。
  • 给定(若干)哈希值,在有限时间内很难(基本不可能)逆推出明文。
  • 很难找到两段内容不同的明文,使得它们的哈希值一致(发生冲突)。

密码学安全性

以比特币为例,数字货币采用了非对称加密,所有的数据存储和记录都有数字签名作为凭据,非对称加密保证了支付的可靠性。

身份验证

在数字货币交易过程中,由一个地址到另一个地址的数据转移都会对其进行验证:

  1. 上一笔交易的Hash(验证货币的由来)
  2. 本次交易的双方地址
  3. 支付方的公钥
  4. 支付方式的私钥生成的数字签名
  5. 验证交易是否成功属实会经过如下几步:

找到上一笔交易确认货币来源 计算对方公钥指纹并与其地址比对,保证公钥的真实性 使用公钥解开数字签名,保证私钥真实性

去中心化的分布式设计

针对区块链来说,账本数据全部公开或者部分公开,强调的是账本数据多副本存在,不能存在数据丢失的风险,区块链当前采用的解决方案就是全分布式存储,网络中有许多个全节点,同步所有账本数据(有些同步部分,当然每个数据存储的副本足够多),这样网络中的副本足够多,就可以满足高可用的要求,丢失数据的风险就会低很多。所以建议部署区块链网络时,全节点尽量分散,分散在不同地理位置、不同的基础服务提供商、不同的利益体等。

传输安全性

在传输过程中,数据还未持久化,这部分空中数据会采用HTTP+SSL(也有采用websocket+websocketS)进行处理,从而保证数据在网络传输中防篡改且加密处理。

展望未来 — 量子计算

量子计算机的发展目前还处于起步阶段,但它可能可以轻易地把用我们今天的加密技术击破。

量子计算(Quantum computing)

什么是量子计算?量子计算指利用量子力学现象(例如态叠加原理和量子纠缠),研究计算系统 (量子计算机) ,来执行数据操作。量子计算机区别于二进制数字电子计算机(传统计算机)。一般数字计算是需要将数据编码成二进制位(bit),即最小数据单元总是处于两个确定状态(0 或 1)中的一个。量子计算则使用量子比特(quantum bits / qubits),可处于一种量子重叠加态。一个量子比特是两个可能状态的重叠,是对和错的一种线性集合。

量子计算机可以以比今天传统计算机快得多的速度解决一些计算问题。比如使用著名的秀尔算法来进行一个整数N的整数分解,它只需要运行log(N)级别的计算次数,而传统的计算机需要运行N^k指数级别的计算次数。现在的很多加密技术(如RSA)都是基于整数分解的难度,一个很强大的量子计算机可以轻易的解开或击破那些加密技术。现在已知的量子计算机还只可以解开比较小的整数,但是技术的发展是很快的。要考虑量子计算机对加密技术的影响可能只是时间问题。

区块链的很多加密技术都可以轻易地被量子计算机击破。但是也已经出现了很多可以抵抗量子计算的加密技术,如McEliece、 New Hope等。区块链的发展也需要考虑这些未来的挑战和如何实现加密技术的升级/替换。

量子计算的出现会带来什么?

比特币的加密算法 SHA-256 如果被量子计算等新的技术破解了的话,区块链会怎么样?

首先,目前量子计算机距离成熟至少还有很久年,大概率 10 年以上量子计算机成熟之后,对以密码学为基础的各种领域都会带来巨大的冲击,区块链只是其中很小的一块。

其次,对比特币的冲击会特别大,因为是基于 POW 的模式。区块链的技术,会随着量子计算机的发展,而继续发展。不用过于担心量子计算机直接把区块链干掉了。区块链最有价值的地方还是价值传递和改造生产关系,这一定会对整个商业社会造成巨大的影响。

总结

区块链技术在数据可信性和完整性方面取得了很多成功,但是在其他方面,像规模化、私密性等方面还不够成熟。

评论 抢沙发

评论前必须登录!

 

关注信贷网贷/网上赚钱/投资理财的财经网站

关于财边网联系财边网