New Empirical Traceability Analysis of CryptoNote-Style Blockchains

本文主要是介绍New Empirical Traceability Analysis of CryptoNote-Style Blockchains,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

发表于Financial Cryptography and Data Security 2019的一篇文章。
文章链接:http://fc19.ifca.ai/preproceedings/69-preproceedings.pdf

摘要

在(PETS’18)会议提出对Monero 不可追踪性的cascade effect 攻击已被开发者使用两个方法规避,其中之一是增加币环形签名(Ring Signature)中mix-ins的个数,从 0.9.0版本中的3个增加到了0.12.0版本中的7个,同时增加了ring confidential transactions(ringCTs)以提升隐私性。然而,目前并没有人对Monero当前应对的策略的匿名性进行分析。 改论文提出一种统计学分析,对所有CryptoNote类型的加密货币进行closed set attack.随后对Monero、Bytecoin以及DigitalNOte进行这种攻击,实验表明,结合了cascade attack之后的closed set attack能够识别出Monero中70.52%的input、Bytecoin中74.25%的inputs以及DigitalNote中91.56%的input。
随后对该种攻击成功的概率进行理论分析,发现成功概率为 2^19,closed set attack近似于statiscal attacks,据此,文中分析认为Monero当前的系统设置可以抵御statiscal attacks,另外文章分析说明了mix-ins不是越大越好,而是其中未被花费的input比例越高越好。

Intruductioon

目前加密货币中用户的匿名性和隐私性都逐渐受到重视,因此出现了很多致力于保护用户隐私的加密货币,例如Monero、Bytecoin、Dash、DigitalNote、Boolberry等货币,这些货币都使用了CryptoNote 协议。在这些货币中,使用了ring signature(环形签名)技术,即在一笔交易的输入中,支付方会将自己的input地址和区块链中其他output地址混合起来形成一个环,这样做的目的是不让外界知道真正的input具体是哪一个,其他没有被花费的input称之为mix-ins。

然而实际上Monero区块链中有65%的用户在花销的时候,使用的mix-ins为0,而这些交易很容易被确定真正的input,随后其他一些用户使用了这些被追踪的input作为mix-ins之后也面临着被追踪的危险,也确实有文章进行了相关分析,经过分析后发现其中87%的input都能被追踪到。随后Monero开发团队也对其进行了升级,其中引入了RingCTs技术,RingCTs技术中即使是不同数目的输入也可以作为mix-ins,同时将mix-ins的数量从2提升到了6(2019年3月29日的0.12.0版本)。但是实际上这些货币匿名性如何呢?

本文中作者引入了closed set attack方式,简而言之就是如果有X个inputs的集合,其中恰好又有X个不同的地址,那么说明在这X个inputs中,不同的X个地址都已经被花销出去,因为每个inputs至少要消费一个地址。假若其他inputs中包含了这X中的地址,那么其他inputs的匿名集就可以减小,如果减小到1,就能够追踪到其中的交易。

Preliminary

CryptoNote protocol

CryptoNote协议致力于做两件事情:

  • Untraceability: 对于任何交易,真正被花费的地址应

这篇关于New Empirical Traceability Analysis of CryptoNote-Style Blockchains的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794196

相关文章

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

List list = new ArrayList();和ArrayList list=new ArrayList();的区别?

List是一个接口,而ArrayList 是一个类。 ArrayList 继承并实现了List。 List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。而ArrayList list=new ArrayList();创建一对象则保留了A

vue原理分析(六)--研究new Vue()

今天我们来分析使用new Vue() 之前研究时,只是说是在创建一个实例。并没有深入进行研究 在vue的源码中找下Vue的构造函数 function Vue(options) {if (!(this instanceof Vue)) {warn$2('Vue is a constructor and should be called with the `new` keyword');}thi

GTK中创建线程函数g_thread_new和g_thread_create的区别

使用GThread函数,需要引用glib.h头文件。 这两个接口的核心区别就是  g_thread_create 是旧的接口,现在已经不使用了,而g_thread_new是新的接口,建议使用。 g_thread_create: g_thread_create has been deprecated since version 2.32 and should not be used in n

New的VC编译器实现

当我们调用 new 的时候,例如 int *p = new int; 时,编译器到底作了什么工作呢?跟进断点看一看。   (在 vc debug模式下 ) double *p1 = new double ; 00411A6E  push        8    00411A70  call        operator new (4111B8h) 00411A75  add

WebAPI (一)DOM树、DOM对象,操作元素样式(style className,classList)。表单元素属性。自定义属性。间歇函数定时器

文章目录 Web API基本认知一、 变量声明二、 DOM1. DOM 树2. DOM对象3. 获取DOM对象(1)、选择匹配的第一个元素(2)、选择匹配多个元素 三、 操作元素1. 操作元素内容2. 操作元素属性(1)、常用属性(href之类的)(2)、通过style属性操作CSS(3)、通过类名(className)操作CSS(4)、通过classList操作控制CSS(5)、操作表单

Python方法:__init__,__new__,__class__的使用详解

转自:https://blog.csdn.net/qq_26442553/article/details/82464682 因为python中所有类默认继承object类。而object类提供了了很多原始的内建属性和方法,所以用户自定义的类在Python中也会继承这些内建属性。可以使用dir()函数可以查看,虽然python提供了很多内建属性但实际开发中常用的不多。而很多系统提供的内建属性实际

Midjourney 随机风格 (Style Random),开启奇幻视觉之旅

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:       Midjourney 最近推出了 "Style Random"(随机风格),这项功能可以让我们使用独特的随机 sref 代码创建图像,从而每次都能获得不同的美感。通过对这些功能的探索和尝试,我发现了一些很棒的风格,我很高兴能与大家分享,这样可以节省大家的时间,不用自己动手测试。在本文中,我将展示十个M