38 Commits
Author SHA1 Message Date
zeekay 2806639fd7 chore: sync working tree
Commits 1 outstanding change(s) that were sitting uncommitted.
No build artifacts and no secrets in the changeset (both checked).
2026-07-26 10:13:23 -07:00
zeekay 35f3f5607f fix(deps): repair the module graph + patch the AWS EventStream DoS
`go build ./...` failed with "missing go.sum entry for module providing
package" (ntt_simd.go) — the go.mod was out of sync with the imports, so
individual `go get`s just walk further down the chain; tidy is the fix.

Also patches the panic-driven denial of service in the AWS SDK for Go v2
EventStream decoder: eventstream v1.7.8, service/s3 v1.97.3 (minimum patched,
so the change carries the fix and nothing else).

Verified: go build ./... goes from exit 1 to exit 0.

go test ./... is 4 ok / 2 FAILING. Those 2 are not a regression here — the
packages could not compile before, so their tests never ran; repairing the
build makes pre-existing failures reachable. Stated explicitly rather than
reporting only the build fix, since a green build with red tests reads as
"done" when it is not.
2026-07-26 06:48:00 -07:00
zeekay 3445871b2e fix(deps): correct moved-tag hashes for luxfi modules in go.sum
Several luxfi versions carry TWO different contents across this workspace,
because published tags were moved instead of a new patch being cut:
age@v1.5.0, pq@v1.0.3, threshold@v1.9.4, zap@v0.6.0, zap@v0.8.1.

Adjudicated before editing, since "checksum mismatch / SECURITY ERROR" is also
what a real supply-chain attack looks like. It is not one here: sum.golang.org
holds the OLD hash while proxy.golang.org and a direct fetch BOTH serve the same
NEW bytes. Two independent transports agreeing means nothing is rewriting
content in flight — the tag moved at source. The sumdb entry is a fossil:
GOPRIVATE covers github.com/luxfi/* with GOSUMDB=off, so our own modules never
consult the checksum DB and a moved tag splits consumers silently.

The old bytes are served by nothing now, so a stale pin can never build.
Corrected to the only content that exists, in BOTH line forms (h1: and
/go.mod h1:) — Go reports these one at a time, so a partial fix just relocates
the error.

Deliberately no `go mod tidy`: this changes no selected version, only the
recorded hash of versions already chosen.

Verified: `go list -m all` resolves with no checksum error.

The durable fix is upstream: never move a published tag, cut x.y.z+1 instead.
2026-07-26 02:47:39 -07:00
zeekay 7c525d8a73 chore(deps): bump geth v1.20.1 + luxfi deps — stack unification 2026-07-26 02:47:39 -07:00
zeekayandHanzo Dev 62bf2166ba fix(deps): repair vanished pins / go.sum drift ( age@latest gosum-refresh) + build green
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-30 13:56:20 -07:00
zeekay f042702c77 Merge branch 'audit/fchain-tfhe-threshold' 2026-06-30 13:56:02 -07:00
zeekay 9624abb0d2 docs(threshold): decomplect the threshold-FHE package — one canonical path
Establish exactly one way to do each thing and fence off the legacy primitives:

- doc.go (new): package overview. DealerlessKeyGen is THE production keygen
  (dealerless); PartialDecryptLWE/CombineLWE is THE threshold decrypt
  (no-reconstruct); ShareLWESecretKey is a trusted-dealer test oracle only.
  Documents the F ⊥ M boundary (this package is FHE-only; MPC signing lives in
  luxfi/threshold) and the dealerless-bootstrap-key residual (homomorphic
  compute), stated honestly, not faked.

- keygen.go: re-document GenerateSharedKey. It is a TRUSTED-DEALER key-COMMITMENT
  VSS that shares the SHA-256 hash of the key — useful for verifiable-sharing
  audit, NOT usable for threshold decryption. Marked Deprecated for the keygen
  role; points to DealerlessKeyGen. Removes the misleading 'distributed key
  generation … for now we generate keys and split them' framing.

- partial_decrypt.go: label ShareLWESecretKey as TRUSTED-DEALER (retained as a
  KAT oracle); point to DealerlessKeyGen for production.

No behaviour change; kernel tests green.
2026-06-28 07:20:08 -07:00
zeekay bc34033354 feat(threshold): dealerless trustless threshold-FHE keygen (no trusted dealer)
Closes the one trustless gap in the threshold-FHE stack. partial_decrypt.go
was already NO-RECONSTRUCT (the master secret s only ever appears masked behind
c_1·s), but ShareLWESecretKey assumed a TRUSTED DEALER: one process samples the
whole FHE secret key and Shamir-splits it. That instant of single-party custody
violates the trustless-by-default law (no dealer + no-reconstruct), the same
standard Corona/Pulsar/Magnetar are held to.

DealerlessKeyGen removes the dealer. GJKR/Pedersen DKG structure specialised to
the RLWE/LWE secret, composed with the audited Lattigo multiparty CKG:
  - each party samples its OWN contribution s_j; collective secret s = Σ s_j
    is never formed by any party or by this package;
  - collective LWE public key p = Σ(-a·s_j + e_j) = -a·s + e via lattice CKG
    (dealerless, format-identical to the library's pk);
  - t-of-n shares: each party coeff-wise Shamir-splits its OWN s_j; recipients
    sum sub-shares to a degree-(t-1) Shamir share of s — producing exactly the
    LWEShare type the proven PartialDecryptLWE/CombineLWE kernel consumes.

Per-party API (DealerlessParty.DealRound1/Aggregate, SampleDealerlessCRP,
AssembleCollectivePublicKey) for distributed deployment + a one-shot driver.
Wire types (PublicKeyShareMsg/SubShareMsg) carry only public/share data, never
a SecretKey. DRY: ShareLWESecretKey now reuses the shared dealing helpers.

Proven (dealerless_dkg_test.go, all green incl. -race, 3-of-5 PN11QP54):
  - E2E trustless lane: dealerless DKG → public-key encrypt → t-of-n partial
    decrypt → combine → correct plaintext (2-of-3, 3-of-5);
  - below-threshold (t-1) cannot decrypt;
  - no party holds s: two t-subsets reconstruct the same secret, no share == s;
  - CRP deterministic per consensus seed (validators converge), seed-bound;
  - transport carries no secret (reflect gate);
  - no-reconstruct structural gate (go/ast) over the keygen+decrypt surface,
    with a negative control proving the gate has teeth.

Scope: F-Chain confidential-DECRYPT lane (encryption key + t-of-n shares). The
dealerless FHEW bootstrap/eval key (homomorphic COMPUTE) is a separate
multiparty-FHEW protocol, documented as the residual — not faked here.
2026-06-28 07:20:07 -07:00
Zach Kelling 6097ab3461 fix: use published mdns v0.1.0 and remove local replace directive 2026-02-20 21:15:54 -08:00
Zach Kelling 93a2cd9e55 chore: standardize LLM.md/CLAUDE.md convention 2026-02-17 19:05:20 -08:00
Zach Kelling 961c42e204 feat: add FHE example apps for all Pars PIPs
- data-seal: Verifiable Data Integrity Seal (PIP-0010/LP-0535)
  FHE-encrypted tamper-proof sealing with Public/ZK/Private modes,
  batch sealing, homomorphic verification

- content-provenance: AI & Media Content Provenance (PIP-0011/LP-7110)
  Model manifests, output attestation via homomorphic comparison,
  media derivation DAGs

- encrypted-crdt: Encrypted CRDT (PIP-0013/LP-6500)
  LWW-Register with FHE values, OR-Set with tag-based add/remove,
  Lamport timestamp conflict resolution, deterministic merge

- shadow-governance: Shadow Government Protocol (PIP-7010)
  Anonymous ministries, encrypted voting with homomorphic tallying,
  nullifier-based anti-fraud, quorum enforcement

Each example includes Solidity contracts, Hardhat tests, CLI tasks,
and README linking to corresponding PIP and LP specifications.
2026-02-13 14:16:46 -08:00
Zach Kelling b6f42849c1 feat: add FHE example applications for sealing, voting, media auth, provenance, CRDTs, and statistics
Six production-ready example applications demonstrating the FHE library:
- cmd/seal: document integrity sealing with encrypted verification
- cmd/vote: encrypted voting system with threshold tallying
- cmd/mediaseal: media content authentication with FHE
- cmd/provenance: AI model provenance tracking with encrypted attestation
- cmd/crdt: encrypted LWW-Register for fheCRDT architectures (LP-6500)
- cmd/stats: secure multiparty statistics over encrypted data

Also pins luxfi/mdns to v0.1.0 and excludes compiled binaries from git.
2026-02-13 12:44:18 -08:00
Zach Kelling 148b20c2c7 refactor: convert to Go bindings only
Remove all submodules and non-Go content.
JS SDKs, plugins, templates, and examples live in their own repos.

Kept:
- Go FHE library (*.go)
- cmd/, pkg/, internal/
- docs/, bin/
2026-01-27 14:41:31 -08:00
Zach Kelling 83c0c3be91 rebrand: final cleanup Zama/Fhenix → Lux/LuxFHE
- Update all submodule references
- Fix ml/extensions LICENSE
- Fix ml/torus-ml CONTRIBUTING and Dockerfiles
- Fix sdk/relayer relayer URL
- Fix proto/decryption-oracle go.mod
- Rename fhevm-suite assets to Lux
- Update fhevm-suite LICENSE
2026-01-27 14:16:17 -08:00
Zach Kelling b10a38e0b7 Update all submodules: Zama/Fhenix → Lux/LuxFHE rebrand
Submodules updated:
- examples/smart-wallet: Fhenix → LuxFHE
- examples/kuhn-poker: Fhenix → LuxFHE
- plugins/remix: Zama → Lux
- templates/vue: Zama → Lux
- templates/nuxt: Fhenix → LuxFHE
- templates/foundry: Fhenix → LuxFHE
- templates/miniapp: Fhenix → LuxFHE
- mocks/foundry: Fhenix → LuxFHE
- js/permit: Fhenix → LuxFHE
2026-01-27 10:51:58 -08:00
Zach Kelling 71df92cb9e Rebrand: Remove Zama/Fhenix references
- plugins/remix: Zama → Lux CSS classes and URLs
- templates/vue: Zama → Lux URLs
- templates/foundry: fhenix → luxfhe remappings
- templates/nuxt,miniapp: fhenix → luxfhe
- js/permit: fhenixjs → luxfhejs
- mocks/foundry: fhenix → luxfhe remappings
- scripts/flatten-repos.sh: fhenixprotocol → luxfhe
- ml/torus-ml: Update spelling dictionary
2026-01-27 10:50:30 -08:00
Zach Kelling 467cf87ac2 Rebrand: Zama → Lux in scripts and docs
- Update GitHub org refs (zama-ai → luxfhe)
- Update PyPI URLs (pypi.zama.ai → pypi.lux.network)
- Update company name in docs
2026-01-27 10:35:11 -08:00
Zach Kelling fe4963bd12 Rebrand: Zama → Lux in TestTorusMLX
- Update copyright headers
- Update bundle identifiers
- Update API URLs
2026-01-27 10:34:48 -08:00
Zach Kelling c5dd14493e Complete Concrete→Torus rebrand
- Update migrate-zama.sh script
- Update ml/torus-ml submodule
- Update ios-demo submodule
2026-01-26 20:58:37 -08:00
Zach Kelling 9f7326f9c4 Complete Concrete→Torus rebrand in all files
- Update all requirements.txt files
- Update all GitHub workflow files
- Update Makefile and federated_learning/Makefile
- Update script files (shell scripts)
- Update deps_licenses files
- Rename raw_cml examples to raw_tml
2026-01-26 20:58:18 -08:00
Zach Kelling 2d521b827f Update ios-demo submodule (docs rebrand) 2026-01-26 20:53:05 -08:00
Zach Kelling 80590865fb Rebrand: ConcreteML → TorusML
- Rename TestConcretMLX/ to TestTorusMLX/
- Update rust/src/lib_python.rs module name
- Update WASM test imports
- Update CI workflow references
- Update Makefile targets
2026-01-26 20:50:15 -08:00
Zach Kelling 9b81ae13ef Rename CiphertextFormat.CONCRETE to TORUS 2026-01-26 18:43:04 -08:00
Zach Kelling 61d6b39157 Fix all remaining Concrete references in Python and docs 2026-01-26 18:41:32 -08:00
Zach Kelling dbcce73c7e Fix remaining Concrete → Torus references 2026-01-26 18:40:19 -08:00
Zach Kelling 0d5006ac29 Complete concrete → torus rename across all files 2026-01-26 18:39:19 -08:00
Zach Kelling e04b987975 Complete Torus ML rebrand - update all Python imports, docs, and file names 2026-01-26 18:38:13 -08:00
Zach Kelling ad6624eb92 Update biometrics to use torus-numpy 2026-01-26 18:36:17 -08:00
Zach Kelling 79f3069091 Rename Concrete ML to Torus ML 2026-01-26 18:35:22 -08:00
Zach Kelling c6df5cc9be Update contact email to fhe@lux.network 2026-01-26 18:27:03 -08:00
Zach Kelling 994fb86204 Update pyproject description to Lux FHE 2026-01-26 18:24:31 -08:00
Zach Kelling b304242857 Fix tfhe dependency URL to luxfhe org 2026-01-26 18:20:10 -08:00
Zach Kelling 9f1a8eea55 Update all submodules with Lux FHE rebrand 2026-01-26 18:18:07 -08:00
Zach Kelling 113f06f946 Clean up legacy references in documentation
- Update docs to use Lux FHE terminology
- Clean test suite documentation
- Update ML extension references
2026-01-26 17:57:15 -08:00
Zach Kelling 78ac6fd6f1 Remove legacy PDFs, link to external archives 2026-01-25 14:19:24 -08:00
Zach Kelling 0c84af1ad6 Clean remaining legacy references from test suite 2026-01-25 14:02:41 -08:00
Zach Kelling e7d662e158 Complete Lux FHE rebrand 2026-01-25 13:58:30 -08:00
Zach Kelling ad788e042a Add ThresholdRNG for threshold randomness 2026-01-25 10:05:32 -08:00