# MPCNet **Repository Path**: huang-guoquan-123456654321/mpcnet-cordapp-master ## Basic Information - **Project Name**: MPCNet - **Description**: 基于区块链的多方计算框架(R3 Corda) - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-06-28 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## MPCNet:基于区块链的多方计算框架,应用于联邦学习场景 ### 1. 介绍 针对跨企业群的联邦学习场景,1)存在资源和行为不可信的问题,2)存在缺乏参与计算的激励机制,提出使用区块链和众包机制去解决。具体设计请结合paper参考code。 ### 2. 论文 Huang G, Li J, Yin J, et al. MPCNet: Smart Contract Based Multiparty Computing Network for Federated Learning[J]. Asia-Pacific Journal of Operational Research, 2023. https://www.worldscientific.com/doi/abs/10.1142/S0217595923400146 ### 3. 摘要 进入大数据时代,随着更多的资源共享,机器学习算法更有可能得出更好的解决方案,这些复杂的计算可以在更短的时间内完成。现有的关于多方计算的工作主要集中在给定相关伙伴时如何进行计算,而很少考虑伙伴找到对方的过程。在这项工作中,我们提出了一个用于代理的多方计算网络(MPCNet)框架提议和合作,其中R3 Corda被用来建立一个区块链平台,召集人可以在该平台上寻找其他一些合作伙伴,并执行众包流程来验证召集人的提议和合作伙伴的申请的有效性。此外,为了激励验证者参与,还提出了一种奖励机制。一旦所有加入计算任务的代理都被确认,它们就按照所提出的智能合约中提到的计划相互通信以执行计算任务。实验结果证明了我们提出的方法的可行性、可用性和可扩展性; ### 4. 贡献 1. 首先,为了确保合作和验证过程的可信执行,我们提出了一个MPCNet框架,该框架在允许的区块链R3 Corda上实现众包验证,供召集人和合作伙伴请求和回复寻求合作,并通过智能合约和安全机制验证可靠性。 2. 其次,提出了一种众包机制来激励区块链网络上的验证者参与验证,以确保结果的可信。更具体地说,我们在竞争采购验证过程的一部分中使用了信任拍卖机制,包括任务分配和退款支付。理论分析证明,机制设计满足真实性、个体合理性和预算可行性。 3. 最后,我们从召集人的众包验证过程(包括我们的改进算法)中,通过社会效用来评估机制设计的性能。然后我们测试了该框架在效率方面的性能,并论证了基于区块链的众包的可行性。 ### 5. 相关工作 1. BlockChain and R3 Corda 2. Blockchain based Federated Learning 3. CrowdSourcing Mechanism ### 6. 系统原型 我们的工作是为跨企业FL提供一个MPCNet框架,该框架可以信任地向合作伙伴提供计算并完成资源有效性验证。如下图所示,MPCNet场景由以下角色和所提出框架模型中的其他重要内容组成:MPCNet客户端(Client)、召集人(Convener)、合作伙伴(partner)、验证人(Verifier)、区块链网络(blockchain network)和Web服务器(WebServer)。 ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_SystemModel%20(2).png) 1. MPCNet 客户端,MPCNet是一个p2p网络,由于去中心化,网络中的所有节点都是对等的,每个节点都根据特定的安全协议作为客户端基于许可的区块链加入网络。他们可以是由组织组成的召集人或合作伙伴,也可以是由其他个人设备组成的验证器。根据多方计算范式,在计算之前,我们将MPCNet客户端分为三个角色:召集人、合作伙伴和验证人,但不能同时成为多个角色。 2. MPCNet召集人,作为MPCNet中有计算需求的客户端,由于计算能力不足或数据有限等资源限制,无法单独进行计算。但计算任务可以是描述和在MPCNet中基于确定的协议发布,然后他们在计算任务开始之前选择满足任务要求的客户端。 3. MPCNet合作伙伴,作为MPCNet分布式网络中的一系列具有相同需求的客户端,与召集人有相似的需求,但由于计算能力不足或数据有限等资源限制,无法单独执行整个计算任务。MPCNet可以根据用户的协作意愿和可靠性为用户提供协作计算。他们的真实情况需要满足召集人提案的要求,这样他们才能通过应用程序加入召集人提出的计算任务,共同完成计算。 4. MPCNet 验证人,表示验证资源有效性的角色。在确认召集人和合作伙伴之间的合作关系后,由于他们的有效性无法保证,因此使用区块链的共识机制来选择一部分验证人参与验证和记录。在MPCNet中完成验证和记录消耗了大量的计算资源,因此有必要奖励和激励所有验证人员参与众包验证。 6. MPCNet网络,是一个分布式数字账本的可跟踪和可听数据库,用于存储多方信息。多方合作交易可以通过共识机制和激励机制来确保可靠性。MPCNet是一个许可链,通过权限控制来增强网络中的安全性。 7. MPCNet服务器,MPCNet客户端认证后,可以登录MPCNet Web服务器进行可视化操作,并根据客户端的角色参与计算或验证。 ### 7. 系统挑战和设计目标 1. 合作挑战:(1)集中式系统的威胁。(2) 召集人和合伙人的不诚实行为。 2. 合作目标:为了应对这些问题,我们使用区块链的p2p网络进行去中心化,使用智能合约就im达成一致可变事务行为,使用共识机制来验证可用客户端的可靠性,并使用分布式账本来存储每个用户的行为,包括计算身份、计算过程和计算结果。 3. 众包验证挑战:(1)缺乏激励机制。(2) 核查人员的不诚实和不公正。 4. 众包设计目标:(1) 个体合理性;(2) 真实性;(3) 预算可行性;(4) 计算效率;(5) 消费者主权; ### 8. MPCNet设计 结合区块链的优势,我们的目标是建立一个可信和安全的多方计算网络框架。它允许客户使用智能合约在逻辑平面上完成协调过程,以找到满足计算需求的合作伙伴,并通过众包机制验证其可靠性。我们介绍了以下三个部分:框架、合同和流程,以实现动态的合作伙伴选择和去中心化的众包过程。 #### 8.1 MPCNet Framework ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_Framework.png) (1)管理模块:跟踪MPCNet客户端相关的合作验证过程:查询进度、计算过程结果等。 (2)协调模块:提供计算召集人发布计算任务,计算伙伴申请加入计算,绑定关系记录。 (3)验证模块:验证对方资源的有效性。该过程需要区块链网络上的第三方作为断言者加入验证。 #### 8.2 MPCNet Smart Contract ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_SmartContract.png) 智能合约: (1)Management Contract (MC) 管理合同(MC) (2)Coordination Contract (CC) 协调合同(CC) (3)Verification Contract (VC) 验证合同(VC) 智能合约-条约: (1) ProposalComputing():计算任务召集人向CC传输数据的性能、合作伙伴的要求、访问权限的声明、计算任务的预期结果以及相应的报酬。 (2) JoinComputing():计算任务的合作伙伴寻找满足他们需求的合作,然后发布一个应用程序来更新CC的状态。 (3) ValidateComputing():如果达到验证时间,则触发验证机制。VC和相应的成因区块是自动创建的。 (4)CreateAuction():合作组织需要建立一个拍卖,其中包括多个表示需要在组织中验证的内容的验证任务。 (5) PostTaskByBid():区块链中的其他客户端作为验证器通过出价加入验证。由于验证和记录过程将消耗计算资源,因此当每个验证器声称投标成本大于实际成本时,该验证器的奖励应最大化。 (6) AllocationTask():在这个命令中,我们提出了一个任务分配来完成节点的选择。投标人的投标成本与实际成本越接近,分配的可能性就越大。但在下一节中,当我们证明拍卖机制的真实性时,我们将证明真实投标是所有验证者的主要策略。 (7) PaymentTask():为了确保支付成本与投标成本无关,并且当验证者真实投标时,效用会增加,我们提出了第二种价格支付机制来支付他们在验证过程中的计算资源。 #### 8.3 MPCNet Flow ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_Flow.png) Step1:授权加入MPCNet。 Step2:计算任务发布。 Step3:应用于任务计算。 Step4:创建验证 Step5:申请加入验证 Step6:任务和奖励分配。 Step7:执行验证任务 #### 8.4 MPCNet 安全分析 (1)无单点故障。 (2)禁止恶意仲裁。 (3)防止召集人和合伙人欺诈。 (4)合作的隐私保护和可听性。 ### 9. 众包机制设计 (具体看论文) #### 9.1 参数声明 ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_notations.png) #### 9.2 主要数据结构 ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_dataStructure.png) #### 9.3 算法设计 ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_Algo1.png) ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_Algo2.png) ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_Algo3.png) #### 9.4 理论分析 略 ### 10. 实验验证 ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_Exp.png) #### 10.1 社会效益性能测试 & 10.2 支付算法性能测试 ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_EXP_Result1.png) #### 10.3 区块链智能合约性能测试 ![image1](https://gitee.com/huang-guoquan-123456654321/mpcnet-cordapp-master/raw/master/pic/MPCNet_Exp_Result2.png) ### 11. 总结 在这项工作中,我们提出了一种合作计算前的资源有效性验证方法——MPCNet,该方法基于区块链智能合约和跨竖井联合学习场景的众包机制。MPCNet主要解决两个挑战:1) 通过区块链的可信执行机制确保验证过程和结果的可信度;2) 为了解决众包验证过程中缺乏激励机制的问题,在保证个体合理性、真实性和预算可行性的同时,提出了一种逆向组合拍卖机制进行建模。最后,在系统设计方面,我们构建了一个基于R3 Corda联盟链的可信分布式系统,通过对吞吐量和延迟两个指标的负载测试,验证了该方案的可扩展性和可行性,并进行了全面的安全分析。在众包机制的设计中,改进了比例份额分配规则的支付算法,并与原始PSAR相比,提高了社会效用。