首页 > 技术 > eac币在哪个平台交易|雷达(RADR)中间层的环机密交易技术的深度剖析:

eac币在哪个平台交易|雷达(RADR)中间层的环机密交易技术的深度剖析:

摘要:1.Introduction环机密交易(Ring Confidential Transaction)采用CryptoNote协议。需要实现:(1)去中心化;(2
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

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。