chains/thresholdvm: reconcile naming to LP-134/LP-7050 (kill teleportvm falsehood)

thresholdvm is a shared LIBRARY substrate, not a chain. Fix the stale/false
naming across the package to the canonical model:

- factory.go: the VMID comment claimed "T-Chain is reserved for TeleportVM,
  not yet built" — FALSE per LP-7050. There is no teleportvm and no T-Chain;
  teleport IS bridgevm (B-Chain, LP-6000). Rewrote to describe the value as
  the shared substrate VM consumed by M-Chain (mpcvm) + F-Chain (fhevm).
- vm.go: package doc dropped the "mode"/"T-Chain label" framing for the
  library-substrate description; both M and F consume it, neither is T.
- README.md / DESIGN.md / docs/M_CHAIN_INTEGRATION.md: removed the repeated
  false claim that the "T-Chain" name is retained for a standalone
  teleportvm (LP-6332). LP-6332 is superseded by LP-6000 (bridgevm) per
  LP-7050 §3. Reframed the M/F split as two chains consuming this library
  rather than one VM switched by mode.
- LLM.md: corrected the "deprecated T-Chain shim / one-epoch grace-window
  migration" prose — T-Chain was never launched with live state (clean
  forward split, no migration), and vm.go/factory.go/fhe/ are the shared
  library substrate M/F consume, not a T-Chain shim.

No code behavior changes; comments/docs only.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
2026-07-03 00:42:35 -07:00
co-authored by Hanzo Dev
parent c63135e724
commit 1c591e326c
6 changed files with 44 additions and 28 deletions
+10 -7
View File
@@ -226,14 +226,17 @@ or boot-time failure, not a silent semantic bug.
## 11. References
Per LP-134 (Lux Chain Topology), the legacy T-Chain monolith is split into
two operational chains served by this same `thresholdvm` substrate:
Per LP-134 (Lux Chain Topology) and LP-7050 (Supersession Map), T-Chain is
fully removed. Its threshold concerns decompose onto two chains that import
this same `thresholdvm` **library** substrate in process:
- `thresholdvm` in **MPC mode → M-Chain** (CGGMP21, FROST, Corona-gen).
- `thresholdvm` in **FHE mode → F-Chain** (TFHE keygen, encrypted EVM).
- **M-Chain** (`mpcvm`, LP-7100) — CGGMP21, FROST, Pulsar-general threshold
signing for bridge custody. Owns all threshold signing.
- **F-Chain** (`fhevm`, LP-8200) — TFHE keygen, encrypted EVM, threshold
decrypt. Owns all encrypted computation.
The standalone `teleportvm` (LP-6332) is unrelated and retains its own
"T-Chain" naming for the cross-chain teleport message bus.
There is no `teleportvm` and no "T-Chain": teleport IS `bridgevm` (B-Chain,
LP-6000). LP-6332 is superseded by LP-6000 (see LP-7050 §3).
| LP | Topic |
|---|---|
@@ -244,5 +247,5 @@ The standalone `teleportvm` (LP-6332) is unrelated and retains its own
| LP-132 | QuasarGPU Execution Adapter |
| LP-134 | Lux Chain Topology — defines the M/F-Chain split |
| LP-020 | Quasar Consensus 3.0 |
| LP-6332 | teleportvm cross-chain message bus (separate "T-Chain") |
| LP-6332 | teleport bus — SUPERSEDED by LP-6000 (bridgevm / B-Chain) per LP-7050 |
| LP-5013 | T-Chain MPC Custody (deprecated, superseded by LP-134) |
+8 -6
View File
@@ -22,16 +22,18 @@ shared by both chains.
expose **interfaces only**; impls live in the chain that runs the
protocol (CGGMP21 in M-Chain, TFHE keygen straddles M-Chain →
F-Chain via the handoff envelope).
- Do **not** introduce `t-chain` / `tchain` types here. The legacy
`vm.go`, `block.go`, `factory.go`, `fhe/`, `cmd/` files in the
parent directory are the deprecated T-Chain shim from LP-5013.
They exist only for one-epoch grace-window migration, then are
removed.
- Do **not** introduce `t-chain` / `tchain` types here, and do **not**
reintroduce a "T-Chain" chain. Per LP-134 / LP-7050 T-Chain is removed
with zero remainder (it was never launched with live state — a clean
forward split, no migration window). The `vm.go`, `block.go`,
`factory.go`, `fhe/`, `cmd/` files are the shared **library** substrate
(the ceremony VM + FHE code) that M-Chain and F-Chain consume — not a
chain, no genesis, no validators.
## Status
- Substrate ships with Quasar 3.0 activation on **2025-12-25**.
- LP-5013 (T-Chain) is **deprecated** by LP-134.
- LP-5013 (T-Chain MPC Custody) and the whole T-Chain concept are **removed** by LP-134; see LP-7050 for the full supersession map (MPC→M-Chain, FHE→F-Chain, teleport→B-Chain/bridgevm).
- Cert-lane enums `MChainCGGMP21=5`, `MChainFROST=6`,
`MChainCoronaGen=7`, `FChainTFHE=8`, `FChainBootstrap=9`. Never
reorder; appends only.
+13 -10
View File
@@ -2,18 +2,21 @@
**ThresholdVM is a Go library, not a chain.**
Per LP-134 (Lux Chain Topology), the legacy T-Chain custody monolith is
split into two operational chains, both served by this substrate:
Per LP-134 (Lux Chain Topology) and LP-7050 (Supersession Map), T-Chain is
**fully removed** with zero remainder. Its concerns decompose onto existing
chains, each of which consumes this library substrate:
- `thresholdvm` in **MPC mode → M-Chain** — bridge custody for external
wallets, threshold signing ceremonies (CGGMP21 / FROST / Corona-gen).
- `thresholdvm` in **FHE mode → F-Chain** — TFHE keygen, encrypted EVM,
confidential compute.
- **M-Chain** (`mpcvm`, LP-7100) — bridge custody for external wallets,
threshold signing ceremonies (CGGMP21 / FROST / Pulsar-general). Owns
*all* threshold signing.
- **F-Chain** (`fhevm`, LP-8200) — TFHE keygen, encrypted EVM, threshold
decrypt, confidential compute. Owns *all* encrypted computation.
`chains/thresholdvm/` is the shared library; the runtime presence lives
on M-Chain or F-Chain depending on which adapter the runtime registers.
The legacy "T-Chain" name is retained **only** for `teleportvm`
(LP-6332), an unrelated cross-chain teleport message bus.
`chains/thresholdvm/` is the shared **library** these two chains import in
process — it is not itself a chain and has no genesis, no validators, no
block production. There is **no** `teleportvm` and **no** "T-Chain": teleport
IS `bridgevm` (B-Chain, LP-6000). Any live identifier still naming "T-Chain",
"ThresholdVM-as-a-chain", or "teleportvm" is stale.
```
+--------------------------------+
+1 -1
View File
@@ -4,7 +4,7 @@ This document describes how `chains/mchain/` plugs into the
`thresholdvm` substrate when running in **MPC mode** (per LP-134).
The same substrate, running in FHE mode, serves F-Chain — see
`F_CHAIN_INTEGRATION.md` for that side. The legacy "T-Chain" name is
retained only for `teleportvm` (LP-6332), which is unrelated.
removed entirely: teleport IS `bridgevm` (B-Chain, LP-6000), there is no `teleportvm` (LP-6332 superseded by LP-6000 per LP-7050).
## Boot sequence
+5 -1
View File
@@ -11,7 +11,11 @@ import (
var _ vms.Factory = (*Factory)(nil)
// VMID is the unique identifier for ThresholdVM (M-Chain — Threshold MPC; T-Chain is reserved for TeleportVM, not yet built)
// VMID is the unique identifier for the shared threshold substrate VM.
// Per LP-134 / LP-7050 there is NO T-Chain and NO teleportvm: teleport IS
// bridgevm (B-Chain, LP-6000). This VM is the shared library substrate that
// M-Chain (MPC — threshold signing / bridge custody, LP-7100) and F-Chain
// (FHE — confidential compute, LP-8200) run; it is not itself a chain.
var VMID = ids.ID{'t', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', 'v', 'm', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
// Factory creates new ThresholdVM instances
+7 -3
View File
@@ -1,9 +1,13 @@
// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
// Package tvm implements the Threshold VM substrate (M-Chain MPC and F-Chain FHE per LP-134).
// The legacy "T-Chain" label predates the LP-134 split; new code targets M-Chain (MPC ceremonies
// for bridge custody of external wallets) or F-Chain (FHE compute). See ../README.md.
// Package thresholdvm implements the shared threshold VM substrate — a LIBRARY,
// not a chain — consumed by M-Chain (MPC: CGGMP21/FROST/Pulsar-general threshold
// signing for bridge custody of external wallets, LP-7100) and F-Chain (FHE:
// TFHE compute / threshold decrypt, LP-8200). Per LP-134 / LP-7050 there is NO
// T-Chain and NO teleportvm; teleport IS bridgevm (B-Chain, LP-6000). Any live
// identifier still naming "T-Chain" or "ThresholdVM-as-a-chain" is stale.
// See ../README.md.
package thresholdvm
import (