import React, { useState, useMemo } from 'react'; import { Hash, Key, Lock, Unlock, Binary, Calculator, Eye, FileText } from 'lucide-react'; const BitcoinPuzzleSolver = () => { const [activePhase, setActivePhase] = useState('overview'); const [inputText, setInputText] = useState(''); const [hashResult, setHashResult] = useState(''); const [decryptionKey, setDecryptionKey] = useState(''); const [decryptionText, setDecryptionText] = useState(''); // SHA256 hash function (simplified - in real implementation you'd use crypto library) const sha256Hash = async (text) => { const encoder = new TextEncoder(); const data = encoder.encode(text); const hash = await crypto.subtle.digest('SHA-256', data); return Array.from(new Uint8Array(hash)) .map(b => b.toString(16).padStart(2, '0')) .join(''); }; const handleHash = async () => { if (inputText) { const result = await sha256Hash(inputText); setHashResult(result); } }; // Binary matrix from the puzzle const binaryMatrix = [ [0,0,1,1,0,1,0,0,1,0,1,1,0,0], [1,1,1,1,0,0,1,1,1,0,1,0,1,1], [1,1,0,1,1,1,0,1,0,0,1,0,0,1], [0,1,1,0,1,0,0,0,0,1,1,1,0,1], [0,1,1,0,0,0,1,1,0,0,0,1,1,0], [1,0,0,1,1,0,0,0,1,0,0,0,1,1], [1,0,0,1,1,1,0,0,0,1,0,0,0,0], [1,1,1,0,0,0,0,0,0,0,1,0,0,0], [0,0,0,1,1,1,0,1,1,1,1,1,0,1], [1,1,1,1,1,1,0,0,1,1,0,0,0,1], [1,1,0,1,0,0,0,0,0,1,1,0,1,1], [1,1,1,1,0,0,1,0,1,0,1,1,0,0], [0,1,0,1,1,1,0,1,0,0,0,1,1,0], [0,1,1,0,1,1,0,1,1,0,1,0,1,1] ]; // Read spiral counterclockwise const readSpiral = () => { const bits = []; const visited = Array(14).fill().map(() => Array(14).fill(false)); let row = 0, col = 0; let direction = 0; // 0: right, 1: down, 2: left, 3: up for (let i = 0; i < 196; i++) { bits.push(binaryMatrix[row][col]); visited[row][col] = true; // Try to continue in current direction let nextRow = row, nextCol = col; if (direction === 0) nextCol++; else if (direction === 1) nextRow++; else if (direction === 2) nextCol--; else nextRow--; // Check if we need to turn if (nextRow < 0 || nextRow >= 14 || nextCol < 0 || nextCol >= 14 || visited[nextRow][nextCol]) { direction = (direction + 1) % 4; if (direction === 0) nextCol = col + 1; else if (direction === 1) nextRow = row + 1; else if (direction === 2) nextCol = col - 1; else nextRow = row - 1; } row = nextRow; col = nextCol; } return bits; }; const spiralBits = useMemo(() => readSpiral(), []); const bitsToAscii = (bits) => { let result = ''; for (let i = 0; i < bits.length; i += 8) { const byte = bits.slice(i, i + 8); if (byte.length === 8) { const charCode = parseInt(byte.join(''), 2); result += String.fromCharCode(charCode); } } return result; }; const phases = { overview: { title: "Visão Geral do Puzzle", content: (

🎯 Objetivo

Resolver um puzzle criptográfico complexo para obter a chave privada de um endereço Bitcoin com 2.5 BTC (originalmente 5 BTC).

📍 Endereço do Prêmio

1GSMG1JC9wtdSwfwApgj2xcmJPAwx7prBe

🔄 Status Atual

O puzzle está parcialmente resolvido pela comunidade até a Fase 3.2, mas as etapas finais ainda são um mistério.

⚠️ Complexidade

Requer conhecimentos em: criptografia, matrizes binárias, cifras históricas, referências a filmes (Matrix), xadrez, e muito mais.

) }, phase1: { title: "Fase 1: Matriz Binária", content: (

Matriz 14x14 (lida em espiral anti-horária)

{binaryMatrix.map((row, i) => row.map((bit, j) => (
{bit}
)) )}

Resultado da leitura em espiral:

{bitsToAscii(spiralBits)}

Isso nos leva para: gsmg.io/theseedisplanted

) }, phase2: { title: "Fase 2: The Warning", content: (

🎵 Referência Musical

As imagens se referem à música "The Warning" do Logic:

🔐 Formulário Oculto

A página contém um formulário POST oculto que requer a senha:

theflowerblossomsthroughwhatseemstobeaconcretesurface

) }, phase3: { title: "Fase 3: Matrix Reloaded", content: (

🎬 Referência ao Matrix

URL extremamente longa que referencia uma fala do Merovingian.

"Choice is an illusion created between those with power and those without"

Senha: causality

🔑 Chave de 7 Partes

A próxima fase requer uma chave concatenada de 7 partes:

  1. causality
  2. Safenet (HSM reference)
  3. Luna (HSM reference)
  4. HSM
  5. 11110 (Executive Order JFK)
  6. 0x736B6E61... (Genesis block hex)
  7. B5KR/1r5B/2R5/... (Chess position)
) }, aesBlob: { title: "AES Blob - Fase Final", content: (

Blob AES Não Decodificado

Este é provavelmente o blob final que contém a chave privada!

Blob Base64: