near / near-one-project-tracking

A repository for tracking work items that NEAR One is working on.
0 stars 0 forks source link

[ProjectTracking] Security Release Process Step 1: Build a "trusted validators group" #13

Open Ekleog-NEAR opened 9 months ago

Ekleog-NEAR commented 9 months ago

Goals

Background

Our current security release process is currently the following:

  1. We make a patch
  2. We sparsely test it
  3. We send it to Bowen
  4. Bowen manually sends it to the top 34%-stake-owning validators
  5. Once enough these validators have deployed it, we publish the patch

This proposal focuses on the “distributing the patch” part (steps 3-5) of this process. The “testing” part (step 2) is orthogonal to this proposal, as whatever we choose to do, we need to test with the patch still being secret.

Why should NEAR One work on this

The current security release process places too much stress on Bowen. In particular, it currently cannot work properly without Bowen’s involvement, which could be problematic eg. in case Bowen were to be unreachable.

What needs to be accomplished

This first step aims to build a trusted validators group, used only for emergencies (so it is high-signal for them), that release managers can use to directly warn of a code red vulnerability. Having this group will also help us actually vet the validators once, and not have to worry about who to send the patch to each time.

We would need to:

Main use case

The use case will be invisible until we need to do a security release with Bowen unreachable. However, the reason for processes is to not have to think during a crisis, and instead to just use the process that was carefully crafted ahead-of-time. Hence, we should craft this process before the need arises.

In addition, having the requirements clearly stated and the security release process documented, would help us clarify our stance towards validators, and avoid validators wondering why they did not receive the security patch ahead-of-time. It would thus help with our transparency.

Links to external documentations and discussions

Discussion has already started on the full design document.

Estimated effort

The node team is expected to work on this project, as they have the best contact with the validator community. The estimated time is 1-2 weeks-person, depending on the number of comments.

Assumptions

None

Pre-requisites

None

Out of scope

None

Task list

### Tasks
- [ ] define the exact vetting process to enter the trusted validator group
- [ ] create the group itself, with the validators we have vetted, making sure we have at least 50~80% of the total stake in the group
- [ ] write down a security release process document, that can mostly be copy-pasted from this project description, explaining in simple terms what exactly needs to be done during a security release
- [ ] optionally make a nearcore-trusted repository, shared with trusted validators