Skip to content

Commit 5217db7

Browse files
authored
Merge pull request #317 from NillionNetwork/blacklight-two
Blacklight pt2
2 parents badc29d + aab3112 commit 5217db7

33 files changed

+569
-150
lines changed

docs/blacklight/learn/architecture.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Nillion Blacklight is a decentralised verification network designed to continuously verify workloads running inside trusted execution environments (TEEs). The system is composed of three core components that work together to provide ongoing, credibly neutral verification.
66

77
* TEE Operators run workloads inside TEEs and submit proofs of liveness (that we call heartbeat transactions - HTXs).
8-
* [**Nillion's Ethereum L2**](/blacklight/verify/network) coordinates verification, consensus, and rewards. Verification coordination is realised by the L2 assigning Blacklight nodes HTXs they should verify.
8+
* [**Nillion's Ethereum L2**](/blacklight/learn/network) coordinates verification, consensus, and rewards. Verification coordination is realised by the L2 assigning Blacklight nodes HTXs they should verify.
99
* Blacklight nodes independently challenge and verify TEE attestations.
1010

1111
```mermaid
@@ -103,16 +103,16 @@ The central concept underpinning Nillion Blacklight is that of the heartbeat tra
103103

104104
## TEE Operators
105105

106-
TEE operators (such as [nilCC](/blind-computer/build/compute/overview) node operators) run workloads inside Trusted Execution Environments. For each active workload, operators periodically submit heartbeat transactions (HTXs) to [Nillion's Ethereum L2](/blacklight/verify/network). These heartbeats assert that the workload is still running and provide the metadata required for the network to independently verify its execution.
106+
TEE operators (such as [nilCC](/blind-computer/build/compute/overview) node operators) run workloads inside Trusted Execution Environments. For each active workload, operators periodically submit heartbeat transactions (HTXs) to [Nillion's Ethereum L2](/blacklight/learn/network). These heartbeats assert that the workload is still running and provide the metadata required for the network to independently verify its execution.
107107

108108
## Nillion's Ethereum L2
109109

110-
[Nillion's Ethereum L2](/blacklight/verify/network) acts as the coordination and settlement layer for Nillion Blacklight. It receives heartbeat transactions (HTXs) from TEE operators and assigns each HTX to a committee of Blacklight nodes selected in a stake-weighted, probabilistic way. After the assigned Blacklight nodes verify the workload and submit their signed results back to the L2, the L2 evaluates whether the committee has reached consensus.
110+
[Nillion's Ethereum L2](/blacklight/learn/network) acts as the coordination and settlement layer for Nillion Blacklight. It receives heartbeat transactions (HTXs) from TEE operators and assigns each HTX to a committee of Blacklight nodes selected in a stake-weighted, probabilistic way. After the assigned Blacklight nodes verify the workload and submit their signed results back to the L2, the L2 evaluates whether the committee has reached consensus.
111111

112112
Consensus is determined using two stake-weighted conditions: a quorum requirement (enough of the committee’s total stake has responded) and a threshold requirement (enough of the committee’s total stake agrees on the same outcome). Once these conditions are met, the L2 finalises the verification result for the HTX and distributes rewards from the reward pool (which Blacklight nodes can then claim).
113113

114114
## Blacklight Nodes
115115

116-
[Blacklight nodes](/blacklight/verify/run-node) are permissionless verifier nodes that perform the core verification work of the network. When assigned a HTX, a Blacklight node retrieves the workload’s attestation report directly from the TEE operator and independently verifies its authenticity and correctness.
116+
Blacklight nodes are permissionless verifier nodes that perform the core verification work of the network. When assigned a HTX, a Blacklight node retrieves the workload’s attestation report directly from the TEE operator and independently verifies its authenticity and correctness.
117117

118118
Each node submits a signed verification result back to the L2. Once consensus is reached, nodes that contributed to the finalised outcome are eligible for rewards.

docs/blacklight/learn/contracts.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Smart Contracts
2+
3+
The core Solidity smart contracts for Blacklight are deployed on [Nillion's Ethereum L2](/blacklight/learn/network) and are also maintained in the [Blacklight contracts repository](https://github.com/NillionNetwork/blacklight-contracts).
4+
5+
## Core Contracts
6+
7+
- [ProtocolConfig](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/ProtocolConfig.sol) - Central governance-owned parameter store and module registry
8+
- [StakingOperators](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/StakingOperators.sol) - ERC20 staking registry with snapshot-based voting power
9+
- [WeightedCommitteeSelector](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/WeightedCommitteeSelector.sol) - Stake-weighted random committee selection
10+
- [HeartbeatManager](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/HeartbeatManager.sol) - Orchestrates multi-round heartbeat verification with stake-weighted committees
11+
- [RewardPolicy](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/RewardPolicy.sol) - Streaming budget reward allocator with stake-weighted distribution
12+
- [NoOpSlashingPolicy](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/NoOpSlashingPolicy.sol) - Slashing policy implementation that intentionally applies no penalties or jailing
13+
- [EmissionsController](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/EmissionsController.sol) - Token emissions scheduler with L1-to-L2 bridging
14+
- [Interfaces](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/Interfaces.sol) - Shared contract interfaces for pluggable modules
15+
16+
## Addresses and Token Information
17+
18+
### Mainnet
19+
20+
| Contract | Address |
21+
|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
22+
| ProtocolConfig | [0x9204d2F933FC7A84b20952F72CA6Cfa5D4ce6520](https://explorer.nillion.network/address/0x9204d2F933FC7A84b20952F72CA6Cfa5D4ce6520) |
23+
| StakingOperators | [0x89c1312Cedb0B0F67e4913D2076bd4a860652B69](https://explorer.nillion.network/address/0x89c1312Cedb0B0F67e4913D2076bd4a860652B69) |
24+
| WeightedCommitteeSelector | [0x63167beD28912cDe2C7b8bC5B6BB1F8B41B22f46](https://explorer.nillion.network/address/0x63167beD28912cDe2C7b8bC5B6BB1F8B41B22f46) |
25+
| HeartbeatManager | [0x0Ee49a8f50293Fa5d05Ba6d1FC136e7F79b2eA4f](https://explorer.nillion.network/address/0x0Ee49a8f50293Fa5d05Ba6d1FC136e7F79b2eA4f) |
26+
| RewardPolicy | [0x78E0FEBF3B8936f961729328a25dBA88d4Fea86B](https://explorer.nillion.network/address/0x78E0FEBF3B8936f961729328a25dBA88d4Fea86B) |
27+
| NoOpSlashingPolicy | [0x9a75E816941F692C23166eE9d61328544fb99490](https://explorer.nillion.network/address/0x9a75E816941F692C23166eE9d61328544fb99490) |
28+
29+
### Testnet
30+
31+
| Contract | Address |
32+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------|
33+
| ProtocolConfig | [0xfa718d54f31bcf49CcaC3a79C276fa87d11E2F44](https://explorer.testnet.nillion.network/address/0xfa718d54f31bcf49ccac3a79c276fa87d11e2f44) |
34+
| StakingOperators | [0x2913f0A4C1BE4e991CCf76F04C795E5646e02049](https://explorer.testnet.nillion.network/address/0x2913f0a4c1be4e991ccf76f04c795e5646e02049) |
35+
| WeightedCommitteeSelector | [0xc66b2b6a28a4212B1364D17514A03Cf2c5f2DD7C](https://explorer.testnet.nillion.network/address/0xc66b2b6a28a4212b1364d17514a03cf2c5f2dd7c) |
36+
| HeartbeatManager | [0x3dbE95E20B370C5295E7436e2d887cFda8bcb02c](https://explorer.testnet.nillion.network/address/0x3dbe95e20b370c5295e7436e2d887cfda8bcb02c) |
37+
| RewardPolicy | [0xB7223d0a84A8e0c5a5D384b57F2bA3b2Cb216ed9](https://explorer.testnet.nillion.network/address/0xb7223d0a84a8e0c5a5d384b57f2ba3b2cb216ed9) |
38+
| NoOpSlashingPolicy | [0x4a76Cb88D6FFb85cBe0ad28e7FFB3D51678e440d](https://explorer.testnet.nillion.network/address/0x4a76Cb88D6FFb85cBe0ad28e7FFB3D51678e440d) |
Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Users running Blacklight verifier nodes and developers registering their apps fo
44

55
## Mainnet
66

7+
### Network
8+
79
| Property | Value |
810
| --------------- | ----------------------------------------------- |
911
| Chain Name | Nillion Network |
@@ -13,8 +15,18 @@ Users running Blacklight verifier nodes and developers registering their apps fo
1315
| Currency Symbol | ETH |
1416
| Block Explorer | https://explorer.nillion.network |
1517

18+
### Token
19+
20+
| Symbol | Token Address |
21+
| --------------- | ----------------------------------------------- |
22+
| NIL | [0x32DEAe728473cb948B4D8661ac0f2755133D4173](https://explorer.nillion.network/token/0x32DEAe728473cb948B4D8661ac0f2755133D4173) |
23+
24+
---
25+
1626
## Testnet
1727

28+
### Network
29+
1830
| Property | Value |
1931
| --------------- | ----------------------------------------------- |
2032
| Chain Name | Nillion Network Sepolia Testnet |
@@ -24,11 +36,8 @@ Users running Blacklight verifier nodes and developers registering their apps fo
2436
| Currency Symbol | ETH |
2537
| Block Explorer | https://explorer.testnet.nillion.network |
2638

27-
## NIL Contracts
39+
### Token
2840

29-
The current contracts for NIL on the L2 are at the addresses below.
30-
31-
| Property | Value |
41+
| Symbol | Token Address |
3242
| --------------- | ----------------------------------------------- |
33-
| Mainnet | [0x32DEAe728473cb948B4D8661ac0f2755133D4173](https://explorer.nillion.network/token/0x32DEAe728473cb948B4D8661ac0f2755133D4173) |
34-
| Testnet | [0x69AD6D3E17C99A3f66b5Ae410a5D1D4E14C7da35](https://explorer.testnet.nillion.network/token/0x69AD6D3E17C99A3f66b5Ae410a5D1D4E14C7da35) |
43+
| NIL | [0x69AD6D3E17C99A3f66b5Ae410a5D1D4E14C7da35](https://explorer.testnet.nillion.network/token/0x69AD6D3E17C99A3f66b5Ae410a5D1D4E14C7da35) |

docs/blacklight/learn/overview.mdx

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import FeatureSection from '@site/src/components/Features/FeatureSection/index';
22
import { BlacklightActions } from '@site/src/utils/FeatureCards';
33

4-
# Blacklight (Coming Soon)
4+
# Blacklight
55

6-
Nillion Blacklight is the verification layer of the Blind Computer. It is powered by [Nillion's Ethereum L2](/blacklight/verify/network) and a decentralized network of permissionless, community-run Blacklight nodes that continuously challenge and verify workloads running on [nilCC](/blind-computer/build/compute/overview) and other TEE providers (such as Phala and Secret Network).
6+
Nillion Blacklight is the verification layer of the Blind Computer. It is powered by [Nillion's Ethereum L2](/blacklight/learn/network) and a decentralized network of permissionless, community-run Blacklight nodes that continuously challenge and verify workloads running on [nilCC](/blind-computer/build/compute/overview) and other TEE providers (such as Phala and Secret Network).
77

8-
Nillion Blacklight will be released very soon. You can read about its [architecture](/blacklight/learn/architecture), [verficiation protocol](/blacklight/learn/verification), and details about how [staking and rewards](/blacklight/learn/staking-and-rewards) work.
9-
10-
11-
{/* ## Start Verifying
8+
## Start Verifying
129

1310
Start earning rewards by verifying existing apps — or let Blacklight's node operators verify your own apps — using Blacklight's features and tools.
1411

@@ -18,11 +15,11 @@ Start earning rewards by verifying existing apps — or let Blacklight's nod
1815

1916
Nillion Blacklight has three main components.
2017

21-
- [**Community-run Blacklight Nodes**](/blacklight/verify/run-node): Permissionless nodes that verify TEE workloads by challenging attestation reports and monitoring enclave behavior.
18+
- [**Community-run Blacklight Nodes**](/blacklight/run-node/setup): Permissionless nodes that verify TEE workloads by challenging attestation reports and monitoring enclave behavior.
2219

23-
- [**Nillion's Ethereum L2**](/blacklight/verify/network): An EVM-compatible Layer 2 network that handles verification work assignment, staking, and reward distributions.
20+
- [**Nillion's Ethereum L2**](/blacklight/learn/network): An EVM-compatible Layer 2 network that handles verification work assignment, staking, and reward distributions.
2421

25-
- [**Smart Contracts**](/blacklight/verify/contracts): Solidity contracts that handle protocol configuration, manage staking, select verification committees, orchestrate verification, and distribute rewards.
22+
- [**Smart Contracts**](/blacklight/learn/contracts): Solidity contracts that handle protocol configuration, manage staking, select verification committees, orchestrate verification, and distribute rewards.
2623

2724
Together, the above components form a credibly neutral trust layer that holds applications with TEE workloads accountable through continuous monitoring and verification.
2825

@@ -33,4 +30,4 @@ Nillion Blacklight can currently verify the two categories of workloads below.
3330
- Workloads running on Nillion's confidential compute module [nilCC](/blind-computer/build/compute/overview) that have opted-in to verification.
3431
- Phala workloads registered with Blacklight.
3532

36-
The vision behind Nillion Blacklight is that, over time, it will become a universal, credibly neutral TEE trust layer that enables workload verification across many TEE providers. */}
33+
The vision behind Nillion Blacklight is that, over time, it will become a universal, credibly neutral TEE trust layer that enables workload verification across many TEE providers.

docs/blacklight/learn/staking-and-rewards.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Blacklight nodes are rewarded for the verification work they perform. Nodes are
66

77
Staking (and unstaking are) defined by the [corresponding smart contract](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/StakingOperators.sol).
88

9-
In order to be assigned verification work by [Nillion's Ethereum L2](/blacklight/verify/network), Blacklight node operators must stake a minimum amount of NIL against their node. Currently this minimum is set to 70,000 NIL. For every HTX that is sent by a TEE operator to Nillion Blacklight, the L2 assigns a committee of Blacklight nodes to verify it. Assignment is based on stake: the more stake a Blacklight node has, the higher the chance of it being assigned work. You can read more about the [committee selection process](/blacklight/learn/verification#committee-selection).
9+
In order to be assigned verification work by [Nillion's Ethereum L2](/blacklight/learn/network), Blacklight node operators must stake a minimum amount of NIL against their node. Currently this minimum is set to 70,000 NIL. For every HTX that is sent by a TEE operator to Nillion Blacklight, the L2 assigns a committee of Blacklight nodes to verify it. Assignment is based on stake: the more stake a Blacklight node has, the higher the chance of it being assigned work. You can read more about the [committee selection process](/blacklight/learn/verification#committee-selection).
1010

1111
## Rewards
1212

@@ -15,7 +15,7 @@ Blacklight nodes will initially be rewarded from a reward pool equal to 0.5% inf
1515

1616
Once a Blacklight node is assigned a HTX to verify, it must verify it and report the outcome back to the L2. Once a consensus is reached by the assigned committee of nodes, rewards are distributed from the reward pool by the L2 and can be claimed by Blacklight nodes.
1717

18-
The greater a Blacklight nodes stake, the more work it will likely be assigned, the higher rewards it can earn. See the [budget reward allocator smart contract](https://explorer-nilav-shzvox09l5.t.conduit.xyz/address/0xb7223d0a84a8e0c5a5d384b57f2ba3b2cb216ed9) for more details.
18+
The greater a Blacklight nodes stake, the more work it will likely be assigned, the higher rewards it can earn. See the [budget reward allocator smart contract](https://github.com/NillionNetwork/blacklight-contracts/blob/main/src/RewardPolicy.sol) for more details.
1919

2020
### Example APY Calculations
2121

docs/blacklight/learn/verification.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This page describes the verification protocol utilized within Nillion Blacklight
66
## TEE Operators
77

88
Developers run their workloads inside trusted execution environments (TEEs), such as [nilCC](/blind-computer/build/compute/overview).
9-
For each active workload, the TEE operators periodically submit heartbeat transactions (HTXs) to [Nillion's Ethereum L2](/blacklight/verify/network) at custom intervals (e.g., one every hour).
9+
For each active workload, the TEE operators periodically submit heartbeat transactions (HTXs) to [Nillion's Ethereum L2](/blacklight/learn/network) at custom intervals (e.g., one every hour).
1010

1111
### Heartbeat Transaction (HTX)
1212

@@ -61,7 +61,7 @@ The workload ID tracking (with both current and previous IDs) enables the networ
6161

6262
## Nillion's Ethereum L2
6363

64-
[Nillion's Ethereum L2](/blacklight/verify/network) acts as the coordination and settlement layer for Nillion Blacklight.
64+
[Nillion's Ethereum L2](/blacklight/learn/network) acts as the coordination and settlement layer for Nillion Blacklight.
6565
It orchestrates the verification process through smart contracts that handle committee selection, consensus evaluation, and reward distribution.
6666

6767
### Committee Selection

0 commit comments

Comments
 (0)