订阅业界RSS CSDN首页> 业界

内外兼修 剖析迅雷链中的密码学和隐私保护技术

发表于2019-04-25 14:51| 来源CSDN| 作者csdn

摘要:对于很多想用区块链解决业务发展瓶颈的企业来说,不是具备了 All in 区块链的态度,就可以万事俱备,只等品尝科技创新带来的美好果实。以电商平台举例,区块链可以通过激励政策打破用户增量的瓶颈,但是如何在区块链上安全、可信地完成网银和电子商务等交易,成为一个眼前难题。 当然,对于企业...

 对于很多想用区块链解决业务发展瓶颈的企业来说,不是具备了All in区块链的态度,就可以万事俱备,只等品尝科技创新带来的美好果实。以电商平台举例,区块链可以通过激励政策打破用户增量的瓶颈,但是如何在区块链上安全、可信地完成网银和电子商务等交易,成为一个眼前难题。

当然,对于企业来说,从区块链的底层源头一步一步解决问题并不现实,不仅需要大量精通区块链底层技术的工程师,也不可能让每个企业自己搭建一条主链,怎样拥抱区块链技术的科技创新为企业解决业务上的难题,选择一个实用、高效的开放平台就变得尤为重要。

迅雷链因为百万级TPS的高性能成为行业中的“明星产品”,近日,在中国国际区块链技术与应用大会上,因为对国密算法的支持和改进,赢多了更多业内人士的好评,结合对数据隐私保护的探索,合作方可以根据自身业务的需要,选择合适的密码学算法为实际应用提供安全保障,满足了更多类型企业的上链需求。

内家功:迅雷链底层对国密算法的支持与改进

国密算法支持

多年以来,密码学算法标准被以欧美国家设计的算法垄断。几年前的“棱镜门”曝光出一些国际通用的密码算法背后潜在后门漏洞,以及随着我国科学技术的发展,密码算法的安全性已经上升到了国家安全战略地位,国密标准算法在近年来得到了推广和普及。

国密是国家密码局认定的国产密码算法,也是商用密码,它的应用领域十分广泛。比如企业门禁管理、企业内部各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容,同样的,也可以用于各种安全认证、网上银行、数字签名等。

所以为了支持更多合作伙伴在业务上的需求,落到区块链这一层级则显示为密码学算法的安全性和可靠性,迅雷链对密码算法模块进行了升级,毕竟安全是核心,而算法是安全的基础。

迅雷链除了支持国际通用的密码学算法外,还满足了对于国密算法的支持,包括非对称算法SM2、安全散列算法SM3和对称算法SM4。也就是说,这些算法“全家桶”的支持,意味着迅雷链可应用于政府、金融、社会公共服务和大型公共智能建筑等高安全领域。

签名逆推回公钥

在国际通用算法ECDSA的算法标准中,包含了一项通过签名逆推签名对应公钥的功能。这样的功能可以帮助用户可以通过计算推导出验证签名所需的公钥,从而使签名信息不再需要传递签名者的公钥,以此换取了存储空间的降低。我们知道在区块链系统中,存储空间是一项非常紧缺的资源,因此这一个功能对区块链的实际应用有很强的优化意义。

然而目前在国密算法对应的椭圆曲线签名算法标准SM2中,没有定义类似的功能实现。因此迅雷链凭借在椭圆曲线算法方面深厚的技术积累,结合SM2的自身设计方面的特性,通过推导数学公式,设计出了适用于国密算法的通过签名逆推回公钥的功能,实现了国密算法场景下对存储空间的优化,如下图所示,优化比例达到了33%,进而提升了区块链整体的运行效率。

这项设计除了区块链系统以外,还可以适用于应用了国密算法的其他场景中,具有很强的创新性和实际意义。目前,此设计已经提交了国家专利申请。

外家功:通过迅雷链保护数据隐私

从一个理想的“分歧终端机”说起

在葛优和舒淇主演的电影《非诚勿扰》中有这样一个经典的片段——葛优饰演的秦奋推销自己设计的一个产品,名为“分歧终端机”,如下图所示

这个产品用来解决“剪刀石头布”游戏中游戏双方出手先后所导致的不公平问题。使用时游戏双方一只手握住手柄,另一只手伸进一方的圆筒内,做出“剪刀石头布”的决定。双方约定倒数“321”之后同时打开圆筒,从筒中的手势判断胜负,以此降低先后出手带来的作弊行为。

上述产品当然只是电影为了喜剧效果设计出来的,但在欢笑之余,我们也可以思考一下这个产品能够解决什么样的问题。

它存在的前提是由于双方出手时间不一致游戏的过程中可能存在一方作弊的机会,迅雷链要做的就是消除这个时间的不一致,或者改变时间不一致所造成的后果。从这个角度出发,找一个自动化的第三方,比如微信表情中的“石头剪刀布”来游戏。这样做看似可以解决问题,但仔细思考依然不够完美。

首先,微信中的决策是随机产生的,而不是游戏参与者主动选择的,这样也就会一定程度上降低游戏的参与性;其次,引入第三方依然存在第三方可信性的问题,很难确认第三方选择的结果是否存在漏洞导致游戏的不公平。

因此,迅雷链考虑采用区块链智能合约来去掉这个不确定的第三方,同时结合密码学中的承诺系统(Commitment Scheme),保护参与者出手决策内容的隐私,来实现参与者可以在可自主选择的前提下保证游戏的公平性。

具体的方案如下:

发送承诺:双方各选取一个随机数r,结合自己的猜拳选项x,将二者合并后的哈希值作为承诺发送给合约。

交换承诺:合约将收集到的双方承诺互换给对方。

揭露承诺:双方收到对方的承诺后,将自己在第一步选择的xr的原值发送给合约。

下发结果:合约验证双方在第三步揭露的原值与第一步承诺的哈希是否匹配。若匹配成功,则通过双方猜拳选项原值x做出胜利结果判断并下发至双方。若匹配失败,则将作恶方判负。 

通过这样的方式,将智能合约和密码学承诺系统结合使用,既保护了参与者的决策隐私,又保证了参与双方的公平性和可参与性,以此实现了一个现实版的“分歧终端机”。

对隐私保护更深入的研究与探索

现阶段,数据隐私保护的需求对于众多区块链业务场景而言起到了决定性的作用,而当前众多主流区块链平台对于隐私保护方面支持甚少,因此,隐私保护方面的实际案例对于区块链业务场景的落地显得尤为重要。

上述的案例看似简单,但由此可以衍生出更复杂的隐私保护场景的设计与实现。上述的承诺系统(Commitment Scheme)通过交互的形式,在保护数据隐私的同时替代了“公正的”第三方介入。而在一些更复杂的场景下,针对隐私数据的计算需要结合同态加密(Homomorphic Encryption)技术,对数据进行加密,使数据在可被计算的同时保证隐私不被泄露。当相关数据涉及到范围证明等需求时,结合零知识证明(Zero-Knowledge Proof)技术可以保证在不泄露数据隐私的前提下证明数据的有效性,使数据隐私安全得到更好的保护。

例如,大多数区块链上的交易数据是以明文的形式展示的,虽然区块链本身是匿名的,但随着交易量的扩大,其关联性将或多或少的泄露个人隐私。双方或多方的交易可以通过数据统计构建出一整套交易记录组成的网络,通过掌握其中的某一个或某一部分信息即可逐渐推断出更多的本不希望被泄露的隐私内容。

通过同态加密,可以将原始的交易数据隐私保护起来,使交易以密文的形式上链。但是,对于链上验证交易的节点来说,密文的验证就需要应用到零知识证明来保证交易输入的账户余额大于等于转账的金额,通过一系列步骤验证合法后,可以保证交易能够被成功的执行,且交易相关的隐私没有被泄露。

综上,迅雷链在提供百万TPS的高性能服务的同时,在密码学与安全隐私保护方面也进行了不断的研究与探索。无论是从底层改进密码学算法,还是在应用层结合隐私保护技术落地应用,都以提升链上数据的安全性,丰富区块链应用场景落地为目的,致力于为开发者和企业提供高性能和高安全性的可靠服务。