Title: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: daniel.socials on June 19, 2014, 07:37:47 AM 如何计算实际的51%的攻击概率呢? 全文见http://blockindex.info/blog/51.html
bitcoin创建到现在总计产生30多万个block, 我们可以用这30多万个block的时间来估算51%攻击实际的概率和需要的时间 以下以6个confirm为例,来计算实际可能的概率 正常的 blockchain, 我们称之为C []----->[]----->[]----->[]----->[]----->[]----->[] C blockchain 诚实节点计算的 A blockchain 攻击节点计算的 B blockchain []----->[]----->[]----->[]----->[]----->[]----->[] A blockchain \ []----->[]----->[]----->[]----->[]----->[]----->[] B blockchain 分别计算每连续6个block的生成时间间隔: t1 = blk5.time - blk0.time t2 = blk6.time - blk1.time ..... tx = blkn.time - blk(n-5).time 这样得到100%算力的C的连续生成6个块的时间集合 {t1,t2,t3....tx} TC1 然后用同样的方法计算连续生成7个block的时间间隔, 得到100%算力的C的连续生成7个块的时间集合 {t1,t2,t3....} TC2 对TC1绘图,得到正常的C blockchain 连续生成6个block时间分布曲线 x为连续的6个block y为生成连续的6个block的时间 时间分布曲线 http://blockindex.info/blog/imgs/6.png 对时间排下序得到下图,可以得到连续生成6个block需要的最少时间和最多时间 时间分布曲线 http://blockindex.info/blog/imgs/6s.png 然后对T1计算,每间隔10秒内Tx的数目, 得到{len(T1...Tx),len(Tx+1....Tx+n)....},得到密度分布曲线,如下 http://blockindex.info/blog/imgs/6d.png 时间分布曲线 上图可以看出连续生成6个block需要的时间 每隔20000个block分别计算密度分布,难度应该变化10倍左右,算力变化x倍,发现block生成时间密度曲线基本重合 http://blockindex.info/blog/imgs/xd.png 把A和B看成一个独立的blockchain,则 A,B生成block概率的密度分布应该和C一致,但是由于A,B的算力下降,所以把时间轴等比缩放, A 连续生成6个块需要的时间集合{t1,t2,t3....} TA = TC1 * 100/(1-49) B 连续生成7个块需要的时间集合{t1,t2,t3....} TB = TC2 * 100/(1-51) 时间分布曲线 http://blockindex.info/blog/imgs/51d.png 得到A,B的曲线(左边为A,右边为B),和A可能的连续生成6个block的时间集合TA,和B连续生成7个block的时间集合TB 现在问题转化为在TA中随机选一个时间,大于TB中任意元素的概率 代码如下: AB为有序集合,从小到大依次排列 AB中任意取元素a,b, 计算a>b的概率 def AB (A,B): N = [] qz = 0.0 for i,a in enumerate(A): n = 0 for b in B: if a<=b: break else: n+=1 N.append(n) return float(sum(N))/(len(B) *len(A)) 实际的计算结果 51% 算力攻击, height高度为280000~300000, 20000个block的生成时间密度计算成功的概率为 z=0 P=1.000000 z=1 P=0.25991752883 z=2 P=0.327356211643 z=3 P=0.362791063488 z=4 P=0.38572021231 z=5 P=0.402129295953 z=6 P=0.41492854999 如果觉得20000个样本不够,那么以height高度为200000~300000的, 100000个的生成时间密度计算成功的概率为 z=0 P=1.000000 z=1 P=0.258909623337 z=2 P=0.327897207064 z=3 P=0.363898341947 z=4 P=0.387023480539 z=5 P=0.403786580212 z=6 P=0.416886094841 全文见http://blockindex.info/blog/51.html Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: dont take on June 19, 2014, 07:41:51 AM 技术贴。看不懂啊
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: xig3ua on June 19, 2014, 07:58:13 AM 你应该去英文版块
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: weisonghypsp291 on June 19, 2014, 08:04:25 AM 呵呵,差不多啊
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: went1233 on June 19, 2014, 08:05:39 AM 有可能,不过技术难点比较多
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: aiderwar on June 19, 2014, 04:39:50 PM 太技术性的东西不太懂,这样计算的攻击概率是多少?
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: innocent93 on June 19, 2014, 04:48:55 PM 技术性问题可以跟@jh2012共同探讨
他的自管理板块:https://bitcointalk.org/index.php?topic=657678.0 Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: nengtongfoloj26 on June 20, 2014, 02:41:25 AM 不大懂啊
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: lich126 on June 20, 2014, 02:54:14 AM 只要安全就好了,技术不大懂。
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: jijuevyiyn63011 on June 20, 2014, 03:05:57 AM 我也不懂技术,用着好用就行
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: wywoc1 on June 20, 2014, 03:12:27 AM 分析很复杂,其实51%攻击打个比方,就好象拥有核武的国家会不会使用核武一样,只要是理性人,一定不会。
所以为什么美国和西方要阻止朝鲜和伊朗发展核武?因为这类国家没底线,无法捉摸。 Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: provenceday on June 20, 2014, 03:14:56 AM 表示支持!
很好一个概率估计方法。 赞一个。 ;D Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: visionary on June 20, 2014, 03:15:43 AM 1、中本聪比你聪明
2、好好学习。 Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: tianshiqmdvb147 on June 20, 2014, 03:18:31 AM 1、中本聪比你聪明 哈哈,中本聪牛逼2、好好学习。 Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: jijuevyiyn63011 on June 20, 2014, 03:24:00 AM 好好学习学习,哈哈
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: eeee12344 on June 20, 2014, 12:28:58 PM 百发之51的攻击是肯定的,POW就是这样,没有办法的啊。
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: maomirmjqo76443 on June 20, 2014, 12:34:19 PM 利弊都有
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: puecy lino chaun on June 24, 2014, 02:07:17 AM 技术问题,还需要大神回答
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: meiguo on June 24, 2014, 02:10:47 AM 楼主能否讲得更详细些,先谢了.
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: meiguo on June 24, 2014, 02:19:27 AM 分析很复杂,其实51%攻击打个比方,就好象拥有核武的国家会不会使用核武一样,只要是理性人,一定不会。 这个比方不错,什么人都有啊.所以为什么美国和西方要阻止朝鲜和伊朗发展核武?因为这类国家没底线,无法捉摸。 Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: KooooK on June 24, 2014, 02:21:02 AM 分析很复杂,其实51%攻击打个比方,就好象拥有核武的国家会不会使用核武一样,只要是理性人,一定不会。 这个比方不错,什么人都有啊.所以为什么美国和西方要阻止朝鲜和伊朗发展核武?因为这类国家没底线,无法捉摸。 Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: wy83 on June 24, 2014, 02:41:33 AM 技术贴啊,支持下
Title: Re: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢? Post by: App-QC on June 24, 2014, 04:09:35 AM 有可能,不过技术难点比较多
|