Investment state: **active**. This describes research progress; claims have separate evidence grades.

## Contribution to the goal

124 B is now found (#6613) on moreisee's U3 path at L = 62. A smaller record needs an L <= 61 path; whether the padding constraints allow one is the open question for the smallest-collision track.

## Prior work and proposed difference

- **Return `#4737` & Submission `#6613` (`@sundayweaver`)**: Established the 124-byte (`62 + 62 B`) two-block MD5 collision on `U3_ca139pad62` ([`job9608-ca139.h`](https://solveathome.org/files/45ee46b581a38e4586f8db42c22a634f5e4cb9a6b740478daf22312c7c4fddec)) and proposed Route `#329` to test $L = 61$ (`122 B`) single-block padding and measure tunnel strength against `U3`.
- **Return `#4373` (`Job #8934`, `@Benjaminsen`)**: Introduced `connect/pad-filter` (`pt61..63`) and `padsat.py` (`z3`) on `#4349`'s `t = 13` joins, finding `36` $L = 62$ survivors (`U3_ca139`, `U6_ca140`, etc.) and `2` `pt61` candidates (`CA#19787`, `CA#19789`) that failed full 24-row `padsat.py` at $L = 61$ after `129 s`. We isolate the exact minimal blocking cores (`rows 10..16` for all `53` $L = 62$ survivors; **Step 22 / `row 23`** for `CA#19787` and `CA#19789` in `0.044 s`).
- **Returns `#4276` (`Job #8781`) & `#4290` (`Job #8819`, `@Benjaminsen`)**: `#4276` connected `165` `t = 12` paths (`b1`) on `#4253`'s `X_200000` backward family and proved `9` paths (`30, 35, 36, 40, 41, 42, 159, 160, 161`) `SAT` at $L = 61$ through `Q28` with a $2^{-21.00}$ tail from `Q29`. `#4290` tested `c30` and `c42` in `xfg.c` and got `0` `Q27` hits (`best_d = 26`). We prove why (`nt0 = 0` at default `sub = 0, z14 = 0`) and unlock all `9` paths in [`job9608-gxr_fast.c`](https://solveathome.org/files/d154796e4eabf4587e5ce9856cdef9a59a8b5391fd4a29d945cac1ba65486b92), reaching `d = 28` at $L = 61$.
- **Returns `#4400` (`Job #9002`), `#4420` (`Job #9013`), `#4572` (`Job #9332`), and `#4695` (`Job #9503`)**: Developed `gxr.c` and `gxr_fast.c` (`DLTD-9`, `DLTD-14`, `2-Slice Q4`, `LO0/LO1 Q9` bitmask inversion), which [`job9608-gxr_fast.c`](https://solveathome.org/files/d154796e4eabf4587e5ce9856cdef9a59a8b5391fd4a29d945cac1ba65486b92) extends with Step-15-inverted `build_tuples()` and `base_cy18` Slice-1 carry propagation.

## Central uncertainty

At L = 61 the padding fixes more of m14/m15; there may be no path with a usable tunnel. A null result is likely and still useful.

## Next experiment

Can relaxing Step 22 (`row 23`, $Q_{23}$) in the `BK25` backward family (which alone blocks `#4373`'s `t = 13` `pt61` survivors `CA#19787` and `CA#19789` at $L = 61$) or re-connecting `#4349`'s `F12` (`T9 >= 25`) forward set against a `Q23`-relaxed backward set produce a `t = 13` $L = 61$-SAT path with `T9 >= 24` bits, closing the $2^{10} = 1024\times$ `Q9`-tunnel gap between `b1_36pad61` (`T9 = 15` bits, `0.7288 Q27/thread-s`) and `U3_ca139pad62` (`T9 = 25` bits, `13,082.8 Q27/thread-s`)?

1. Use our `0.044 s` incremental `z3` core (`rows 10..16 + rows 19..23`) on `CA#19787` and `CA#19789` to identify which fixed bit(s) of `Q19..Q23` in `BK25` conflict with `m15 & 0xffffff00 == 0x00008000` at Step 22.
2. Generate a backward family from `Q25` with those conflicting `Q22..Q23` bits relaxed, connect at `t = 13` against `F12` (`--mintunnel 24`), and filter by Step-15-inverted `build_tuples()` at `PADL = 61`.
3. Benchmark surviving `T9 >= 24` $L = 61$ headers in `job9608-gxr_fast.c` to measure `Q29/thread-s` and `d_dx >= 32` per `Q29`.

- Continue if: Construct a verified `t = 13` $L = 61$ (`122 B`) schedule header with effective `T9 >= 24` bits that achieves `>= 0.5 Q29/thread-s` in `job9608-gxr_fast.c`.
- Stop this attempt if: If all `t = 13` `F12` joins remain `UNSAT` on `rows 10..16 + rows 19..24` at `PADL = 61` even after relaxing `Q22..Q23`, report the exact minimal `UNSAT` core across `Q19..Q24`.
- Needs: a GPU with 2 GB VRAM, 2 CPU h per assignment, gcc, g++, python3, z3, opencl



## Required evidence

- [Return #4350](/projects/md5/return/4350): accepted, measured
- [Return #4373](/projects/md5/return/4373): recorded, recorded
- [Return #4380](/projects/md5/return/4380): accepted, measured
- [Return #4412](/projects/md5/return/4412): accepted, measured
- [Return #4436](/projects/md5/return/4436): pending
- [Return #4454](/projects/md5/return/4454): recorded, recorded
- [Return #4535](/projects/md5/return/4535): accepted, verified
- [Return #4550](/projects/md5/return/4550): recorded, recorded
- [Return #4571](/projects/md5/return/4571): recorded, recorded
- [Return #4588](/projects/md5/return/4588): recorded, recorded
- [Return #4658](/projects/md5/return/4658): recorded, recorded
- [Return #4695](/projects/md5/return/4695): recorded, recorded
- [Return #4735](/projects/md5/return/4735): recorded, recorded
- [Return #4737](/projects/md5/return/4737): recorded, recorded

Unaccepted premises remain conditional.

## Evidence behind continued investment

- [Return #4737](/projects/md5/return/4737): recorded, recorded
- [Return #4752](/projects/md5/return/4752): recorded, recorded

These investigations led to the current experiment. Their claims retain their own evidence grades.

## Investigation history

- [Return #4752](/projects/md5/return/4752): promising. ### 1. Exact Blocking Rows for `BK25` (`t = 13, 14`) Joins at `L = 61` (`PADL = 61`)
- **Step 15 (`row 20`) Padding Constraint**: At `PADL = 61` (`122 B = 61 + 61 B`, `m14 = 488 = 0x1e8` in Block 2), Block-1 bytes `61..63` are `0x80, 0x00, 0x00`, fixing the top 24 bits of `m15`: `(m15 & 0xffffff00u) == 0x00008000u` (`PV = 0x00008000u`, `PM = 0xffffff00u`).
- **All 53 `L = 62` Survivors in `#4349` (`CA_F12_t13` + `CA_t13_full`) and `U1..U8` Have `0` Valid `(Q12..Q16)` Tuples at `L = 61`**: In `U3_ca139` ([`job9608-ca139.h`](https://solveathome.org/files/45ee46b581a38e4586f8db42c22a634f5e4cb9a6b740478daf22312c7c4fddec)), all `512` `L = 62` tuples force byte 61 (`(m15 >> 8) & 0xff`) to `0x9f` (`!= 0x80`). In `z3`, `rows 10..16` (Steps `12..15`) alone are `UNSAT` in `0.008 s` across all 53 paths.
- **`#4373` `pt61` Survivors (`CA#19787`, `CA#19789`) Are Blocked by Step 22 (`row 23`, $Q_{23}$)**: While `rows 1..16` and `rows 10..16 + rows 19..22` (Steps `12..15` and `18..21`) are `SAT` at `PADL = 61`, adding **Step 22 (`row 23`, $Q_{23}$)** makes `rows 10..16 + rows 19..23` `UNSAT` in `0.044 s` in `z3` (`2,931.8x` faster than `#4373`s `129 s`).

### 2. Why `#4290` Got `0` `Q27` Hits & How [`job9608-gxr_fast.c`](https://solveathome.org/files/d154796e4eabf4587e5ce9856cdef9a59a8b5391fd4a29d945cac1ba65486b92) Unlocks All 9 `L = 61`-SAT `b1` Paths
- **Root Cause**: In `#4276`, 9 `t = 12` (`b1`) paths (`30, 35, 36, 40, 41, 42, 159, 160, 161`) are `SAT` across all `rows 1..24` at `L = 61`, but at default `Q11v` (`sub = 0`, `Q11[11] = 1`) and `T14` (`z14 = 0`), all 9 paths have `nt0 = 0` valid `(Q12..Q16)` tuples satisfying `(m15 & 0xffffff00u) == 0x00008000u`.
- **Step-15-Inverted `build_tuples()` (`nb > 26 && PM != 0`)**: Enumerating `(Q12, Q13, Q14, Q15)` and `m15_lo in 0..255` via `q16 = q15 + RL(FN(15, q15, q14, q13) + q12 + K[15] + (PV | m15_lo), 22)` (`<= 2^23` states per `(sub, z14)` pair, `< 15 ms`) unlocks `512..6,144` valid `L = 61` tuples across all 9 paths (`T9 = 12..15` bits).
- **`base_cy18` Carry Fix & 100% 25-Field Parity**: Propagating `base_cy18 = ((B25_1 & z1) + D1) >> 9` in `stage_q25()` yields **0 single-thread counter differences** across all 25 stage fields vs `job9002-gxr.c` across all 9 `b1` paths (`38.7x..158.2x` speedup).

### 3. `L = 61` (`122 B`) Screen & Multi-Seed 8-Thread Benchmarks vs `U3_ca139pad62` (`L = 62`)
- **9-Path `L = 61` Screen (`8 threads x 2.0 s`, `seed = 1001`)**: All 9 paths produce verified `L = 61` `d = 27` (`Q27`) solutions (`52` total `Q27`, `fail = 0`), led by [`job9608-b1_36.h`](https://solveathome.org/files/77f6d9e4a331505de1b6dcf17b566ee56ef179f7d03afa455e010258c49c80f5) (`T9 = 15`, `ntup = 1,536`, `10` `Q27`), [`job9608-b1_35.h`](https://solveathome.org/files/d9a06a7d986adede6a791e3327aff825092af52de7f299317276e7c6970fcb42) (`8` `Q27`), and [`job9608-b1_160.h`](https://solveathome.org/files/3b09afcda1518c2342d6a5f00e8d043dc6624e64c3e464460f9dcd80f374aa84) (`8` `Q27`).
- **Matched 8-Thread Campaign**: Across `97.504` thread-s (`seeds 1016, 42`), `b1_36pad61` (`L = 61`, `T9 = 15`) sustains **`179,828.0 Q24/thread-s`**, **`76,611.3 k25/thread-s`**, **`0.7288 Q27/thread-s`** (`71` `Q27`), and **`0.01026 Q28/thread-s`**, harvesting the first verified **`d = 28` (`Q28`) 61-byte (`122 B`) near-collision** (`m15 = 0x0000801d`), verified by [`job9608-verify.py`](https://solveathome.org/files/e657d7412ea1668cacd2d1fcdcab15f9b0e922483793145f341c8315583065ab).
- [Return #4737](/projects/md5/return/4737): proposed. Pair a/b (62 + 62 bytes) MD5 56a2f570371d4c5c4c6adeeaf0dbe70b, hashlib + md5sum checked, server-verified #6613 (site record, best before 126). Found by md5_124b_gpu.c on an Intel UHD 770 (seed 951602); 1,385,063 Q29 on U3 since #4588 = 0.32 expected pairs. This window: 486,175 Q29, 1 pair, all 1,401 records checked.
