Open peersky opened 8 months ago
Using EigenLayer AVS seems to make sense: https://docs.eigenlayer.xyz/eigenlayer/avs-guides/avs-developer-guide
This implies:
In case of our SLA we would need:
A
sent on SLA contract (emitted event) & locks in funds stakingB
From now on player may send anything to the game master via encrypted channel. (Further nonce-based KDF may be implied, out of scope of this work for now)
Now player may join the game. He uses Game Master provided signature during step 1 to prove that he has GM behind him and hence will be able to participate
Game process: Whenever even on-chain that contains message signed by a shared GM key they must respond within SLA timeout (defined in step 1) with a transaction that executes actions on behalf of the player on target contract.
If they fail, slashing occurs.
There might be legitimate cases when game master does not want to retranslate player intentions, in case for example if content is not validated against the SLA agreement. I.e. it might break terms of conduct. In such case:
Each transaction game master does it acts as bundler which is pulling payments from players wallet paymasters.
It serves player until player has at least 1/2 of his initial stake available.
EL AVS has limitations today that we won't be able to run it cheaply on L2s. We might want to provision architecture to well fit it, however not implement the real AVS at the initial stages and just go with simple substitute.
SLA contract is an act between game master and game users, stored on-chain. It allows game master backend servers to take decisions on how to serve each particular game