SHA-256 Lab
kaufmann.agency · výzkumný dashboard
Co se děje
// Co právě děláme
$0.00
utraceno tento měsíc (limit $100)
0 %
Fáze
M0.6+B0
boundary ext. + B0 impl.
B0
UNLOCKED
not run
Full SHA256d
NOT TESTED
A_net N/A · bits_gain N/A
Mainnet
OFF
regtest only, plán
Kde jsme teď

M0 smoke proběhl 19.7.2026 a skončil NO-GO pro full-round SHA-256 jako ekonomický cíl těžby. 4 joby × 65 536 nonce, checkpointy r = 4,8,12,16,24,32,48,64. Žádná ze tří skutečně testovaných metrik (SAC, Walsh, přenositelnost mezi joby) nepřekročila náhodnou kontrolu — viz Deník.

Vedlejší nález: mezi r=4 a r=8 se výstup skokově mění z konstanty (na nonci vůbec nezávisí) na téměř nerozeznatelnou od náhody. Přesné zmapování téhle hranice je návrh pro M0.5 (zatím neschváleno, neběží).

Co hledáme

Přenositelný signál. Pokud AI dokáže říct „tento nonce je slibnější" a má pravdu i na datech co neviděla — máme signál (E_k > 1). Tahle část se ještě neměřila — M0 testoval jen matematickou strukturu (SAC/Walsh/ANF), ne model.

Bez signálu: projekt končí za centy. Se signálem: jdeme dál. Obojí je vědecký výsledek.

// Jak to probíhá
🔬
M0 smoke — Přesná matematika HOTOVO · NO-GO
4 joby × 65 536 nonce, 8 bitů, checkpointy r=4..64. SAC/Walsh/přenositelnost pod prahem — plný M0 (16j × 256 bitů, ~$0.22) se podle protokolu nespustil. Detaily v Deníku.
~$0.01 skutečnost · 19.7.2026
📐
M0.5 — Hranice kolapsu r=4..8 NAVRŽENO
Nový nález: mezi r=4 (výstup konstantní) a r=8 (nerozeznatelné od náhody) chybí data. Přesné checkpointy r=4,5,6,7,8. Discovery 8 jobů + confirmation 8 nových, ≥32 bitů, 95% cluster CI.
odhad <$0.02 · c7g.medium · čeká na souhlas
🧠
M1 — Malý model BRÁNA
Logistická regrese + malý MLP na r=5,6,7,8 (ne jen r=64): posune model hranici detekce za Walsh/SAC? Testuje se na jobech, které model nikdy neviděl.
odhad <$0.05 · stejný EC2 · jen po M0.5 OK
M2 — Nezávislé ověření BRÁNA
Čistý server, nové joby, zamčená konfigurace. Pokus o vyvrácení vlastního výsledku.
~$0.20 · nová instance
🚀
M3 — GPU test BRÁNA
Větší data, plných 64 kol. Jen po M2 OK, souhlas před spuštěním.
~$2–8 · g5.xlarge Spot
M4 — Větší pilot POZASTAVENO
2 000 jobů × 8 192 nonce. Jen pokud škálování odpoví na novou otázku.
$8–57 · zvláštní souhlas
Pravidlo: Před každým EC2 spuštěním Claude spočítá cenu a čeká na tvůj souhlas. GPU jen po M2.
// Náklady
Utraceno
$0.01
tento měsíc (M0 smoke)
M0.5+M1+M2
~$0.10
odhad zbytku
Zbývá
$100
měsíční budget
GPU (M3)
$2–8
jen po M2 OK
Ceník serverů (us-east-1)
c7g.medium — základní (1vCPU, 2GB)
$0.036/h
c7g.large — záloha (2vCPU, 4GB)
$0.073/h
c7g.xlarge — MLP (4vCPU, 8GB)
$0.145/h
g5.xlarge Spot — GPU A10G (M3+)
$0.44/h
Cena experimentu
M0 math (4h CPU)
~$0.18
M1 MLP (8h CPU)
~$0.35
M2 ověření (4h)
~$0.18
M3 GPU Spot (6h)
~$2.70
M0+M1+M2 celkem
~$0.70
// Výsledky experimentu M0
REAL DATA — 16 JOBS — 32 PROBE BITS — REDUCED-ROUND ONLY. M0.5 (r=4–8, 20.7.) + M0.6 (r=8–12, 20.7.) spojené v jednu křivku, r=8 je konzistenční bod (identický v obou bězích, seed=1005). Přesný bod kolapsu na matched-random podlahu: r≈10. Graf biasu odstraněn (starý placeholder nebyl reálný export). E_k čeká na M1a — dosud neběžel žádný model se správným JobState.
Lavinový efekt (SAC)
Smoke test měří 8 výstupních bitů (ne 256) → ideál = 4, ne 128. Naměřeno: SAC=0 přesně při r=4 (výstup ještě na nonci nezávisí), 4.00 od r=8 (odpovídá náhodné kontrole).
průměr jobů (skutečné)
ideál 4 (probe_bits=8)
Max Walsh koeficient |W| (normalizováno)
Při r=4 = 1.000 přesně — výstupní bit je konstantní funkcí nonce (ANF stupeň 0, viz níže), ne kryptografická slabina. Od r=8 spadne na ~0.013, shodně s náhodnou kontrolou.
max |W| / 65 536
prah náhody
Algebraický stupeň (ANF)
Stupeň PŘESNĚ 0 při r=4 (napříč všemi joby a bity) = výstup je konstanta, nonce se do něj ještě vůbec nepropsal. Od r=8 už ~15.6/16 — téměř maximální komplexita.
průměrný stupeň (skutečné)
max stupeň (skutečné)
Bias výstupních bitů — zatím simulace
P(bit=1) − 0.5. M0 smoke tenhle export zatím neměl v CSV. Doplní se v M0.5 spolu s r=5,6,7. Křivka níže je odhad, ne měření.
max |bias| přes bity
průměr |bias|
Distribuce leading zeros (r = 64)
Skutečná data, průměr přes 4 joby. Odpovídá geometrickému rozdělení 2⁻ᵏ velmi přesně (např. k=0: 32 784 vs. čekaných 32 768) — výstup se chová jako rovnoměrně náhodný.
naměřeno (skutečné)
očekáváno (2⁻ᵏ × 65536)
E_k — výhoda AI (po M1) — N/A
E_k = kolikrát více nízkých hashů obsahuje top-α% nonce podle modelu oproti náhodě. E_k = 1.0 = žádná výhoda. V M0 se skóre počítalo přímo ze skutečného bitu (oracle) — to dá mechanicky 2.0 pro cokoli vyvážené, nic to neříká o predikovatelnosti. Opraveno na N/A, čeká na skutečný model v M1.
E_k (k=8)
E_k (k=12)
baseline = 1.0
Jak číst výsledky (aktualizováno po M0 smoke)

Ostrý přechod r=4 → r=8: Při r=4 je výstup doslova konstanta (SAC=0, ANF stupeň=0, Walsh=1.000) — nonce (W3, vstupuje při kroku t=3) se do probovaných bitů ještě vůbec nepropsal. Od r=8 už jsou všechny tři metriky nerozeznatelné od náhodné kontroly. To NENÍ slabina SHA-256 — je to rychlost, jakou se dosáhne plné difuze.

SAC/Walsh závěr, přesná formulace: „V testovaném 16bit nonce prostoru a probovaných bitech nebyla od r=8 nalezena SAC/Walsh-detekovatelná struktura nad náhodnou kontrolou." Neznamená to, že žádná struktura jiného typu (nelineární, vícebitová, diferenciální) neexistuje — jen že tahle konkrétní metoda nic nenašla.

E_k zatím N/A: Primární endpoint (model vs. náhoda na nových jobech) se ještě neměřil. M0 testoval jen matematiku, ne AI model.

Další krok — M0.5 (navrženo): Přesné checkpointy r=4,5,6,7,8 najdou bod zlomu na kolo přesně. 8+8 jobů (discovery + confirmation), ≥32 bitů, s 95% cluster CI. Zatím neschváleno, EC2 neběží.

// Deník výzkumu
Průběžný, chronologický záznam metodiky, rozhodnutí a výsledků. Cílem je, aby projekt šel v kterémkoli bodě zopakovat nebo publikovat. Chyby a opravy se nemažou, jen doplňují — vč. cizí oponentury.
19.7.2026 — M0 smoke: příprava a spuštění

Cíl: zjistit levným testem (4 joby × 65 536 nonce, 8 probovaných výstupních bitů), jestli má smysl utratit ~$0.22 za plný M0 běh (16 jobů × 256 bitů). Kritéria GO/NO-GO zamčena předem ve verdict.rs, před spuštěním EC2 (c7g.medium, us-east-1, instance i-040e7791f3356e9d0, auto-terminace do 3 h).

Metodika: pro každý checkpoint r porovnáváme SHA-256 proti (A) náhodným booleovským funkcím stejné velikosti a (B) permutovaným výstupům SHA-256 — ne proti nule. Metriky: SAC (lavinový efekt), Walsh spektrum, ANF stupeň, influence matrix, distribuce leading zeros.

Výsledek: NO-GO. Všechna 4 zamčená kritéria selhala s velkou rezervou (SAC poměr 1.0003 vs. práh 1.05; Walsh poměr 1.24 vs. práh 2.0; 0 ze 4 jobů se signálem vs. práh 2). Plný M0 (~$0.22) se podle protokolu nespustil — smoke test za <$0.01 dal odpověď dřív, než bylo potřeba utratit víc.

20.7.2026 — Nezávislá oponentura a opravy

Výsledky prošly křížovou kontrolou u druhého AI modelu (GPT). Nálezy a opravy:

Bug ve verdict.rs: kritérium „SAC ≈ 128 @ r=48" porovnávalo naměřenou hodnotu proti konstantě 128, převzaté z konfigurace plného běhu (probe_bits=256 → ideál 128). Smoke ale běží s probe_bits=8 → správný ideál je 4. Diagnostikováno jako chyba jen ve verdiktu/prahu (ne ve výpočtu) — potvrzeno průchodem celého verdict.rs a main.rs: žádná jiná podmínka konstantu 128 nepoužívá. Raw data se přepočítávat nemusela.

Statistická rezerva místo intuice: poměr 1.0003 byl zprvu popsán jako „šum" bez čísel. Doplněno: cluster bootstrap 95% CI = [0.9999; 1.0008] (obsahuje 1.0), párový permutační test p=0.19 (n=4 joby → min. možné p=0.0625, test je s tímto počtem jobů poddimenzovaný). Závěr přeformulován: prakticky a ekonomicky bezvýznamné (~167× pod požadovaným prahem) nezávisle na statistické (ne)významnosti.

Citace Gohr, CRYPTO 2019: ověřeno přímo na eprint.iacr.org/2019/037. Gohr řešil diferenciální rozlišovač (pozná pár šifrovaných textů vzniklý ze zvolené diference od náhodného páru), ne přímé řazení nonce. Platný precedens pro „neuronka najde strukturu, kterou statistika nevidí" — ne přímý důkaz, že náš nonce-ranking přístup musí fungovat.

E_k byl ve skutečnosti E_1 s únikem oracle: „skóre" v M0 bylo přímo skutečným výstupním bitem (ne predikcí modelu) — pro vyvážený bit to mechanicky dá enrichment 2.0 pro cokoli (SHA-256, náhodu, permutaci stejně). V primárním reportu teď E_k @ r=64 = N/A, ne pozitivní/negativní výsledek. Nalezeno v main.rs i doslova: kód počítal leading_zeros() jednoho bitu (hodnota 0/1), ne skutečných leading zeros celého digestu — koncept Y_k (LZ≥k) se v enrichmentu vůbec nepoužíval, přestože v kódu existuje (lz_dist.csv ho počítá správně, jen není propojený).

Přesnější nález než původní „77.5× signál" při r=4: ANF algebraický stupeň při r=4 vyšel přesně 0 — napříč všemi joby a bity. Stupeň 0 = probovaný bit je v tomto bodě KONSTANTNÍ funkcí nonce (nonce, vstupující při kroku t=3, se do něj ještě vůbec nepropsal). Walsh poměr 77.5× při r=4 je matematický důsledek testování konstanty, ne kryptografická slabina. Od r=8 SAC, Walsh i ANF nezávisle souhlasí: nerozeznatelné od náhody.

Návrh dalšího kroku (M0.5, zatím neschváleno): přesné checkpointy r=4,5,6,7,8, aby se přechod z „konstanta" na „náhodné" zmapoval na kolo přesně. Discovery (8 jobů) + confirmation (8 nových jobů), ≥32 bitů, 95% cluster CI. Odhad: <3 min běhu, <$0.02. EC2 zatím neběží, čeká na souhlas.

20.7.2026 (pozdě) — Experiment B přepracován, archiv založen

Kritická chyba odhalena a opravena PŘED spuštěním: původní návrh Experimentu B (diferenciální distinguisher) počítal s plným součinem 4 joby × 65 536 párů × 8 kol × 16 delta = přes 33,5 milionu párů. Materializace jako float32 vstup (D1||D2) by potřebovala ~69 GB RAM — nešlo by to spustit na c7g.medium (2 GB). Chybu odhalila druhá nezávislá oponentura, ne interní kontrola.

Oprava: (1) cache digest[job][r][nonce] počítaná jednou, páry pak jen indexováním; (2) data pro model se generují po dávkách, nikdy vcelku; (3) 8 discovery jobů místo 4 (u 4 jobů závisí výběr delta na jediném validačním jobu); (4) rozdělení na tři fáze — B0 (levný logistický screening všech 16 delta na r=5,6,7,8, bez MLP), B1 (malý MLP jen pro ≤2 nejlepší kandidáty na kolo, D1⊕D2 jako předregistrovaný primární vstup), B2 (jednorázové potvrzení na nových jobech po zamčení všeho).

Odhad běhu B0 teď benchmarkovaný, ne odhadovaný: lokální test logistické regrese na reálném rozměru dat (16 384×512) = ~1.1 s/kombinace × 512 kombinací ≈ 10 min, ne "sekundy", jak jsem původně napsal. Cena přesto zůstává pod $0.02.

Klasifikace nálezů zavedena: LAB_REDUCED_HIT (běžný výstup lab experimentů, nikdy neznačit jako bitcoin) / FULL_SHA256D_TARGET_HIT (hit proti plnému síťovému targetu — u tohoto rozsahu projektu prakticky nedosažitelné, ale protokol existuje) / VALID_NETWORK_BLOCK (potvrzeno Bitcoin Core, teprve pak cokoli označit za odměnu). Plný protokol: dokumenty.radimkaufmann.com/crypto/PROTOCOL_finding_classification.md.

Archiv založen: dokumenty.radimkaufmann.com/crypto/ — struktura experiments/{m0-smoke, m05-boundary, b0-differential-screen, b1-neural-distinguisher, b2-confirmation}/, každý s manifestem, configem, reportem. M0.5 a B0/B1/B2 označeny STATUS: PREREGISTRATION / NOT RUN, dokud opravdu neběžely.

20.7.2026 (podvečer) — M0.6 doměřeno, přesný bod kolapsu r≈10

M0.5 proběhlo napodruhé (4. pokus) po třech bootstrap bugách (HOME unbound variable, curl/curl-minimal konflikt v dnf, špatně zabalený tarball bez adresářového prefixu) — všechny zdokumentované v `ATTEMPTS.md` v archivu. Validace proti 4 kritériím (reprodukce r=4, shoda random/permutation, hranice kolapsu, shoda discovery/confirmation) prošla čistě.

Oprava vlastní interpretace: "Walsh klesá geometricky" byl formulačně přehnaný závěr — správně jen "zrychleně". ANF 1,22 při r=4 je blízko lineárnímu stupni 1, ne nule.

M0.6 (r=8,9,10,11,12, stejný seed 1005 = stejných 16 jobů) doměřilo přesný bod kolapsu: Walsh 0,079(r=8) → 0,020(r=9) → 0,013(r=10) → 0,013(r=11) → 0,013(r=12). Kolaps na matched-random podlahu nastává při r≈10, ne při dřív odhadovaném r=8. r=8 vyšlo bit-přesně identické mezi M0.5 a M0.6 (14,521493749999998 v obou) — potvrzuje korektní reprodukovatelnost.

Web aktualizován na kanonický stav: fáze M0.6+B0, B0=UNLOCKED/NOT RUN, Full SHA256d=NOT TESTED, A_net/bits_gain=N/A, Mainnet=OFF. Graf výsledků teď ukazuje spojenou reálnou křivku r=4–12 (16 jobů, 32 bitů) místo staré 8bitové smoke škály. Graf biasu (byl placeholder) odstraněn s jasným N/A, dokud nebude mít pipeline skutečný export.

Odloženo: odstranění GPU/M3 karty z pipeline vizualizace a kosmetického EC2 launcheru — čeká na další úpravu webu, aby se dnešní zpráva nerozrostla přes únosnou míru.

Poznámka k reprodukovatelnosti: config, seed (42) a raw výsledky M0 smoke zůstávají nedotčené v s3://skynet-sha256-research/m0/smoke/. Žádný přepočet nepřepisuje původní soubory — opravy se archivují vedle originálu.
// EC2 servery · us-east-1
Před spuštěním: Probrat s Claudem cenu a čekat na souhlas. Max 1 instance. Disk se smaže automaticky.
Žádné servery neběží.
// Log akcí
Záznamy
Žádné záznamy.