# Q1 results - EigenTrust
## Tasks done:
- Chip and Chipset API + Global config: https://github.com/eigen-trust/protocol/pull/129
- API work (Reduction Witness): https://github.com/eigen-trust/protocol/pull/130
- Region context: https://github.com/eigen-trust/protocol/pull/131
- Maingate implementation: https://github.com/eigen-trust/protocol/pull/132
- Attestation Station client: https://github.com/eigen-trust/protocol/pull/140
- Update the common gadgets of circuit: https://github.com/eigen-trust/protocol/pull/145
- Ladder implementation: https://github.com/eigen-trust/protocol/pull/146
- Implement the RescuePrimeChip in halo2: https://github.com/eigen-trust/protocol/pull/148
- Changed advice structure in Integer: https://github.com/eigen-trust/protocol/pull/150
- Update client-config: https://github.com/eigen-trust/protocol/pull/151
- Implement the Sponge for RescuePrime hasher: https://github.com/eigen-trust/protocol/pull/152
- mul_scalar fix: https://github.com/eigen-trust/protocol/pull/155
- Updated halo2: https://github.com/eigen-trust/protocol/pull/156
- Plonk verifier: https://github.com/eigen-trust/protocol/pull/157
- Mul scalar: https://github.com/eigen-trust/protocol/pull/159
- EigenTrust circuit optimisations: https://github.com/eigen-trust/protocol/pull/163
- protocol -> server: https://github.com/eigen-trust/protocol/pull/164
- Solidity plonk verifier: https://github.com/eigen-trust/protocol/pull/165
- Rns interface fix: https://github.com/eigen-trust/protocol/pull/167
- Implement the RangeChipset(using lookup) for better range check functionality: https://github.com/eigen-trust/protocol/pull/169
- Test fixes: https://github.com/eigen-trust/protocol/pull/170
- Updated circuit file caching: https://github.com/eigen-trust/protocol/pull/171
- Add conditional verification on server: https://github.com/eigen-trust/protocol/pull/176
- Aggregator: https://github.com/eigen-trust/protocol/pull/168
**Most notable achievements:**
- PLONK Solidity verifier - verifying EigenTrust proofs on-chain
- Proof aggregators - Generic aggregator that uses custom Elliptic Curve and Integer chip implementations (In testing phase)
- **Research** on dynamic sets - How to handle sets and attestations that are changing over time
- Client for interacting with AttestationStation and ET on-chain verifier
- New chips like MainGate, RangeChip, RescuePrime chip
Overall, in Q1 we focused on research and development on ZK primitives and backbone of our protocol.
We also did integration testing on AWS where we tested the whole flow of adding attestations, generating the proofs on the server, and verifying those proofs on-chain.
One blocker we had for user testing is that the new attestation events were not picked up by the server, so we pushed that for Q2
## Plans for Q2:
Our research with split in 2 paths:
**1) Custom smart contract based EigenTrust:**
- Solidity smart contract for EigenTrust dynamic sets
- Client for EigentTrust set smart contract
- Server for EigenTrust set smart contract
**2) AttestationStation based EigenTrust**
- Agree on standardised format for EigenTrust attestations
- Client for adding attestations to AttestationStation contract
- Fetching attestations from AS, process and prepare for off-chain EigenTrust algorithm
- Run the algorithm
On top of this we want to do integration and user testing for both versions of the protocol