mirror of
https://github.com/luxfi/chains.git
synced 2026-07-27 03:39:41 +00:00
4571c38a4aa31c37626a13c25533b576a8d51ad2
Signing used the key's whole participant set, so a 3-of-5 key signed with five parties. That works, but it never exercises the quorum: a key that was accidentally degree-3 would sign identically, which is precisely the failure this VM exists to catch. RunSign now selects K signers by ranking participants on H(tag ‖ keyID ‖ digest ‖ party) and taking the first K. The selection is a pure function of the task, so every node — signer or not — computes the same quorum and the same ceremony id with no election. Ranking by digest rather than taking the first K in canonical order spreads signing across the committee instead of loading the same K parties for every transfer, and stops an adversary steering which subset signs a message it does not control. Nodes outside the quorum return ErrNotInQuorum and verify the result like any other validator. Verify deliberately does not pin WHICH K-subset signed. The signature verifies under the group key or it does not, and an adversary who can produce one already holds K shares, so constraining the subset buys no security while leaving it open lets availability-aware reselection ship later without a consensus change. TestBridgeCustody_ThreeOfFive is the gate: five validators run a real CGGMP21 DKG over the gossip fabric at degree 2, exactly three sign, two decline, the signature verifies under the group key, a block carrying it is verified and accepted by all five — including the two that never touched the ceremony — and every node ends on the same state root. Co-authored-by: Hanzo Dev <dev@hanzo.ai>
Lux Chains
Independent VM plugin binaries for the Lux Network.
Each directory builds to a standalone binary that the Lux node loads as a plugin via --plugin-dir.
Build
make # build all VMs
make evm # build one VM
make test # test all
Install
lpm install evm
lpm install dexvm
Or copy binaries to ~/.lux/plugins/<vmid>.
VMs
| VM | Chain | Purpose |
|---|---|---|
| evm | C-Chain | EVM smart contracts |
| dexvm | D-Chain | Decentralized exchange |
| aivm | A-Chain | AI/ML inference |
| bridgevm | B-Chain | Cross-chain bridge |
| graphvm | G-Chain | GraphQL data layer |
| identityvm | I-Chain | Decentralized identity |
| keyvm | K-Chain | Key management |
| oraclevm | O-Chain | Oracle/off-chain data |
| quantumvm | Q-Chain | Post-quantum consensus signing (Pulsar) |
| relayvm | R-Chain | Cross-chain relay |
| servicenodevm | S-Chain | Service node registry |
| teleportvm | T-Chain | Unified teleport (bridge + relay + oracle) |
| mpcvm (MPC) | M-Chain | MPC ceremonies (CGGMP21, FROST, Pulsar-general) — bridge custody for external wallets |
| mpcvm (FHE) | F-Chain | FHE compute + TFHE bootstrap-key generation (encrypted EVM) |
| zkvm | Z-Chain | Groth16 over BLS12-381 (rolls N × ML-DSA-65 sigs into 192-byte proof) |
Languages
Go
97.6%
C
2.3%
Shell
0.1%