着信可
たとえば、最初の価値が60ドルのビットコインの最も明白な写真を撮ります。

秘密鍵をアドレス1HvEJG5JR84MVpncXcDVBqx65uY5odr6fPに暗号化し、そこに〜0.14ビットコイン(〜$ 1200)がありました。
blockchain.infoで、「Radix 6」というテキストプロンプトが表示されます。それを思い出して先に進みます。
鋭い表情で、次の点を調べて確認します。
- 四角は6色のみです。つまり、6文字のエンコード(基数6)があります。
- 最初から開始して、ブロックに分割する3つの正方形ごとの平らな垂直線
- パターンは左から右に進み、30ブロックで構成されてから繰り返されます
6文字は、古典的なWIFまたはHEX秘密鍵を270文字でエンコードするには明らかに十分ではありませんが、秘密鍵にはミニフォーマットがあり、わずか30文字で構成され、ブレインウォレットの原則-sha256(「mini_private_key」)に基づいて機能します。
この形式の特徴は、文字Sで始まる必須です。例はS6c56bnXQiBjk9mqSYE7ykVQ7NzrRyです。

最後に、写真を見て、最初の30ブロックの正方形のすべての色を書きます。青色の垂直仕切りを除き、便宜上、色を1文字で指定します:Y =黄色、G =灰色、R =赤色、B =青色、L =明るい青色、 D =ダークグリーン
それは判明します:
'YGR', 'LBY', 'LBL', 'YBR', 'LGY', 'YYY', 'LBY', 'YBL', 'YDY', 'LGY', 'GRG', 'GRR', 'GDR', 'LBD', 'LBY', 'YDL', 'LBG', 'YYB', 'LYY', 'GRL', 'YYD', 'YGR', 'YDR', 'LBD', 'GYD', 'YRR', 'GRY', 'GYD', 'GRR', 'LGG'
最初の文字がSであり、コーディングが6桁であることがわかっているため、どの色がどの桁を担当しているかを見つける必要があります。
数値変換の場合は、baseconvertパッケージをインストールします
pip install baseconvert
文字Sを16進エンコードに変換します
echo -n "S" | od -A n -t x1 53
別のユーティリティを使用して結果を6桁のエンコードに変換します
python3 -m baseconvert --string true --number 53 --input-base 16 --output-base 6 215
このことから、
Y = 2 G = 1 R = 5
問題の半分は解決されました。 あまり時間がないので、残りの3つの値を手動列挙で見つけます。オプションがほとんどなく、プライベートミニキーを発行する小さなスクリプトをすぐに書くからです。
solve.py
#!/usr/bin/python3 import baseconvert values = ['YGR', 'LBY', 'LBL', 'YBR', 'LGY', 'YYY', 'LBY', 'YBL', 'YDY', 'LGY', 'GRG', 'GRR', 'GDR', 'LBD', 'LBY', 'YDL', 'LBG', 'YYB', 'LYY', 'GRL', 'YYD', 'YGR', 'YDR', 'LBD', 'GYD', 'YRR', 'GRY', 'GYD', 'GRR', 'LGG'] replace = {'Y':'2', 'G':'1', 'R':'5', 'B':'0', 'L':'3', 'D':'4'} # key = [] base = 6 for char in values: for i, j in replace.items(): char = char.replace(i, j) v = baseconvert.base(char, base, 16, string=True) v = bytearray.fromhex(v).decode('ascii') key.append(v) print(''.join(key))
起動中...
python3 solve.py SnoMtVnKbtCGApncmTzEXSep4kD4Gs
ミニ秘密キーの仕様によれば、最後に疑問符を追加してsha256をハッシュすることにより、その有効性を検証できます。 最初の2文字がゼロの場合、キーは有効と見なされます。
echo -n SnoMtVnKbtCGApncmTzEXSep4kD4Gs? | sha256sum 00edc14de4c175a2a8ccb213e4d5deee738782a8213c25328a7b035d3c728866
幸運なことに、秘密鍵は有効です。
次に、 www.bitaddress.orgにアクセスし (非常に高速)、結果の秘密キーをWallet Detailsタブに挿入します。
WIF形式(5KfNkSeQwNgjHr7cRErzDmq5XdUm8qc94YM3iEN5YaMYoA2UGky)の秘密鍵を取得し、ビットコインクライアントにインポートします。

ここに何がありますか?..

おっと...誰かが速くなったことが判明し、賞を受賞しました。 しかし、それでも解決されたタスクからの満足は得られました。
UPD:20ドルと30ドルがSopaXT によって 取得 され ました