在12月22日举行的迅雷链技术沙龙成都站上,迅雷链底层研发工程师张骁就区块链安全问题和密码学的关系做了主题分享。现场的开发者普遍对密码学及信任体系的架构表现出了浓厚的兴趣。
张骁表示,区块链之所以能够解决人与人之间的信任问题,是因为它的不可篡改性,而这种特性本质上又是基于密码学算法来实现的。因此密码学在区块链中的地位很关键,如果说区块链是信任的基石,那么密码学则是区块链的基石。
密码学核心技术特点
张骁首先解释从密码学的角度分析“安全”的含义,他将其总结为三个方面。
1.机密性。信息数据在传输的时候,会进行加密处理。如果信息被未获授权或者不拥有相应密钥的人拿到,是无法读取信息原文的,这就是信息的加密性。
2.完整性。即所传输的信息要保证是完整状态,不能在中间被恶意篡改或者增添、删除一些信息。比如一张欠条,其中的金额数字、归还日期以及欠款人等关键信息,不能够被涂改,否则就认为是完整性遭到破坏,直接作废,这就是最常见的一种对信息完整性的要求。
3.可用性。指相应的密码学的信息,在任何一个时间下都应该可以被外界所用。如前文所述的欠条,它应该保证在任何时候都能被拿出来、被展示出来,而不应该遗失、损毁。这就是信息安全中的可用性,也是信息安全保护的重要范畴。
不可篡改是密码学的本质
张骁表示,区块链的特点是因其能够保证不可篡改,本质上能够在原本互相不信任的人群或者不信任的机构之间,通过密码学的算法来传递一种信任。
不可篡改的特性是通过3方面来实现的,分别是数字签名、时间戳和集体维护。
数字签名表达的是对信息的确权,保证了信息的完整性以及发送方的授权关系,发送方确认信息是由他发送,接收方确认消息来自相应的发送方,并且没有被篡改过,也没有被恶意攻击过。
时间戳是在区块链的纵向保证数据的完整性,借助Hash链式的关系来保证前后的信息没有被篡改过。
集体维护保证数据可用性。区块链是基于分布式系统,特点就是能够更有效的提供对外服务,中心化系统一旦宕机就无法运行,而分布式系统即便部分节点失效,其它节点一样可以继续提供服务。
区块链中用到哪些密码学技术?
在区块链中使用的密码学算法主要是Hash算法,它是指把一个任意长度的输入,经过此算法映射成有固定长度、且有一定随机性输出的方法。
它的安全性基于以下这三个基本的性质。
1.单向性,单向性是指通过一个输入X,通过哈希算法可以很容易地得到输出结果Y,但是如果只拥有Y,则无法通过此算法找到原文X。
2.弱抗碰撞性,当X通过算法得出结果Y时,如果能找到一个不等于X的数据X’它的输出结果和X的结果同样都等于Y,这就叫数据的抗弱碰撞性。弱抗碰撞性就是指很难找到这样的本身不同、但输出结果相同的数据。
3.强抗碰撞性,指通过任何手段都无法有效的找到一对不相等的数据X和X’,使其满足两个数据的哈希输出结果都等于一个相同的值Y时,这样的哈希算法就满足强抗碰撞性。
区块链中还利用到了基于Hash算法的默克尔树,它主要是保证一定数量的数据的完整性不被攻破,可以轻易地验证出数据有没有被篡改过。
数字签名本身也可以视为一种密码学算法的应用,它是公钥密码学以及Hash算法的结合。消息发送方先将待签名的原文通过哈希算法映射成一段哈希值,然后对这段哈希值使用签名者的私钥进行签名,最后把签名和原文发送给相应接收者。接收者通过签名验证算法使用发送者的公钥解出签名消息的哈希值,然后对比原文的哈希值看是否匹配,如果匹配,则签名有效,反之则可认为签名是伪造。
迅雷链中如何与密码学的算法相结合?
首先是通过高性能,确保能够高效地实现这些密码学算法。
其次不同的开发者用户对算法有不同的要求,为满足这些需求,迅雷链将密码学算法进行了抽象处理,方便用户在实际使用中,根据配置方式自由选择需要使用的算法,由此可以帮助开发者和企业,把迅雷链应用到更多的场景中。
张骁最后还展望了密码学的发展前景,他指出同态密码、零知识证明和量子密码都是未来可能的重要发展方向,不过相关技术目前还处于非常早期的阶段,离投入实际商用还有较远距离。但他相信,未来区块链的发展与密码学在安全领域上的提升是密不可分的,所以迅雷链也会紧密地去关注密码学未来的发展。