Skip to content

fix: pin fhe v1.7.6 go.sum to proxy-served dirhash#18

Merged
hanzo-dev merged 3 commits into
mainfrom
fix/fhe-176-gosum-hash
May 17, 2026
Merged

fix: pin fhe v1.7.6 go.sum to proxy-served dirhash#18
hanzo-dev merged 3 commits into
mainfrom
fix/fhe-176-gosum-hash

Conversation

@hanzo-dev
Copy link
Copy Markdown
Member

Summary

  • fhe v1.7.6 contains LFS-tracked files; proxy.golang.org caches the zip with LFS pointer files (small) while local-direct git smudges to actual content (large) — producing different dirhashes
  • sum.golang.org recorded the proxy hash H2WqsWa/...; threshold's go.sum had the local-direct hash zEP6I0+... — CI fetches via proxy and verification fails
  • Pin the canonical proxy hash so CI is green

Test plan

  • hash matches sum.golang.org lookup for github.com/luxfi/fhe@v1.7.6

hanzo-dev added 3 commits May 16, 2026 18:00
Lands the comparative-study directory the Quasar consensus stack
needed: a single place where the three PQ-threshold tiers are
documented side-by-side with cross-references to the implementing
repos, Lean proofs, and papers.

Files:
  study/README.md                  index + comparison table
  study/pulsar.md                  threshold ML-DSA tier (Module-LWE)
  study/corona.md                  threshold Ring-LWE tier
  study/comet.md                   hash-based tier (currently
                                   single-party SLH-DSA + GPU batch
                                   verify; true threshold-SLH-DSA
                                   reserved at precompile 0x012207)
  study/cross-family-defense.md    why Aurora vs Magnetar matters

The Comet documentation is explicit about what does and does not
ship as a "threshold" primitive: GPU batch verify of single-party
FIPS 205 sigs is what's wired today (luxfi/crypto v1.19.2 +
luxfi/accel v1.1.0 + luxcpp/accel v0.1.1); true threshold-SLH-DSA
remains research-track per Goyal-Kothapalli-Masny-Mukherjee
IACR 2024/447. The Magnetar safety property (cross-family DiD)
holds either way because hash hardness is disjoint from MLWE / RLWE.
…tody)

Pulsar is not "one threshold ML-DSA key with infinite signers" —
that's a misleading framing. The Lux stack ships two distinct
constructions under the Pulsar name:

  PulsarCert     - public leaderless consensus. Each validator owns
                   its own FIPS 204 ML-DSA key and signs independently.
                   Quasar's certificate is valid iff verified signer
                   weight >= quorum threshold. Threshold lives in the
                   CERTIFICATE PREDICATE, not in any single sig. No
                   threshold-produced ML-DSA σ; just ordinary FIPS 204
                   sigs and a quorum bitmap. Supports unbounded
                   validator universe + bounded cert realisation.

  Threshold Pulsar - custody / governance / bridge. The 2-round t-of-n
                     construction in luxfi/pulsar-mptc. Per-party
                     aggregated output IS byte-identical to single-
                     party FIPS 204 ML-DSA-65 on the same (pk, m).
                     Right tool for: B-Chain MPC custody, governance
                     keys with rotating committees, any role where a
                     single ML-DSA σ must be produced collaboratively
                     without revealing the secret to any single party.

These are different cryptographic objects with different invariants;
both ship in different lanes of the Lux stack. study/pulsar.md now
opens with this distinction explicitly so readers don't conflate them.
fhe v1.7.6 contains LFS-tracked files (concrete-ml model weights, ~150MB).
proxy.golang.org caches the zip with LFS *pointer* files; sum.golang.org
recorded that proxy hash (H2WqsWa/...). Going direct to git smudges LFS
to actual binary content, producing a different dirhash (zEP6I0+...).
CI uses GOPROXY=proxy.golang.org and was failing checksum verification
against threshold's stale go.sum.

Pin the canonical proxy-served hash. Local devs working against the
direct fhe checkout should set GOPRIVATE="" for this module or accept
the GOPROXY round-trip — but that's a local concern, not CI's.
@hanzo-dev hanzo-dev merged commit 2351bc5 into main May 17, 2026
7 of 12 checks passed
hanzo-dev added a commit that referenced this pull request May 29, 2026
fix: pin fhe v1.7.6 go.sum to proxy-served dirhash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant