数据|技术科普 | Ultrain 可编程零知识证明解决方案
一、零知识证明介绍
1.1 区块链技术在数据隐私保护方面的困境
区块链技术的特点,就是存储在区块链上的数据,对所有人都是公开、透明、不可篡改的,这是区块链技术能以低成本建立商业信任中心的技术基础。但在实际的商业实践中,比如我们把病人的电子病历放到链上,结果所有人都可以知道该病人得了什么疾病,这显然是不可接受的。所以,对链上数据进行加密保护,是区块链技术应用到商业领域的一个技术刚需。
传统的数据加密技术,无论是基于对称加密还是非对称加密,其特点就是通过密钥对数据进行加密成乱码,使用者持有对应的密钥就可以解开该份乱码,还原为对应的数据。但在区块链场景下,如果单纯使用传统的加密技术,将加密后的数据上传到区块链上,没有持有对应密钥的各方将完全无法知道该数据的内容,从而丧失了区块链数据公开透明的特点,丧失了建立互信的基础,区块链技术在该情况下的使用价值将大打折扣。
所以,如何既能满足链上商业数据的隐私保护要求,又同时不丧失区块链技术公开透明的特点,是一个区块链技术商业落地中必须解决的核心问题。基于密码学的零知识证明技术就应运而生了。
1.2 零知识证明的通俗介绍
零知识证明是上世纪80年代提出的一项密码学技术,其应用目的就是一方在不提供任何有用信息的情况下,使另一方相信某个信息是正确的。我们简单的举个理想化的例子通俗的说明一下零知识证明的作用:小明想向A银行贷款300万元买一套房子,A银行需要小明出具一个存款证明,证明他有300万以上的资产才能给他贷款,小明在B银行有2300万的存款,此时小明有两种选择:
选择1:找B银行开具一个2300万的存款证明给A银行,证明他有300万以上的资产,但这时小明就暴露了自己的资产数量,这是他不愿意的;
选择2:小明找B银行开具一个2300万的存款证明,在该证明上盖一张纸,在百万那一位挖一个洞,这时A银行可以看到百万位的数字是3,所以小明的存款是在300万以上的,满足贷款条件,而小明也不需要告诉银行其全部的存款信息。在这个理想化的例子中,小明一方没有提供全部的知识,就向另一方银行A证明了自己的资产大于300万,而盖在存款证明上的那张纸和挖的洞,就可以视为零知识证明在该场景下的实现。
1.3 零知识证明的技术原理
上是一个通俗的例子,在实际上,零知识证明是这样定义的:
一种方法,通过该方法,一方A可以向另外一方B证明A知道一个秘密x,但是又不透露任何x的信息。对于任意逻辑f,有一对密钥,分别为证明密钥pk和验证密钥vk。A持有一些秘密x, 通过该函数f计算生成y,即y=f。利用y和x、pk,可以生成证明proof。任意拿到proof和y, vk的人,都可以通过验证知道y确实是f的输出,而不需要知道x的具体信息。
1.4 零知识证明应用场景介绍
零知识证明结合区块链技术,在包括商业数据资产交易流转,商业数据隐私保护等方向具备广阔的发展前景。我们以一个真实的医疗数据交换场景举例,来说明零知识证明在数据交易领域的应用意义:
场景:A保险公司希望向B医院购买某个年龄段的冠心病患者的相关数据用于该病种的保险精算分析,为了简化商业逻辑,我们假设患者的年龄信息是一个隐私数据,医院不能将其透露给保险公司,而保险公司需要取得年龄在40到90岁之间的患者的数据,在这种情况下,区块链+零知识证明的解决方案,可以有效的支持该场景:
B医院用零知识证明技术的加密模块,对原始患者数据中的年龄列进行加密和存证
B医院将加密完成后的数据和存证结果上传到Ultrain区块链平台,此时数据已经处于不可篡改状态;
A保险公司向区块链平台查询年龄段在40岁到90岁之间的冠心病患者的数据,平台返回6800份数据给A保险公司,并使用零知识证明模块证明数据的真实性和完整性
A保险公司可以通过零知识证明验证模块,验证该数据集:a.每个数据的年龄都是在40岁到90岁之间的;b.平台已经返回了全部的该年龄段的数据;
A保险公司可以使用该数据用于保险精算分析;
二、Ultrain可编程零知识证明解决方案
2.1 现有底层技术分析
以上我们初步介绍了零知识证明技术,目前常见的主流零知识证明技术包括SNARKs、STARKs、Bulletproofs等,这些技术各有特点:
文章图片
基于对现有主流零知识证明技术的分析对比,我们目前采用SNARK技术作为Ultrain零知识证明技术的底层技术基础。SNARKs技术目前具备这样的优势:首先该技术是目前区块链链上单个交易性能最好的;其次SNARKs可用代码的成熟度最高,并且有诸多后续改进项目持续提高SNARK的可用性和安全度如Sonic、supersonic、Marlin、Fractal。
2.2 现有技术存在的问题
虽然SNARKs具备多种优势,但由于其重点关注于零知识证明核心技术部分的实现,在具体应用时,还存在着较多的问题需要解决,主要集中在三个方面:
性能差
SNARKs重点关注在技术实现上,证明过程运算需要消耗大量的计算资源,大大限制了其应用范围和平台可移植性;该技术缺乏足够的性能和成熟的高速库,使得类似最基本的匿名交易都无法在手机端完成交易的创建;无法让节点在短时间完成大规模的交易验证。
推荐阅读
- 数据|借助极课大数据接入智慧教育 四川九寨沟县开展精准教学
- 识别|宠物鼻纹识别技术国内首次应用 有望运用到城市宠物管理、宠物走失等场景
- 海棠秋色|西方强国没能解决的难题,却被中国教授攻克,技术领先一大步
- 排名|硬糖少女超话数据排名:陈卓璇第二,刘些宁第六,王艺瑾是认真的吗?
- 数据|金融科技时代:品高全栈云的国产化演进
- 脱贫攻坚|西峡县军马河镇:数据质量大整改,脱贫成效大提升
- 华为|华为云郑叶来:优势挡不住趋势,技术创新是主旋律
- "|5年"零售后"可靠可信的RFID技术服务商铨顺宏即将亮相IOTE2020深圳国际物联网
- 指纹|生物识别技术:历史、风险和未来
- MindfuL|BAE系统公司研发MindfuL技术,可为机器学习系统提高透明度并建立用户信任