Open bdresser opened 1 year ago
mmurthy | karmahq.xyz#4254
Our team has been working together for the past one year. We received a grant to build a delegate dashboard which we successfully completed. We have continued to add features to the dashboard. You can see all our updates here.
We are currently working on the Delegate Registry Project.
What makes your Alliance best-suited to execute this Mission?
Please describe your proposed solution based on the above Solution Criteria (if applicable):
The dynamic delegate attestation system aims to automate the permissions management of the platforms used in the Optimism ecosystem and become a lego block upon which other ecosystem projects can be built.
Below are high level implementation steps
Create an attestation schema by following the Ethereum Attestation Service standard. Attestation station has adopted the EAS schema system, so we will define the schema to make sure all necessary fields are included and register the schema on-chain. The schema will be visible in the EAS explorer for anyone to inspect.
Build a subgraph to fetch all delegates with more than 0.25% voting power. We intend to use the graph protocol's subgraph to index and query on-chain data to get the voting power of delegates. We have already implemented and open sourced the subgraph. We will make any modifications necessary to accommodate this use case.
Issue or revoke attestations based on delegate voting power criteria. Code to query the subgraph and issue or revoke attestations based on the voting power will be implemented. We will also wrap this code in Gelato's new web3 function product that can be used to execute this in a decentralized way.
Add/remove access to gated channels based on attestation. We will integrate with forum and discord to automatically update roles based on the criteria set. If everything is already setup in Guild, we can easily integrate. If not, we will integrate with Discourse API for forum actions. For Discord, we already have a bot that can be enhanced to add logic to add/revoke roles.
Setup cron job to run steps 2 to 4 every day. We will have a job that triggers the code in Step 3. However, this job can be triggered by anyone at any time even if our job runner were to go away. We will discuss with your team to see if you prefer a solution like Gelato that can be used to run it in a decentralized way.
We will build a simple UI to see who has attestations at any point in time.
The application will be primarily built using TypeScript and all the code including schema, job runner, services and subgraphs will be open sourced.
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal: Below are two critical milestones for this project:
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
• Team Lead: Jeremie
• Contact info: @attestations
(discord username)
• L2 recipient address: 0xe85594EBfa7B0CF32dD675142aC69ae6c816F8f4 (Safe)
• Please list the members of your Alliance and link to any previous work:
Jeremie - Team Lead with knowledge in web development and blockchain technology. He has been a long-term and active contributor to the Eco network, as well as to several DAOs including Eco, Colony, and Alchemist. Over the past 6 months, he has been a key contributor to the development of Eco ID, reputation and identity primitive of the Eco network. Recently, Jeremie participated in ETHGlobal Lisbon and won the first place in the category "Decentralize Our Identities" from Optimism. OMiage - He is a business analyst with 5 years of experience who is passionate about user experience, creative technology, and sports data. Some of his day-to-day activities include modeling and building applications, helping builders to improve their design thinking process and better communicate to a larger audience. His experience in data ingestion, generation, and verification has considerably aided in Eco ID's developments. Lina - She has years of experience in communication and is a full-stack developer that joined the team to help with the development of Eco ID. Her excitement, new perspectives, and commitment to learning have made her a valuable addition to the team, which helped with implementation and testing phases of Eco ID, gaining practical knowledge about blockchain-based identity and reputation solutions.
In the last six months, our team has collaborated on identity and reputation protocols, we are confident in our ability to provide a high-quality solution that meets or surpasses expectations. Our team is qualified and well-positioned to carry out its objective due to the following reasons:
Optimism strives for complete decentralization, but some of its governance processes remain centralized. This proposal is based on the progressive decentralization that Optimism is pursuing.
The existing process of delegating the right to endorse a proposal in Optimism is manual, centralized, and inefficient. When an OP token holder changes their delegation to a delegate, the change in voting power is indexed on the Dune dashboard. Then, an Optimism administrator will manually update the necessary permissions in both the Discourse Forum and the Optimism Discord server by comparing the list to the current list of delegate having the rights to Endorse proposal. The current system operates as shown in the flowchart below:
Our approach uses EAS composability to create a permissionless and decentralized system with a single source of truth: a revocable attestation that corroborates a delegate has more than 0.25% of total voting power and is not under active suspension.
We ensure the longevity of this solution by providing a trustless system; leveraging resolver contracts abilities to enforce onchain data verifications. As a result, because anybody may attest or revoke an attestation of a delegate using the new Attestation Station powered by EAS, automation will be far easier to construct because the centralized component of such automation will no longer be in a concern.
The key elements of our architecture are explained in the flowchart below:
Flowchart video explainer: https://www.loom.com/share/ecdd5c4934ed414d89896d12e044c66d
Flowchart text explainer:
(a) An EAS Schema ("Endorse proposal") that will be linked to Resolver contract (b). Every attestation of this schema's attestations will be revocable.
(b) This resolver contract will be trustless and will provide the same results regardless of who calls it, by ensuring that Attestations (c) created via the "Endorse proposal" Schema (a) comply with the following condition:
(c) These “Have right to Endorse proposal” attestations are revocable. Anyone detecting whether or not a newer delegate fits the conditions will be able to attest or revoke that attestation using the Schema (a) using the Attestation Station.
(d) Regarding the Delegate suspension, as agreed upon in this proposal, the token house can vote to suspend a delegate, and because Optimism Agora allows proposals to execute transactions upon approval, we could use this to implement temporary suspensions for each delegate suspension.
(e) This schema "Delegate Suspension" will be linked to Resolver contract (f). This schema's attestations will be irrevocable, with a suspension start and end date.
(f) This resolver contract will ensure that all attestations from Schema (e) are triggered via a on-chain proposal on Optimism Agora.
(g) If these "Delegate suspension" attestations occur as a 'side effect' of our proposed system, it will provide the essential flexibility for future use cases.
(h) Regarding the Automation process, it consists of:
(i) Subgraph (EAS subgraph already allows requesting attestations from a certain schema)
(j) An incentivized open source Supervisor, if the team believes being the best way to ensure a short delay between a change in delegation or a new suspension agreed on, and its reflection on the related attestation. We will provide a NodeJS Supervisor that will pull data from the Subgraph (i) and certify or revoke the associated attestations using the EAS node SDK.
We scheduled what we want to do in a weekly agenda to help us keep on track.
Research & Application:
Week 1 - POC :
Week 2 & 3 - Implementation :
Week 4 - External Communication :
Some specific points used to measure the progress toward our ultimate goal are:
It would be fantastic and very appreciated if the following could provided:
Thank you!
Submissions for this RFP are now closed. Thanks to everyone who submitted a proposal!
Someone from the Optimism Foundation will reach out on or shortly after July 13 to communicate which proposal(s) have been accepted and schedule a kickoff. We may also reach out individually to the contact info you've provided if we want to discuss the proposal in more detail.
In the meantime, feel free to tag me here or reach out directly (bobby@optimism.io) with any questions.
Hi y'all – thank you all for the amazing submissions!
We're excited to share that we will move forward with the proposal from @jeremie-olivier from Eco. Their robust, decentralised, evergreen design made them an excellent fit for the project.
@jeremie-olivier, we will contact you directly to discuss the project and expectations in more detail. Please update your email in your RFP as it bounces emails.
For all other teams here: we'd love to help you find the right way to contribute to the Optimism Collective. See the rest of the issues in the Ecosystem Contributions repo for ideas, suggestions, and other possible projects. And stay tuned for more RFPs posted in the next few months. Thank you all for your effort and thought; this was a tough call.
Hi @Nicca42,
We're truly honored and excited to dive into the project with you. Just wanted to give you a heads up that I've updated my contact email to a new one, so you can reach me directly now.
Looking forward to make this project a success together!
Hello @Nicca42,
Ready to build this with the team !
We are glad to announce that the work of this RFP has started.
Thanks to @Nicca42 for the Kick-off call today.
We're thrilled to share some news with you all. The Supervisor is now available here OP-RFP-60.
For now, it is possible to create, and revoke attestations, check if there is active suspension, and a pooling is automatically done every 5 seconds.
What the Supervisor can do :
Enhanced Data Gathering: The supervisor now efficiently pools data from both the Optimism governance portal subgraph and the EAS subgraph. This ensures that our governance processes are backed by the most accurate and up-to-date information.
User-Friendly Configuration: We've introduced a simple and intuitive way to adjust the required voting power threshold. It's all possible with the config.ts file, allowing you to adapt our tools to your specific governance needs.
Also, we updated the architecture of our solution as we have found in EAS-contracts that only original attesters are able to revoke their attestations. So we decided to create a Pass-through contract to ensure that all attestations can be revoked while being generated from the same address. To make this possible we are going to create an attesterVerifier to our main resolver.
Feedbacks are welcomed!
Pe
By leveraging our extensive experience and proven track record, we are well-equipped to execute the Dynamic Delegate Attestations mission successfully.
Our proposed solution is designed to meet the specified criteria for Dynamic Delegate Attestations effectively and transparently. Here’s a step-by-step breakdown:
bool canEndorseProposal
This comprehensive solution leverages our technical capabilities and existing infrastructure to ensure a robust and transparent system for dynamic delegate attestations. The following diagram outlines the general architecture:
Week 1: Finalize Requirements and Setup
Week 2: Integration with Guild.xyz
Week 3: Implement Attestation Runner
Week 4: Develop Frontend Website
Week 5: Documentation and Code Publication
Beyond: Ongoing Improvement and Expansion
Risk Management and Contingency Planning
Community Engagement
To determine whether we have successfully executed this proposal, we will achieve the following critical milestones:
By achieving these milestones, we will demonstrate the successful execution of the Dynamic Delegate Attestations proposal, ensuring a transparent, reliable, and user-friendly system for the Ethereum Optimism ecosystem.
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
Thank you to everyone who has previously applied to this mission request! This mission was never completed, and in the meantime some of the requirements have changed. The Collective now uses the ranking in the top 100 to determine top delegates, whereas previously it looked at delegates with more than 0.25% voting power.
This mission request was updated yesterday with new requirements, and we invite builders to re-submit their applications with modifications based on the new requirements @maheshmurthy @CarlGocht 🙏
@C-Emily-Furlong is it open for builders who didn't apply previously?
Updated the Boardroom proposal to reflect the changes.
Alliance Lead: v3naru.eth (Varit Ruangsiri)
Contact info: varit@curialab.xyz | TG: @v3dao
L2 recipient address: 0xA8A2b3EA014BEDaBdD6a12EEB699f7E2dE33Dff0
Please list the members of your Alliance and link to any previous work:
Our alliance stands uniquely positioned to spearhead the Dynamic Attestation mission, underpinned by our intrinsic ties to the Optimism Collective and a shared history of impactful contributions. Here’s why we believe we are the ideal fit for this mission:
Proven Track Record in Building Tailored Governance Database and Dashboard for Optimism Collective:
Expertise in Onchain Attestation:
Deep Engagement with the Optimism Governance Ecosystem:
Our combination of technical expertise, hands-on experience with similar projects, and deep engagement with the Optimism governance ecosystem makes us exceptionally well-suited to execute this mission effectively and efficiently.
Our proposed solution is designed to meet the specified criteria while maintaining flexibility and adaptability to changing requirements. This section will outline the solution architecture and workflow as follows:
Solution Architecture
The system architecture includes the data pipeline, back-end services for smart contract integration and API provision, front-end interface, and a database for tracking delegates' voting power.
Workflow
Week 1: Implement Indexer and Data Pipeline
Week 2: Finalize Requirements and Setup Infrastructure
Week 3: Implement Attestation Issuer
Week 4: Integrate with Guild.xyz & Develop Frontend Website
Week 5: Provide Documentation and Refine Code for Publication
Please note that the actual time for some of these tasks may differ slightly from the plan. We may add a 1-2 week buffer to accommodate potential adjustments.
Further Plan:
Maintaining a subgraph incurs significant costs and performance sync time, which may discourage community members from hosting the subgraph infrastructure themselves. To address this problem, we aim to create a new indexer infrastructure based on our in-house indexer design, developed in Rust and Python, optimized for high-volume data processing.
Currently, our in-house indexer is tightly coupled with Curia infrastructure. Our objectives are to:
These changes will enable the community to benefit from:
Ultimately, this initiative will promote greater decentralization and transparency within the OP ecosystem.
To ensure the successful execution of this proposal, we will achieve the following critical milestones:
Deployment of Onchain Attestations Using EAS:
Development of a Functional User Interface for Attestation Viewing:
Publishing a Comprehensive GitHub Repository:
Successful Integration with Guild.xyz:
Performance and Reliability Assurance:
@mendesfabio it is! Please feel free to apply :)
Everybody qualify for Ember Tier. Moreover, Alliance Leader have got 49k OP on RetroPGF 3 for Retrolist project.
Chomtana Chanjaraswichai - Team Lead, Core Developer, Smart Contract Development
Johnny Phan - Protocol Engineer
Chris - Protocol Engineer
We have built RetroList, the first and only Retro Funding 4 Discovery UI available so far. Our platform queries and indexes project data directly from the EAS, while others are still waiting for the Agora API to integrate real data. This showcases our expertise in EAS Attestation and have got retweets from Optimism.
Moreover, we have years of experience in the identity field, demonstrated through the development of Opti.Domains, which integrates social verification with EAS attestation. To date, we have completed over 10,000 attestations related to social and wallet verification linked to domains.
We have experience using EAS on Guild.xyz for Opti.Domains
Chomtana, Alliance lead is a top 100 delegate
Our proposed solution stands out from other applicants. We offer a permissionless approach powered by a delegation refreshing event streamed to the core "Delegate Ranker Contract". Anyone can refresh the delegation amount for others without permission and can implement different "Delegation Event Managers" to promote client diversity. We provide a standard "Delegation Event Manager" that everyone can launch without restrictions. Additionally, we will host two instances of the "Delegation Event Manager" for redundancy and high availability, with monitoring that alerts our engineers if a server goes down.
Below are the explanations for each component:
A subgraph is a stable and straightforward way to index on-chain events. Our subgraph will index both classical delegation events from the OP Token contract and advanced delegation events from the AlligatorOP contract. Additionally, we will decode SubdelegationRules into indexable fields for the "Delegation Event Manager" to query and process.
The subgraph will be deployed to "The Graph Decentralized Network" for reliability and easy access. We will curate our subgraph with an appropriate amount of GRT to incentivize indexers to index this subgraph.
For the current requirements, only delegation events are necessary. However, to support recent proposal voting requirements, the subgraph can be upgraded to handle voting events.
The Delegation Event Manager queries the subgraph for delegation events that need to be refreshed, simulates, and executes the delegation refresh on the ranker contract.
The Delegation Event Manager runs on a schedule and can be deployed permissionlessly by anyone. We can control how often the Delegation Event Manager will refresh the delegation events.
After delegations have been refreshed, the Delegation Event Manager will fetch the current top 100 delegates from the Delegate Ranker Contract and compare if there are changes in the ranking of the top 100 delegates. If there is a change, it will signal the Delegate Ranker Contract to update the ranking, revoke the last delegate attestation, and issue a new top delegate attestation to the new top 100 delegate.
To support recent proposal voting requirements, the Delegation Event Manager must be upgraded to refresh delegation on voting events in addition to delegation events.
The Delegate Ranker Contract is a core contract that tracks and ranks the top 100 delegate voting power on-chain and then attests and revokes to the EAS. It works by accumulating voting power from different sources from a series of delegation refreshes called by the Delegation Event Manager.
Here are examples of delegation refreshes:
The delegation amount will be refreshed for a particular source, and the difference in voting power will be accounted for. An event will be emitted with changes in voting power for the Delegation Event Manager to use in the ranking process.
Refreshing delegation for the same pair multiple times is fine and never causes double-counting issues as it's a refresh, not an accumulation. This enables the Delegation Event Manager to work worry-free of double counting.
Since the Delegate Ranker Contract and Event Manager are permissionless, we encourage multiple parties to host them for more reliability and decentralization.
Once the delegate voting power has been updated, the rank is not updated immediately to save on gas usage. The Delegation Event Manager will query the current top 100 rankings, compare them with the updated rankings, and post the ranking update to the contract.
To support recent proposal voting requirements, the Delegate Ranker Contract is designed with a function that dynamically blacklists a specific delegate. Initially, all delegates are whitelisted, but once the proposal voting requirement is implemented, ghosted delegates will be blacklisted.
A blacklisted delegate will have their attestation revoked and won't be able to hold a place in the ranking.
Contract upgrades are done through the Protocol Upgrade procedure that the Developer Advisory Board must review and can be vetoed by Citizen House. This is safer than a centralized oracle solution.
Guild.xyz will be automatically integrated if we design our EAS schema correctly.
We need Optimism's Discord server moderator to implement the role and EAS requirement.
We will develop a Discourse plugin to incorporate the top 100 delegate attestation with https://gov.optimism.io/.
-- end of application --
0xa41214012d4462ecBB0724673897Ee0dCc0fDF49
Alliance Members
About us
bleu collaborates with companies and DAOs as a technology and user experience partner. We've developed several projects in partnership with CoW and Balancer. In the last Optimism Season, we have been selected for working on two mission grants: Layerwide new project support and AI assistant for governance.
What makes your Alliance best-suited to execute this Mission?
Please describe your proposed solution based on the above Solution Criteria (if applicable):
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:
Weeks 1-2 (July 15 - July 29)
Weeks 3-4 (July 29 - August 12)
Weeks 5 (August 12 - August 19)
Future Plans:
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:
AttestationManager
smart contract: July 29Please list any additional support your team would require to execute this mission (financial, technical, etc.):
Grants are awarded in OP, locked for one year. Please let us know if access to upfront capital is a barrier to completing your Mission and you would like to be considered for a small upfront cash grant: (Note: there is no guarantee that approved Missions will receive up-front cash grants.)
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
The submissions to this mission request are now closed! Thanks to all the teams that applied 🙏 We will review the applications and update this thread in the week of July 8th
Hey everyone,
Thank you for the applications and interest you have shown in participating in this Mission Request. We have decided to move forward with the proposals made by:
We will be reaching out directly about next steps.
For those who were not selected this time around, I would encourage you to keep an eye on the Delegate Mission Requests which will open up for applications in the coming weeks.
You can read more in the Mission Grant section of the governance forum https://gov.optimism.io/c/mission-grants/69
Hi @C-Emily-Furlong, here's our first MVP for the Dynamic Attestation Mission Request. While we are still working on the initial design as initially proposed, we wanted to deliver this as quickly as possible to meet the timeline for the Retro Funding 6 use cases, as requested:
Overview:
Our engineering team has set up automated attestations on the testnet. We have categorized the attestations into two types:
Attestation Example and Schema:
Attestation Example: View Attestation
Attestation Schema: View Schema
If you require additional fields or wish to include schemas for other types, please let us know, and we can accommodate those changes.
Data Access:
While a user interface for easily viewing the attestations is currently under development, we have made the following files available for your review. These files contain daily delegates and the current top 100 attestation lists.
Daily Data (replace the date in the URL with the desired date, starting from 2024-09-15):
Delegates Without Partial VP: delegates_without_partial_vp.json
Delegates With Partial VP: delegates_with_partial_vp.json
Attestation Without Partial VP: attestation_without_partial_vp.json
Attestation With Partial VP: attestation_with_partial_vp.json
Next Steps:
Would be great to receive your feedback on this initial MVP. Specifically, please advise if:
Our team is committed to refining this project to meet the collective needs and is ready to make any necessary adjustments.
Thank you for the opportunity and we look forward to your feedback.
*To take on this project, submit a proposal to this thread by June 28. Read more about Missions here
How will this Foundation Mission (RFP) help accomplish the above Intent?:
Delegates of the Optimism Token House are important participants in the Collective. Certain elements of governance process, including the ability to “endorse” proposals to go to vote, are endowed to delegates in the top 100 based on voting power (previously with voting power equal to or above 0.25% of total votable supply of OP).
Today, top 100 Delegates are tracked via a Dune query, and appropriate Discord or forum permissions are granted manually. This process is both inefficient and centralized.
Instead of this manual process, the Collective should move to tracking this important information onchain in a way that is consumable by the various community platforms that the Collective uses. This will help make delegate recognition more accurate, improving governance accessibility for proposers seeking delegate approvals and allowing all qualifying delegates to receive tagged notifications in Discord. It will also be less dependent on any one Optimist to maintain or update.
Since this mission request was originally published, the Collective has moved from a system where delegates with voting power > 0.25% are given specific privileges, to a system where the top 100 delegates by voting power are given specific privileges. As such, the system built as part of this mission request should be composable and adaptable to similar future changes.
What is required to execute this Foundation Mission (RFP)?
A completed Mission includes the following outcomes:
It is up to the applying teams to suggest an appropriate solution architecture. We recommend teams to explore a design that can take the results of any arbitrary query as input and issue / revoke attestations to a list of addresses output by the query.
What milestones will help the Collective track progress towards completion of this Foundation Mission (RFP)?
How should Badgeholders measure impact upon completion of this Foundation Mission (RFP)?
Application instructions
To apply for this RFP, please complete the form in the expandable section below and leave your response as a comment on this issue thread. Submissions will be open until June 28, at which time the Foundation will review all submissions and select one individual/team to complete the work defined here.
Submission form
_Copy the entire application below and leave a comment on this issue with your answers completed. A representative from the Optimism Foundation may reach out using the contact info provided to request more information as necessary._ ## Foundation Mission (RFP) Application **Please verify that you meet the qualifications for submitting at the above [Tier](https://gov.optimism.io/t/collective-trust-tiers/5877/2)** * **Alliance Lead:** Please specify the best point of contact for your team * **Contact info:** * **L2 recipient address:** * **Please list the members of your Alliance and link to any previous work:** Read more about Alliances [here](https://gov.optimism.io/t/season-4-alliance-guide/5873) --- **What makes your Alliance best-suited to execute this Mission?** - [...] - [...] **Please describe your proposed solution based on the above Solution Criteria (if applicable):** - [...] - [...] **Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:** - [...] - [...] **Please define the [critical milestone(s)](https://gov.optimism.io/t/grant-policies/5833) that should be used to determine whether you’ve executed on this proposal:** - [...] - [...] **Please list any additional support your team would require to execute this mission (financial, technical, etc.):** - [...] - [...] --- Please check the following to make sure you understand the terms of the Optimism Foundation RFP program: - [ ] I understand my grant for completing this RFP will be locked for one year from the date of proposal acceptance. - [ ] I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant - [ ] I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the [Operating Manual](https://github.com/ethereum-optimism/OPerating-manual/blob/main/manual.md#valid-proposal-types) - [ ] I confirm that I have read and understand the [grant policies](https://gov.optimism.io/t/token-house-grant-policies/5833) - [ ] I understand that I will be expected to following the public grant reporting requirements outlined [here](https://gov.optimism.io/t/suggested-public-reporting-requirements-for-grantees/4176) -- end of application --