- Add the ability to delegate stake on behalf of a validator
- Add the ability to slash a given validators restake given a challenge
- Remove the need to register validator collateral (Or make it optional)
The URC is a universal contract for…
- anyone to register for proposer commitments
- anyone to slash proposers that break commitments
it should…
- be governance-free and immutable
- be simple and maximally expressive
- use ETH as collateral
- not rely on any external contracts
- minimize switching costs
- be gas-efficient
- be open-source
The URC is written using Foundry. To install:
curl -L https://foundry.paradigm.xyz | bash
To run the tests:
forge build
forge test
See the docs for more information.
- Justin Drake’s proposed requirements
- The contract is super simple and short (ideally ~100 lines).
- Only ETH for deposits.
- All the constants are parametrised (so as to minimise bike shedding for now).
- Slashing (and delegation) logic is encapsulated by pieces of signed EVM bytecode shared offchain between relevant parties (eg users and gateways). This is for maximum credible neutrality, forward compatibility, simplicity, and gas efficiency.
- No dependence on any external code (especially restaking platforms).
- Zero governance, fully immutable.
- Open source from day 1, Apache 2.0 + MIT dual licensing.
- Nice to have: support for underwriters
- Nice to have: bootstrapping phase with freeze instead of burn
- Code is maintained in a neutral Github org.
- mteam’s writeup on the registry
- UniFi’s registry implementation
- Nethermind/Taiko’s registry implementation
- Jason's URC implementation from Sequencing Week
- Paradigm's solidity implementation of BLS12-381 using Pectra BLS precompiles
- Jason's Sequencing week presentation
- Jason's Sequencing Day presentation