Subnet 2: DSperse
Subnet 2: DSperse
DSperse is Bittensor’s second subnet (netuid 2), operated by Inference Labs. Its goal is to build a Proof-of-Inference system — a peer-to-peer network for verifiable AI inference, where miners produce cryptographic zero-knowledge proofs alongside their model outputs so that validators and users can confirm the prediction came from a specific AI model without re-running the computation.
References: inference-labs-inc/subnet-2 (GitHub), taostats.io/subnets/2
How the Mechanism Works
DSperse uses zero-knowledge machine learning (zk-ML) to make AI inference verifiable. A model is compiled into a zk circuit — a mathematical representation that acts as a unique fingerprint. When a miner runs inference, it produces both the output and a zero-knowledge proof that the output was generated by that specific circuit.
The reward mechanism scores miners on:
- Cryptographic integrity — the returned zk proof must be valid; an invalid proof is rejected.
- Proof size — smaller proofs indicate more efficient circuit design.
- Response time — faster proof generation earns a higher score.
This approach shifts the validation burden from re-running expensive inference to lightweight proof verification, making it feasible for validators to confirm every miner response. Scores feed into Yuma Consensus to determine per-epoch emissions.
The miner and validator are native Rust binaries communicating over HTTP and QUIC via btlightning. Binaries include a built-in auto-update mechanism that polls for new releases every five minutes and performs atomic binary replacement, so the process restarts with the latest version automatically.
References: inference-labs-inc/subnet-2 (GitHub), SN2 documentation
Participating as a Miner
Miners receive input data from validators, run inference using a custom AI model that has been compiled into a zk circuit, and return the output alongside the generated zero-knowledge proof.
The general setup flow:
- Register a hotkey on SN2:
btcli subnet register --subtensor.network finney --netuid 2 \ --wallet.name <coldkey> --wallet.hotkey <hotkey> - Install the
sn2-minerbinary. The quickest path is the official install script, which detects your platform, downloads the latest release, and verifies the SHA256 checksum:
Alternatively, build from source (requires Rust) or run via Docker.curl -fsSL https://raw.githubusercontent.com/inference-labs-inc/subnet-2/main/install.sh | bash -s -- sn2-miner - Start the miner with PM2:
pm2 start ./sn2-miner --name subnet-2-miner --kill-timeout 3000 -- \ --wallet-name <coldkey> --wallet-hotkey <hotkey> --netuid 2
Docker Compose with Watchtower is also supported for automated image updates.
References: Quickstart (inference-labs-inc/subnet-2), GitHub Releases
Participating as a Validator
Validators distribute inference requests across registered miners, receive output-plus-proof pairs, and cryptographically verify each returned zero-knowledge proof. Because proof verification is computationally cheap relative to re-running inference, validators can check every miner response rather than sampling.
Validators score miners on proof validity, proof size, and response latency, then submit those scores as weights to the chain. Yuma Consensus aggregates validator weights into emissions.
Install and run the sn2-validator binary:
curl -fsSL https://raw.githubusercontent.com/inference-labs-inc/subnet-2/main/install.sh | bash -s -- sn2-validator
pm2 start ./sn2-validator --name subnet-2-validator -- \
--wallet-name <coldkey> --wallet-hotkey <hotkey> --netuid 2
References: inference-labs-inc/subnet-2 (GitHub), SN2 dashboard (Weights & Biases)
On-Chain Identity
Subnet 2’s registered on-chain identity, verifiable via taostats.io/subnets/2:
- Owner coldkey:
5EcYQ3W77ndrmMWdvVQusoFqY8doxfP3U2zrh7xZQiaz7avY(view on taostats) - GitHub: inference-labs-inc/subnet-2
- URL: subnet2.inferencelabs.com
- Neurons: 256