当前位置: 首页 > news >正文

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弥补可扩展性上的不足。

    从安全性来看,链上MPCMPC协议本身的安全性关注不高。影响链上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级考试语法知识(捕捉异常)

参考程序代码&#xff1a; #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> 是一种重要的标签,用于提供关于文档的信息,这些信息不直接显示在网页内容中,但对于…...

栈虚拟机和寄存器虚拟机,有什么不同?

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

Windows下基于fping进行批量IP测试

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

一款实用的Word文档图片转换与水印保护工具

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

优化用于传感应用的衬底集成波导技术

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

Java多态特性的向上转型

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

C++ 判断语句的深入解析

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

15分钟学 Go 第 33 天:项目结构

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

conda迁移虚拟环境路径

方法一&#xff1a;使用软连接 ln -s ~/Anaconda3/envs /new/path/envs 方法二&#xff1a;修改~/.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服务器概念 服务器&#xff1a;安装了服务器软件的计算机服务器软件&#xff1a;接收用户的请求&#xff0c;处理请求&#xff0c;做出响应web服务器软件&#xff1a;在web服务器软件中&#xff0c;可以部署web项目&#xff0c;让用户通…...

yocto中通常不直接修改提供的recipes的bb文件

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

智能座舱相关术语全解及多模态交互在智能座舱中的应用

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

【Fastjson反序列化漏洞:深入了解与防范】

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

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...