Diligence watchtowers are the first line of defense for optimistic rollups. They enable incentive compatible and crypto-economically-secure Proof-of-Diligence (PoD) to make sure watchtowers are working in the happy path for optimistic rollups.
Optimistic rollups attain their hyper scaling by validating the transactions on another chain and post the transaction data publicly for anyone to view. If faulty transactions are detected, the Ethereum validators can be engaged for arbitration using a fraud proof. Thus, the current premise operates under the assumption that when a fault is detected, validators initiate fraud proofs, engaging in a dispute resolution process. However, the existing incentive system only comes into play after a fault has been identified.
But who will look for these faulty transaction consistently ? How will these players be incentivized to be diligently carrying out this task when nothing is going wrong?
Witness Chain Watchtower protocol is answer to these problems.
It is a programmable, trust-free, and decentralized watchtower service that uses an innovative proof of diligence to incentivize the watchtowers in normal path.
If you would like to understand more about the watchtower protocol and it's basics, please follow this guide
If you are a node operator and want to quickly get started, you can refer to the
The code base is primarily shared to assist you in thoroughly exploring the smart contracts, enabling you to comprehend their interactions with both the watchtower client and EigenLayer contracts.
The present deployment on the mainnet marks our initial release. Below, you can find the addresses of the deployed contracts.
Name | Solidity | Proxy | Implementation |
---|---|---|---|
OperatorRegistry | OperatorRegistry |
0xEf1...85D |
0x97C...6ba |
L2ChainMapping | L2ChainMapping |
0x20b...2A4 |
|
WitnessHub | WitnessHub |
0xD25...cC7 |
0xe1F...7bD |
AlertManager | AlertManager |
0xD1b...2eE |
0xFF1...376 |
Name | Address | Implementation |
---|---|---|
Admin Multisig | 0xec6...0f3 |
0xd9b...552 |
The current deployment on the testnet is on Holesky. Below, you can see the addresses of the deployed contracts
Name | Solidity | Proxy | Implementation |
---|---|---|---|
OperatorRegistry | OperatorRegistry |
0x708...Def |
0x6c4...d52 |
L2ChainMapping | L2ChainMapping |
0x67f...3eC |
|
WitnessHub | WitnessHub |
0xa98...87D |
0xe8a...968 |
AlertManager | AlertManager |
0xc69...88a |
0x7f8...98B |
Setting up Witness Chain smart contracts involves several prerequisites. Here's a list to help you get started:
git clone https://github.com/witnesschain-com/diligencewatchtower-contracts.git
anvil --fork-url <holesky chain to fork>
cp .env.example .env
In .env, change the config parameters for PRIVATE_KEY and AGGREGATOR
After saving .env, run
source .env
make test
If the above tests PASS, Congratulations !!!! The contracts are deployed on your local chain.