论文笔记:Compact Multi-Party Confidential Transactions

https://link.springer.com/chapter/10.1007/978-3-030-65411-5_21

A compact, private, Multi-Party Confidential Transactions (MCT)

  • 紧凑型多方机密交易(Compact MCT):MCT的长度与常规的单一所有者交易一样短;换句话说,多方承诺、签名和范围证明与单方的承诺、签名和范围证明无法区分
  • 私密型多方机密交易(Private MCT)- 涉及多个方参与(以及他们的数量)的事实被隐藏起来。
  • 提出两种结构:一个更简单的N方一致转移和一个通用的T/N阈值转移

Intro

案例:

  • 正常情况:
    Alice发送预交易 ( C v , k 1 + k 2 , v , k 1 ) (C_{v,k_1+k_2}, v, k_1) (Cv,k1+k2,v,k1)给Bob、 ( C v , k 1 + k 2 , v , k 2 ) (C_{v,k_1+k_2}, v, k_2) (Cv,k1+k2,v,k2)给Charles,意图是需要两个共同所有者的同意才能花费这些硬币,因为他们都不知道 k 1 + k 2 k_1 + k_2 k1+k2。Bob和Charles随机生成各自的密钥 k 1 ′ k_1' k1 k 2 ′ k_2' k2,并共享部分承诺,如 C B o b = C v / 2 , k 1 C_{Bob} = C_{v/2,k_1} CBob=Cv/2,k1 C C h a r l e s = C v / 2 , k 2 C_{Charles} = C_{v/2,k_2} CCharles=Cv/2,k2,旨在创建一个新的硬币束 C ′ C' C
    在这里插入图片描述

  • 欺骗攻击:
    Bob等待Charles的部分交易承诺 C v / 2 , k 2 C_{v/2,k_2} Cv/2,k2,并与Charles共享一个欺骗性的部分承诺 C B o b = C v / 2 , k 1 ⋅ ( C v / 2 , k 2 ) − 1 C_{Bob} = C_{v/2,k_1} \cdot (C_{v/2,k_2})^{-1} CBob=Cv/2,k1(Cv/2,k2)1 C ′ C' C变成:
    在这里插入图片描述
    现在,硬币可以不经过Charles同意被花费。

  • 抵御恶意密钥攻击:Bob和Charles相互分享 P B o b = C 0 , k 1 ′ P_{Bob} = C_{0,k_1'} PBob=C0,k1 P C h a r l e s = C 0 , k 2 ′ P_{Charles} = C_{0,k_2'} PCharles=C0,k2。然后,他们各自计算:
    在这里插入图片描述
    (抗攻击的原理是哈希函数的单向性,计算 C B o b C_{Bob} CBob C C h a r l e s C_{Charles} CCharles时对应的P已经固定)

  • Bob仍然可以在交易上运行 C ′ ⋅ ( P C h a r l e s H ( P C h a r l e s , S ) ) − 1 C'·(P_{Charles}^{H(P_{Charles},S)})^{−1} C(PCharlesH(PCharles,S))1
    ( = C B o b ⋅ C v / 2 , 0 = C v , H ( P B o b , S ) k 1 ′ =C_{Bob}\cdot C_{v/2,0}=C_{v,H(P_{Bob},S)k_1'} =CBobCv/2,0=Cv,H(PBob,S)k1)
    解决:保密交易对 E = C ′ ⋅ C − 1 E = C'·C^{−1} E=CC1进行签名,而不是一个空消息,将 C ′ C' C提交承诺给交易。

Preliminaries

Compact Multi Signature Scheme

定义:(其他安全性质见原文)
在这里插入图片描述

Non-interactive Zero-Knowledge Compact Multi-party Range Proofs

在这里插入图片描述
定义以下范围证明的完整性、稳健性、零知识、不可延展性以及对诚实但好奇的组合者的安全性。
(安全性定义略,见原文)

Compact Multi-party Confidential Transactions

(构建块的定义交代清楚了,正式给出机密交易的协议)
两种MCT协议和安全模型。注意,与签署空消息的麦克斯韦CT不同,MCT协议签署了多余的值E

MCT所需的基本协议

在这里插入图片描述

Rogue Key Attack Resistant Commitment Generation.

在这里插入图片描述

通用多方资金转移

我们紧凑的私有MCT协议的工作原理如下。

  • 资产或币束的共同所有人自己计算密钥,但与其他共同所有人共享公共信息。
  • 最后,每个共同所有者生成部分交易,共同所有者(组合者)将部分交易组合起来生成最终交易。

( v , k , C ) (\boldsymbol{v, k, C}) (v,k,C)是输入的硬币束, ρ \boldsymbol ρ ρ是输出的硬币数量数组(每组都是共享账户,有多个接收者),应该发送到 ∣ m ∣ ( = ∣ ρ ∣ ) \boldsymbol{|m|(= |ρ|)} m(=ρ)组接收者,其中每组 i i i m i m_i mi个接收者组成。

资金发送功能MCT.Send

资金发送功能MCT.Send通过发送交易 t x tx tx来根据 ρ \boldsymbol ρ ρ隔离硬币,并将密钥分配 p t x \boldsymbol{ptx} ptx用于N-fund转账或 t p t x \boldsymbol{tptx} tptx用于T/N-fund转账,其中 m i m_i mi个接收方中的 t i t_i ti个必须同意花费硬币束 i i i。为了功能实现,我们一起输入盲密钥集 k \boldsymbol{k} k。但是, k j , i ′ \boldsymbol{k}_{j,i'} kj,i是属于第 i ′ i' i(输入币束)的第 j j j个共同所有者的部分秘密密钥,并且部分密钥不与任何人共享。

m \boldsymbol m m-接收方共享账户数组,每个 m i m_i mi代表一个接收者账户的共享所有者数量。
(交易的输出一般等于发送给接收方的若干账户+找零账户,所以 ∣ ρ ∣ = ∣ m ∣ = ∣ v ′ ∣ − 1 |\boldsymbol \rho|=|\boldsymbol m|=|\boldsymbol v'|-1 ρ=m=v1
v , v ′ \boldsymbol {v,v'} v,v-交易输入、输出金额数组, ∑ j = 1 n v = ∑ i = 1 ∣ ρ ∣ + 1 v ′ \sum_{j=1}^n \boldsymbol v=\sum_{i=1}^{|\boldsymbol \rho|+1} \boldsymbol v' j=1nv=i=1ρ+1v
ρ \boldsymbol \rho ρ-除找零外的交易输出

  • 首先是合法性验证和密钥生成,有n个co-owner,每个co-o j有一组主密钥 k j , P j \boldsymbol k_j,\boldsymbol P_j kj,Pj,面向每个账户各有一个分量,因为输入账户有 ∣ v ∣ |v| v个,所以每个主密钥都有对应的共 ∣ v ∣ |v| v个分量。
  • 输入小于输出,确保输入账户有足够的金额进行合法花费
  • 分享 P j \boldsymbol P_j Pj后,每个co-owner分别计算本次交易输出的交易密钥对
  • 当有余额时,将余额作为一个新的输出,为余额新初始化一组交易密钥。
    在这里插入图片描述
    每个co-owner,分别计算:
  • 把余额的交易密钥分量加入输出账户的主密钥集中
  • 生成自己的部分交易,并分享
  • 用收到的所有部分交易,计算总共的E
  • 验证E的合法性: ( ∏ i ′ = 1 ∣ v ′ ∣ g s k i ′ ⋅ h ∑ v ) ⋅ ∏ C − 1 (\prod_{i'=1}^{|\boldsymbol v'|} g^{\boldsymbol{sk}_{i'}}\cdot h^{\sum \boldsymbol v})\cdot\prod\boldsymbol C^{-1} (i=1vgskihv)C1,如果 ∑ v = ∑ v ′ \sum v=\sum v' v=v,E合法
  • 生成总签名和证明
  • 整合方将所有部分交易补全为总交易。

(这段是交易的发送方的操作,所有的co-owner拿出共同拥有的 ∣ v ∣ |v| v个输入账户, v ′ v' v个输出账户,需要的话,输出账户中包含一个新生成的找零账户,签名固定所有交易信息和交易密钥;交易合法性验证;输出账户的范围证明)

在这里插入图片描述
两种情况:

  • 门限为空,直接返回交易;(每个输出账户的使用都不设门限,所有co-owner同意才能交易)
  • 有输出账户的门限大于0,秘密共享SS生成交易。
    在这里插入图片描述

Threshold Key Sharing

我们使用Shamir秘密共享(SS)方案[23],其中有t个交易商,t为阈值。每个交易商分别选择一个秘密主密钥,最终密钥是所有t个主密钥的总和

在这里插入图片描述

资金接收方MCT.Receive

  • 共同接收方初始化接收账户的交易密钥,生成部分交易,并共享
  • 用接收到的所有部分交易整合成总体的E值
  • 验证E值
  • 共同所有者生成的总体签名和范围证明,整合
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ABAQUS软件报价费用 abaqus正版购买价格多少钱?

ABAQUS软件可以完成哪些模拟? ABAQUS软件是一套功能强大的工程模拟的有限元软件,其解决问题的范围从相对简单的线性分析到许多复杂的非线性问题。ABAQUS软件中包含了一套丰富的单元库,可模拟任意几何形状;还包含了各种类型的材料…

第十四届校模拟赛第一期(一)

“须知少时凌云志,自许人间第一流” 鄙人11月八号有幸参加学校校选拔赛,题型为5道填空题,5道编程题,总时间为4小时。奈何能力有限,只完成了5道填空和3道编程大题,现进行自省自纠,分享学习&#…

【系统安全加固】Centos 设置禁用密码并打开密钥登录

文章目录 一,概述二,操作步骤1. 服务器端生成密钥2. 在服务器上安装公钥3.下载私钥到本地(重要,否则后面无法登录)4. 修改配置文件,禁用密码并打开密钥登录5. 重启sshd服务6. 配置xshell使用密钥登录 一&am…

Anaconda prompt运行打开jupyter notebook 指令出错

一、打不开jupyter notebook网页 报错如下: Traceback (most recent call last): File “D:\anaconda3\lib\site-packages\notebook\traittypes.py”, line 235, in _resolve_classes klass self._resolve_string(klass) File “C:\Users\DELL\AppData\Roaming\Py…

MATLAB知识点:循环语句的经典练习题:二分搜索

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 这个例题我们…

小白跟做江科大51单片机之LCD1602滚动显示效果

1.查看原理图 图1 LCD1602接口 图2 LCD1602与STC的接口 2.编写代码 图3 时序结构 根据时序结构编写命令和写入数据代码 #include <REGX52.H> #include "Delay.h" sbit LCD1602_ENP2^7; sbit LCD1602_RSP2^6; sbit LCD1602_WRP2^5; #define LCD1602_lCD0 …

css补充(上)

有关字体 1.所有有关字体的样式都会被继承 div {font-size: 30px;}<span>777</span> <div>123<p>456</p> </div>span中777是默认大小16px div设置了30px p作为div的后代继承了字体样式也是30px 2.字体颜色 div{color: red;border: 1px …

[java] 23种设计模式之责任链模式

1.1例子 公司请假系统&#xff0c;业务逻辑如下&#xff1a; 不超过3天的&#xff0c;组长审批 超过3天且小于7天的&#xff0c;总监审批 超过7天且小于15天的&#xff0c;部长审批 超过15天&#xff0c;前端直接拒绝&#xff0c;不会进入审批流程&#xff08;违反了公司的请假…

Stable diffusion零基础课程

该课程专为零基础学习者设计&#xff0c;旨在介绍和解释稳定扩散的基本概念。学员将通过简单易懂的方式了解扩散现象、数学模型及其应用&#xff0c;为日后更深入的科学研究和工程应用打下坚实基础。 课程大小&#xff1a;3.8G 课程下载&#xff1a;https://download.csdn.ne…

如何理解和利用好点对点传输?

在当今数字化时代&#xff0c;数据传输已成为企业和个人日常工作的核心部分。点对点传输&#xff08;P2P&#xff09;作为一种高效的数据交换方式&#xff0c;正逐渐成为网络通信的主流。本文将探讨如何理解和利用点对点传输&#xff0c;分析其优缺点&#xff0c;并介绍镭速如何…

绝地求生:收纳控福音!老登教你怎么塞满三级包最划算!

大家好&#xff0c;我是闲游盒~ 作为一个5000小时的PUBG老登&#xff0c;我认为这个绝地求生这个游戏&#xff0c;抛开外挂不谈&#xff0c;是一个非常有意思的FPS游戏&#xff0c;不论是要强度还是要趣味&#xff0c;大多数玩家都能在这里找到想要的节奏。 一直以来是想做一些…

HarmonyOS NEXT应用开发案例——全屏登录页面

全屏登录页面 介绍 本例介绍各种应用登录页面。 全屏登录页面&#xff1a;在主页面点击跳转到全屏登录页后&#xff0c;显示全屏模态页面&#xff0c;全屏模态页面从下方滑出并覆盖整个屏幕&#xff0c;模态页面内容自定义&#xff0c;此处分为默认一键登录方式和其他登录方…

leancloud云存储如何接入App Inventor 2?

提问&#xff1a;leancloud如何应用到App Inventor 2&#xff1f; LeanCloud 能够高效存取海量级 JSON 对象、二进制文件、地理位置等数据。其内置的行级 ACL 权限控制&#xff0c;以及通用的用户及角色管理体系&#xff0c;可以快速实现安全而灵活的数据访问。 根据官方文档&a…

Java零基础 - try-catch-finally和throw语句

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

语义化与自动化——第三代指标平台两大核心能力详解(内含QA)

【作者简介】杜雪芳&#xff0c;Aloudata 合伙人兼首席业务架构师。12 年数据业务从业经验&#xff0c;3 年管理咨询经验。历任阿里集团淘宝商业分析负责人、阿里音乐商业智能中心负责人、蚂蚁集团用户增长分析与洞察产品负责人。在数据体系搭建、数据分析、用户标签建设、用户…

百度给程序员发放京东购物卡,注册即送30元购物卡

活动真实有效&#xff1a; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;https://comate.baidu.com/?inviteCodeexf818mt 活动参与流程说明&#xff1a;点击下面的邀请链接进行登陆&#xff0c;注意一定要邀请链接&#xff0c;因为通过链接注册可以获…

windows使用sarama往kafka发送数据

首先先在本地安装好java&#xff0c;打开cmd&#xff0c;输入java -version&#xff0c;出现以下信息代表java安装成功。 之后依次安装zookeeper和kafka并启动&#xff0c;详细安装与启动步骤可参考&#xff1a; 【Kafka】Windows下安装Kafka&#xff08;图文记录详细步骤&…

STM32采集电池电量方法实现

一、项目简介 若设备接了锂电池&#xff0c;可以通过STM32的ADC采集电池的电量。锂电池为3节3.7V的单节串联&#xff0c;整体电压大约为12V。 二、实现过程 1、由于STM32采集的电压范围为0-3.3V&#xff0c;所以无法直接采集锂电池的电压&#xff0c;这里可以用外接分压电阻的…

新建Flutter工程修改配置

由于国内 网络环境原因&#xff0c; 新建 flutter工程的 配置文件 需要修改几个地方&#xff0c; 1. gradle-wrapper.properties 问题&#xff1a;Exception in thread "main" java.net.ConnectException: Connection timed out: connect&#xff1a; 解决方法&#…

已解决(亲测可行):pycharm打开项目、关闭项目进度缓慢或者卡住

1.问题描述 pycharm打开项目、关闭项目进度缓慢或者卡住,自己体会。 2. 解决方案 方案一 在帮助里面 更改内存设置里面将最大堆大小调大。并保存重启。如果还卡,请看方案二。 方案二 安装下述顺序进行操作:帮助 -> 查找操作 -> 输入 注册表 -> 不勾选 ide.…