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的实用性本身相对较强,亟需解决的还是效率方面的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程间通信(命名管道、共享内存、消息队列、信号量)

作者主页: 作者主页 本篇博客专栏:Linux 创作时间 :2024年11月2日 命名管道: 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。命名管道是一种特殊类型的文…

划界与分类的艺术:支持向量机(SVM)的深度解析

划界与分类的艺术:支持向量机(SVM)的深度解析 1. 引言 支持向量机(Support Vector Machine, SVM)是机器学习中的经典算法,以其强大的分类和回归能力在众多领域得到了广泛应用。SVM通过找到最优超平面来分…

Java设计模式(代理模式整理中ing)

一、代理模式 1、代理模式定义: 代理模式:由于某些原因要给某对象提供一个代理以控制对该对象的访问,这时访问对象不适合或者不能够直接引用目标对象,代理对象作为访问对象与目标对象之间的中介进行连接调控调用。 2、代理模式的…

【含文档+源码】基于SpringBoot+Vue的新型吃住玩一体化旅游管理系统的设计与实现

开题报告 本文旨在探讨新型吃住玩一体化旅游管理系统的设计与实现。该系统融合了用户注册与登录、旅游景点管理、旅游攻略发帖、特色旅游路线推荐、附近美食推荐以及酒店客房推荐与预定等多项功能,旨在为游客提供全方位、一体化的旅游服务体验。在系统设计中&#…

如何卸载电脑上的软件?彻底删除第三方和系统自带软件方法!(新款)

如何卸载电脑上的软件?在日常使用电脑的过程中,我们经常会安装各种软件以满足不同的需求。然而,随着时间的推移,一些不再使用的软件可能会占用系统资源,影响电脑性能。因此,定期卸载不需要的软件是保持系统…

cocos开发QA

目录 TS相关foreach循环中使用return循环延迟动态获取类属性 Cocos相关属性检查器添加Enum属性使用Enum报错 枚举“XXX”用于其声明前实现不规则点击区域使用cc.RevoluteJoint的enable激活组件无效本地存储以及相关问题JSON.stringify(map)返回{}数据加密客户端复制文本使用客户…

LeetCode :21. 合并两个有序链表(Java)

目录 题目描述: 代码: 第一种: 第二种: 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: …

删除的文件怎么找回?删除文件恢复全面指南

我们常常在日常生活或工作中不小心删除了重要文件,这样的情况可能瞬间让人感到无助。不过,数据恢复技术已相当成熟,我们可以通过多种方法来找回误删的文件。下面我们将从简单到复杂逐步讲解找回删除文件的方法,希望可以帮助大家在…

D57【python 接口自动化学习】- python基础之异常

day57 异常捕获 学习日期:20241103 学习目标:异常 -- 73 异常捕获:出现异常时,如何利用程序进行处理? 学习笔记: try-except代码块 # 捕获异常 num1 num10 try:num/num1except Exception as e:print(上…

【06】A-Maven项目SVN设置忽略文件

做Web项目开发时,运用的是Maven管理工具对项目进行管理,在项目构建的过程中自动生成了很多不需要SVN进行管理的文件,SVN在对源码进行版本管理时,需要将其忽略,本文给出了具体解决方案。 SVN设置忽略Maven项目中自动生成…

logback日志级别动态切换四种方案

生产环境中经常有需要动态修改日志级别。 现在就介绍几种方案 方案一&#xff1a;开启logback的自动扫描更新 配置如下 <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"60 seconds" debug…

Linux——Ubuntu的基础操作

压缩与解压缩 gzip压缩工具 创建文件 a.c和b.c touch a.c touch b.c 压缩文件a.c和b.c gzip a.c gzip b.c 解压缩a.c.gz和b.c.gz gzip -d a.c.gz 对文件夹进行压缩 gzip -r 对文件夹进行解压缩 gzip -rd 注意&#xff1a;这只是对文件夹里所有文件进行压缩&#xff0c…

win10下MMSegmentation自定义数据集

下载1.2.1版本: Releases open-mmlab/mmsegmentation GitHub 安装环境 本地torch环境为1.9.1 pip install -U openmim mim install mmengine mim install "mmcv>=2.0.0" 报mmcv版本不匹配的问题,形如:MMCV==X.X.X is used but incompatible. Please inst…

App Store 截图生成器:轻松制作专业级应用营销图片

在线使用 &#x1f449; 立即使用截图生成器 简介 App Store 截图生成器是一个专门为 iOS 开发者和营销人员设计的在线工具&#xff0c;可以快速生成符合 App Store 规范的应用预览图片。无论是 iPhone 还是 iPad 应用&#xff0c;都能轻松创建出精美的营销截图。 主要特点…

2024年超详细Pycharm安装保姆级教程,Python环境配置和使用指南,看完这一篇就够了

PyCharm 是由 JetBrains 打造的一款 Python IDE &#xff08;集成开发环境&#xff0c;Integrated Development Environment&#xff09;&#xff0c;带有一整套可以帮助用户在使用 Python 语言开发时提高其效率的工具&#xff0c;比如调试、语法高亮、Project 管理、代码跳转、…

使用DJL和PaddlePaddle的口罩检测详细指南

使用DJL和PaddlePaddle的口罩检测详细指南 完整代码 该项目利用DJL和PaddlePaddle的预训练模型&#xff0c;构建了一个口罩检测应用程序。该应用能够在图片中检测人脸&#xff0c;并将每张人脸分类为“戴口罩”或“未戴口罩”。我们将深入分析代码的每个部分&#xff0c;以便…

filebeat+elasticsearch+kibana日志分析

1 默认配置 1.1 filebeat filebeat-7.17.yml,从网关中下载k8s的配置&#xff0c;指定es和kibana的配置 通过kibana查询可以查询到日志了&#xff0c;但此时还不知道具体怎么用。 1.2 kibana 在Discover中创建索引格式&#xff1a;filebeat-*&#xff0c;得到如下图&#xf…

MySQL表的增删改查(CRUD1)

好兄弟们&#xff0c;有没有忘了咱们上节说的知识点呢&#xff1f;忘了也没关系&#xff0c;让我们开始复习吧&#xff01;&#xff01;&#xff01; 上期我们介绍了数据类型&#xff0c;还有一些表的操作&#xff0c;我们常用的数据类型有&#xff1a;1.数值类型 tinyint …

C++和OpenGL实现3D游戏编程【连载17】——着色器进阶(附源码)

🔥C++和OpenGL实现3D游戏编程【目录】 1、本节要实现的内容 在前面着色器初步一节我们了解了着色器的一些初步知识,通过顶点着色器和片段着色器显示出了一个彩色的立方体。我们这节课就来了解一些在着色器中显示纹理等一系列实用操作,同时了解一些进阶的图像渲染技术,比如…

C++ | Leetcode C++题解之第520题检测大写字母

题目&#xff1a; 题解&#xff1a; class Solution { public:bool detectCapitalUse(string word) {// 若第 1 个字母为小写&#xff0c;则需额外判断第 2 个字母是否为小写if (word.size() > 2 && islower(word[0]) && isupper(word[1])) {return false;…