OKXが"世界パイデーミステリーイベント"を開催しているのを グループ内の大金持ちが言いました テーマは"探索 終わりのない世界"です
退役プログラマーとして ニュースを見ると 微笑んでMacBook Proを開けました さっそく始めましょう
分析
公式には 61 ビットのキーが画像に並び, 円周の部分が重なり合っている. 私的なキーの長さは 32 バイトで, 六角形に変換すると 64 ビット+ 0x 前置詞で,合計 66 ビットで, 61 ビットです. 最初の見方では,チャートの最初の行にある
シンプルに色を鋭くするために Mac ツールを使おう:
画面の文字を自動的に認識できます.直接コピーしてみましょう.
3.141592653589793230X1D64338
А694502884197169399375105820
974925E123078164062862089986
28033DB034211706409914808651
32823066470ED424609550582231
8B3
81284
• Exploration,
038
Never Ending
027
493
05%
0128
4756482337867831731712019091
47D9E56692346034861045432664
8213393607743749141273724587
006606315588174881BEEA209628
2925409192744436789259036001
直接使用できません.手動で修正しましょう.写真に覆われている確認されていないものは *.でマークされています. 確かではありません.後で話しましょう.
図によってブロックされた他のフォントは,他のフォントのストローク形状を観察することによって判断できます.この時点で,私たちは Python を使用して両者の違いを計算し,同じフォントに対して
img = '''
3.141592653589793230X1D64338
A694502884197169399375105820
974925E123078164062862089986
28033DB034211706409914808651
32823066470ED424609550582231
8B32594081284811174502841027
0193**2*D2299964462294895493
0381960EFC8103F9365933446128
4756482337867831731712019091
47D9E56692346034861045432664
82133936077A3749141273724587
006606315588174881BEEA209628
2925409192744436789259036001
'''
# True Pi
real='''
3.14159265358979323846264338
3279502884197169399375105820
9749445923078164062862089986
2803482534211706798214808651
3282306647093844609550582231
7253594081284811174502841027
0193852110555964462294895493
0381964428810975665933446128
4756482337867831652712019091
4564856692346034861045432664
8213393607260249141273724587
0066063155881748815209209628
2925409171536436789259036001
'''
items = img.strip().split('\n')
diffStr = ''
for pos, line in enumerate(real.strip().split('\n')):
for i, c in enumerate(line):
imgLine = list(items[pos])
if line[i] == imgLine[i]:
imgLine[i] = '_'
else:
diffStr += imgLine[i]
items[pos] = ''.join(imgLine)
print('\n'.join(items))
print(diffStr, 'Len:', len(diffStr))
実施結果は以下の通りです.
Copy code
___________________0X1D_____
A694________________________
____25E1____________________
____3DB0________4099________
___________ED42_____________
8B32________________________
____**_*D2299_______________
______0EFC___3F93___________
________________731_________
_7D9E_______________________
__________7A37______________
__________________BEEA______
________92744_______________
0X1DA69425E13DB04099ED428B32***D22990EFC3F937317D9E7A37BEEA92744 Len: 64
余り3つあるが,不確実なものは3つだけある.削除してみよう.他の61ビットを除外した後は大丈夫だから,最も明確な違いしか残っていない.最後に前項は次のとおりである:
0X1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744
次に,私たちはPythonを使用して,OKチェーン上のバランスをクロールするためにフォースを使用します. どのプライベートキーがバランスを持っているかを比較することができます. 実際,私たちは最初に314USDTの転送でパブリックキーを選択することもできます. これはより速くなります. 公式ウェブサイトの情報を参照して,ガスがあれば直接バランスを確認することができます. コードは少し混乱しています.
import sys
import web3,time,logging
from eth_account import Account
from web3 import Web3
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s')
w3 = Web3(Web3.HTTPProvider("https://exchainrpc.okex.org"))
logging.info(w3.clientVersion)
found = None
def get_balance_gas(key):
global found
_counter += 1
address = Account.from_key(key).address
logging.info('fetch address %s %s' % (found, address))
while True:
try:
balance = w3.eth.get_balance(address)
break
except:
logging.warning(traceback.format_exc())
time.sleep(1)
continue
if balance != 0:
found = key
raise BaseException('Found balance: %s %s' % (address, balance))
return balance
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(max_workers=50)
keys = []
prefix = '1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744'
# It doesn't matter how to optimize the algorithm. Run the secret key against the clock.
ch = '0123456789ABCDEF'
for a in range(0, 16):
for b in range(0, 16):
for c in range(0, 16):
for d in range(0, 16):
for e in range(0, 16):
keys.append("0x"+prefix+ch[a]+ch[b]+ch[c]+ch[d]+ch[e])
print('all keys:', len(keys))
tasks = [None for t in keys]
for idx, key in enumerate(keys):
tasks[idx] = executor.submit(get_balance_gas, key)
for t in tasks:
t.result()
複数のスレッドで 速く動作します 私のサーバーの"つで実行できます
2023-03-15 00:20:19,491 exchain-v1.6.8.5
all keys: 1048576
2023-03-15 00:20:20,372 fetch address None 0xc20C41f06F2428a0FD84ef03Ec6960992F5f8016
2023-03-15 00:20:20,473 fetch address None 0xcFa87ee54bc1c14c09a3AB3f41640bBab5C5480a
2023-03-15 00:20:20,483 fetch address None 0x126E922652f8B276F231D0eCA94d98685a26a45D
The following is omitted...
不安で待った~~~ 悪いニュースが来て,戦略が終了する前には結果がなかった. すべては無として表示されました.
道は山岳に沿って曲がる
ツイッターで議論を始めました. そして私は,みんなと私が同じステップにたどり着いたことを発見しました. しかし,奇妙なことは,誰も暗号解読が成功したと言っていないこと, そして,公式は最初の61ビットを正しく発表していないこと,D2299
中央に,私は非常に確信しています, しかし彼は非常に自信に見えます.
しかし,彼は61ビットD2290を投稿しました. 彼はまた,彼は慎重にチェックされたと言いました. それは問題ではありません. リスクを取ります. とにかく,それは電気の無駄です. 61ビットを見つけました.彼らは皆とても自信でした. コメント欄に表示されている前置き符号は, コードがちょうど横切って, 基本的なコードが変更されず, 繰り返し貼り付けられることはありません.
prefixs =[
'1DA69425E13DB04099ED428B3202290EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B320D2290EFC3F937317D9E7A37BEEA92744',
'1DA694255E3DB040990ED428B3208890EFC3F937317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B3202299EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB01099ED428B3202290EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B32D2290EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744',
]
兄弟のPI値が私と違って 驚きました! 上の前項のうちの1つが正しいことを意味します. これは非常に非科学的です. プライベートキーとは:
1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744C8155
これはD229ですが 画像は明らかにD2299で 731は7で続きますが 2ですが 実はこれは正しい61ビットです 彼が自分で計算した方法は不明です 信じられないほど好奇心旺盛ですが 私は自分の操作を疑いません 公式の顧客サービスが Piには別のバージョンがあると言いましたとコメントの1つを見てきました 私が学んだことと 現在の宇宙の理解を無視していたのは私でした この不合理数体の周りは宇宙の無限性を表すことができます その分数は決して繰り返したり終わったりしません
Web3通貨換算コード
チェーンのアドレスを OKC に設定し,プライベートキーをランダムに交換に追加し,その後2行が完了します. 直接デバッグツールモードで実行します.
証拠
解読された公開鍵のアドレス
>>> from eth_account import Account
>>> Account.from_key('0x1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744C8155').address
'0x0bd08825e05e540C9508961a32E58D14da47275A'
リンクを見てくださいhttps://www.okx.com/cn/explorer/okc/address/0x0bd08825e05e540c9508961a32e58d14da47275a
TXは私の指揮下にあったhttps://www.okx.com/cn/explorer/okc/tx/0x4211418b09571011417257201aaf10fc3c5d638809a9456eb5aba5fe8c5d4e2c
宛先は次のとおりです.
0x25f0a126be95f437ee71d7c4de725567c5f6c731
この住所が私のものであることを証明するために この受信者の住所を使って ブラックホールの住所へ転送しました
ブラックホールの住所は:
0x0000000000000000005757572e464d5a2e434f4d
このブラックホールのアドレスには,以下のように解読されたURLが含まれています.
~ % python -c 'print(bytes.fromhex("0000000000000000005757572e464d5a2e434f4d"))'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00WWW.FMZ.COM'
フォースクリプト
これが物語の終わりです 振り返ってみると 私は長年に渡って蓄積した知識に感謝しています そうでなければ こんなに早く解明できず 他者によって打ち負かされていたでしょう 公式の図には間違いがあったと思いますが いずれにせよ 公開される前に答えを解明できたのが 幸運でした OKXが次回同様の活動を行うとき より厳格な対応を 期待しています