挑战310个BTC的解谜游戏

2018-10-10  本文已影响0人  边龙飞AToken

比特币有很多花法,介绍比较文艺的一种。

有个大户发起了310个BTC的挑战,这310个BTC的私钥隐藏在一张图上,解出谜题的人就可以得到这310个BTC,图片如下:

破解分了4个阶段,每个阶段都有不同的奖励,分别是 0.1 BTC ,0.2 BTC,0.31 BTC,310.00 BTC

最后的310个BTC的大奖在这个地址:39uAUwEFDi5bBbdBm5ViD8sxDBBrz7SUP4

目前破解已经进行到了第2个阶段,从地址的形式来看,以“3”开头,猜测很可能是一个多重签名的地址。

那么,做个大胆的猜测:前面三个奖励很可能是单个的私钥就能算出来的,将这几个(4个?)私钥集齐,就能得到这个多重签名的脚本,也就能得到310个BTC的大奖。

现在,我们先从第一阶段的破解过程看一下,看看能否猜到作者的设计思路。

图中间下方有一段表,如下:

将表中的字符连接起来得到一个串,这个串即是加密的数据,我们现在要对它进行解密(不要问为啥,我们现在是通过解题过程来猜作者的思路)

511B2033232841053022B0FE52ED0F7A165B52C7E75112F656FC4B

游戏开始的日期是20181002,将这个日期就是解密的密钥

用python写,解密的算法如下:

```

key ="20181002"

encrypted ="511B2033232841053022B0FE52ED0F7A165B52C7E75112F656FC4B"

decrypted = []

segment =""

for iin range(len(encrypted)):

segment = segment +format(((int(encrypted[i],16)-int(key[i%len(key)])) %16), 'x')

if((i+1)%3 ==0):

decrypted.append(segment)

segment =""

print("decrypted table:" +str(decrypted) +"\n")

```

解密完成后,得到的结果如下:

['310', '310', '310', '310', '310', '310', '1aa', '0fc', '32d', '5ff', '78f', '643', '42c', '5c7', '490', '2f4', '36e', '43b']

一个数组,去掉前面几个一样的‘310’,一共12个元素,很容易联想到通常用的12个助记词(虽然也有18和24个的标准,但是连续出现同样的是不符合规则的),然后,想办法把这12个数对应到助记词上去,如下:

```

f =open('english.txt', 'r')

words = f.read().splitlines()

f.close()

for iin range(6,len(decrypted)):

print(words[int(decrypted[i],16)-1])

```

得到的助记词是:

cry buyer grain save vault sign lyrics rhythm music fury horror mansion

把这12个助记词导入到AToken钱包(AToken.com),得到地址上确实有0.1个BTC。

第一步的设计其实不是非常复杂,不过非常难想到的是解密的key居然是谜题发布的日期。到此为止,我们只采用了图片的非常小的一部分,要想看到后面阶段的解决,就需要用到图片的其它部分了。截止到20181010,第二阶段的0.2个BTC也已经被破解,接下来要看,谁会把第三和第四阶段的谜题破解,拿到最后的大奖了...拭目以待...

有钱人的世界不好理解

上一篇 下一篇

猜你喜欢

热点阅读