11.1组会汇报-基于区块链的安全多方计算研究现状与展望
基础知识
*1.背书,这个词源来自银行票据业务,是指票据转让时,原持有人在票据背面加盖自己的印鉴,证明该票据真实有效、如果有问题就可以找原持有人。
区块链中的背书就好理解了。可以简单的理解为验证交易并声明此交易合法(或不合法)的链中节点。
背书节点(endorsement、endorsor):在区块链中承担背书任务的节点即是背书节点。背书节点必须通过有效证书的预期信息的有效签名来证明其合法性。
背书策略:背书策略(endorsement policy)可以理解为是对交易进行背书必须满足的条件,即要得到背书成功的结论,必须满足背书策略中给出的条件。
2.链码也称为智能合约,实质上是控制区块链网络中的不同实体或相关方如何相互交互或交易的业务逻辑。是独立可运行的应用程序,运行在基于Docker的安全容器中,在启动的时候和背书节点建立gRPC连接。
在 Fabric中智能合约管理交易逻辑,而链码管理智能合约的打包和部署。Fabric会将智能合约打包进链码中,这个链码会被部署到一个区块链网络中。当智能合约被成功定义于区块 链网络后,客户端应用可以通过发送交易提案的方式来调用合约。
基于区块链的安全多方计算研究现状与展望
1 MPC相关知识
安全多方计算定义:它允许多个参与方在无可信第三方的情况下使用各方的私有输入来联合计算目标函数,并且每一方都无法获得除私有输入、输出外的信息。
高效的MPC协议会利用到图中所表示的基础组件:
安全多方计算协议的构造需要依赖的最主要的三大技术:
秘密共享(通过将秘密信息拆分为若干秘密份额,由多位参与者分别保存,通过参与者的合作,可以使用门限个数或者更多个数的秘密份额来重新构造出原始秘密消息。 常见的秘密分享协议包括三种:Shamir秘密分享、加性秘密分享、复制秘密分享)。
不经意传输(假设发送方有n个数据,数据接收方接受其选定的一个数据,且不能获取也无法知道其他数据,同时数据发送方无法知道接收方的选择)。
混淆电路(混淆电路基于布尔电路(逻辑运算)来构造安全函数计算,保证一方的输入不会泄漏给其他方)。
零知识证明也是MPC的基础组件之一,通常分为证明者和验证者两方,证明者想要向验证者证明某个定理,但是又不暴露自己的证据。具备以下性质:
完备性(Completeness):验证者无法欺骗证明者。若证明者知道一个定理的证明方法,则它可以使验证者以绝对优势的概率相信他能证明。
可靠性(Soundness):证明者无法欺骗验证者。若证明者不知道一个定理的证明方法,则证明者使验证者相信他会证明定理的概率很低。
零知识性(Zero Knowledge):验证者无法获得任何额外的知识。
2链上MPC
链上MPC指将MPC协议集成到区块链网络上执行,计算节点作为区块链网络上的节点通过区块链进行通信,通过区块链的智能合约等机制来完成计算。
下图为存在3个组织的Fabric网络完成MPC的模型示意图,计算参与方可以通过一组应用程序A1、A2、A3连接到Fabric网络,通过认证后以peer节点的形式存在于区块链网络中,它们可以存在于同一个组织或者分散于不同的组织中。
当需要完成MPC任务时,各方的组织构建起一个通道,每个参与节点都维护了一个通道账本的副本。各方协商后共同部署MPC协议链码,并通过链码、背书策略完成MPC。
链上MPC模型
链上MPC总结:
从设计目标来说,目前的相关研究主要目标在于实用性,一类研究如何在区块链上实现MPC协议,另一类基于具体应用场景构造系统。
链上MPC通常基于许可区块链(尤其是Fabric),一是许可区块链具有身份机制以及相对应的一套认证机制。二是链上MPC依赖于区块链的整体结构,能够更好地利用区块链提供的共识、背书策略、身份认证等机制工具,加之Fabric的可插拔组件,能够为链上MPC弥补可扩展性上的不足。
从安全性来看,链上MPC对MPC协议本身的安全性关注不高。影响链上MPC使用最大的问题可能在于效率问题,它根植于多个方面,其中包括区块链内复杂的交易和出块机制对带宽的高需求,以及MPC协议本身的复杂性导致的效率低下问题等。如何在不牺牲安全性的前提下增进链上MPC的执行效率,是未来一个重要的研究方向。链上MPC更适合被用于现实中企业、政府等存在身份机制的应用场景。
3链外MPC
链外MPC的协议执行通过独立的MPC网络执行协议,如云服务器、私有网络或者本地计算机,而不依赖于区块链提供通信手段。在链外MPC构造中,通常会通过智能合约来完成MPC网络与区块链网络的交互。
下图是链外MPC的一般构造模型,用户部署并发布MPC协议到区块链上,计算完成后可以通过智能合约接口与区块链交互,获得计算结果。
数据拥有者的数据以加密的形式存放于存储器之中,数据索引将被发布到区块链账本上,在需要调用时可以通过索引完成查找。当用户共同协商并部署好MPC合约后,MPC网络中的计算节点向区块链缴纳押金,并通过与区块链、存储器进行交互获得数据份额,完成计算。诚实完成计算的节点将结果提交,等待验证通过后可以赎回押金。
链外MPC模型
从设计目标上来说,链外MPC大多研究协议的安全性问题。相关工作主要通过区块链提供押金机制来为MPC协议提供公平性。从使用的区块链不同来说,链外MPC的研究更倾向于使用以太坊或其他支持智能合约的非许可区块链。
4对比和展望
链上和链下mpc对比:
未来需要研究的内容:
目前的链上MPC高度依赖于Fabric以及其可插拔组件的特性,需要提供新的组件支持才能够成功实现链上MPC。提出一种更加简单、高效的链上MPC构造方式是一大研究难点。
无论是链外MPC还是链上MPC都缺乏效率评估体系,难以开展分析。如何系统评价并提高方案执行效率是当前的难点与痛点。
链外MPC的构造模型已趋向成熟,下一步可以考虑技术融合并增强实用性,尤其是使用零知识证明、可信执行环境等隐私计算技术与之相结合,是当前发展的必然趋势。而链上MPC的实用性本身相对较强,亟需解决的还是效率方面的问题。
相关文章:

11.1组会汇报-基于区块链的安全多方计算研究现状与展望
基础知识 *1.背书,这个词源来自银行票据业务,是指票据转让时,原持有人在票据背面加盖自己的印鉴,证明该票据真实有效、如果有问题就可以找原持有人。 区块链中的背书就好理解了。可以简单的理解为验证交易并声明此交易合法&…...

ubuntu【桌面】 配置NAT模式固定IP
DHCP分配导致虚拟机IP老变,SSH老要重新配置,设成静态方便些 一、设NAT模式 1、设为NAT模式 2、看模式对应的虚拟网卡 - VMnet8 3、共享主机网卡网络到虚拟网卡 - VMnet8 二、为虚拟网卡设置静态IP 记住这个IP 三、设置ubuntu固定IP 1、关闭DHCP并…...

评估 机器学习 回归模型 的性能和准确度
回归 是一种常用的预测模型,用于预测一个连续因变量和一个或多个自变量之间的关系。 那么,最后评估 回归模型 的性能和准确度非常重要,可以帮助我们判断模型是否有效并进行改进。 接下来,和大家分享如何评估 回归模型 的性能和准…...

如何下载安装TestLink?
一、下载TestLink、XAMPP TestLink 下载 |SourceForge.net 备用:GitHub - TestLinkOpenSourceTRMS/testlink-code: TestLink开源测试和需求管理系统 下载XAMPP: Download XAMPP 注意:TestLink与PHP版本有关系,所以XA…...

基于SSM+微信小程序的订餐管理系统(点餐2)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的订餐管理系统实现了管理员和用户。管理端实现了 首页、个人中心、用户管理、菜品分类管理、菜品信息管理、订单信息管理、配送信息管理、菜品评价管理、订单投诉管理、…...

【C++排序 双指针】1996. 游戏中弱角色的数量|1996
本文涉及的基础知识点 排序 C算法:滑动窗口及双指针总结 本题其它解法 【C单调栈 排序】1996. 游戏中弱角色的数量|1996 LeetCode1996. 游戏中弱角色的数量 你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个…...

GESP4级考试语法知识(捕捉异常)
参考程序代码: #include <iostream> using namespace std;double divide(double a, double b) {if (b 0) {throw "Division by zero error"; // 抛出异常}return a / b; }int main() {double num1, num2;cout << "Enter two numbers:…...

HTML 基础标签——元数据标签 <meta>
文章目录 1. `<meta>` 标签概述2. 属性详解2.1 `charset` 属性2.2 `name` 属性2.3 `content` 属性2.4 `http-equiv` 属性3. 其他常见属性小结在 HTML 文档中,元数据标签 <meta> 是一种重要的标签,用于提供关于文档的信息,这些信息不直接显示在网页内容中,但对于…...

栈虚拟机和寄存器虚拟机,有什么不同?
本来这节内容是打算直接讲字节码指令的,但讲之前又必须得先讲指令集架构,而指令集架构又分为两种,一种是基于栈的,一种是基于寄存器的。 那不妨我们这节就单独来讲讲栈虚拟机和寄存器虚拟机,它们有什么不同࿰…...

Windows下基于fping进行批量IP测试
fping是Linux下一个很好用的IP测试工具,结合代码可以完成批量的IP测试,在网络调试中用途很广。本文是基于fping for Windows结合bat批处理,定制的测试脚本样例。 一、程序信息 本次测试使用fpingV5.1 for Windows版,版本信息如下…...

一款实用的Word文档图片转换与水印保护工具
目录 前言软件功能简介软件实现方法及关键代码 1. Word 文档转图片的实现2. 图片水印添加功能3. 生成数字指纹(哈希值)4. 保存图片信息到 JSON 文件 软件的实际使用场景软件操作指南 1. 下载和安装2. 操作流程 总结 1,前言 在日常办公和内…...

优化用于传感应用的衬底集成波导技术
ANSYS HFSS 是一款功能强大的电磁仿真软件,支持为微流体生物传感器应用设计和分析衬底集成波导 (SIW) 技术。它为快速设计优化、材料选择、系统集成和虚拟原型制作提供了一个强大的平台。借助 ANSYS HFSS,研究人员和工程师可以高效…...

Java多态特性的向上转型
Java的多态特性通过向上转型来实现。向上转型指的是将子类对象赋值给父类引用变量的操作。这样做的好处是可以使用父类引用变量来调用子类对象的方法。 例如,有一个父类Animal和一个子类Dog,可以这样进行向上转型: Animal animal new Dog(…...

C++ 判断语句的深入解析
C 判断语句的深入解析 C 是一种广泛使用的编程语言,以其高效性和灵活性著称。在 C 中,判断语句是控制程序流程的关键组成部分,它们允许程序根据不同的条件执行不同的代码路径。本文将深入探讨 C 中的判断语句,包括 if、else if、…...

15分钟学 Go 第 33 天:项目结构
第33天:项目结构 目标:了解Go项目的典型结构 在Go语言的开发中,项目结构的合理性直接影响着代码的可维护性、可扩展性和团队协作效率。本篇文章将深入探讨Go语言的典型项目结构,并提供实际示例代码和相关的流程图。 一、Go项目…...

conda迁移虚拟环境路径
方法一:使用软连接 ln -s ~/Anaconda3/envs /new/path/envs 方法二:修改~/.condarc文件 1.打开~/.condarc文件 #添加下面参数 envs_dirs: - /newpath/anaconda3/envs pkgs_dirs: - /newpath/anaconda3/pkgs 2. source ~/.bashrc 3.查看是否成功con…...

(八)JavaWeb后端开发——Tomcat
目录 1.Web服务器概念 2.tomcat 1.Web服务器概念 服务器:安装了服务器软件的计算机服务器软件:接收用户的请求,处理请求,做出响应web服务器软件:在web服务器软件中,可以部署web项目,让用户通…...

yocto中通常不直接修改提供的recipes的bb文件
不直接在 Yocto 官方提供的 recipe 中修改 通常是创建新的 metadata 和 recipe 来配置相关软件编译等过程 主要有以下几个原因: 1. 便于维护和升级 隔离自定义修改:Yocto 官方的 recipe 可能会随着版本更新而变化。如果直接修改官方 recipe࿰…...

智能座舱相关术语全解及多模态交互在智能座舱中的应用
文章目录 座舱相关术语全解1. 智能座舱2. UFS3. 多模态交互4. 3D虚拟引擎5. AR/VR6. GNSS7. TTS8. DPU9. 摄像头10. 屏幕/显示器11. 音频12. 无线连接13. 其他组件 多模态交互在智能座舱中有以下一些应用 座舱相关术语全解 1. 智能座舱 智能座舱(intelligent cabi…...

【Fastjson反序列化漏洞:深入了解与防范】
一、Fastjson反序列化漏洞概述 Fastjson是一款高性能的Java语言JSON处理库,广泛应用于Web开发、数据交换等领域。然而,由于fastjson在解析JSON数据时存在安全漏洞,攻击者可以利用该漏洞执行任意代码,导致严重的安全威胁。 二、F…...

【OJ题解】C++实现反转字符串中的每个单词
💵个人主页: 起名字真南 💵个人专栏:【数据结构初阶】 【C语言】 【C】 【OJ题解】 题目要求:给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 题目链接: 反转字符串中的所…...

万字长文详解Hive聚合函数 grouping sets、cube、rollup原理、语法、案例和优化
目录 原理与语法 使用场景 多维度报表生成 复杂的数据分析 实际案例 原理与语法 与GROUPINGSETS的区别 实际案例 原理与语法 与CUBE的对比 实际案例 执行效率比较 优化建议 Hive提供了三个强大的高级聚合函数: GROUPING SETS 、 CUBE 和 ROLLUP ,用于处理复杂的…...
数列分块入门
本期是数列分块入门。其中的大部分题目来自hzwer在LOJ上提供的数列分块入门系列。 Blog:here (其实是对之前分块的 blog 的整理补充) sto hzwer orz %%% [转载] ---------------------------------------------------------------------------------…...

SPRD Android 14 Launcher 3 中添加长按桌面图标启动自由窗口模式功能
本文将介绍如何在SPRD Android 14 Launcher 3 中实现一个功能,使用户可以通过长按应用图标来启动自由窗口模式。这一功能的实现将提升多任务处理能力和应用使用体验。 修改的文件列表 以下是主要涉及的文件及其修改内容: QuickstepLauncher.java:添加自由窗口快捷方式的支…...

WebSocket详解:从前端到后端的全栈理解
文章目录 前言一、WebSocket简介1.1 WebSocket的特点 二、WebSocket的工作原理2.1 握手过程2.2 数据传输 三、WebSocket在前端的应用四、WebSocket在后端的应用五、WebSocket的局限与解决方案结语 前言 随着互联网技术的发展,传统的HTTP协议在某些场景下的局限性逐…...

SOLIDWORKS 2025加快装配体设计 确保可制造性
在快速变化的制造业环境中,SOLIDWORKS作为一款CAD软件,始终致力于提供有效、智能且可靠的解决方案,以满足设计师和工程师对装配体设计的多样化需求。随着SOLIDWORKS 2025版本的发布,其在加快装配体设计、确保可制造性方面取得了显…...

简单题:计算从位置 x 到 y 的最少步数| 豆包MarsCode AI刷题
题目解析:计算从位置 x 到 y 的最少步数 题目描述 题目要求从整数位置 x 移动到整数位置 y,每一步可以将当前位置增加或减少,且每步的增加或减少的值必须是连续的整数。首末两步的步长必须是 1。要求求出从 x 到 y 的最少步数。 思路分析 …...

HTML 基础标签——表单标签<form>
文章目录 1. `<form>` 标签:定义表单容器2. `<input>` 标签:多用途输入控件3. `<textarea>` 标签:多行文本输入框4. `<select>` 标签:下拉选择框5. `<option>` 标签:下拉菜单选项6. `<button>` 标签:按钮元素7. `<label>` 标签…...

LeetCode 每日一题 2024/10/28-2024/11/3
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 10/28 685. 冗余连接 II10/29 3211. 生成不含相邻零的二进制字符串10/30 3216. 交换后字典序最小的字符串10/31 3165. 不包含相邻元素的子序列的最大和11/1 3259. 超级饮料…...

基于Spring Boot和Vue的电子商城系统功能设计
基于Spring Boot和Vue的电子商城系统功能设计 该系统是一个基于Spring Boot和Vue框架的电子商城平台,包含前台商城和后台管理系统。系统功能设计包括用户购物体验和管理员管理功能,支持商品的分类展示、收藏、购物车和订单管理等模块。以下是系统功能的简…...