区块链是如何保护交易隐私的?eprint这篇论文告诉你答案
在区块链公有链中,每一个参与者都能够获得完整的数据备份,所有交易数据都是公开和透明的,这是区块链的优势。但同时,对于很多区块链应用方来说,这个特点又是致命的。因为很多时候,不仅仅用户本身希望他的帐户隐私和交易信息被保护,就商业机构来说,很多帐户和交易信息更是这些机构的重要资产和商业机密,不希望公开分享给同行。
此前,在12月举办的亚太以太坊技术交流会上,以太坊创始人Vitalik Buter曾提到,零知识证明(Zero knowledge proofs)是“最为强大”的解决方案,尽管技术实现难度最高,但在保护在以太坊网络的隐私性和安全性上,其效果最佳。
在国内,零知识证明也引起了科研院校及行业前沿的持续关注。近日,密码学专业论坛eprint上,一篇题为“An Efficient NIZK Scheme for Privacy-Preserving Transactions over Account-Model Blockchain”的专业论文就引发了国际密码学领域专家及区块链从业者的热切讨论。据悉,该文由区块链前沿代表矩阵元联合中科院、武汉大学密码学专家,经过长时间的技术攻关、业务实践,所提出的基于账户模型下的高效零知识证明方案。
本文在账户体系下引入保护余额与转账资产的分布式智能合约系统。为构建具有该属性的系统,引入带有加法同态性质的公钥加密算法,同时结合高效的非交互零知识证明,确保交易的有效性。论文提到的零知识证明具备可证明的完美零知识性,其可靠性则在随机预言模型下得以证明。
同时,论文对该方案进行了实现和性能优化,与之前的方案相比,本文方案在性能上极大的提升(如下图)。该结果标明,此方案完全可在供应链金融等场景中实际部署。
除去此篇行业专业论文,发布者矩阵元,还结合自身业务及JUICE开放服务平台在多项先进算法中收获颇丰,包括安全多方计算、广播加密、群签名、同态加密、零知识证明等。
1 安全多方计算
安全多方计算(MPC:Muti-Party Computation)研究由图灵奖获得者、中国科学院院士姚期智教授在1982年提出,姚教授以著名的百万富翁问题来说明安全多方计算。百万富翁问题的指的是,在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况来比较谁更有钱。通过研究此问题,形象地说明了安全多方计算面临的挑战和问题解决思路,安全多方计算逐渐发展成为密码学的一个重要分支。
2 广播加密+群签名
定义:在业内普遍关注的隐私保护问题上,JUICE平台通过集成密码算法提供隐私保护,完成了账户隐私、交易隐私、身份隐私的三位一体立体防护。通过开展基于广播加密、群签名的关键技术和算法研究,面向交易的强匿名性和可安全监管需求,平台提供结合广播加密及群签名的安全解决方案。
优势:
1)交易请求节点能在以匿名的方式保护身份隐私的同时,支持管理节点的审查,提升交易隐私性和可追溯性;
2)交易请求节点可指定多个接收方查看加密的内容,提升灵活性。
3 同态加密+零知识证明
定义:矩阵元针对以太坊框架下联盟链的具体应用场景,联合中科院、武汉大学的密码学顶级专家进行技术攻关,在被誉为“企业级以太坊”的开放服务平台JUICE上推出可证明安全的同态加密和非交互零知识证明(NIZK)结合的安全解决方案。针对以太坊的账户模型,使用加法同态对密文操作账户金额,同时使用零知识证明保证交易有效性。
优势:
(1)可证明安全性,严格数学证明方案的安全性
(2)全面支持以太坊的账户模型和智能合约
(3)即使轻节点也可生成证明过程,在性能上有了较大的突破
(4)毫秒级时延、轻终端支持,可完全适用于如智能手机等轻终端使用
- 简明 Git 命令速查表
- spring cloud 学习(8) - sleuth & zipkin 调用链跟踪
- 快速学习Bash
- JavaProblem之hashCode详解
- spring cloud 学习(6) - zuul 微服务网关
- ES6 Features系列:Template Strings & Tagged Template Strings
- 基于Tcp协议的简单Socket通信实例(JAVA)
- spring集成kafka
- Java常用类(二)String类详解
- 用树莓派玩转蓝牙
- CSS魔法堂:你真的理解z-index吗?
- HashSet
- 树莓派的GPIO编程
- Java集合源码分析(三)Vevtor和Stack
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法