Skip to content

hollow-leaf/easyeigen

Repository files navigation

EasyEigenFactory

EasyEigen Factory is a project inspire from Eigen Layer Restaking Solution. We suggest everyone design their own restake contract and base on our zk and staker contracts.


Demo Link

Staker EEVMOS Contract: 0x4333B9f66eD8b7A1B6B1EA93Ce984F6dEf2b6545

ZK verifier: 0x9C6603BB1F5a9781C9E2Bc5131189557aA350b81

Restake Contract & Cross-Chain: 0x3B5Fbdeb7A99Bda0428b83776F1728f82b7671c4

EasyEigen Factory Github: github.com/kidneyweakx/easyeigen

Frontend: kidneyweakx.com/easyeigen

Demo Video: YouTube

Our Tech Stack:

  1. Solidity(staker and relayer) contracts: for staking to EVMOS and restaking to ensure relayer safety.
  2. Circom circom: generate ZK proof to slash to evil relayer
  3. Pre-compile Extension precompiles: to connect with EVMOS

Project

Our project involves creating a restaking system that utilizes the EEF contract to provide pooled security using the EVMOS consensus. This allows us to create a secure and efficient system that is resistant to attacks and provides users with peace of mind.

In addition to the restaking system, we are also creating a cross-chain bridge that allows other non-Cosmos chains to deliver their data more securely and trustlessly. This bridge utilizes Zero Knowledge proofs to generate fraud proof and slash relayers, ensuring that the system remains secure and reliable.(Optimistic Method like Nomad Bridge)

Our demo provides an optimistic bridge solution that allows users to transfer assets between different chains with ease. The system is designed to be user-friendly and easy to use, allowing users to restake their assets and transfer them between chains with confidence.

Overall, our project aims to create a secure and efficient restaking system that utilizes the latest technologies to provide users with a seamless experience. We believe that our system has the potential to revolutionize the way that assets are restaked and transferred between different chains, and we are excited to continue developing and improving our solution.

Your contribution to this system is greatly appreciated. Your work on the EVMOS pre-compile has been instrumental in scaling the EVM and making it more efficient, which is crucial for achieving system decentralization. We are impressed by your expertise and dedication to improving the performance and security of the system.

How we do it?

User can stake their EVMOS into LSD (Liquidity Staking Derivatives) and get EEVMOS token. This EEVMOS token can "restake" into the bridge to register relayer. 2023-05-31 00.23.08.jpg

Then the relayer can stake it into another contract and do some cross-chain solutions (we use optimistic way to ensure the cross-chain safety)

If relayers cross fake proof. And Slasher can get their EEVMOS token. It equals to slash relayer's token 2023-05-31 00.23.13.jpg

Step By Step

  1. copy .env.example to .env and fill in private key
cp .env.example .env
  1. deploy Stake contract to stake and store the address

you need to edit deployProcess

// delete the constructer (line 11)
const deployContract = await contractFactory.connect(signer).deploy()

then, deploy the contract

# deploy
npm run deploy:Staker

# stake
npm run stakeEE
  1. compile zk and deploy verifier contract
# compile zk and generate solidity
npm run circom:dev

# deploy
npm run deploy:zk
  1. deploy restake contract

write the contract address in deployProcess

then, deploy the contract

npm run deploy:Restake
  1. now you can register or slash the relayers

register relayer and relay fake data

npx ts-node ./scripts/slash/restake.ts
npx ts-node ./scripts/slash/relayer.ts

slash it

npx ts-node ./scripts/slash/slash.ts

unban slash idenity

npx ts-node ./scripts/slash/unban.ts

Code Contributer

kidneyweakx

Yeetai

PianoChicken