FiloSottile / FiloSottile/torchwood

litewitness: witness should store full checkpoints

Open
#72 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
29
Forks
17
PR merge metrics
No merged PRs in 30d

Description

The signature a log makes on a checkpoint provides non-repudiation, i.e. recipients of such checkpoints can prove that the log issued that checkpoint. If a witness operator discovers log misbehavior (i.e. a split view signed by their witness) , they can use this signature to prove this misbehavior to others.

However, as it stands, litewitness only stores the root hash and size for each log, so while an operator could detect misbehavior, they cannot prove to others that they haven't made up this claim. Thus, litewitness should also either store the relevant signature made by the log or simply (like sunlight does) persist the whole checkpoint for each log.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how litewitness currently persists each log's root hash and size, then inspect how checkpoints and their signatures are represented. Done means a witness can provide verifiable evidence of the original signed checkpoint when reporting log misbehavior, rather than only the root hash and size.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.