论文笔记: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'} =CBob⋅Cv/2,0=Cv,H(PBob,S)k1′)

    解决:保密交易对 E = C ′ ⋅ C − 1 E = C'·C^{−1} E=C′⋅C−1进行签名,而不是一个空消息,将 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∣=∣v′∣−1)
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′=1∣v′∣gski′⋅h∑v)⋅∏C−1,如果 ∑ 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值
  • 共同所有者生成的总体签名和范围证明,整合
相关推荐
大拨鼠20 小时前
【多模态读论文系列】MINIGPT-4论文笔记
论文阅读
计算机-秋大田21 小时前
基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解
java·论文阅读·spring boot·后端·vue
ssf-yasuo1 天前
SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记
论文阅读·笔记·prompt
YMWM_1 天前
论文阅读《Structure-from-Motion Revisited》
论文阅读
是瑶瑶子啦1 天前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
咔叽布吉1 天前
【论文阅读笔记】CamoFormer: Masked Separable Attention for Camouflaged Object Detection
论文阅读·笔记·目标检测
热情的Dongming2 天前
【课程总结】day34:多模态大模型之ViT模型、CLIP模型论文阅读理解
论文阅读
chencjiajy2 天前
向量模型Jina Embedding: 从v1到v3论文笔记
论文阅读·embedding·向量模型
HollowKnightZ2 天前
论文阅读笔记:DRCT: Saving Image Super-Resolution away from Information Bottleneck
论文阅读·笔记