Roberto Rodrigues Caçatal Iniciante

そうですね、正しいシードを見つけるために無効なシードのチェックサムの検索も拡大する必要がありました。

Alexandre Caçatal Iniciante

まさにその通りです!ウォレットのトラップ、減少、混沌、影、制御、静寂、壊れた、落下、悲惨、空、逮捕、虚無という順番は、実際にBIP39のチェックサムが無効ですが、ElectrumはBIP39のインポートモードを選択し、警告を確認することでインポートを許可します。m/0/0のアドレスは、BIP44の導出がチェックサムに依存しないため一致します — チェックサムはタイプミスに対する保護の層に過ぎず、鍵の導出自体の一部ではありません。これにより、変更なしの一般的な検索者が鍵を検出するのが難しくなります。

Well Shd Caçatal Iniciante

うーん、コメントでのヒントや回答を使って、fall、silent、void、emptyなどのあらゆる方法を試してみましたが、このウォレットはチェックサムと数学的に互換性がないため、正しいシーケンスを見つけることはできませんでした。私が使用しているアルゴリズムは、アラプアンのものと同様にチェックサムをフィルタリングするからです。それでも、パズルに単語が適合するためには、アレクサンドルがいくつかの単語を手動で変更したに違いなく、それがチェックサムを失わせたのだと思います。

Alexandre Caçatal Iniciante

まさにその通りです。「misery」という言葉が欠けていました。一部のプログラム、例えばbtcrecoverは、ユーザーが手動で作成したこれらのキーの組み合わせを検出し、アプリが生成するチェックサムによるものだけではありません。単語がBIP 39に含まれている限り。残念ながら、うまくいかなかったようですね。 :) 他の人にとっては、より安全なウォレットを望む場合の学びとして、BIP 39の辞書を使用して自分の単語の順序を選ぶことが重要です。アプリに選ばせず、いくつかの位置を入れ替えてください。次の挑戦では、2つまたは3つの単語でsteganixの画像を開くのに十分です。この次の挑戦では、HexとWifはすでに画像に含まれていますが、暗号化されており、単語のパスワードがなければ正しく開くことができません。頑張ってください!

Roberto Rodrigues Caçatal Iniciante
(編集済み)

挑戦の解決策とCaçataisへのヒント

トラップ 下降 混沌 影 制御 静かな 壊れた 落下 不幸 空虚 逮捕 虚無

1. Electrumで新しいウォレットを作成します。
2. 選択: 標準ウォレット
3. 選択: 秘密鍵を既に持っています
4. 上記のシードを貼り付けます
5. オプションをクリックします
6. 選択: BIP39シード
7. 次に、レガシー(p2pkh)を選択します
8. 次に、パスワードを入力する必要はなく、完了します。

ウォレットが開きます。
このようにして、私はビットコインの賞金を私のウォレットに転送しました。
送信をクリックします。
支払い先: "ここにあなたのビットコインアドレスを入力します"。
最大をクリックするか、手数料の少ない金額を入力します。
支払いをクリックします。
取引が完了するまで数分待ちます。

その後、アドレスに移動し、表示される最初のアドレスをクリックします:
秘密鍵を選択し、コピーします。
p2pkh:Kx7LutWzwHbVnUbyZmbb7TePLhfDx7r51VexiEcurcWoXJco2bN9

以下に、秘密鍵を64文字の16進数に変換するためのPythonスクリプトを示します。

それは16進数の鍵を生成します:

期待されるアドレス:
16g3cBVbT8vHQ7b8GQUkigKUF5VVd4M3qt

WIF:
Kx7LutWzwHbVnUbyZmbb7TePLhfDx7r51VexiEcurcWoXJco2bN9

HEX秘密鍵(64文字):
1a8fe584454e00f50172d2769ab5d899a1198bacca14b33358012575ef0e843c

この16進数の鍵を取得し、解決できる挑戦に移動して、解決策を送信をクリックします。
少なくとも1つのCaçatalを持っている必要がありますので、解決策を送信できます。

「私は皆さんに投稿しているこれを発見するまでに、いくつかのCaçatalコインを使いました。」

HEX鍵を投稿して、賞金を獲得してください:Caçatalコイン。

皆さんの幸運を祈ります。

--------------------------------------------
// HEX鍵を印刷するためのPYTHONスクリプト

#!/usr/bin/env python3
import hashlib

ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

# 期待されるデータ(確認用のみ)
EXPECTED_ADDRESS = "1At7z8J3t3JJiAqtBTyJuHdCMKx45HmyVp"
WIF = "KwgxieQd9ysbpDbNeswckr7dTQck7twtpYqqZBgYmBP6FmdShevt"

def b58decode(s):
n = 0
for c in s:
n = n * 58 + ALPHABET.index(c)

h = "%x" % n
if len(h) % 2:
h = "0" + h

data = bytes.fromhex(h)

# 左側のゼロ
pad = 0
for c in s:
if c == "1":
pad += 1
else:
break

return b"\x00" * pad + data

def double_sha256(data):
return hashlib.sha256(hashlib.sha256(data).digest()).digest()

def wif_to_hex(wif):
raw = b58decode(wif)

payload = raw[:-4]
checksum = raw[-4:]

checksum_calc = double_sha256(payload)[:4]

if checksum != checksum_calc:
raise ValueError("無効なBase58チェックサム!")

compressed = False

if len(payload) == 34 and payload[-1] == 0x01:
compressed = True
privkey = payload[1:-1]
elif len(payload) == 33:
privkey = payload[1:]
else:
raise ValueError("不明なWIF形式です。")

return privkey.hex(), compressed

if __name__ == "__main__":
print("========================================")
print(" WIF -> HEX変換器")
print("========================================\n")

print("期待されるアドレス:")
print(EXPECTED_ADDRESS)
print()

print("WIF:")
print(WIF)
print()

priv_hex, compressed = wif_to_hex(WIF)

print("HEX秘密鍵(64文字):")
print(priv_hex)
print()

print("圧縮:", compressed)
print("\nBase58チェックサム: OK")

Roberto Rodrigues Caçatal Iniciante

メニューのソリューションをクリックすると、「まだ公開されたソリューションはありません」と表示されます。しかし、投稿するためのオプションはありません。

Well Shd Caçatal Iniciante

すぐに、私は答えが知りたくなりました。

Well Shd Caçatal Iniciante

「ヒントにある「明らかにされた」言葉のうち、どれが画像にだけあるのですか?」

Alexandre Caçatal Iniciante

解決策は、過剰な計算、大きなリスト、またはランダムな単語の試みの中には見つかりません。それは、画像から正しい意味が抽出され、一貫した形で整理されたときにのみ現れます。

Well Shd Caçatal Iniciante

ウォレットはElectrumで生成されましたか?

Alexandre Caçatal Iniciante

はい

Alexandre Caçatal Iniciante

言葉を使って、エレクトラムの最後のウォレット引き出しオプションで引き出すことができます。

Mello Caçatal Iniciante

これらの中で「seed」という言葉に含まれているものはありますか?「path, power, hold, maze」

Mello Caçatal Iniciante

英語のサイトを表示して、単語を確認してください。

Well Shd Caçatal Iniciante

空のe voidはseedにありますが、その中のどれかが12番目の単語ですか?

Arapuan Leigo

私は挑戦のために12の非常に難しい単語に行きます。そしてこれを始めます。

puan@DESKTOP-I8NCL17:/mnt/c/Users/Puan/Documents/puzzle/puzzle_solver$ ./solver_menu

*** ビルド成功 ***

============================================================
ソルバー BIP39 -> ビットコイン (GPU 加速)
派生: m/44'/0'/0'/0/0 | 圧縮 P2PKH アドレス
============================================================
GPU : NVIDIA GeForce RTX 2060 SUPER
コンピュートキャップ : 7.5
SM カウント : 34
BIP39 単語 : 2048 単語が読み込まれました ✓
============================================================

------------------------------------------------------------
メインメニュー
------------------------------------------------------------
1) 単語を入力 [保留中]
2) ターゲットを入力 [保留中]
3) 検索を開始
4) サニティテスト
5) 終了
6) GPU デバッグ (現在の単語/ターゲットで idx=0 の順列をテスト)
7) .txt ファイルによる検索 (組み合わせリスト)
------------------------------------------------------------
> 2

============================================================
ターゲットを入力
============================================================
hash160 (40 ヘックス) またはビットコインアドレスを貼り付けて Enter を押してください。
フォーマットは自動的に検出されます。

ターゲット: 16g3cBVbT8vHQ7b8GQUkigKUF5VVd4M3qt
検出された: ビットコインアドレス

ターゲット hash160 : 3e3b06fbedbb3066004cb49a84eadfa30aad49a3

------------------------------------------------------------
メインメニュー
------------------------------------------------------------
1) 単語を入力 [保留中]
2) ターゲットを入力 [設定済み ✓]
3) 検索を開始
4) サニティテスト
5) 終了
6) GPU デバッグ (現在の単語/ターゲットで idx=0 の順列をテスト)
7) .txt ファイルによる検索 (組み合わせリスト)
------------------------------------------------------------
> 7

============================================================
ファイルによる検索
============================================================
フォーマット: 組み合わせごとに1行、単語は
スペースで区切ります。#で始まる行は無視されます。

.txt ファイルのパス: 95.txt
ファイル内の組み合わせ: 15
ターゲット: 3e3b06fbedbb3066004cb49a84eadfa30aad49a3
============================================================

------------------------------------------------------------
[1/15] 単語: arrest broken decline empty fall hold shadow silent still trap void bind
チェックサム: アクティブ
------------------------------------------------------------
スタック/スレッド : 8192 バイト (合計 544 MB)

============================================================
GPU 検索を開始
単語 : 12
順列: 479001600
チェックサム : アクティブ (CPU + GPU の事前フィルターのみ有効)
派生 : m/44'/0'/0'/0/0 (BIP44, 圧縮アドレス)
ターゲット : 3e3b06fbedbb3066004cb49a84eadfa30aad49a3
============================================================
GPU で 479001600 の順列を事前フィルタリング中...
GPU フィルター: 29945645 有効 (1.98秒で) (243 M/s)
有効な順列 : 29945645 (全体の 6.3%)
推定 GPU 時間 : ~1152 秒で 26 Kp/s
============================================================
進捗 派生 速度 経過時間 ETA
-------- -------------- ------------ -------------- ----------
14.01% 4194304 25.4 Kp/s 00:02:45 00:16:55

Arapuan Leigo

今50個の種を入れましたが、これは賞のためではなく、私のソルバーが本当に正しいかどうかをテストするためです。健全性テストを通過したとはいえ、実際の挑戦は別のものです。

Well Shd Caçatal Iniciante

どの言語を使って、そんなに多くのハッシュをテストしているのですか?

Alexandre Caçatal Iniciante

アラプアン、あなたはとても、とても近いです。この共有された返答から、ほんの少しの言葉が外れています。外れている言葉の一つは最後の言葉です。あなたのGPUは何ですか?そして、GPUにはどのプログラムを使用していますか?おめでとうございます!

Arapuan Leigo

RTX 2060 スーパー 8GB

Arapuan Leigo

JetBrainsのいくつかのIDE、例えばIntelliJやCLion、そしてKiroを使用しています。