Ring Confidential Transactions(环机密交易)

目录

1. Introduction

1.1 一次性密钥:

1.2 隐藏交易金额:

      1.3 防止两次花费:

    1.4 范围证明:

2. MLSAG

      2.1 LSAG(Back)

      2.2 MLSAG(对LSAG的推广)

      2.3 Ring CT For Monero Protocol

3. rang proofs

3.1 Borromean Ring Signatures

3.2 Borromean Ring Signatures应用于范围证明


1. Introduction

门罗币给自己的定义就是一个匿名的数字加密货币,其采用CryptoNote协议。环机密交易需要实现:(1)去中心化;(2)匿名;(3)隐藏交易金额。 其中(1)是通过proof-of-work“挖矿”机制来实现的。(2)是通过一次性密钥实现的。(3)是通过多层可链接自发匿名群签名(MLSAGS)并结合Pedersen Commitment实现的。另外还应抵抗“二次花费”攻击,并进行性范围证明。

1.1 一次性密钥:

P=H(rB),其中P是交易的一次性密钥,H是哈希函数,B是转账接收方的公开密钥,r是发送方选取的随机数。发送方阿把rG发送给接收方,接受方由rG的到brG=rB,进而计算出P。即可通过P来检验交易的有效性。

1.2 隐藏交易金额:

Confifidential Transactions加入MLSAGS

      1.3 防止两次花费:

      通过链接机制实现,链接机制通过I:“key-image”实现:

      在签名的链接阶段,将相同的I进行链接,第二次签名作废,避免用同一个密钥对进行两次环签名,即:每个密钥对只允许签名一次,从而避免了重复花费。

    1.4 范围证明:

      由于货币金额是定义在有限域上的,所以攻击者可以在满足输入等于输出的情况下,通过输出溢出(输出大于有限域的阶)来产生巨额自由货币(有限域阶的整数倍)。比如有限域的阶是10,输入是1,输出是5和6,虽然满足(5+6)mod 10=1,但发生溢出,即5+6大于10,故凭空多了10个货币。所以检测并阻止溢出而产生自由货币是十分必要的。

     范围证明就是证明每一个输出都在某一正整数范围内。溢出可分为两种情况:(1)存在一些较大的输出(等价于绝对值较小的负输出)(2)大量较小的输出。可以通过设置有限域的阶+范围证明来共同检测和阻止这两种情况。通过把有限域的阶设置得足够大(比如2得256次方),把范围证明中的正整数设置得足够小(比如2的64次方,大于系统内货币总额即可),使得(1)时范围证明不通过,(2)时因输出个数巨大而不可行(比如上个例子在通过范围证明的情况下产生溢出最少需要2的196次方个输出)。

2. MLSAG

      2.1 LSAG(Back)

 

 

      2.2 MLSAG(对LSAG的推广)

 

      2.3 Ring CT For Monero Protocol

                                 (2)ransaction Verifification

                                     与MLSAG验证步骤相同。

3. rang proofs

假设取范围证明中的正整数是2的n次方,即证明每个输出都在0到2的n次方之间。

 

 可以使用Borromean Ring Signatures来实现。

3.1 Borromean Ring Signatures

 

3.2 Borromean Ring Signatures应用于范围证明

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值