Bitcoin Forum
November 11, 2024, 11:46:02 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: 能否用已有的300000block生成时间来计算实际的51%的攻击概率呢?  (Read 1308 times)
daniel.socials (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
June 19, 2014, 07:37:47 AM
Last edit: June 19, 2014, 07:58:53 AM by daniel.socials
 #1

如何计算实际的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
dont take
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
June 19, 2014, 07:41:51 AM
 #2

技术贴。看不懂啊
xig3ua
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile
June 19, 2014, 07:58:13 AM
 #3

你应该去英文版块
weisonghypsp291
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250



View Profile
June 19, 2014, 08:04:25 AM
 #4

呵呵,差不多啊
went1233
Jr. Member
*
Offline Offline

Activity: 59
Merit: 10


View Profile
June 19, 2014, 08:05:39 AM
 #5

有可能,不过技术难点比较多

UseCoin - A Cryptocurrency that you can USE! Decentralized Marketplace! (https://bitcointalk.org/index.php?topic=735355)
aiderwar
Full Member
***
Offline Offline

Activity: 166
Merit: 100


View Profile
June 19, 2014, 04:39:50 PM
 #6

太技术性的东西不太懂,这样计算的攻击概率是多少?
innocent93
Legendary
*
Offline Offline

Activity: 896
Merit: 1000



View Profile
June 19, 2014, 04:48:55 PM
 #7

技术性问题可以跟@jh2012共同探讨
他的自管理板块:https://bitcointalk.org/index.php?topic=657678.0
nengtongfoloj26
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
June 20, 2014, 02:41:25 AM
 #8

不大懂啊

QORA | 2ND GEN | NEW SOURCE CODE | QVBbyxXvaGdSdDAxvqPMU3xZm9nT9DCQnf
Bitnet. Vw4QGKEYYoRpcvMA5EdPM6R4rbeRhgvKAV
Get Daily Free SignatureCoins.T9VymPQ1Mb3zWk2q2ohw5jKw9DGypWvPA7
lich126
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
June 20, 2014, 02:54:14 AM
 #9

只要安全就好了,技术不大懂。
jijuevyiyn63011
Full Member
***
Offline Offline

Activity: 128
Merit: 100


View Profile
June 20, 2014, 03:05:57 AM
 #10

我也不懂技术,用着好用就行
wywoc1
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 20, 2014, 03:12:27 AM
 #11

分析很复杂,其实51%攻击打个比方,就好象拥有核武的国家会不会使用核武一样,只要是理性人,一定不会。
所以为什么美国和西方要阻止朝鲜和伊朗发展核武?因为这类国家没底线,无法捉摸。
provenceday
Legendary
*
Offline Offline

Activity: 1148
Merit: 1000



View Profile
June 20, 2014, 03:14:56 AM
 #12

表示支持!

很好一个概率估计方法。

赞一个。 Grin
visionary
Hero Member
*****
Offline Offline

Activity: 966
Merit: 587



View Profile
June 20, 2014, 03:15:43 AM
 #13

1、中本聪比你聪明

2、好好学习。
tianshiqmdvb147
Member
**
Offline Offline

Activity: 68
Merit: 10


View Profile
June 20, 2014, 03:18:31 AM
 #14

1、中本聪比你聪明

2、好好学习。
哈哈,中本聪牛逼

QORA | 2ND GEN | NEW SOURCE CODE | QMEhgTSMU5wkScHrvJfsTQr48GJkB23Xti
Get Daily Free SignatureCoins.T1odXbrCUVdS59Hm2BoiSg8hSjtepw4Qbh
jijuevyiyn63011
Full Member
***
Offline Offline

Activity: 128
Merit: 100


View Profile
June 20, 2014, 03:24:00 AM
 #15

好好学习学习,哈哈
eeee12344
Member
**
Offline Offline

Activity: 73
Merit: 10


View Profile
June 20, 2014, 12:28:58 PM
 #16

百发之51的攻击是肯定的,POW就是这样,没有办法的啊。
maomirmjqo76443
Member
**
Offline Offline

Activity: 69
Merit: 10


View Profile
June 20, 2014, 12:34:19 PM
 #17

利弊都有

QORA | 2ND GEN | NEW SOURCE CODE | QhV2A3rwA6LeSstmn87rUKZhz3EsYgPHBi
Bitnet. VfDf4GL6ex96mk9tjWuULKhW97gr4Dfarm
puecy lino chaun
Member
**
Offline Offline

Activity: 64
Merit: 10


View Profile
June 24, 2014, 02:07:17 AM
 #18

技术问题,还需要大神回答

ReserveShare - 100% Free and Fair. New source code. Proof Of Reserve
Get Daily Free SIGNs before too late. T5Cs6uvgmK1taWwZXBLPUe4zan8uf8rbgn
meiguo
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
June 24, 2014, 02:10:47 AM
 #19

楼主能否讲得更详细些,先谢了.
meiguo
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
June 24, 2014, 02:19:27 AM
 #20

分析很复杂,其实51%攻击打个比方,就好象拥有核武的国家会不会使用核武一样,只要是理性人,一定不会。
所以为什么美国和西方要阻止朝鲜和伊朗发展核武?因为这类国家没底线,无法捉摸。
这个比方不错,什么人都有啊.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!