美文网首页
挑战310个BTC的解谜游戏

挑战310个BTC的解谜游戏

作者: 边龙飞AToken | 来源:发表于2018-10-10 16:51 被阅读0次

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

    有个大户发起了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也已经被破解,接下来要看,谁会把第三和第四阶段的谜题破解,拿到最后的大奖了...拭目以待...

    有钱人的世界不好理解

    相关文章

      网友评论

          本文标题:挑战310个BTC的解谜游戏

          本文链接:https://www.haomeiwen.com/subject/cfipaftx.html