ARC0036 - Validator Registry #50
Replies: 2 comments 3 replies
-
I was thinking about this as well, however the point "Validating the Presence of Validator in Committee List" is not technically possible right now: there is no way to read arbitrary external mapping value inside a program, which means anyone could sign a message and post it to this program. If we want this to work in a permissionless way, we need to be able to directly read the If the above is possible, we will also need a way for anyone to unregister validators from this program, first verifying that the validator being removed is no longer in the committee list. This is because it's always possible for someone to quit being a validator but forget to unregister themselves here. |
Beta Was this translation helpful? Give feedback.
-
As now we can make this completely permissionless, would you update this ARC? I think things like this are very important in staking ecosystem to help people choose validators to bond to. |
Beta Was this translation helpful? Give feedback.
-
arc: 36
title: Validator Registry
authors: apybara.io tech team
discussion:
topic: Application
status: Draft
created: 11/13/2023
Abstract
Validators play an integral role in securing Aleo. However, not all token holders will be well equipped to run their own validators. For such cases, Aleo allows delegations so that token holders can stake for another validator. Delegators can help increase the total value staked on the network, increasing the opportunity cost for malicious actors, and promote a strong validator set, enhancing the overall throughput and performance of the network.
In the current setup, delegators will not have any data other than validator addresses and their stake amounts when selecting validators. We propose creating a public validator registry to give delegators provably accurate validator information. This will empower delegators to perform proper due diligence on validators. Additionally, applications can rely on this registry to provide delegators with human readable validator information.
We emphasize that the validator registry is purely optional and should be used by validators who wish to receive external delegations. Validators who want to remain anonymous or private should have the right to do so.
Specification
Implementation Details
The implementation details include the high-level implementation of the Aleo
validator_registry.aleo
program, user flow/stories for both validators and developers, pseudocode for the Aleo program, and the REST API. The Aleo program includes functions for adding a validator to the committee list, registering or updating a validator's information, checking if a validator is active, and getting the signed message of the validator's information. The REST API includes endpoints for retrieving the current committee list and the validator registry information for a specific validator.High-Level Implementation of the Aleo
validator_registry.aleo
programUser Flow / Stories
There are two main actors or users of the validator registry, the validators and the developers or users of the registry itself.
User story: As a validator, I’d like to be able to register my validator on the registry.
In this flow, the validator would be able to either register via cli or by calling the program via js, ts or rust sdk.
https://lh7-us.googleusercontent.com/OicXmvEmcdeK5KpGFcuxOI93RlW4O7oUzMjqhwgCMHYfjkPU8SfT00hQIkFWsx0bwqq5JC9qbnUWdzXxPl9gwbpTMHhSaunZlM7v24w4D6s4lHYtTWVlZ3KwNuzQ3OG7SGCLRwsV720JTvF-E6YEXg
User Story: As a developer, I’d like to check or integrate the list of validators that exist on the registry.
In this flow, the developer would be able to get the registry info by calling an REST api endpoint exposed by an aleo
client
node.https://lh7-us.googleusercontent.com/KDEDQGmMk7fJWjRFf1MtQKrH1_abK_5IQ-1yyYVMHgn0rGR9cw_4qeIx55_RLR4-0xY8iGYI_ntTcrLZfEcfq78wTCPOQiHTA5Ks7k4dntnEWOrI_eqHTtrRUNImTKeSp9hBiBq-4HpeLSVw0dAUcQ
Explorer and wallet developers will primarily be the users of the validator registry. Integrating the validator registry on their products will be helpful for end users in the following ways.
Pseudocode
Pseudo implementation of the aleo code and rest api
Aleo Program
Rest API
Aleo Node Validator CLI
Test Cases
Dependencies
This will impact snarkVM and everything that has snarkVM as a dependency.
Backwards Compatibility
As this is a new feature, no programs should be impacted by adding a new opcode.
Security & Compliance
There should be no regulatory concerns.
References
Beta Was this translation helpful? Give feedback.
All reactions