This proposal follows this conversation.
The goal is to capture some arbitrage opportunities created by the core module to redirect the profits to the protocol. Each oracle updates creates arbitrage opportunities and the protocol should benefit from this.
To do this, we would pause the protocol during 2 blocks each time Chainlink updates the EURUSD oracle, and only let whitelisted addresses interact with the core module.
The oracle contracts of the Core module would be changed to be paused after an update of the EUR-USD feed unless the tx.origin is whitelisted. A new smart contract
KeeperRegistry containing the whitelist would be deployed.
Modified Oracle contract:
Whitelisted wallets would have to give back at least 60% of their profits to stay whitelisted.
The first whitelisted actor would be propellerheads.xyz who developed a specific bot, and new agents would need to pass a governance process to be whitelisted.
The main downside is that for non whitelisted users, the protocol will be paused ~0.2% of the time.
This setup could increase security: in case an oracle messes up, all the extractable value would be taken by known agents. It could be seen a first step towards a reduction of the fees.
A rough backward estimation of the revenue this would generate is ~50k$ / year (considering only EUR / USD), but shows that the revenue would be very volatile depending on market conditions. This could significantly change.