Verax Improvement Proposal [VIP-8] - Modules V2
Author[s]: @alain_ncls
Title: Modules V2: Additional Fields for Enhanced Flexibility
Type: Verax Improvement Proposal
Abstract
This proposal focuses on an upgrade to the Verax protocol, around the Modules feature.
Proposal Summary
Introduce additional fields attester and portal in the function calling the Modules for higher flexibility and more complex use cases.
Overview of Proposal
The “Modules V2” upgrade allows additional fields attester
and portal
to be added in the function calling the Modules, providing extra context. This change offers higher flexibility to build more complex use cases, such as dynamic sender validation, which no longer needs to be hardcoded in the Module. No changes will be required for Modules already deployed but we should plan deprecation of the previous Module interface after a few months.
The objectives are to:
- Enhance the flexibility of the Verax protocol.
- Enable more complex use cases and dynamic validation.
- Maintain backward compatibility while planning the deprecation of the old interface.
The team responsible for implementation includes the core developers of the Verax protocol.
Motivation
The proposed upgrade is relevant to enhancing Verax’s adoption and integration within the existing ecosystem. By adding the fields attester
and portal
, the upgrade enables dynamic sender validation and other complex use cases, which can significantly improve the protocol’s flexibility and usability.
Technical Considerations
The technical aspects involve updating the AbstractModule
to AbstractModuleV2
, adding additional parameters to the run
function in Modules, and updating related contracts like AbstractPortal
and ModuleRegistry
to support the new interface. The key challenge is ensuring backward compatibility and a smooth transition to the new interface.
Expected Timeline
- Governance Vote: 2024-07-03T22:00:00Z
- Deployment Target: 2024-07-10T22:00:00Z
Design Considerations
The design of the upgrade encompasses modifying the run
function signature in the Module to include attester
and portal
, updating the AbstractPortal
to handle the new V2 methods, and ensuring that the ModuleRegistry
can support both old and new interfaces. The core team will be responsible for implementing and maintaining the upgraded components.
Deployment Considerations
The technical approach to implementing the upgrade involves:
- Introducing a new
AbstractModuleV2
contract. - Updating the
ModuleRegistry
with new V2 methods. - Modifying existing modules to support the V2 interface.
The deployment will be handled by the core team, ensuring minimal disruption to the existing ecosystem.
Research Outcomes
The research supporting this upgrade indicates that adding flexibility and context to the Modules can significantly enhance their usability and allow for more dynamic and complex use cases. Our experience with multiple issuers suggest that this upgrade will improve the protocol’s adaptability and long-term sustainability, helping onboard new issuers with more diverse use cases.
Conflict of Interest
No potential conflicts of interest have been identified. All contributors to this proposal are motivated by the goal of improving the Verax protocol.
Next Steps
Submit the proposal to the governance forum.
Collect community feedback and incorporate it into the final proposal.
Schedule the governance vote.
Begin the deployment process after a successful vote.
References and Links
GitHub Pull Request: Link to PR
Related Issue: #574