oasisprotocol / oasisprotocol/oasis-core

no way to add two bivariates polynomials (esp w/ different max degrees)

Open
#5,832 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
369
Forks
151
Avg merge
1d 3h
Merged PRs (30d)
6

Description

https://github.com/oasisprotocol/oasis-core/blob/18da8bc49d92a543795246b8bb7fb574df070eec/secret-sharing/src/poly/bivariate.rs#L15

while we don't need to do proactive verifiable secret sharing by adding zero holed bivariate polynomials since we can do churp dimension switching and get the same effect, it will be useful to be able to add a zero holed bivariate polynomial to a bivariate used for churp, esp with the max degree(s) growing.

the rationale for wanting this ability is this: we would like to be able to optionally grow the reconstruction threshold (as well as the number of shareholders for availability) as the value of the secrets being protected grows. in the context of a blockchain system, this would correspond to something like the total value locked increasing over time as the usage increases.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with secret-sharing/src/poly/bivariate.rs at the linked implementation and inspect how bivariate polynomials represent their maximum degrees and coefficients. Define the addition behavior for zero-holed polynomials with different maximum degrees, including the Churp use case; done means those polynomials can be added safely as degrees grow and the behavior is covered by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain, cryptography
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.