首页
要闻详情
图标图标

雷达(RADR)中间层的环机密交易技术的深度剖析:

2020-08-18 18:13:08
1697
RADRLAB 环机密交易隐私保护模型技术分析....

i7zOJIVC0ds1HkWfoGixo5Pc5rV7lauTLdKSTjOB.jpeg

1.Introduction

环机密交易(Ring Confidential Transaction)采用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。

RADR采用的环机密交易技术详解:

 1.3 防止两次花费:

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

RADR采用的环机密交易技术详解:

在签名的链接阶段,将相同的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)

RADR采用的环机密交易技术详解:

RADR采用的环机密交易技术详解:

RADR采用的环机密交易技术详解:

 2.2 MLSAG(对LSAG的推广)

RADR采用的环机密交易技术详解:

RADR采用的环机密交易技术详解:

RADR采用的环机密交易技术详解:

 2.3 Ring CT For Monero Protocol

RADR采用的环机密交易技术详解:

(2)ransaction Verifification

与MLSAG验证步骤相同。

3. rang proofs

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

RADR采用的环机密交易技术详解:

可以使用Borromean Ring Signatures来实现。

3.1 Borromean Ring Signatures

RADR采用的环机密交易技术详解:

RADR采用的环机密交易技术详解:

3.2 Borromean Ring Signatures应用于范围证明

RADR采用的环机密交易技术详解:

目前雷达(RADR)已经实现了Ring Transaction,能够消除交易双方的关联性,并即将产品化在主网上线。具体方法为,发送方发起一笔RingDeposite交易向环存入相应金额,当环累计一定数量的交易(相同金额)后即可发起RingWithdraw,环上没有任何证据可以证明某两笔RingDeposite和RingWithdraw之间存在关联性,从而保护该环内交易多方的关联性隐私。这个在WhitePaper里有详细的阐述。相关代码见 https://github.com/radrbiz/radard/blob/master/src/ripple/app/tx/impl/RingDeposit.cpp和 https://github.com/radrbiz/radard/blob/master/src/ripple/app/tx/impl/RingWithdraw.cpp 。环签名采用的曲线为AltBn128,代码见 https://github.com/radrbiz/radard/blob/master/src/ripple/crypto/impl/AltBn128.cpp ,这个曲线较好的平衡了安全性和性能,Ethereum中也内置了类似的曲线。

gxeKNq9iaAw44ZN2tirwvLJAXcYkuih2ALA2BNlk.png

来源:金色财经

风险提示及免责声明

文章来源于金色财经,转载注明原文出处,此文观点与指股网无关,理性阅读,版权属于原作者若无意侵犯媒体或个人知识产权,请联系我们,本站将在第一时间删掉 ,指股网仅提供信息存储空间服务。