Open yondonfu opened 5 years ago
Another aspect of this research project is the verification algorithm itself. Currently, the proposed solution is a logistic regression based classifier trained with a dataset published by Livepeer. It's important to think about:
Another suggestion is to add the requirement of Parameterized transcoding, where the transcoding setting can be an input, and be captured in the verification workflow.
@ericxtang Yeah the verification task/algorithm is certainly a crucial component of the larger verification system - we are already capturing the details around the verification task/algorithm in the transcoding verification research project and this problem statement seeks to capture the details around when the verification task should be run (see the distinction outlined in the "Brief Description" section).
The two research projects will be closely related though and will likely benefit from consistent communication of results/insights!
Another suggestion is to add the requirement of Parameterized transcoding, where the transcoding setting can be an input, and be captured in the verification workflow.
👍 I've added this to the requirements section as Parameterized transcoding options.
Brief Description
Transcoding verification in the Livepeer network is a three part problem:
This problem statement will focus on part 3. In the V1 protocol, the verification task is executed when an orchestrator (using Streamflow terminology - they are referred to as transcoders in V1) submits a segment for verification which consists of the following steps:
For more details on the V1 challenge protocol, see the V1 spec.
A few of the downsides of the V1 challenge protocol include:
As a part of Streamflow, we are exploring a challenge protocol that is broadcaster driven as opposed to orchestrator driven. The broadcaster is responsible for running a verification task locally on a sample of transcoded results returned from an orchestrator and challenging segments for verification.
The problem we are interested in solving is how a broadcaster should detect segments to challenge and how it should invoke the challenge. We proceed to discuss the specific requirements for a broadcaster transcoding verification challenge protocol below.
Problem Statement
Use Cases
A broadcaster transcoding verification protocol must fulfill or preserve the following use cases:
Requirements
Reasonable Assumptions
Candidate Constructions
Local verification of random samples
For every input segment
seg_data
with a set of requested transcoding optionst_opts
that a broadcaster sends to an orchestrator, the broadcaster also sends the signatureb_sig = sign(b_priv_key, H(seg_data) + H(t_opts))
.b_sig
cryptographically binds the input segment and the set of transcoding options pair to the broadcaster.For every transcoded result
t_res
that for an input segmentseg_data
that an orchestrator sends to a broadcaster, the orchestrator also sends the signatureo_sig = sign(o_priv_key, H(seg_data) + H(t_res))
to the broadcaster.o_sig
cryptographically binds the input segment and transcoded result pair to the orchestrator.The broadcaster defines a verification rate parameter
v_rate
- everyv_rate
segment that it sends, the broadcaster will randomly sample a transcoded result from the set of all transcoded results received for the lastv_rate
segments.Let
seg_data
be the sampled input segment,t_opts
be the set of transcoding options for the sampled input segment,t_res
be the sampled transcoded result andt_res_opt
be the specific transcoding option (i.e. rendition) corresponding tot_res
. The broadcaster runs the verification task usingseg_data
,t_res
andt_res_opt
which results in a pass or fail. If the verification passes, the broadcaster does nothing. If the verification fails, the broadcaster initiates an on-chain challenge:seg_data
atseg_data_storage
andt_res
att_res_storage
at a storage provider i.e. IPFSH(seg_data)
,H(t_res)
,t_res_opt
,t_opts
,o_sig
,b_sig
,seg_data_storage
andt_res_storage
to the verification contract.o_sig
is valid forH(seg_data)
andH(t_res)
b_sig
is valid forH(seg_data)
andH(t_opts)
t_res_opt
is int_opts
seg_data
fromseg_data_storage
andt_res
fromt_res_storage
. The off-chain verifier checks thatseg_data
matchesH(seg_data)
provided on-chain and thatt_res
matchesH(t_res)
provided on-chain.seg_data
,t_res
andt_res_opt
. The result (pass or fail) is submitted back to the contract.o_sig
) is slashed.Open Problems/Questions
Objectives & Key Results
Objective 1: Design a broadcaster transcoding verification challenge protocol that fulfills the above requirements.
If Objective 1 is believed to be impossible, then consider:
Objective 2: Prove that a broadcaster transcoding verification challenge protocol that fulfills the above requirements does not exist.
When a "written explanation" is mentioned, a logically constructed argument will usually suffice. Ideally, a rigorous proof (i.e. mathematical) would be provided. However, since not everyone is trained in writing those types of proofs and in the interest of promoting more open participation, the former should be adequate.
Suggested Reading
[1] V1 protocol challenge protocol (spec)