oasisprotocol / oasisprotocol/oasis-core

Player terminology is confused

Open
#5,910 0 comments 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/6dcf9d8efcc828f8f194df1e82dfe5fe96ad7221/secret-sharing/src/churp/player.rs#L16

In secret sharing schemes, the terminology traditionally is that the shareholders are the players of a (cryptographic) game. There is sometimes a single honest dealer who shares out the initial secret; sometimes there are T+1 untrusted dealers who cooperatively create a secret sharing polynomial with a constant term no single dealer could determine/control. The "game" between the dealer(s) and players involve the initial distribution / setup of the shares, including verification (if verifiable secret sharing). After the initial setup, the dealer is no longer necessary for the reconstruction of the secret, or for generating derived keys (as in the KDC case), or for proactivization (since the zero-holed polynomial is done VSS style).

The Player here is what would be called the client in a client/server setup in a key distribution scheme. In secret sharing based key distribution, instead of a single trusted server, we have instead have a set of servers -- the players of the cryptographic game earlier -- among which we believe, as a security assumption, the adversary could not have compromised more than a threshold number. Clients could be compromised too: they're authorized to obtain their key and when compromised, their key becomes exposed but no master keys.

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/churp/player.rs at the linked definition, then search the repository for references to Player and related terminology. Clarify the intended client/server naming with maintainers before changing usages. Done means the terminology consistently reflects the roles described in the issue and the affected checks still pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cryptography
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.