WEBVTT
Kind: captions
Language: en

00:00:09.190 --> 00:00:17.400 align:start position:0%
 
[Music]

00:00:17.400 --> 00:00:17.410 align:start position:0%
 
 

00:00:17.410 --> 00:00:21.820 align:start position:0%
 
hi<00:00:18.410><c> so</c><00:00:18.800><c> my</c><00:00:19.280><c> name</c><00:00:19.910><c> is</c><00:00:20.330><c> Jakob</c><00:00:20.660><c> Eva</c><00:00:21.020><c> Hut</c><00:00:21.200><c> and</c><00:00:21.440><c> I</c>

00:00:21.820 --> 00:00:21.830 align:start position:0%
hi so my name is Jakob Eva Hut and I
 

00:00:21.830 --> 00:00:23.680 align:start position:0%
hi so my name is Jakob Eva Hut and I
work<00:00:22.070><c> at</c><00:00:22.310><c> the</c><00:00:22.340><c> information</c><00:00:23.150><c> systems</c>

00:00:23.680 --> 00:00:23.690 align:start position:0%
work at the information systems
 

00:00:23.690 --> 00:00:26.110 align:start position:0%
work at the information systems
engineering<00:00:24.380><c> group</c><00:00:24.770><c> at</c><00:00:25.010><c> T</c><00:00:25.490><c> Berlin</c><00:00:25.910><c> in</c><00:00:26.090><c> Germany</c>

00:00:26.110 --> 00:00:26.120 align:start position:0%
engineering group at T Berlin in Germany
 

00:00:26.120 --> 00:00:28.710 align:start position:0%
engineering group at T Berlin in Germany
and<00:00:26.690><c> I'm</c><00:00:27.230><c> here</c><00:00:27.500><c> today</c><00:00:27.680><c> to</c><00:00:27.860><c> talk</c><00:00:28.280><c> about</c>

00:00:28.710 --> 00:00:28.720 align:start position:0%
and I'm here today to talk about
 

00:00:28.720 --> 00:00:32.619 align:start position:0%
and I'm here today to talk about
Socrates<00:00:29.720><c> which</c><00:00:30.680><c> is</c><00:00:30.920><c> a</c><00:00:30.950><c> toolbox</c><00:00:31.670><c> for</c><00:00:32.000><c> CK</c>

00:00:32.619 --> 00:00:32.629 align:start position:0%
Socrates which is a toolbox for CK
 

00:00:32.629 --> 00:00:36.850 align:start position:0%
Socrates which is a toolbox for CK
snarks<00:00:33.170><c> on</c><00:00:33.590><c> a</c><00:00:34.130><c> theorem</c><00:00:34.990><c> so</c><00:00:35.990><c> let's</c><00:00:36.320><c> first</c><00:00:36.680><c> look</c>

00:00:36.850 --> 00:00:36.860 align:start position:0%
snarks on a theorem so let's first look
 

00:00:36.860 --> 00:00:40.210 align:start position:0%
snarks on a theorem so let's first look
at<00:00:37.220><c> how</c><00:00:37.550><c> transaction</c><00:00:38.420><c> processing</c><00:00:39.200><c> works</c><00:00:39.829><c> and</c>

00:00:40.210 --> 00:00:40.220 align:start position:0%
at how transaction processing works and
 

00:00:40.220 --> 00:00:42.340 align:start position:0%
at how transaction processing works and
traditional<00:00:40.760><c> blockchain</c><00:00:41.300><c> networks</c><00:00:41.660><c> as</c><00:00:41.870><c> you</c>

00:00:42.340 --> 00:00:42.350 align:start position:0%
traditional blockchain networks as you
 

00:00:42.350 --> 00:00:44.290 align:start position:0%
traditional blockchain networks as you
can<00:00:42.530><c> see</c><00:00:42.739><c> on</c><00:00:42.890><c> the</c><00:00:43.010><c> left</c><00:00:43.220><c> the</c><00:00:43.460><c> transaction</c><00:00:44.120><c> is</c>

00:00:44.290 --> 00:00:44.300 align:start position:0%
can see on the left the transaction is
 

00:00:44.300 --> 00:00:47.470 align:start position:0%
can see on the left the transaction is
sent<00:00:45.050><c> to</c><00:00:45.320><c> the</c><00:00:45.530><c> network</c><00:00:45.860><c> it</c><00:00:46.250><c> that</c><00:00:46.579><c> then</c><00:00:47.120><c> gets</c>

00:00:47.470 --> 00:00:47.480 align:start position:0%
sent to the network it that then gets
 

00:00:47.480 --> 00:00:49.690 align:start position:0%
sent to the network it that then gets
validated<00:00:48.260><c> at</c><00:00:48.410><c> the</c><00:00:48.530><c> first</c><00:00:48.770><c> node</c><00:00:49.070><c> understand</c>

00:00:49.690 --> 00:00:49.700 align:start position:0%
validated at the first node understand
 

00:00:49.700 --> 00:00:52.180 align:start position:0%
validated at the first node understand
broadcast<00:00:50.239><c> to</c><00:00:50.540><c> the</c><00:00:50.660><c> other</c><00:00:50.810><c> nodes</c><00:00:51.110><c> and</c><00:00:51.470><c> at</c><00:00:51.920><c> some</c>

00:00:52.180 --> 00:00:52.190 align:start position:0%
broadcast to the other nodes and at some
 

00:00:52.190 --> 00:00:55.090 align:start position:0%
broadcast to the other nodes and at some
point<00:00:52.489><c> it</c><00:00:52.730><c> gets</c><00:00:52.760><c> included</c><00:00:53.660><c> into</c><00:00:54.380><c> some</c><00:00:54.710><c> block</c>

00:00:55.090 --> 00:00:55.100 align:start position:0%
point it gets included into some block
 

00:00:55.100 --> 00:00:57.340 align:start position:0%
point it gets included into some block
after<00:00:55.340><c> someone</c><00:00:56.210><c> solved</c><00:00:56.690><c> the</c><00:00:56.930><c> proof-of-work</c>

00:00:57.340 --> 00:00:57.350 align:start position:0%
after someone solved the proof-of-work
 

00:00:57.350 --> 00:01:01.540 align:start position:0%
after someone solved the proof-of-work
problem<00:00:58.690><c> now</c><00:00:59.690><c> imagine</c><00:01:00.290><c> if</c><00:01:00.469><c> we</c><00:01:00.770><c> had</c><00:01:00.800><c> a</c><00:01:00.980><c> system</c>

00:01:01.540 --> 00:01:01.550 align:start position:0%
problem now imagine if we had a system
 

00:01:01.550 --> 00:01:03.639 align:start position:0%
problem now imagine if we had a system
like<00:01:01.969><c> on</c><00:01:02.210><c> the</c><00:01:02.450><c> right</c><00:01:02.600><c> side</c><00:01:02.930><c> where</c><00:01:03.620><c> a</c>

00:01:03.639 --> 00:01:03.649 align:start position:0%
like on the right side where a
 

00:01:03.649 --> 00:01:06.460 align:start position:0%
like on the right side where a
transaction<00:01:04.519><c> is</c><00:01:04.790><c> sent</c><00:01:05.180><c> to</c><00:01:05.479><c> the</c><00:01:05.810><c> nodes</c><00:01:06.020><c> in</c><00:01:06.320><c> a</c>

00:01:06.460 --> 00:01:06.470 align:start position:0%
transaction is sent to the nodes in a
 

00:01:06.470 --> 00:01:09.039 align:start position:0%
transaction is sent to the nodes in a
network<00:01:06.500><c> but</c><00:01:07.400><c> instead</c><00:01:07.850><c> of</c><00:01:08.090><c> directly</c><00:01:08.659><c> being</c>

00:01:09.039 --> 00:01:09.049 align:start position:0%
network but instead of directly being
 

00:01:09.049 --> 00:01:12.370 align:start position:0%
network but instead of directly being
validated<00:01:09.530><c> on</c><00:01:09.920><c> chain</c><00:01:10.250><c> they</c><00:01:10.880><c> get</c><00:01:11.120><c> forwarded</c><00:01:11.990><c> to</c>

00:01:12.370 --> 00:01:12.380 align:start position:0%
validated on chain they get forwarded to
 

00:01:12.380 --> 00:01:14.440 align:start position:0%
validated on chain they get forwarded to
a<00:01:12.409><c> third</c><00:01:12.710><c> party</c><00:01:13.220><c> the</c><00:01:13.460><c> yellow</c><00:01:13.729><c> box</c><00:01:13.970><c> here</c><00:01:14.299><c> and</c>

00:01:14.440 --> 00:01:14.450 align:start position:0%
a third party the yellow box here and
 

00:01:14.450 --> 00:01:17.109 align:start position:0%
a third party the yellow box here and
that's<00:01:15.440><c> where</c><00:01:15.710><c> the</c><00:01:15.830><c> transaction</c><00:01:16.430><c> processing</c>

00:01:17.109 --> 00:01:17.119 align:start position:0%
that's where the transaction processing
 

00:01:17.119 --> 00:01:20.109 align:start position:0%
that's where the transaction processing
happens<00:01:17.570><c> after</c><00:01:18.470><c> the</c><00:01:18.650><c> processing</c><00:01:19.369><c> off</c><00:01:19.580><c> chain</c>

00:01:20.109 --> 00:01:20.119 align:start position:0%
happens after the processing off chain
 

00:01:20.119 --> 00:01:23.230 align:start position:0%
happens after the processing off chain
is<00:01:20.630><c> done</c><00:01:21.020><c> the</c><00:01:21.650><c> result</c><00:01:22.070><c> is</c><00:01:22.280><c> written</c><00:01:22.580><c> back</c><00:01:22.820><c> to</c>

00:01:23.230 --> 00:01:23.240 align:start position:0%
is done the result is written back to
 

00:01:23.240 --> 00:01:23.890 align:start position:0%
is done the result is written back to
the<00:01:23.330><c> blockchain</c>

00:01:23.890 --> 00:01:23.900 align:start position:0%
the blockchain
 

00:01:23.900 --> 00:01:26.950 align:start position:0%
the blockchain
and<00:01:24.080><c> on</c><00:01:24.590><c> chain</c><00:01:24.950><c> it</c><00:01:25.190><c> is</c><00:01:25.700><c> verified</c><00:01:26.270><c> to</c><00:01:26.780><c> be</c>

00:01:26.950 --> 00:01:26.960 align:start position:0%
and on chain it is verified to be
 

00:01:26.960 --> 00:01:29.910 align:start position:0%
and on chain it is verified to be
correct

00:01:29.910 --> 00:01:29.920 align:start position:0%
 
 

00:01:29.920 --> 00:01:32.920 align:start position:0%
 
only<00:01:30.920><c> that</c><00:01:31.130><c> verification</c><00:01:31.580><c> will</c><00:01:32.360><c> then</c><00:01:32.570><c> happen</c>

00:01:32.920 --> 00:01:32.930 align:start position:0%
only that verification will then happen
 

00:01:32.930 --> 00:01:35.320 align:start position:0%
only that verification will then happen
redundantly<00:01:33.890><c> and</c><00:01:34.220><c> not</c><00:01:34.520><c> the</c><00:01:34.729><c> transaction</c>

00:01:35.320 --> 00:01:35.330 align:start position:0%
redundantly and not the transaction
 

00:01:35.330 --> 00:01:39.070 align:start position:0%
redundantly and not the transaction
processing<00:01:36.049><c> itself</c><00:01:36.970><c> so</c><00:01:37.970><c> what</c><00:01:38.720><c> would</c><00:01:38.869><c> be</c>

00:01:39.070 --> 00:01:39.080 align:start position:0%
processing itself so what would be
 

00:01:39.080 --> 00:01:41.410 align:start position:0%
processing itself so what would be
gained<00:01:39.290><c> through</c><00:01:39.320><c> that</c><00:01:39.830><c> one</c><00:01:40.670><c> thing</c><00:01:41.000><c> will</c><00:01:41.270><c> be</c>

00:01:41.410 --> 00:01:41.420 align:start position:0%
gained through that one thing will be
 

00:01:41.420 --> 00:01:44.820 align:start position:0%
gained through that one thing will be
scalability<00:01:42.320><c> if</c><00:01:42.770><c> the</c><00:01:43.610><c> verification</c><00:01:43.909><c> is</c>

00:01:44.820 --> 00:01:44.830 align:start position:0%
scalability if the verification is
 

00:01:44.830 --> 00:01:48.850 align:start position:0%
scalability if the verification is
cheaper<00:01:45.830><c> than</c><00:01:45.860><c> redoing</c><00:01:46.580><c> or</c><00:01:47.530><c> executing</c><00:01:48.530><c> the</c>

00:01:48.850 --> 00:01:48.860 align:start position:0%
cheaper than redoing or executing the
 

00:01:48.860 --> 00:01:50.980 align:start position:0%
cheaper than redoing or executing the
transaction<00:01:49.460><c> in</c><00:01:49.549><c> the</c><00:01:49.640><c> first</c><00:01:49.880><c> place</c><00:01:50.180><c> if</c><00:01:50.450><c> you</c>

00:01:50.980 --> 00:01:50.990 align:start position:0%
transaction in the first place if you
 

00:01:50.990 --> 00:01:53.020 align:start position:0%
transaction in the first place if you
only<00:01:51.200><c> have</c><00:01:51.530><c> to</c><00:01:51.740><c> do</c><00:01:51.890><c> the</c><00:01:52.040><c> verification</c><00:01:52.310><c> on</c>

00:01:53.020 --> 00:01:53.030 align:start position:0%
only have to do the verification on
 

00:01:53.030 --> 00:01:55.289 align:start position:0%
only have to do the verification on
chain<00:01:53.299><c> then</c><00:01:53.840><c> you</c><00:01:54.049><c> can</c><00:01:54.229><c> increase</c><00:01:54.500><c> throughput</c>

00:01:55.289 --> 00:01:55.299 align:start position:0%
chain then you can increase throughput
 

00:01:55.299 --> 00:01:58.510 align:start position:0%
chain then you can increase throughput
also<00:01:56.299><c> there</c><00:01:56.540><c> is</c><00:01:56.630><c> no</c><00:01:56.659><c> such</c><00:01:57.110><c> thing</c><00:01:57.470><c> as</c><00:01:57.680><c> a</c><00:01:57.770><c> block</c>

00:01:58.510 --> 00:01:58.520 align:start position:0%
also there is no such thing as a block
 

00:01:58.520 --> 00:02:00.700 align:start position:0%
also there is no such thing as a block
cast<00:01:58.820><c> limit</c><00:01:59.299><c> that</c><00:01:59.540><c> comes</c><00:01:59.930><c> into</c><00:02:00.170><c> play</c><00:02:00.259><c> here</c>

00:02:00.700 --> 00:02:00.710 align:start position:0%
cast limit that comes into play here
 

00:02:00.710 --> 00:02:02.859 align:start position:0%
cast limit that comes into play here
because<00:02:01.159><c> there's</c><00:02:01.430><c> no</c><00:02:01.670><c> need</c><00:02:02.119><c> to</c><00:02:02.180><c> circumvent</c>

00:02:02.859 --> 00:02:02.869 align:start position:0%
because there's no need to circumvent
 

00:02:02.869 --> 00:02:06.340 align:start position:0%
because there's no need to circumvent
the<00:02:03.170><c> halting</c><00:02:03.619><c> problem</c><00:02:03.650><c> a</c><00:02:04.689><c> second</c><00:02:05.689><c> aspect</c><00:02:05.990><c> is</c>

00:02:06.340 --> 00:02:06.350 align:start position:0%
the halting problem a second aspect is
 

00:02:06.350 --> 00:02:08.919 align:start position:0%
the halting problem a second aspect is
the<00:02:06.860><c> private</c><00:02:07.369><c> information</c><00:02:08.060><c> that</c><00:02:08.329><c> gets</c><00:02:08.509><c> used</c>

00:02:08.919 --> 00:02:08.929 align:start position:0%
the private information that gets used
 

00:02:08.929 --> 00:02:12.130 align:start position:0%
the private information that gets used
on<00:02:09.140><c> that</c><00:02:09.439><c> external</c><00:02:09.890><c> node</c><00:02:10.250><c> can</c><00:02:10.970><c> if</c><00:02:11.209><c> we</c><00:02:11.599><c> use</c><00:02:11.989><c> the</c>

00:02:12.130 --> 00:02:12.140 align:start position:0%
on that external node can if we use the
 

00:02:12.140 --> 00:02:14.620 align:start position:0%
on that external node can if we use the
right<00:02:12.290><c> tools</c><00:02:12.620><c> be</c><00:02:13.160><c> kept</c><00:02:13.400><c> private</c><00:02:13.670><c> and</c>

00:02:14.620 --> 00:02:14.630 align:start position:0%
right tools be kept private and
 

00:02:14.630 --> 00:02:16.240 align:start position:0%
right tools be kept private and
do<00:02:14.780><c> not</c><00:02:14.960><c> have</c><00:02:15.230><c> to</c><00:02:15.380><c> be</c><00:02:15.470><c> published</c><00:02:15.980><c> to</c><00:02:16.220><c> the</c>

00:02:16.240 --> 00:02:16.250 align:start position:0%
do not have to be published to the
 

00:02:16.250 --> 00:02:18.100 align:start position:0%
do not have to be published to the
Blackshear<00:02:16.700><c> network</c><00:02:17.030><c> which</c><00:02:17.300><c> is</c><00:02:17.480><c> also</c><00:02:17.660><c> what</c><00:02:17.990><c> we</c>

00:02:18.100 --> 00:02:18.110 align:start position:0%
Blackshear network which is also what we
 

00:02:18.110 --> 00:02:21.130 align:start position:0%
Blackshear network which is also what we
not<00:02:18.290><c> have</c><00:02:18.590><c> at</c><00:02:18.860><c> the</c><00:02:19.070><c> moment</c><00:02:19.660><c> so</c><00:02:20.660><c> what</c><00:02:20.990><c> our</c>

00:02:21.130 --> 00:02:21.140 align:start position:0%
not have at the moment so what our
 

00:02:21.140 --> 00:02:23.020 align:start position:0%
not have at the moment so what our
approach<00:02:21.380><c> is</c><00:02:21.710><c> for</c><00:02:21.890><c> that</c><00:02:22.070><c> we've</c><00:02:22.610><c> heard</c><00:02:22.880><c> an</c>

00:02:23.020 --> 00:02:23.030 align:start position:0%
approach is for that we've heard an
 

00:02:23.030 --> 00:02:24.910 align:start position:0%
approach is for that we've heard an
excellent<00:02:23.450><c> talk</c><00:02:23.660><c> by</c><00:02:23.870><c> Jason</c><00:02:24.350><c> earlier</c><00:02:24.740><c> about</c>

00:02:24.910 --> 00:02:24.920 align:start position:0%
excellent talk by Jason earlier about
 

00:02:24.920 --> 00:02:27.070 align:start position:0%
excellent talk by Jason earlier about
Ruben<00:02:25.610><c> and</c><00:02:25.760><c> true--but</c><00:02:26.120><c> is</c><00:02:26.300><c> one</c><00:02:26.570><c> such</c><00:02:26.870><c> approach</c>

00:02:27.070 --> 00:02:27.080 align:start position:0%
Ruben and true--but is one such approach
 

00:02:27.080 --> 00:02:30.610 align:start position:0%
Ruben and true--but is one such approach
where<00:02:28.070><c> you</c><00:02:28.250><c> gain</c><00:02:29.240><c> scalability</c><00:02:30.200><c> by</c><00:02:30.440><c> off</c>

00:02:30.610 --> 00:02:30.620 align:start position:0%
where you gain scalability by off
 

00:02:30.620 --> 00:02:32.770 align:start position:0%
where you gain scalability by off
training<00:02:30.980><c> computations</c><00:02:31.820><c> and</c><00:02:32.000><c> then</c><00:02:32.480><c> there's</c>

00:02:32.770 --> 00:02:32.780 align:start position:0%
training computations and then there's
 

00:02:32.780 --> 00:02:35.680 align:start position:0%
training computations and then there's
that<00:02:32.930><c> verification</c><00:02:33.380><c> game</c><00:02:34.090><c> played</c><00:02:35.090><c> on</c><00:02:35.120><c> chain</c>

00:02:35.680 --> 00:02:35.690 align:start position:0%
that verification game played on chain
 

00:02:35.690 --> 00:02:39.300 align:start position:0%
that verification game played on chain
and<00:02:36.050><c> with</c><00:02:36.800><c> that</c><00:02:37.040><c> you</c><00:02:37.490><c> gain</c><00:02:37.930><c> scalability</c>

00:02:39.300 --> 00:02:39.310 align:start position:0%
and with that you gain scalability
 

00:02:39.310 --> 00:02:42.160 align:start position:0%
and with that you gain scalability
another<00:02:40.310><c> approach</c><00:02:40.790><c> is</c><00:02:41.090><c> a</c><00:02:41.600><c> non-interactive</c>

00:02:42.160 --> 00:02:42.170 align:start position:0%
another approach is a non-interactive
 

00:02:42.170 --> 00:02:46.210 align:start position:0%
another approach is a non-interactive
thorough<00:02:43.160><c> knowledge</c><00:02:43.400><c> crews</c><00:02:44.500><c> in</c><00:02:45.500><c> that</c><00:02:45.560><c> case</c>

00:02:46.210 --> 00:02:46.220 align:start position:0%
thorough knowledge crews in that case
 

00:02:46.220 --> 00:02:48.250 align:start position:0%
thorough knowledge crews in that case
you<00:02:46.760><c> additionally</c><00:02:47.450><c> have</c><00:02:47.480><c> certain</c><00:02:48.080><c> knowledge</c>

00:02:48.250 --> 00:02:48.260 align:start position:0%
you additionally have certain knowledge
 

00:02:48.260 --> 00:02:50.620 align:start position:0%
you additionally have certain knowledge
that<00:02:48.440><c> means</c><00:02:48.890><c> the</c><00:02:49.430><c> private</c><00:02:49.880><c> information</c><00:02:50.030><c> you</c>

00:02:50.620 --> 00:02:50.630 align:start position:0%
that means the private information you
 

00:02:50.630 --> 00:02:52.540 align:start position:0%
that means the private information you
use<00:02:50.870><c> during</c><00:02:51.230><c> your</c><00:02:51.440><c> processing</c><00:02:52.340><c> on</c><00:02:52.520><c> that</c>

00:02:52.540 --> 00:02:52.550 align:start position:0%
use during your processing on that
 

00:02:52.550 --> 00:02:56.500 align:start position:0%
use during your processing on that
external<00:02:53.330><c> node</c><00:02:53.690><c> they</c><00:02:54.200><c> are</c><00:02:54.530><c> not</c><00:02:55.210><c> revealed</c><00:02:56.210><c> to</c>

00:02:56.500 --> 00:02:56.510 align:start position:0%
external node they are not revealed to
 

00:02:56.510 --> 00:03:01.230 align:start position:0%
external node they are not revealed to
the<00:02:56.630><c> network</c><00:02:57.730><c> okay</c><00:02:58.730><c> so</c><00:02:58.790><c> what</c><00:02:59.720><c> could</c><00:03:00.440><c> those</c>

00:03:01.230 --> 00:03:01.240 align:start position:0%
the network okay so what could those
 

00:03:01.240 --> 00:03:05.050 align:start position:0%
the network okay so what could those
non-interactive<00:03:02.240><c> sir</c><00:03:02.390><c> knowledge</c><00:03:02.810><c> proofs</c><00:03:04.060><c> b1y</c>

00:03:05.050 --> 00:03:05.060 align:start position:0%
non-interactive sir knowledge proofs b1y
 

00:03:05.060 --> 00:03:07.720 align:start position:0%
non-interactive sir knowledge proofs b1y
a<00:03:05.570><c> proven</c><00:03:06.080><c> mechanism</c><00:03:06.680><c> is</c><00:03:06.800><c> ckase</c><00:03:07.190><c> narcs</c><00:03:07.580><c> I</c>

00:03:07.720 --> 00:03:07.730 align:start position:0%
a proven mechanism is ckase narcs I
 

00:03:07.730 --> 00:03:09.820 align:start position:0%
a proven mechanism is ckase narcs I
think<00:03:07.970><c> many</c><00:03:08.270><c> of</c><00:03:08.450><c> you</c><00:03:08.660><c> are</c><00:03:08.900><c> aware</c><00:03:09.260><c> of</c><00:03:09.620><c> that</c>

00:03:09.820 --> 00:03:09.830 align:start position:0%
think many of you are aware of that
 

00:03:09.830 --> 00:03:12.430 align:start position:0%
think many of you are aware of that
technology<00:03:10.430><c> and</c><00:03:10.610><c> it's</c><00:03:11.120><c> 10</c><00:03:11.360><c> for</c><00:03:11.630><c> zero</c>

00:03:12.430 --> 00:03:12.440 align:start position:0%
technology and it's 10 for zero
 

00:03:12.440 --> 00:03:14.710 align:start position:0%
technology and it's 10 for zero
knowledge<00:03:12.730><c> succeed</c><00:03:13.730><c> on</c><00:03:14.060><c> interactive</c>

00:03:14.710 --> 00:03:14.720 align:start position:0%
knowledge succeed on interactive
 

00:03:14.720 --> 00:03:16.810 align:start position:0%
knowledge succeed on interactive
arguments<00:03:15.260><c> of</c><00:03:15.380><c> knowledge</c><00:03:15.830><c> and</c><00:03:16.070><c> here</c><00:03:16.640><c> are</c>

00:03:16.810 --> 00:03:16.820 align:start position:0%
arguments of knowledge and here are
 

00:03:16.820 --> 00:03:19.900 align:start position:0%
arguments of knowledge and here are
several<00:03:17.810><c> key</c><00:03:18.350><c> properties</c><00:03:19.040><c> of</c><00:03:19.280><c> seek</c><00:03:19.490><c> a</c><00:03:19.640><c> snark</c>

00:03:19.900 --> 00:03:19.910 align:start position:0%
several key properties of seek a snark
 

00:03:19.910 --> 00:03:22.000 align:start position:0%
several key properties of seek a snark
so<00:03:20.180><c> the</c><00:03:20.630><c> proofs</c><00:03:20.930><c> are</c><00:03:21.080><c> short</c><00:03:21.380><c> and</c><00:03:21.590><c> non</c>

00:03:22.000 --> 00:03:22.010 align:start position:0%
so the proofs are short and non
 

00:03:22.010 --> 00:03:24.070 align:start position:0%
so the proofs are short and non
interactive<00:03:22.670><c> that</c><00:03:23.090><c> essentially</c><00:03:23.720><c> means</c><00:03:23.930><c> you</c>

00:03:24.070 --> 00:03:24.080 align:start position:0%
interactive that essentially means you
 

00:03:24.080 --> 00:03:26.920 align:start position:0%
interactive that essentially means you
can<00:03:24.380><c> simply</c><00:03:24.890><c> take</c><00:03:25.460><c> approve</c><00:03:25.850><c> generated</c><00:03:26.810><c> by</c>

00:03:26.920 --> 00:03:26.930 align:start position:0%
can simply take approve generated by
 

00:03:26.930 --> 00:03:28.690 align:start position:0%
can simply take approve generated by
approvers<00:03:27.440><c> send</c><00:03:27.770><c> it</c><00:03:27.920><c> over</c><00:03:28.160><c> the</c><00:03:28.340><c> network</c><00:03:28.520><c> to</c>

00:03:28.690 --> 00:03:28.700 align:start position:0%
approvers send it over the network to
 

00:03:28.700 --> 00:03:30.580 align:start position:0%
approvers send it over the network to
verifier<00:03:29.540><c> and</c><00:03:29.840><c> without</c><00:03:30.320><c> further</c>

00:03:30.580 --> 00:03:30.590 align:start position:0%
verifier and without further
 

00:03:30.590 --> 00:03:33.130 align:start position:0%
verifier and without further
communication<00:03:31.550><c> it</c><00:03:31.700><c> can</c><00:03:32.180><c> then</c><00:03:32.420><c> be</c><00:03:32.450><c> verified</c>

00:03:33.130 --> 00:03:33.140 align:start position:0%
communication it can then be verified
 

00:03:33.140 --> 00:03:34.900 align:start position:0%
communication it can then be verified
also<00:03:34.070><c> we</c><00:03:34.280><c> have</c><00:03:34.430><c> a</c><00:03:34.460><c> certain</c><00:03:34.790><c> knowledge</c>

00:03:34.900 --> 00:03:34.910 align:start position:0%
also we have a certain knowledge
 

00:03:34.910 --> 00:03:37.150 align:start position:0%
also we have a certain knowledge
property<00:03:35.540><c> that</c><00:03:35.930><c> means</c><00:03:36.200><c> some</c><00:03:36.560><c> information</c>

00:03:37.150 --> 00:03:37.160 align:start position:0%
property that means some information
 

00:03:37.160 --> 00:03:40.930 align:start position:0%
property that means some information
that<00:03:37.400><c> goes</c><00:03:37.730><c> into</c><00:03:37.760><c> the</c><00:03:38.300><c> processing</c><00:03:38.980><c> is</c><00:03:39.980><c> not</c>

00:03:40.930 --> 00:03:40.940 align:start position:0%
that goes into the processing is not
 

00:03:40.940 --> 00:03:44.250 align:start position:0%
that goes into the processing is not
revealed<00:03:41.630><c> to</c><00:03:41.900><c> the</c><00:03:42.020><c> network</c><00:03:42.380><c> later</c><00:03:43.040><c> on</c>

00:03:44.250 --> 00:03:44.260 align:start position:0%
revealed to the network later on
 

00:03:44.260 --> 00:03:46.810 align:start position:0%
revealed to the network later on
verification<00:03:45.260><c> cost</c><00:03:45.890><c> and</c><00:03:46.160><c> that's</c><00:03:46.310><c> a</c><00:03:46.430><c> big</c><00:03:46.610><c> one</c>

00:03:46.810 --> 00:03:46.820 align:start position:0%
verification cost and that's a big one
 

00:03:46.820 --> 00:03:49.500 align:start position:0%
verification cost and that's a big one
is<00:03:47.030><c> independent</c><00:03:47.990><c> of</c><00:03:48.170><c> the</c><00:03:48.530><c> computational</c>

00:03:49.500 --> 00:03:49.510 align:start position:0%
is independent of the computational
 

00:03:49.510 --> 00:03:53.590 align:start position:0%
is independent of the computational
complexity<00:03:50.510><c> of</c><00:03:50.720><c> the</c><00:03:51.590><c> initial</c><00:03:52.310><c> computation</c><00:03:53.090><c> so</c>

00:03:53.590 --> 00:03:53.600 align:start position:0%
complexity of the initial computation so
 

00:03:53.600 --> 00:03:55.840 align:start position:0%
complexity of the initial computation so
no<00:03:53.930><c> matter</c><00:03:54.140><c> how</c><00:03:54.410><c> complex</c><00:03:54.920><c> your</c><00:03:55.160><c> computation</c>

00:03:55.840 --> 00:03:55.850 align:start position:0%
no matter how complex your computation
 

00:03:55.850 --> 00:03:58.590 align:start position:0%
no matter how complex your computation
is<00:03:56.030><c> the</c><00:03:56.810><c> cost</c><00:03:57.110><c> of</c><00:03:57.380><c> verifying</c><00:03:57.890><c> a</c><00:03:58.040><c> proof</c><00:03:58.280><c> is</c>

00:03:58.590 --> 00:03:58.600 align:start position:0%
is the cost of verifying a proof is
 

00:03:58.600 --> 00:04:01.990 align:start position:0%
is the cost of verifying a proof is
always<00:03:59.600><c> the</c><00:03:59.870><c> same</c><00:04:00.080><c> ok</c><00:04:00.800><c> so</c><00:04:00.860><c> that's</c><00:04:01.220><c> a</c><00:04:01.430><c> key</c>

00:04:01.990 --> 00:04:02.000 align:start position:0%
always the same ok so that's a key
 

00:04:02.000 --> 00:04:05.170 align:start position:0%
always the same ok so that's a key
aspect<00:04:02.500><c> now</c><00:04:03.500><c> a</c><00:04:03.530><c> little</c><00:04:04.100><c> inconvenience</c><00:04:04.970><c> is</c>

00:04:05.170 --> 00:04:05.180 align:start position:0%
aspect now a little inconvenience is
 

00:04:05.180 --> 00:04:09.340 align:start position:0%
aspect now a little inconvenience is
that<00:04:05.420><c> to</c><00:04:05.810><c> specify</c><00:04:08.020><c> computations</c><00:04:09.020><c> in</c><00:04:09.170><c> a</c><00:04:09.230><c> way</c>

00:04:09.340 --> 00:04:09.350 align:start position:0%
that to specify computations in a way
 

00:04:09.350 --> 00:04:11.080 align:start position:0%
that to specify computations in a way
that<00:04:09.620><c> you</c><00:04:09.740><c> can</c><00:04:09.920><c> do</c><00:04:10.070><c> certain</c><00:04:10.580><c> all</c><00:04:10.700><c> that</c><00:04:10.820><c> proves</c>

00:04:11.080 --> 00:04:11.090 align:start position:0%
that you can do certain all that proves
 

00:04:11.090 --> 00:04:14.410 align:start position:0%
that you can do certain all that proves
on<00:04:11.270><c> you</c><00:04:11.870><c> have</c><00:04:12.110><c> to</c><00:04:12.670><c> think</c><00:04:13.670><c> in</c><00:04:13.850><c> an</c><00:04:13.970><c> abstraction</c>

00:04:14.410 --> 00:04:14.420 align:start position:0%
on you have to think in an abstraction
 

00:04:14.420 --> 00:04:16.330 align:start position:0%
on you have to think in an abstraction
that's<00:04:14.810><c> not</c><00:04:15.020><c> very</c><00:04:15.200><c> convenient</c><00:04:15.680><c> to</c><00:04:16.130><c> most</c>

00:04:16.330 --> 00:04:16.340 align:start position:0%
that's not very convenient to most
 

00:04:16.340 --> 00:04:19.270 align:start position:0%
that's not very convenient to most
developers<00:04:16.970><c> so</c><00:04:17.630><c> for</c><00:04:18.140><c> example</c><00:04:18.709><c> you</c><00:04:19.070><c> can</c>

00:04:19.270 --> 00:04:19.280 align:start position:0%
developers so for example you can
 

00:04:19.280 --> 00:04:21.220 align:start position:0%
developers so for example you can
specify<00:04:19.480><c> computations</c><00:04:20.480><c> as</c><00:04:20.660><c> arithmetic</c>

00:04:21.220 --> 00:04:21.230 align:start position:0%
specify computations as arithmetic
 

00:04:21.230 --> 00:04:24.100 align:start position:0%
specify computations as arithmetic
circuits<00:04:22.100><c> or</c><00:04:22.430><c> rank</c><00:04:22.910><c> one</c><00:04:23.120><c> constraint</c><00:04:23.600><c> systems</c>

00:04:24.100 --> 00:04:24.110 align:start position:0%
circuits or rank one constraint systems
 

00:04:24.110 --> 00:04:26.230 align:start position:0%
circuits or rank one constraint systems
of<00:04:24.350><c> course</c><00:04:25.040><c> you</c><00:04:25.220><c> can</c><00:04:25.400><c> do</c><00:04:25.520><c> it</c><00:04:25.669><c> but</c><00:04:25.970><c> it's</c><00:04:26.120><c> just</c>

00:04:26.230 --> 00:04:26.240 align:start position:0%
of course you can do it but it's just
 

00:04:26.240 --> 00:04:28.120 align:start position:0%
of course you can do it but it's just
not<00:04:26.600><c> convenient</c><00:04:27.110><c> to</c><00:04:27.410><c> do</c><00:04:27.590><c> and</c>

00:04:28.120 --> 00:04:28.130 align:start position:0%
not convenient to do and
 

00:04:28.130 --> 00:04:33.120 align:start position:0%
not convenient to do and
that's<00:04:28.250><c> what</c><00:04:28.840><c> impact</c><00:04:30.310><c> usability</c><00:04:31.450><c> negatively</c>

00:04:33.120 --> 00:04:33.130 align:start position:0%
that's what impact usability negatively
 

00:04:33.130 --> 00:04:35.800 align:start position:0%
that's what impact usability negatively
let's<00:04:34.130><c> take</c><00:04:34.460><c> a</c><00:04:34.490><c> brief</c><00:04:34.820><c> look</c><00:04:34.850><c> at</c><00:04:35.150><c> the</c><00:04:35.330><c> process</c>

00:04:35.800 --> 00:04:35.810 align:start position:0%
let's take a brief look at the process
 

00:04:35.810 --> 00:04:38.170 align:start position:0%
let's take a brief look at the process
of<00:04:36.020><c> using</c><00:04:36.560><c> CK's</c><00:04:37.130><c> knowledge</c><00:04:37.460><c> before</c><00:04:37.820><c> we</c><00:04:37.970><c> move</c>

00:04:38.170 --> 00:04:38.180 align:start position:0%
of using CK's knowledge before we move
 

00:04:38.180 --> 00:04:40.300 align:start position:0%
of using CK's knowledge before we move
on<00:04:38.390><c> to</c><00:04:38.630><c> the</c><00:04:38.780><c> tool</c><00:04:38.990><c> itself</c><00:04:39.380><c> because</c><00:04:40.130><c> it's</c>

00:04:40.300 --> 00:04:40.310 align:start position:0%
on to the tool itself because it's
 

00:04:40.310 --> 00:04:43.480 align:start position:0%
on to the tool itself because it's
necessary<00:04:40.820><c> background</c><00:04:41.060><c> so</c><00:04:42.040><c> here</c><00:04:43.040><c> on</c><00:04:43.160><c> the</c><00:04:43.280><c> Left</c>

00:04:43.480 --> 00:04:43.490 align:start position:0%
necessary background so here on the Left
 

00:04:43.490 --> 00:04:45.520 align:start position:0%
necessary background so here on the Left
we<00:04:43.670><c> have</c><00:04:43.700><c> a</c><00:04:43.850><c> circuit</c><00:04:44.360><c> or</c><00:04:44.540><c> rank</c><00:04:44.870><c> one</c><00:04:45.080><c> constraint</c>

00:04:45.520 --> 00:04:45.530 align:start position:0%
we have a circuit or rank one constraint
 

00:04:45.530 --> 00:04:47.740 align:start position:0%
we have a circuit or rank one constraint
system<00:04:45.890><c> that</c><00:04:46.190><c> encodes</c><00:04:46.730><c> a</c><00:04:46.880><c> computation</c><00:04:47.540><c> in</c>

00:04:47.740 --> 00:04:47.750 align:start position:0%
system that encodes a computation in
 

00:04:47.750 --> 00:04:50.650 align:start position:0%
system that encodes a computation in
that<00:04:48.350><c> case</c><00:04:48.710><c> we</c><00:04:49.400><c> just</c><00:04:49.430><c> multiply</c><00:04:50.300><c> two</c><00:04:50.360><c> numbers</c>

00:04:50.650 --> 00:04:50.660 align:start position:0%
that case we just multiply two numbers
 

00:04:50.660 --> 00:04:54.430 align:start position:0%
that case we just multiply two numbers
and<00:04:51.970><c> demand</c><00:04:52.970><c> that</c><00:04:53.210><c> that</c><00:04:53.240><c> equals</c><00:04:53.960><c> another</c>

00:04:54.430 --> 00:04:54.440 align:start position:0%
and demand that that equals another
 

00:04:54.440 --> 00:04:57.250 align:start position:0%
and demand that that equals another
number<00:04:54.860><c> and</c><00:04:55.250><c> for</c><00:04:56.000><c> example</c><00:04:56.330><c> RSA</c><00:04:57.080><c> encryption</c>

00:04:57.250 --> 00:04:57.260 align:start position:0%
number and for example RSA encryption
 

00:04:57.260 --> 00:05:03.720 align:start position:0%
number and for example RSA encryption
uses<00:04:58.190><c> a</c><00:04:58.610><c> different</c><00:04:59.500><c> similar</c><00:05:01.690><c> construction</c>

00:05:03.720 --> 00:05:03.730 align:start position:0%
uses a different similar construction
 

00:05:03.730 --> 00:05:06.730 align:start position:0%
uses a different similar construction
from<00:05:04.730><c> that</c><00:05:05.060><c> circuit</c><00:05:05.750><c> or</c><00:05:05.930><c> rank</c><00:05:06.200><c> one</c><00:05:06.380><c> constraint</c>

00:05:06.730 --> 00:05:06.740 align:start position:0%
from that circuit or rank one constraint
 

00:05:06.740 --> 00:05:08.410 align:start position:0%
from that circuit or rank one constraint
system<00:05:07.130><c> the</c><00:05:07.250><c> first</c><00:05:07.490><c> step</c><00:05:07.790><c> is</c><00:05:08.060><c> a</c><00:05:08.120><c> so-called</c>

00:05:08.410 --> 00:05:08.420 align:start position:0%
system the first step is a so-called
 

00:05:08.420 --> 00:05:13.000 align:start position:0%
system the first step is a so-called
setup<00:05:08.990><c> phase</c><00:05:09.260><c> which</c><00:05:09.920><c> is</c><00:05:10.190><c> needed</c><00:05:10.730><c> to</c><00:05:11.740><c> arrive</c><00:05:12.740><c> at</c>

00:05:13.000 --> 00:05:13.010 align:start position:0%
setup phase which is needed to arrive at
 

00:05:13.010 --> 00:05:15.430 align:start position:0%
setup phase which is needed to arrive at
the<00:05:13.190><c> proving</c><00:05:13.640><c> key</c><00:05:14.000><c> and</c><00:05:14.300><c> a</c><00:05:14.480><c> verification</c><00:05:14.840><c> key</c>

00:05:15.430 --> 00:05:15.440 align:start position:0%
the proving key and a verification key
 

00:05:15.440 --> 00:05:17.950 align:start position:0%
the proving key and a verification key
that<00:05:15.770><c> are</c><00:05:15.890><c> then</c><00:05:16.070><c> later</c><00:05:16.610><c> on</c><00:05:16.730><c> needed</c><00:05:17.390><c> in</c><00:05:17.600><c> the</c>

00:05:17.950 --> 00:05:17.960 align:start position:0%
that are then later on needed in the
 

00:05:17.960 --> 00:05:21.100 align:start position:0%
that are then later on needed in the
proving<00:05:18.350><c> process</c><00:05:18.890><c> so</c><00:05:19.700><c> this</c><00:05:20.270><c> setup</c><00:05:20.540><c> has</c><00:05:20.840><c> to</c><00:05:20.990><c> be</c>

00:05:21.100 --> 00:05:21.110 align:start position:0%
proving process so this setup has to be
 

00:05:21.110 --> 00:05:24.220 align:start position:0%
proving process so this setup has to be
performed<00:05:21.560><c> once</c><00:05:21.740><c> for</c><00:05:22.490><c> a</c><00:05:22.520><c> circuit</c><00:05:23.030><c> or</c><00:05:23.210><c> rank</c><00:05:24.020><c> one</c>

00:05:24.220 --> 00:05:24.230 align:start position:0%
performed once for a circuit or rank one
 

00:05:24.230 --> 00:05:26.140 align:start position:0%
performed once for a circuit or rank one
constraint<00:05:24.620><c> system</c><00:05:25.040><c> and</c><00:05:25.220><c> then</c><00:05:25.430><c> it</c><00:05:25.850><c> can</c><00:05:26.090><c> be</c>

00:05:26.140 --> 00:05:26.150 align:start position:0%
constraint system and then it can be
 

00:05:26.150 --> 00:05:30.340 align:start position:0%
constraint system and then it can be
reused<00:05:26.780><c> over</c><00:05:26.960><c> and</c><00:05:27.230><c> over</c><00:05:27.740><c> again</c><00:05:28.660><c> on</c><00:05:29.660><c> the</c><00:05:29.720><c> right</c>

00:05:30.340 --> 00:05:30.350 align:start position:0%
reused over and over again on the right
 

00:05:30.350 --> 00:05:32.800 align:start position:0%
reused over and over again on the right
side<00:05:30.620><c> here</c><00:05:30.950><c> you</c><00:05:31.550><c> see</c><00:05:31.820><c> the</c><00:05:32.120><c> verification</c>

00:05:32.800 --> 00:05:32.810 align:start position:0%
side here you see the verification
 

00:05:32.810 --> 00:05:34.930 align:start position:0%
side here you see the verification
process<00:05:32.840><c> based</c><00:05:33.800><c> on</c><00:05:34.070><c> the</c><00:05:34.340><c> proving</c><00:05:34.760><c> key</c>

00:05:34.930 --> 00:05:34.940 align:start position:0%
process based on the proving key
 

00:05:34.940 --> 00:05:39.130 align:start position:0%
process based on the proving key
approver<00:05:35.480><c> could</c><00:05:35.840><c> for</c><00:05:36.140><c> example</c><00:05:37.660><c> first</c><00:05:38.660><c> find</c>

00:05:39.130 --> 00:05:39.140 align:start position:0%
approver could for example first find
 

00:05:39.140 --> 00:05:41.260 align:start position:0%
approver could for example first find
the<00:05:39.290><c> solution</c><00:05:39.830><c> for</c><00:05:40.010><c> the</c><00:05:40.280><c> problem</c><00:05:40.310><c> at</c><00:05:40.760><c> hand</c><00:05:40.970><c> and</c>

00:05:41.260 --> 00:05:41.270 align:start position:0%
the solution for the problem at hand and
 

00:05:41.270 --> 00:05:44.380 align:start position:0%
the solution for the problem at hand and
then<00:05:41.870><c> generate</c><00:05:42.740><c> a</c><00:05:42.770><c> proof</c><00:05:43.100><c> that</c><00:05:43.130><c> it</c><00:05:43.550><c> correctly</c>

00:05:44.380 --> 00:05:44.390 align:start position:0%
then generate a proof that it correctly
 

00:05:44.390 --> 00:05:47.050 align:start position:0%
then generate a proof that it correctly
executed<00:05:45.200><c> that</c><00:05:45.650><c> computation</c><00:05:46.400><c> and</c><00:05:46.640><c> found</c><00:05:46.940><c> a</c>

00:05:47.050 --> 00:05:47.060 align:start position:0%
executed that computation and found a
 

00:05:47.060 --> 00:05:49.750 align:start position:0%
executed that computation and found a
solution<00:05:47.240><c> and</c><00:05:47.720><c> the</c><00:05:48.350><c> cool</c><00:05:48.560><c> thing</c><00:05:48.590><c> is</c><00:05:48.800><c> it</c><00:05:49.190><c> could</c>

00:05:49.750 --> 00:05:49.760 align:start position:0%
solution and the cool thing is it could
 

00:05:49.760 --> 00:05:52.270 align:start position:0%
solution and the cool thing is it could
optionally<00:05:50.300><c> supply</c><00:05:51.230><c> all</c><00:05:51.500><c> the</c><00:05:51.530><c> information</c>

00:05:52.270 --> 00:05:52.280 align:start position:0%
optionally supply all the information
 

00:05:52.280 --> 00:05:54.100 align:start position:0%
optionally supply all the information
that<00:05:52.430><c> went</c><00:05:52.610><c> into</c><00:05:52.790><c> the</c><00:05:53.000><c> processing</c><00:05:53.600><c> but</c><00:05:53.990><c> it</c>

00:05:54.100 --> 00:05:54.110 align:start position:0%
that went into the processing but it
 

00:05:54.110 --> 00:05:55.780 align:start position:0%
that went into the processing but it
could<00:05:54.260><c> also</c><00:05:54.440><c> keep</c><00:05:54.770><c> some</c><00:05:55.010><c> of</c><00:05:55.040><c> the</c><00:05:55.220><c> information</c>

00:05:55.780 --> 00:05:55.790 align:start position:0%
could also keep some of the information
 

00:05:55.790 --> 00:05:58.150 align:start position:0%
could also keep some of the information
to<00:05:56.030><c> itself</c><00:05:56.330><c> in</c><00:05:56.600><c> that</c><00:05:56.990><c> example</c><00:05:57.440><c> here</c><00:05:57.890><c> the</c>

00:05:58.150 --> 00:05:58.160 align:start position:0%
to itself in that example here the
 

00:05:58.160 --> 00:06:00.970 align:start position:0%
to itself in that example here the
prover<00:05:58.580><c> only</c><00:05:59.000><c> supplies</c><00:05:59.390><c> set</c><00:05:59.960><c> which</c><00:06:00.380><c> is</c><00:06:00.650><c> the</c>

00:06:00.970 --> 00:06:00.980 align:start position:0%
prover only supplies set which is the
 

00:06:00.980 --> 00:06:03.340 align:start position:0%
prover only supplies set which is the
result<00:06:01.610><c> of</c><00:06:01.760><c> the</c><00:06:01.880><c> multiplication</c><00:06:02.000><c> and</c><00:06:02.750><c> not</c><00:06:03.170><c> the</c>

00:06:03.340 --> 00:06:03.350 align:start position:0%
result of the multiplication and not the
 

00:06:03.350 --> 00:06:05.410 align:start position:0%
result of the multiplication and not the
factors<00:06:03.860><c> themselves</c><00:06:04.280><c> that</c><00:06:04.790><c> went</c><00:06:04.970><c> into</c><00:06:05.150><c> it</c><00:06:05.390><c> and</c>

00:06:05.410 --> 00:06:05.420 align:start position:0%
factors themselves that went into it and
 

00:06:05.420 --> 00:06:07.360 align:start position:0%
factors themselves that went into it and
the<00:06:05.900><c> verifier</c><00:06:06.380><c> can</c><00:06:06.680><c> then</c><00:06:06.830><c> check</c><00:06:07.160><c> the</c>

00:06:07.360 --> 00:06:07.370 align:start position:0%
the verifier can then check the
 

00:06:07.370 --> 00:06:09.760 align:start position:0%
the verifier can then check the
correctness<00:06:07.790><c> of</c><00:06:08.030><c> the</c><00:06:08.450><c> computation</c><00:06:09.140><c> without</c>

00:06:09.760 --> 00:06:09.770 align:start position:0%
correctness of the computation without
 

00:06:09.770 --> 00:06:12.750 align:start position:0%
correctness of the computation without
redoing<00:06:10.190><c> it</c><00:06:10.460><c> and</c><00:06:10.640><c> that</c><00:06:10.970><c> is</c><00:06:11.150><c> much</c><00:06:11.540><c> cheaper</c><00:06:12.020><c> that</c>

00:06:12.750 --> 00:06:12.760 align:start position:0%
redoing it and that is much cheaper that
 

00:06:12.760 --> 00:06:16.210 align:start position:0%
redoing it and that is much cheaper that
verification<00:06:13.760><c> process</c><00:06:14.210><c> then</c><00:06:14.720><c> the</c><00:06:15.470><c> proving</c>

00:06:16.210 --> 00:06:16.220 align:start position:0%
verification process then the proving
 

00:06:16.220 --> 00:06:18.340 align:start position:0%
verification process then the proving
process<00:06:16.670><c> and</c><00:06:16.940><c> with</c><00:06:17.300><c> that</c><00:06:17.510><c> the</c><00:06:17.660><c> execution</c><00:06:18.260><c> of</c>

00:06:18.340 --> 00:06:18.350 align:start position:0%
process and with that the execution of
 

00:06:18.350 --> 00:06:20.320 align:start position:0%
process and with that the execution of
the<00:06:18.530><c> computation</c><00:06:19.130><c> itself</c><00:06:19.940><c> in</c><00:06:20.090><c> the</c><00:06:20.180><c> first</c>

00:06:20.320 --> 00:06:20.330 align:start position:0%
the computation itself in the first
 

00:06:20.330 --> 00:06:25.480 align:start position:0%
the computation itself in the first
place<00:06:22.060><c> so</c><00:06:23.060><c> Curtis</c><00:06:23.480><c> so</c><00:06:24.290><c> with</c><00:06:24.620><c> byzantium</c>

00:06:25.480 --> 00:06:25.490 align:start position:0%
place so Curtis so with byzantium
 

00:06:25.490 --> 00:06:28.510 align:start position:0%
place so Curtis so with byzantium
theorem<00:06:26.450><c> added</c><00:06:26.840><c> three</c><00:06:27.290><c> new</c><00:06:27.320><c> pre</c><00:06:27.800><c> composite</c>

00:06:28.510 --> 00:06:28.520 align:start position:0%
theorem added three new pre composite
 

00:06:28.520 --> 00:06:30.700 align:start position:0%
theorem added three new pre composite
enable<00:06:28.970><c> seek</c><00:06:29.210><c> a</c><00:06:29.390><c> snark</c><00:06:29.720><c> verification</c><00:06:30.560><c> on</c>

00:06:30.700 --> 00:06:30.710 align:start position:0%
enable seek a snark verification on
 

00:06:30.710 --> 00:06:33.310 align:start position:0%
enable seek a snark verification on
chain<00:06:31.010><c> so</c><00:06:31.460><c> we</c><00:06:31.490><c> have</c><00:06:31.790><c> elliptic</c><00:06:32.390><c> curve</c><00:06:32.660><c> addition</c>

00:06:33.310 --> 00:06:33.320 align:start position:0%
chain so we have elliptic curve addition
 

00:06:33.320 --> 00:06:36.250 align:start position:0%
chain so we have elliptic curve addition
scalar<00:06:33.970><c> multiplication</c><00:06:34.970><c> and</c><00:06:35.150><c> so</c><00:06:35.990><c> called</c>

00:06:36.250 --> 00:06:36.260 align:start position:0%
scalar multiplication and so called
 

00:06:36.260 --> 00:06:38.680 align:start position:0%
scalar multiplication and so called
parity<00:06:36.650><c> check</c><00:06:36.890><c> but</c><00:06:37.460><c> the</c><00:06:37.580><c> big</c><00:06:37.729><c> question</c><00:06:37.880><c> is</c><00:06:38.300><c> how</c>

00:06:38.680 --> 00:06:38.690 align:start position:0%
parity check but the big question is how
 

00:06:38.690 --> 00:06:41.290 align:start position:0%
parity check but the big question is how
do<00:06:38.750><c> we</c><00:06:38.870><c> use</c><00:06:39.169><c> that</c><00:06:39.200><c> and</c><00:06:39.880><c> that's</c><00:06:40.880><c> where</c><00:06:41.120><c> it's</c>

00:06:41.290 --> 00:06:41.300 align:start position:0%
do we use that and that's where it's
 

00:06:41.300 --> 00:06:41.860 align:start position:0%
do we use that and that's where it's
okay

00:06:41.860 --> 00:06:41.870 align:start position:0%
okay
 

00:06:41.870 --> 00:06:44.260 align:start position:0%
okay
comes<00:06:42.170><c> in</c><00:06:42.380><c> so</c><00:06:42.890><c> the</c><00:06:43.040><c> vision</c><00:06:43.250><c> of</c><00:06:43.550><c> this</c><00:06:43.940><c> toolbox</c>

00:06:44.260 --> 00:06:44.270 align:start position:0%
comes in so the vision of this toolbox
 

00:06:44.270 --> 00:06:47.740 align:start position:0%
comes in so the vision of this toolbox
is<00:06:44.660><c> to</c><00:06:44.960><c> provide</c><00:06:45.260><c> a</c><00:06:45.320><c> usable</c><00:06:45.920><c> abstraction</c><00:06:46.750><c> and</c>

00:06:47.740 --> 00:06:47.750 align:start position:0%
is to provide a usable abstraction and
 

00:06:47.750 --> 00:06:50.710 align:start position:0%
is to provide a usable abstraction and
tooling<00:06:48.440><c> to</c><00:06:49.100><c> support</c><00:06:49.700><c> CKD</c><00:06:50.090><c> snarks</c><00:06:50.450><c> Ani</c>

00:06:50.710 --> 00:06:50.720 align:start position:0%
tooling to support CKD snarks Ani
 

00:06:50.720 --> 00:06:53.590 align:start position:0%
tooling to support CKD snarks Ani
theorem<00:06:51.170><c> to</c><00:06:51.410><c> actually</c><00:06:51.920><c> make</c><00:06:52.130><c> them</c><00:06:52.310><c> usable</c><00:06:52.640><c> the</c>

00:06:53.590 --> 00:06:53.600 align:start position:0%
theorem to actually make them usable the
 

00:06:53.600 --> 00:06:56.290 align:start position:0%
theorem to actually make them usable the
goal<00:06:53.810><c> is</c><00:06:54.050><c> to</c><00:06:54.350><c> support</c><00:06:54.890><c> the</c><00:06:55.250><c> complete</c><00:06:55.670><c> process</c>

00:06:56.290 --> 00:06:56.300 align:start position:0%
goal is to support the complete process
 

00:06:56.300 --> 00:07:00.280 align:start position:0%
goal is to support the complete process
from<00:06:56.870><c> program</c><00:06:57.830><c> code</c><00:06:58.150><c> specification</c><00:06:59.150><c> to</c><00:06:59.840><c> on</c>

00:07:00.280 --> 00:07:00.290 align:start position:0%
from program code specification to on
 

00:07:00.290 --> 00:07:03.550 align:start position:0%
from program code specification to on
chain<00:07:00.890><c> verification</c><00:07:01.790><c> of</c><00:07:01.970><c> the</c><00:07:02.750><c> execution</c><00:07:03.410><c> of</c>

00:07:03.550 --> 00:07:03.560 align:start position:0%
chain verification of the execution of
 

00:07:03.560 --> 00:07:06.010 align:start position:0%
chain verification of the execution of
that<00:07:03.650><c> program</c><00:07:04.460><c> code</c><00:07:04.730><c> it's</c><00:07:05.450><c> supposed</c><00:07:05.840><c> to</c>

00:07:06.010 --> 00:07:06.020 align:start position:0%
that program code it's supposed to
 

00:07:06.020 --> 00:07:07.930 align:start position:0%
that program code it's supposed to
seamlessly<00:07:06.680><c> integrate</c><00:07:07.220><c> with</c><00:07:07.280><c> the</c><00:07:07.550><c> theorem</c>

00:07:07.930 --> 00:07:07.940 align:start position:0%
seamlessly integrate with the theorem
 

00:07:07.940 --> 00:07:09.940 align:start position:0%
seamlessly integrate with the theorem
and<00:07:08.060><c> how</c><00:07:08.750><c> it</c><00:07:08.930><c> does</c><00:07:09.110><c> that</c><00:07:09.320><c> we'll</c><00:07:09.560><c> see</c><00:07:09.800><c> in</c><00:07:09.890><c> a</c>

00:07:09.940 --> 00:07:09.950 align:start position:0%
and how it does that we'll see in a
 

00:07:09.950 --> 00:07:11.790 align:start position:0%
and how it does that we'll see in a
minute

00:07:11.790 --> 00:07:11.800 align:start position:0%
minute
 

00:07:11.800 --> 00:07:14.980 align:start position:0%
minute
so<00:07:12.800><c> cretons</c><00:07:13.160><c> comprises</c><00:07:13.910><c> several</c><00:07:14.150><c> things</c><00:07:14.570><c> one</c>

00:07:14.980 --> 00:07:14.990 align:start position:0%
so cretons comprises several things one
 

00:07:14.990 --> 00:07:17.440 align:start position:0%
so cretons comprises several things one
is<00:07:15.320><c> a</c><00:07:15.380><c> domain-specific</c><00:07:16.090><c> high-level</c><00:07:17.090><c> language</c>

00:07:17.440 --> 00:07:17.450 align:start position:0%
is a domain-specific high-level language
 

00:07:17.450 --> 00:07:19.870 align:start position:0%
is a domain-specific high-level language
that<00:07:18.260><c> allows</c><00:07:18.560><c> you</c><00:07:18.770><c> to</c><00:07:18.860><c> specify</c><00:07:19.310><c> your</c>

00:07:19.870 --> 00:07:19.880 align:start position:0%
that allows you to specify your
 

00:07:19.880 --> 00:07:22.570 align:start position:0%
that allows you to specify your
computation<00:07:20.630><c> in</c><00:07:20.780><c> a</c><00:07:21.050><c> more</c><00:07:21.230><c> abstract</c><00:07:21.440><c> way</c><00:07:21.950><c> than</c>

00:07:22.570 --> 00:07:22.580 align:start position:0%
computation in a more abstract way than
 

00:07:22.580 --> 00:07:24.910 align:start position:0%
computation in a more abstract way than
arithmetic<00:07:23.390><c> circuits</c><00:07:23.840><c> or</c><00:07:24.020><c> Anquan</c><00:07:24.470><c> constraint</c>

00:07:24.910 --> 00:07:24.920 align:start position:0%
arithmetic circuits or Anquan constraint
 

00:07:24.920 --> 00:07:27.940 align:start position:0%
arithmetic circuits or Anquan constraint
systems<00:07:25.310><c> which</c><00:07:25.850><c> are</c><00:07:26.120><c> inconvenient</c><00:07:26.810><c> then</c><00:07:27.710><c> we</c>

00:07:27.940 --> 00:07:27.950 align:start position:0%
systems which are inconvenient then we
 

00:07:27.950 --> 00:07:30.220 align:start position:0%
systems which are inconvenient then we
have<00:07:28.070><c> a</c><00:07:28.100><c> compiler</c><00:07:28.640><c> which</c><00:07:29.150><c> transforms</c><00:07:29.990><c> these</c>

00:07:30.220 --> 00:07:30.230 align:start position:0%
have a compiler which transforms these
 

00:07:30.230 --> 00:07:32.860 align:start position:0%
have a compiler which transforms these
programs<00:07:30.770><c> into</c><00:07:31.240><c> provable</c><00:07:32.240><c> constraint</c>

00:07:32.860 --> 00:07:32.870 align:start position:0%
programs into provable constraint
 

00:07:32.870 --> 00:07:36.190 align:start position:0%
programs into provable constraint
systems<00:07:33.350><c> and</c><00:07:34.030><c> then</c><00:07:35.030><c> there's</c><00:07:35.300><c> support</c><00:07:35.690><c> for</c><00:07:35.840><c> the</c>

00:07:36.190 --> 00:07:36.200 align:start position:0%
systems and then there's support for the
 

00:07:36.200 --> 00:07:38.050 align:start position:0%
systems and then there's support for the
different<00:07:36.560><c> phases</c><00:07:36.980><c> we</c><00:07:37.340><c> need</c><00:07:37.520><c> to</c><00:07:37.640><c> go</c><00:07:37.790><c> through</c>

00:07:38.050 --> 00:07:38.060 align:start position:0%
different phases we need to go through
 

00:07:38.060 --> 00:07:40.180 align:start position:0%
different phases we need to go through
with<00:07:38.330><c> our</c><00:07:38.570><c> CKD</c><00:07:38.960><c> Snorks</c><00:07:39.320><c> so</c><00:07:39.470><c> the</c><00:07:39.620><c> setup</c><00:07:39.950><c> phase</c>

00:07:40.180 --> 00:07:40.190 align:start position:0%
with our CKD Snorks so the setup phase
 

00:07:40.190 --> 00:07:42.640 align:start position:0%
with our CKD Snorks so the setup phase
finding<00:07:41.150><c> a</c><00:07:41.210><c> solution</c><00:07:41.750><c> to</c><00:07:41.960><c> our</c><00:07:41.990><c> constraint</c>

00:07:42.640 --> 00:07:42.650 align:start position:0%
finding a solution to our constraint
 

00:07:42.650 --> 00:07:45.160 align:start position:0%
finding a solution to our constraint
system<00:07:43.100><c> which</c><00:07:43.880><c> is</c><00:07:44.060><c> the</c><00:07:44.180><c> witness</c><00:07:44.480><c> computation</c>

00:07:45.160 --> 00:07:45.170 align:start position:0%
system which is the witness computation
 

00:07:45.170 --> 00:07:47.980 align:start position:0%
system which is the witness computation
the<00:07:45.710><c> proof</c><00:07:45.920><c> generation</c><00:07:46.460><c> itself</c><00:07:46.760><c> and</c><00:07:47.090><c> then</c><00:07:47.660><c> we</c>

00:07:47.980 --> 00:07:47.990 align:start position:0%
the proof generation itself and then we
 

00:07:47.990 --> 00:07:50.260 align:start position:0%
the proof generation itself and then we
can<00:07:48.170><c> also</c><00:07:48.380><c> using</c><00:07:49.010><c> the</c><00:07:49.100><c> tool</c><00:07:49.340><c> export</c><00:07:50.120><c> the</c>

00:07:50.260 --> 00:07:50.270 align:start position:0%
can also using the tool export the
 

00:07:50.270 --> 00:07:52.150 align:start position:0%
can also using the tool export the
solidity<00:07:50.720><c> smart</c><00:07:51.140><c> contract</c><00:07:51.620><c> that</c><00:07:51.770><c> can</c><00:07:51.920><c> then</c><00:07:52.100><c> be</c>

00:07:52.150 --> 00:07:52.160 align:start position:0%
solidity smart contract that can then be
 

00:07:52.160 --> 00:07:55.860 align:start position:0%
solidity smart contract that can then be
used<00:07:52.490><c> to</c><00:07:53.060><c> verify</c><00:07:53.210><c> the</c><00:07:53.600><c> computation</c><00:07:54.530><c> on</c><00:07:54.740><c> chain</c>

00:07:55.860 --> 00:07:55.870 align:start position:0%
used to verify the computation on chain
 

00:07:55.870 --> 00:07:59.860 align:start position:0%
used to verify the computation on chain
let's<00:07:56.870><c> briefly</c><00:07:57.200><c> look</c><00:07:57.440><c> at</c><00:07:57.710><c> the</c><00:07:58.430><c> language</c><00:07:58.940><c> so</c>

00:07:59.860 --> 00:07:59.870 align:start position:0%
let's briefly look at the language so
 

00:07:59.870 --> 00:08:01.540 align:start position:0%
let's briefly look at the language so
the<00:08:00.080><c> language</c><00:08:00.440><c> at</c><00:08:00.680><c> this</c><00:08:00.950><c> point</c><00:08:01.280><c> is</c><00:08:01.400><c> pretty</c>

00:08:01.540 --> 00:08:01.550 align:start position:0%
the language at this point is pretty
 

00:08:01.550 --> 00:08:03.730 align:start position:0%
the language at this point is pretty
close<00:08:01.910><c> to</c><00:08:01.940><c> the</c><00:08:02.270><c> constraint</c><00:08:02.780><c> system</c><00:08:03.260><c> but</c>

00:08:03.730 --> 00:08:03.740 align:start position:0%
close to the constraint system but
 

00:08:03.740 --> 00:08:04.960 align:start position:0%
close to the constraint system but
provides<00:08:04.130><c> some</c><00:08:04.370><c> more</c><00:08:04.580><c> convenient</c>

00:08:04.960 --> 00:08:04.970 align:start position:0%
provides some more convenient
 

00:08:04.970 --> 00:08:07.840 align:start position:0%
provides some more convenient
abstractions<00:08:05.750><c> to</c><00:08:05.840><c> specify</c><00:08:06.440><c> circuits</c><00:08:06.890><c> so</c><00:08:07.490><c> the</c>

00:08:07.840 --> 00:08:07.850 align:start position:0%
abstractions to specify circuits so the
 

00:08:07.850 --> 00:08:10.270 align:start position:0%
abstractions to specify circuits so the
data<00:08:08.060><c> type</c><00:08:08.390><c> we</c><00:08:08.600><c> have</c><00:08:08.630><c> is</c><00:08:09.170><c> prime</c><00:08:09.560><c> field</c><00:08:09.830><c> element</c>

00:08:10.270 --> 00:08:10.280 align:start position:0%
data type we have is prime field element
 

00:08:10.280 --> 00:08:13.810 align:start position:0%
data type we have is prime field element
you<00:08:10.550><c> can</c><00:08:10.580><c> just</c><00:08:11.030><c> think</c><00:08:11.480><c> of</c><00:08:11.720><c> these</c><00:08:12.260><c> as</c><00:08:12.820><c> positive</c>

00:08:13.810 --> 00:08:13.820 align:start position:0%
you can just think of these as positive
 

00:08:13.820 --> 00:08:16.810 align:start position:0%
you can just think of these as positive
numbers<00:08:14.240><c> smaller</c><00:08:15.140><c> than</c><00:08:15.560><c> a</c><00:08:15.800><c> huge</c><00:08:16.160><c> prime</c><00:08:16.460><c> number</c>

00:08:16.810 --> 00:08:16.820 align:start position:0%
numbers smaller than a huge prime number
 

00:08:16.820 --> 00:08:18.790 align:start position:0%
numbers smaller than a huge prime number
so<00:08:17.030><c> essentially</c><00:08:17.510><c> think</c><00:08:17.840><c> of</c><00:08:17.960><c> it</c><00:08:18.080><c> as</c><00:08:18.290><c> positive</c>

00:08:18.790 --> 00:08:18.800 align:start position:0%
so essentially think of it as positive
 

00:08:18.800 --> 00:08:21.010 align:start position:0%
so essentially think of it as positive
numbers<00:08:19.250><c> then</c><00:08:19.910><c> we</c><00:08:20.090><c> have</c><00:08:20.300><c> imparative</c>

00:08:21.010 --> 00:08:21.020 align:start position:0%
numbers then we have imparative
 

00:08:21.020 --> 00:08:23.980 align:start position:0%
numbers then we have imparative
statements<00:08:21.800><c> which</c><00:08:22.430><c> is</c><00:08:22.640><c> the</c><00:08:23.150><c> abstraction</c><00:08:23.570><c> most</c>

00:08:23.980 --> 00:08:23.990 align:start position:0%
statements which is the abstraction most
 

00:08:23.990 --> 00:08:25.570 align:start position:0%
statements which is the abstraction most
of<00:08:24.140><c> you</c><00:08:24.290><c> should</c><00:08:24.770><c> be</c><00:08:24.800><c> used</c><00:08:25.160><c> to</c><00:08:25.280><c> when</c>

00:08:25.570 --> 00:08:25.580 align:start position:0%
of you should be used to when
 

00:08:25.580 --> 00:08:29.500 align:start position:0%
of you should be used to when
programming<00:08:26.620><c> we</c><00:08:27.620><c> have</c><00:08:27.650><c> assertions</c><00:08:28.370><c> we</c><00:08:29.330><c> have</c>

00:08:29.500 --> 00:08:29.510 align:start position:0%
programming we have assertions we have
 

00:08:29.510 --> 00:08:33.190 align:start position:0%
programming we have assertions we have
loops<00:08:30.100><c> we</c><00:08:31.100><c> have</c><00:08:31.130><c> conditionals</c><00:08:32.060><c> and</c><00:08:32.360><c> we</c><00:08:33.050><c> have</c>

00:08:33.190 --> 00:08:33.200 align:start position:0%
loops we have conditionals and we have
 

00:08:33.200 --> 00:08:35.710 align:start position:0%
loops we have conditionals and we have
functions<00:08:33.770><c> which</c><00:08:34.220><c> allow</c><00:08:34.550><c> you</c><00:08:34.610><c> to</c><00:08:35.030><c> structure</c>

00:08:35.710 --> 00:08:35.720 align:start position:0%
functions which allow you to structure
 

00:08:35.720 --> 00:08:38.020 align:start position:0%
functions which allow you to structure
your<00:08:35.900><c> code</c><00:08:36.080><c> and</c><00:08:36.680><c> keep</c><00:08:36.950><c> it</c><00:08:37.190><c> a</c><00:08:37.400><c> bit</c><00:08:37.790><c> less</c>

00:08:38.020 --> 00:08:38.030 align:start position:0%
your code and keep it a bit less
 

00:08:38.030 --> 00:08:41.710 align:start position:0%
your code and keep it a bit less
redundant<00:08:39.250><c> so</c><00:08:40.250><c> let's</c><00:08:40.610><c> look</c><00:08:40.850><c> at</c><00:08:41.030><c> an</c><00:08:41.180><c> example</c>

00:08:41.710 --> 00:08:41.720 align:start position:0%
redundant so let's look at an example
 

00:08:41.720 --> 00:08:45.250 align:start position:0%
redundant so let's look at an example
here<00:08:42.220><c> for</c><00:08:43.220><c> answers</c><00:08:43.760><c> K</c><00:08:44.000><c> or</c><00:08:44.270><c> a</c><00:08:44.330><c> binomial</c>

00:08:45.250 --> 00:08:45.260 align:start position:0%
here for answers K or a binomial
 

00:08:45.260 --> 00:08:48.700 align:start position:0%
here for answers K or a binomial
coefficient<00:08:46.570><c> the</c><00:08:47.570><c> upper</c><00:08:47.990><c> function</c><00:08:48.470><c> here</c>

00:08:48.700 --> 00:08:48.710 align:start position:0%
coefficient the upper function here
 

00:08:48.710 --> 00:08:50.830 align:start position:0%
coefficient the upper function here
computes<00:08:49.250><c> the</c><00:08:49.430><c> factorial</c><00:08:49.970><c> will</c><00:08:50.240><c> not</c><00:08:50.450><c> look</c><00:08:50.630><c> at</c>

00:08:50.830 --> 00:08:50.840 align:start position:0%
computes the factorial will not look at
 

00:08:50.840 --> 00:08:52.840 align:start position:0%
computes the factorial will not look at
that<00:08:51.080><c> in</c><00:08:51.560><c> detail</c><00:08:51.830><c> because</c><00:08:52.160><c> it's</c><00:08:52.520><c> just</c><00:08:52.700><c> not</c>

00:08:52.840 --> 00:08:52.850 align:start position:0%
that in detail because it's just not
 

00:08:52.850 --> 00:08:54.430 align:start position:0%
that in detail because it's just not
important<00:08:53.240><c> what's</c><00:08:53.420><c> more</c><00:08:53.690><c> interesting</c><00:08:53.870><c> here</c>

00:08:54.430 --> 00:08:54.440 align:start position:0%
important what's more interesting here
 

00:08:54.440 --> 00:08:55.180 align:start position:0%
important what's more interesting here
is<00:08:54.590><c> too</c><00:08:54.920><c> low</c>

00:08:55.180 --> 00:08:55.190 align:start position:0%
is too low
 

00:08:55.190 --> 00:08:58.000 align:start position:0%
is too low
is<00:08:55.670><c> the</c><00:08:55.820><c> main</c><00:08:56.030><c> function</c><00:08:56.510><c> as</c><00:08:56.750><c> you</c><00:08:57.290><c> can</c><00:08:57.500><c> see</c><00:08:57.710><c> the</c>

00:08:58.000 --> 00:08:58.010 align:start position:0%
is the main function as you can see the
 

00:08:58.010 --> 00:09:00.310 align:start position:0%
is the main function as you can see the
main<00:08:58.190><c> function</c><00:08:58.640><c> here</c><00:08:58.670><c> takes</c><00:08:59.240><c> two</c><00:08:59.510><c> arguments</c><00:08:59.900><c> N</c>

00:09:00.310 --> 00:09:00.320 align:start position:0%
main function here takes two arguments N
 

00:09:00.320 --> 00:09:03.130 align:start position:0%
main function here takes two arguments N
and<00:09:00.710><c> K</c><00:09:01.250><c> and</c><00:09:01.520><c> then</c><00:09:02.390><c> there's</c><00:09:02.660><c> a</c><00:09:02.720><c> return</c>

00:09:03.130 --> 00:09:03.140 align:start position:0%
and K and then there's a return
 

00:09:03.140 --> 00:09:08.680 align:start position:0%
and K and then there's a return
statement<00:09:04.270><c> now</c><00:09:05.270><c> in</c><00:09:05.600><c> Socrates</c><00:09:06.850><c> the</c><00:09:07.850><c> arguments</c>

00:09:08.680 --> 00:09:08.690 align:start position:0%
statement now in Socrates the arguments
 

00:09:08.690 --> 00:09:10.780 align:start position:0%
statement now in Socrates the arguments
of<00:09:08.810><c> the</c><00:09:08.870><c> main</c><00:09:09.110><c> function</c><00:09:09.620><c> and</c><00:09:09.770><c> the</c><00:09:10.340><c> value</c><00:09:10.370><c> of</c>

00:09:10.780 --> 00:09:10.790 align:start position:0%
of the main function and the value of
 

00:09:10.790 --> 00:09:13.270 align:start position:0%
of the main function and the value of
the<00:09:10.910><c> return</c><00:09:11.240><c> statement</c><00:09:11.570><c> are</c><00:09:12.020><c> public</c><00:09:12.950><c> that</c>

00:09:13.270 --> 00:09:13.280 align:start position:0%
the return statement are public that
 

00:09:13.280 --> 00:09:16.060 align:start position:0%
the return statement are public that
means<00:09:13.550><c> when</c><00:09:14.360><c> you</c><00:09:14.480><c> prove</c><00:09:14.750><c> that</c><00:09:15.260><c> computation</c>

00:09:16.060 --> 00:09:16.070 align:start position:0%
means when you prove that computation
 

00:09:16.070 --> 00:09:18.130 align:start position:0%
means when you prove that computation
you<00:09:16.220><c> use</c><00:09:16.400><c> that</c><00:09:16.580><c> code</c><00:09:16.850><c> to</c><00:09:17.090><c> prove</c><00:09:17.330><c> the</c><00:09:17.720><c> correct</c>

00:09:18.130 --> 00:09:18.140 align:start position:0%
you use that code to prove the correct
 

00:09:18.140 --> 00:09:22.240 align:start position:0%
you use that code to prove the correct
execution<00:09:18.460><c> execution</c><00:09:19.460><c> of</c><00:09:19.880><c> that</c><00:09:20.450><c> code</c><00:09:20.780><c> and</c><00:09:21.250><c> K</c>

00:09:22.240 --> 00:09:22.250 align:start position:0%
execution execution of that code and K
 

00:09:22.250 --> 00:09:25.000 align:start position:0%
execution execution of that code and K
and<00:09:22.490><c> the</c><00:09:23.210><c> return</c><00:09:23.570><c> value</c><00:09:23.960><c> become</c><00:09:24.320><c> public</c><00:09:24.770><c> if</c>

00:09:25.000 --> 00:09:25.010 align:start position:0%
and the return value become public if
 

00:09:25.010 --> 00:09:26.980 align:start position:0%
and the return value become public if
you<00:09:25.520><c> do</c><00:09:25.670><c> not</c><00:09:25.820><c> want</c><00:09:26.090><c> that</c><00:09:26.300><c> to</c><00:09:26.420><c> happen</c><00:09:26.570><c> if</c><00:09:26.840><c> you</c>

00:09:26.980 --> 00:09:26.990 align:start position:0%
you do not want that to happen if you
 

00:09:26.990 --> 00:09:28.390 align:start position:0%
you do not want that to happen if you
want<00:09:27.200><c> to</c><00:09:27.290><c> keep</c><00:09:27.470><c> that</c><00:09:27.650><c> private</c><00:09:27.950><c> that</c>

00:09:28.390 --> 00:09:28.400 align:start position:0%
want to keep that private that
 

00:09:28.400 --> 00:09:30.640 align:start position:0%
want to keep that private that
information<00:09:29.060><c> you</c><00:09:29.390><c> can</c><00:09:29.570><c> simply</c><00:09:29.930><c> not</c><00:09:30.080><c> list</c><00:09:30.410><c> it</c>

00:09:30.640 --> 00:09:30.650 align:start position:0%
information you can simply not list it
 

00:09:30.650 --> 00:09:34.390 align:start position:0%
information you can simply not list it
as<00:09:31.250><c> arguments</c><00:09:32.000><c> but</c><00:09:32.420><c> still</c><00:09:32.780><c> use</c><00:09:33.290><c> the</c><00:09:33.620><c> variables</c>

00:09:34.390 --> 00:09:34.400 align:start position:0%
as arguments but still use the variables
 

00:09:34.400 --> 00:09:37.120 align:start position:0%
as arguments but still use the variables
in<00:09:34.610><c> the</c><00:09:35.030><c> processing</c><00:09:35.690><c> as</c><00:09:35.870><c> we</c><00:09:36.080><c> do</c><00:09:36.200><c> here</c><00:09:36.440><c> and</c><00:09:36.620><c> then</c>

00:09:37.120 --> 00:09:37.130 align:start position:0%
in the processing as we do here and then
 

00:09:37.130 --> 00:09:40.890 align:start position:0%
in the processing as we do here and then
when<00:09:37.760><c> you</c><00:09:38.090><c> supply</c><00:09:38.780><c> the</c><00:09:38.930><c> proof</c><00:09:39.380><c> and</c><00:09:39.710><c> the</c><00:09:40.040><c> inputs</c>

00:09:40.890 --> 00:09:40.900 align:start position:0%
when you supply the proof and the inputs
 

00:09:40.900 --> 00:09:44.140 align:start position:0%
when you supply the proof and the inputs
and<00:09:41.900><c> on</c><00:09:42.230><c> K</c><00:09:42.470><c> do</c><00:09:42.680><c> not</c><00:09:42.710><c> appear</c><00:09:43.250><c> in</c><00:09:43.370><c> there</c><00:09:43.580><c> and</c><00:09:43.820><c> all</c>

00:09:44.140 --> 00:09:44.150 align:start position:0%
and on K do not appear in there and all
 

00:09:44.150 --> 00:09:45.880 align:start position:0%
and on K do not appear in there and all
the<00:09:44.330><c> person</c><00:09:44.780><c> verifying</c><00:09:45.290><c> the</c><00:09:45.440><c> thing</c><00:09:45.680><c> would</c>

00:09:45.880 --> 00:09:45.890 align:start position:0%
the person verifying the thing would
 

00:09:45.890 --> 00:09:48.940 align:start position:0%
the person verifying the thing would
know<00:09:46.100><c> is</c><00:09:46.370><c> that</c><00:09:47.090><c> you</c><00:09:47.330><c> computed</c><00:09:48.110><c> the</c><00:09:48.410><c> binomial</c>

00:09:48.940 --> 00:09:48.950 align:start position:0%
know is that you computed the binomial
 

00:09:48.950 --> 00:09:51.250 align:start position:0%
know is that you computed the binomial
coefficient<00:09:49.610><c> and</c><00:09:49.700><c> what</c><00:09:50.150><c> the</c><00:09:50.270><c> result</c><00:09:50.660><c> was</c><00:09:50.870><c> but</c>

00:09:51.250 --> 00:09:51.260 align:start position:0%
coefficient and what the result was but
 

00:09:51.260 --> 00:09:56.260 align:start position:0%
coefficient and what the result was but
NK<00:09:51.920><c> will</c><00:09:52.220><c> not</c><00:09:52.430><c> be</c><00:09:52.640><c> known</c><00:09:54.550><c> let's</c><00:09:55.550><c> look</c><00:09:55.940><c> at</c><00:09:56.120><c> the</c>

00:09:56.260 --> 00:09:56.270 align:start position:0%
NK will not be known let's look at the
 

00:09:56.270 --> 00:09:58.420 align:start position:0%
NK will not be known let's look at the
user<00:09:56.510><c> perspective</c><00:09:56.900><c> and</c><00:09:57.710><c> command-line</c>

00:09:58.420 --> 00:09:58.430 align:start position:0%
user perspective and command-line
 

00:09:58.430 --> 00:10:01.090 align:start position:0%
user perspective and command-line
interface<00:09:59.120><c> or</c><00:09:59.390><c> purchase</c><00:09:59.750><c> provides</c><00:10:00.170><c> you</c><00:10:00.410><c> so</c>

00:10:01.090 --> 00:10:01.100 align:start position:0%
interface or purchase provides you so
 

00:10:01.100 --> 00:10:03.490 align:start position:0%
interface or purchase provides you so
you<00:10:01.220><c> start</c><00:10:01.640><c> with</c><00:10:01.760><c> high</c><00:10:02.270><c> level</c><00:10:02.570><c> code</c><00:10:02.810><c> you</c><00:10:03.320><c> write</c>

00:10:03.490 --> 00:10:03.500 align:start position:0%
you start with high level code you write
 

00:10:03.500 --> 00:10:05.710 align:start position:0%
you start with high level code you write
that<00:10:03.740><c> high</c><00:10:03.950><c> level</c><00:10:04.280><c> code</c><00:10:04.490><c> and</c><00:10:04.730><c> it</c><00:10:04.970><c> gets</c>

00:10:05.710 --> 00:10:05.720 align:start position:0%
that high level code and it gets
 

00:10:05.720 --> 00:10:08.410 align:start position:0%
that high level code and it gets
compiled<00:10:06.200><c> to</c><00:10:06.890><c> a</c><00:10:06.920><c> set</c><00:10:07.460><c> of</c><00:10:07.490><c> conditions</c><00:10:07.940><c> were</c>

00:10:08.410 --> 00:10:08.420 align:start position:0%
compiled to a set of conditions were
 

00:10:08.420 --> 00:10:11.590 align:start position:0%
compiled to a set of conditions were
also<00:10:08.810><c> called</c><00:10:09.200><c> flatten</c><00:10:09.710><c> code</c><00:10:10.150><c> based</c><00:10:11.150><c> on</c><00:10:11.390><c> that</c>

00:10:11.590 --> 00:10:11.600 align:start position:0%
also called flatten code based on that
 

00:10:11.600 --> 00:10:15.300 align:start position:0%
also called flatten code based on that
you<00:10:11.780><c> can</c><00:10:11.960><c> then</c><00:10:12.170><c> find</c><00:10:12.470><c> a</c><00:10:12.680><c> very</c><00:10:13.870><c> valid</c><00:10:14.870><c> variable</c>

00:10:15.300 --> 00:10:15.310 align:start position:0%
you can then find a very valid variable
 

00:10:15.310 --> 00:10:18.130 align:start position:0%
you can then find a very valid variable
assignment<00:10:16.310><c> for</c><00:10:16.730><c> that</c><00:10:16.910><c> code</c><00:10:17.330><c> which</c><00:10:17.930><c> is</c>

00:10:18.130 --> 00:10:18.140 align:start position:0%
assignment for that code which is
 

00:10:18.140 --> 00:10:20.140 align:start position:0%
assignment for that code which is
basically<00:10:18.560><c> a</c><00:10:18.710><c> solution</c><00:10:19.250><c> to</c><00:10:19.490><c> your</c><00:10:19.520><c> program</c><00:10:20.000><c> and</c>

00:10:20.140 --> 00:10:20.150 align:start position:0%
basically a solution to your program and
 

00:10:20.150 --> 00:10:23.230 align:start position:0%
basically a solution to your program and
that's<00:10:20.780><c> called</c><00:10:21.290><c> a</c><00:10:21.500><c> witness</c><00:10:21.680><c> so</c><00:10:22.490><c> you</c><00:10:22.550><c> can</c><00:10:22.880><c> use</c>

00:10:23.230 --> 00:10:23.240 align:start position:0%
that's called a witness so you can use
 

00:10:23.240 --> 00:10:25.810 align:start position:0%
that's called a witness so you can use
the<00:10:23.390><c> tool</c><00:10:23.600><c> to</c><00:10:23.900><c> find</c><00:10:24.830><c> solutions</c><00:10:25.430><c> for</c><00:10:25.550><c> your</c>

00:10:25.810 --> 00:10:25.820 align:start position:0%
the tool to find solutions for your
 

00:10:25.820 --> 00:10:28.570 align:start position:0%
the tool to find solutions for your
programs<00:10:26.240><c> and</c><00:10:26.540><c> it</c><00:10:27.290><c> also</c><00:10:27.470><c> supports</c><00:10:28.100><c> you</c><00:10:28.340><c> with</c><00:10:28.520><c> a</c>

00:10:28.570 --> 00:10:28.580 align:start position:0%
programs and it also supports you with a
 

00:10:28.580 --> 00:10:31.800 align:start position:0%
programs and it also supports you with a
setup<00:10:29.180><c> phase</c><00:10:29.570><c> so</c><00:10:30.200><c> you</c><00:10:30.230><c> can</c><00:10:30.590><c> use</c><00:10:30.800><c> a</c><00:10:30.830><c> tool</c><00:10:31.160><c> to</c>

00:10:31.800 --> 00:10:31.810 align:start position:0%
setup phase so you can use a tool to
 

00:10:31.810 --> 00:10:35.080 align:start position:0%
setup phase so you can use a tool to
compute<00:10:32.810><c> a</c><00:10:32.990><c> verification</c><00:10:33.440><c> key</c><00:10:34.070><c> and</c><00:10:34.340><c> approving</c>

00:10:35.080 --> 00:10:35.090 align:start position:0%
compute a verification key and approving
 

00:10:35.090 --> 00:10:37.360 align:start position:0%
compute a verification key and approving
key<00:10:35.330><c> which</c><00:10:35.780><c> you</c><00:10:35.990><c> will</c><00:10:36.230><c> need</c><00:10:36.590><c> later</c><00:10:36.830><c> on</c>

00:10:37.360 --> 00:10:37.370 align:start position:0%
key which you will need later on
 

00:10:37.370 --> 00:10:40.540 align:start position:0%
key which you will need later on
based<00:10:38.000><c> on</c><00:10:38.270><c> the</c><00:10:38.570><c> verification</c><00:10:39.320><c> key</c><00:10:39.560><c> you</c><00:10:40.310><c> can</c>

00:10:40.540 --> 00:10:40.550 align:start position:0%
based on the verification key you can
 

00:10:40.550 --> 00:10:42.880 align:start position:0%
based on the verification key you can
derive<00:10:40.940><c> a</c><00:10:41.300><c> solidity</c><00:10:41.870><c> smart</c><00:10:42.350><c> contract</c>

00:10:42.880 --> 00:10:42.890 align:start position:0%
derive a solidity smart contract
 

00:10:42.890 --> 00:10:45.700 align:start position:0%
derive a solidity smart contract
deployed<00:10:43.640><c> to</c><00:10:44.060><c> the</c><00:10:44.089><c> network</c><00:10:44.480><c> and</c><00:10:44.720><c> then</c><00:10:45.170><c> verify</c>

00:10:45.700 --> 00:10:45.710 align:start position:0%
deployed to the network and then verify
 

00:10:45.710 --> 00:10:48.190 align:start position:0%
deployed to the network and then verify
proves<00:10:46.190><c> that</c><00:10:46.790><c> were</c><00:10:47.060><c> generated</c><00:10:47.690><c> with</c><00:10:48.170><c> the</c>

00:10:48.190 --> 00:10:48.200 align:start position:0%
proves that were generated with the
 

00:10:48.200 --> 00:10:50.470 align:start position:0%
proves that were generated with the
proving<00:10:48.740><c> key</c><00:10:48.980><c> that</c><00:10:49.430><c> came</c><00:10:49.700><c> out</c><00:10:49.910><c> of</c><00:10:50.089><c> the</c><00:10:50.270><c> same</c>

00:10:50.470 --> 00:10:50.480 align:start position:0%
proving key that came out of the same
 

00:10:50.480 --> 00:10:53.470 align:start position:0%
proving key that came out of the same
set<00:10:50.810><c> of</c><00:10:50.839><c> face</c><00:10:51.200><c> and</c><00:10:51.470><c> to</c><00:10:52.430><c> generate</c><00:10:52.910><c> a</c><00:10:53.180><c> proof</c>

00:10:53.470 --> 00:10:53.480 align:start position:0%
set of face and to generate a proof
 

00:10:53.480 --> 00:10:57.940 align:start position:0%
set of face and to generate a proof
there's<00:10:54.170><c> that</c><00:10:54.589><c> generate</c><00:10:55.040><c> proof</c><00:10:56.230><c> ya</c><00:10:57.230><c> command</c>

00:10:57.940 --> 00:10:57.950 align:start position:0%
there's that generate proof ya command
 

00:10:57.950 --> 00:11:00.760 align:start position:0%
there's that generate proof ya command
which<00:10:58.730><c> takes</c><00:10:59.210><c> a</c><00:10:59.360><c> given</c><00:10:59.660><c> witness</c><00:11:00.050><c> that</c><00:11:00.589><c> you</c>

00:11:00.760 --> 00:11:00.770 align:start position:0%
which takes a given witness that you
 

00:11:00.770 --> 00:11:03.520 align:start position:0%
which takes a given witness that you
computed<00:11:01.400><c> previously</c><00:11:01.640><c> and</c><00:11:02.330><c> to</c><00:11:02.930><c> proving</c><00:11:03.260><c> key</c>

00:11:03.520 --> 00:11:03.530 align:start position:0%
computed previously and to proving key
 

00:11:03.530 --> 00:11:06.130 align:start position:0%
computed previously and to proving key
and<00:11:03.800><c> together</c><00:11:04.280><c> you</c><00:11:05.089><c> generate</c><00:11:05.510><c> a</c><00:11:05.540><c> proof</c><00:11:05.839><c> that</c>

00:11:06.130 --> 00:11:06.140 align:start position:0%
and together you generate a proof that
 

00:11:06.140 --> 00:11:09.160 align:start position:0%
and together you generate a proof that
can<00:11:06.320><c> then</c><00:11:06.500><c> be</c><00:11:07.089><c> verified</c><00:11:08.089><c> by</c><00:11:08.390><c> the</c><00:11:08.420><c> smartphone</c>

00:11:09.160 --> 00:11:09.170 align:start position:0%
can then be verified by the smartphone
 

00:11:09.170 --> 00:11:12.670 align:start position:0%
can then be verified by the smartphone
correct<00:11:09.440><c> you</c><00:11:09.889><c> created</c><00:11:10.430><c> beforehand</c><00:11:11.680><c> the</c>

00:11:12.670 --> 00:11:12.680 align:start position:0%
correct you created beforehand the
 

00:11:12.680 --> 00:11:14.949 align:start position:0%
correct you created beforehand the
internal<00:11:13.130><c> architecture</c><00:11:13.279><c> of</c><00:11:13.880><c> tool</c><00:11:14.240><c> looks</c><00:11:14.690><c> like</c>

00:11:14.949 --> 00:11:14.959 align:start position:0%
internal architecture of tool looks like
 

00:11:14.959 --> 00:11:18.190 align:start position:0%
internal architecture of tool looks like
this<00:11:15.200><c> so</c><00:11:15.649><c> we</c><00:11:15.889><c> start</c><00:11:16.279><c> with</c><00:11:16.899><c> code</c><00:11:17.899><c> in</c><00:11:18.170><c> that</c>

00:11:18.190 --> 00:11:18.200 align:start position:0%
this so we start with code in that
 

00:11:18.200 --> 00:11:20.829 align:start position:0%
this so we start with code in that
domain-specific<00:11:18.829><c> language</c><00:11:19.700><c> and</c><00:11:19.970><c> that</c><00:11:20.660><c> goes</c>

00:11:20.829 --> 00:11:20.839 align:start position:0%
domain-specific language and that goes
 

00:11:20.839 --> 00:11:24.460 align:start position:0%
domain-specific language and that goes
into<00:11:21.050><c> part</c><00:11:21.470><c> powder</c><00:11:22.279><c> is</c><00:11:22.779><c> then</c><00:11:23.779><c> flattened</c><00:11:24.350><c> and</c>

00:11:24.460 --> 00:11:24.470 align:start position:0%
into part powder is then flattened and
 

00:11:24.470 --> 00:11:27.449 align:start position:0%
into part powder is then flattened and
then<00:11:25.100><c> we</c><00:11:25.250><c> have</c><00:11:25.430><c> an</c><00:11:25.610><c> interpreter</c><00:11:26.300><c> which</c>

00:11:27.449 --> 00:11:27.459 align:start position:0%
then we have an interpreter which
 

00:11:27.459 --> 00:11:31.449 align:start position:0%
then we have an interpreter which
computes<00:11:28.459><c> solution</c><00:11:29.060><c> to</c><00:11:29.420><c> the</c><00:11:29.600><c> program</c><00:11:30.560><c> here</c>

00:11:31.449 --> 00:11:31.459 align:start position:0%
computes solution to the program here
 

00:11:31.459 --> 00:11:34.240 align:start position:0%
computes solution to the program here
you<00:11:31.670><c> can</c><00:11:31.940><c> decide</c><00:11:32.300><c> which</c><00:11:33.139><c> part</c><00:11:33.560><c> of</c><00:11:33.740><c> the</c>

00:11:34.240 --> 00:11:34.250 align:start position:0%
you can decide which part of the
 

00:11:34.250 --> 00:11:36.970 align:start position:0%
you can decide which part of the
solution<00:11:35.060><c> will</c><00:11:35.570><c> become</c><00:11:36.110><c> publicly</c><00:11:36.740><c> available</c>

00:11:36.970 --> 00:11:36.980 align:start position:0%
solution will become publicly available
 

00:11:36.980 --> 00:11:39.699 align:start position:0%
solution will become publicly available
and<00:11:37.490><c> which</c><00:11:37.880><c> part</c><00:11:38.269><c> will</c><00:11:38.600><c> remain</c><00:11:38.930><c> private</c><00:11:39.320><c> so</c>

00:11:39.699 --> 00:11:39.709 align:start position:0%
and which part will remain private so
 

00:11:39.709 --> 00:11:43.210 align:start position:0%
and which part will remain private so
here<00:11:39.889><c> you</c><00:11:40.040><c> have</c><00:11:40.220><c> the</c><00:11:40.820><c> control</c><00:11:41.240><c> and</c><00:11:41.420><c> then</c><00:11:42.220><c> after</c>

00:11:43.210 --> 00:11:43.220 align:start position:0%
here you have the control and then after
 

00:11:43.220 --> 00:11:46.329 align:start position:0%
here you have the control and then after
that<00:11:43.399><c> we</c><00:11:44.329><c> do</c><00:11:44.630><c> just</c><00:11:45.110><c> some</c><00:11:45.320><c> format</c><00:11:45.769><c> conversions</c>

00:11:46.329 --> 00:11:46.339 align:start position:0%
that we do just some format conversions
 

00:11:46.339 --> 00:11:51.759 align:start position:0%
that we do just some format conversions
to<00:11:47.980><c> yeah</c><00:11:48.980><c> to</c><00:11:49.480><c> interface</c><00:11:50.480><c> with</c><00:11:50.930><c> the</c><00:11:51.290><c> lip</c><00:11:51.470><c> snark</c>

00:11:51.759 --> 00:11:51.769 align:start position:0%
to yeah to interface with the lip snark
 

00:11:51.769 --> 00:11:55.800 align:start position:0%
to yeah to interface with the lip snark
library<00:11:52.250><c> which</c><00:11:52.579><c> we</c><00:11:53.029><c> use</c><00:11:53.269><c> for</c><00:11:53.510><c> the</c><00:11:54.110><c> CK</c><00:11:55.100><c> snark</c>

00:11:55.800 --> 00:11:55.810 align:start position:0%
library which we use for the CK snark
 

00:11:55.810 --> 00:11:59.620 align:start position:0%
library which we use for the CK snark
operations<00:11:56.810><c> themselves</c><00:11:58.149><c> then</c><00:11:59.149><c> there's</c><00:11:59.449><c> the</c>

00:11:59.620 --> 00:11:59.630 align:start position:0%
operations themselves then there's the
 

00:11:59.630 --> 00:12:04.199 align:start position:0%
operations themselves then there's the
contract<00:12:00.139><c> Explorer</c><00:12:00.709><c> which</c><00:12:01.550><c> can</c><00:12:01.880><c> be</c><00:12:02.060><c> used</c><00:12:02.329><c> to</c>

00:12:04.199 --> 00:12:04.209 align:start position:0%
contract Explorer which can be used to
 

00:12:04.209 --> 00:12:07.810 align:start position:0%
contract Explorer which can be used to
export<00:12:05.209><c> solidity</c><00:12:05.810><c> smart</c><00:12:06.320><c> contracts</c><00:12:07.040><c> to</c>

00:12:07.810 --> 00:12:07.820 align:start position:0%
export solidity smart contracts to
 

00:12:07.820 --> 00:12:10.750 align:start position:0%
export solidity smart contracts to
verify<00:12:08.240><c> proofs</c><00:12:08.949><c> okay</c>

00:12:10.750 --> 00:12:10.760 align:start position:0%
verify proofs okay
 

00:12:10.760 --> 00:12:17.079 align:start position:0%
verify proofs okay
the<00:12:11.269><c> on</c><00:12:11.750><c> Jam</c><00:12:12.260><c> proof</c><00:12:14.829><c> verification</c><00:12:15.829><c> looks</c><00:12:16.820><c> like</c>

00:12:17.079 --> 00:12:17.089 align:start position:0%
the on Jam proof verification looks like
 

00:12:17.089 --> 00:12:19.650 align:start position:0%
the on Jam proof verification looks like
this<00:12:17.480><c> so</c><00:12:17.810><c> on</c><00:12:18.050><c> the</c><00:12:18.079><c> left</c><00:12:18.470><c> side</c><00:12:18.860><c> here</c><00:12:19.160><c> we</c><00:12:19.370><c> have</c>

00:12:19.650 --> 00:12:19.660 align:start position:0%
this so on the left side here we have
 

00:12:19.660 --> 00:12:23.130 align:start position:0%
this so on the left side here we have
what<00:12:20.660><c> the</c><00:12:20.899><c> circuit</c><00:12:21.350><c> is</c><00:12:21.500><c> to</c><00:12:21.649><c> generated</c><00:12:22.550><c> is</c><00:12:22.790><c> a</c>

00:12:23.130 --> 00:12:23.140 align:start position:0%
what the circuit is to generated is a
 

00:12:23.140 --> 00:12:26.500 align:start position:0%
what the circuit is to generated is a
proof<00:12:24.140><c> it</c><00:12:24.649><c> consists</c><00:12:25.579><c> of</c><00:12:25.640><c> eight</c><00:12:25.880><c> elliptic</c>

00:12:26.500 --> 00:12:26.510 align:start position:0%
proof it consists of eight elliptic
 

00:12:26.510 --> 00:12:31.810 align:start position:0%
proof it consists of eight elliptic
curve<00:12:26.750><c> points</c><00:12:27.290><c> and</c><00:12:28.300><c> inputs</c><00:12:29.709><c> on</c><00:12:30.709><c> the</c><00:12:31.160><c> other</c>

00:12:31.810 --> 00:12:31.820 align:start position:0%
curve points and inputs on the other
 

00:12:31.820 --> 00:12:34.990 align:start position:0%
curve points and inputs on the other
side<00:12:32.269><c> we</c><00:12:32.660><c> have</c><00:12:32.899><c> a</c><00:12:33.500><c> verification</c><00:12:34.190><c> contract</c>

00:12:34.990 --> 00:12:35.000 align:start position:0%
side we have a verification contract
 

00:12:35.000 --> 00:12:36.630 align:start position:0%
side we have a verification contract
which<00:12:35.180><c> we</c><00:12:35.360><c> also</c><00:12:35.540><c> generated</c><00:12:36.320><c> and</c><00:12:36.500><c> that</c>

00:12:36.630 --> 00:12:36.640 align:start position:0%
which we also generated and that
 

00:12:36.640 --> 00:12:40.449 align:start position:0%
which we also generated and that
contains<00:12:37.640><c> a</c><00:12:38.180><c> verification</c><00:12:38.839><c> key</c><00:12:39.470><c> seven</c>

00:12:40.449 --> 00:12:40.459 align:start position:0%
contains a verification key seven
 

00:12:40.459 --> 00:12:43.509 align:start position:0%
contains a verification key seven
elliptic<00:12:40.880><c> curve</c><00:12:41.120><c> point</c><00:12:41.510><c> is</c><00:12:42.380><c> what</c><00:12:42.709><c> that</c><00:12:43.310><c> is</c>

00:12:43.509 --> 00:12:43.519 align:start position:0%
elliptic curve point is what that is
 

00:12:43.519 --> 00:12:46.150 align:start position:0%
elliptic curve point is what that is
made<00:12:43.790><c> up</c><00:12:43.970><c> of</c><00:12:44.149><c> and</c><00:12:44.449><c> then</c><00:12:45.260><c> there's</c><00:12:45.560><c> a</c><00:12:45.620><c> verify</c>

00:12:46.150 --> 00:12:46.160 align:start position:0%
made up of and then there's a verify
 

00:12:46.160 --> 00:12:49.420 align:start position:0%
made up of and then there's a verify
function<00:12:46.690><c> which</c><00:12:47.690><c> uses</c><00:12:48.290><c> the</c><00:12:48.529><c> new</c><00:12:48.709><c> precompile</c>

00:12:49.420 --> 00:12:49.430 align:start position:0%
function which uses the new precompile
 

00:12:49.430 --> 00:12:53.710 align:start position:0%
function which uses the new precompile
that<00:12:49.790><c> came</c><00:12:50.089><c> with</c><00:12:50.360><c> Byzantium</c><00:12:51.079><c> -</c><00:12:52.180><c> yeah</c><00:12:53.180><c> check</c>

00:12:53.710 --> 00:12:53.720 align:start position:0%
that came with Byzantium - yeah check
 

00:12:53.720 --> 00:12:58.180 align:start position:0%
that came with Byzantium - yeah check
the<00:12:54.350><c> validity</c><00:12:54.890><c> of</c><00:12:55.550><c> the</c><00:12:56.240><c> proof</c><00:12:56.510><c> and</c><00:12:56.829><c> also</c><00:12:57.829><c> make</c>

00:12:58.180 --> 00:12:58.190 align:start position:0%
the validity of the proof and also make
 

00:12:58.190 --> 00:13:03.430 align:start position:0%
the validity of the proof and also make
sure<00:12:58.220><c> that</c><00:12:58.399><c> the</c><00:12:58.730><c> inputs</c><00:12:59.149><c> were</c><00:12:59.779><c> correct</c><00:13:02.079><c> at</c><00:13:03.079><c> the</c>

00:13:03.430 --> 00:13:03.440 align:start position:0%
sure that the inputs were correct at the
 

00:13:03.440 --> 00:13:06.309 align:start position:0%
sure that the inputs were correct at the
moment<00:13:03.890><c> a</c><00:13:04.190><c> verification</c><00:13:04.699><c> like</c><00:13:05.300><c> that</c><00:13:05.569><c> costs</c>

00:13:06.309 --> 00:13:06.319 align:start position:0%
moment a verification like that costs
 

00:13:06.319 --> 00:13:09.100 align:start position:0%
moment a verification like that costs
around<00:13:06.500><c> about</c><00:13:07.149><c> 1.6</c><00:13:08.149><c> million</c><00:13:08.480><c> gasps</c><00:13:08.810><c> so</c>

00:13:09.100 --> 00:13:09.110 align:start position:0%
around about 1.6 million gasps so
 

00:13:09.110 --> 00:13:12.340 align:start position:0%
around about 1.6 million gasps so
actually<00:13:09.620><c> a</c><00:13:09.649><c> lot</c><00:13:10.389><c> that</c><00:13:11.389><c> means</c><00:13:11.630><c> on</c><00:13:11.870><c> a</c><00:13:11.899><c> robson</c>

00:13:12.340 --> 00:13:12.350 align:start position:0%
actually a lot that means on a robson
 

00:13:12.350 --> 00:13:14.680 align:start position:0%
actually a lot that means on a robson
test<00:13:12.589><c> net</c><00:13:12.800><c> we</c><00:13:13.069><c> can</c><00:13:13.279><c> do</c><00:13:13.430><c> four</c><00:13:13.790><c> in</c><00:13:13.940><c> one</c><00:13:14.180><c> block</c><00:13:14.420><c> on</c>

00:13:14.680 --> 00:13:14.690 align:start position:0%
test net we can do four in one block on
 

00:13:14.690 --> 00:13:16.629 align:start position:0%
test net we can do four in one block on
the<00:13:14.959><c> may</c><00:13:15.110><c> net</c><00:13:15.319><c> it's</c><00:13:15.529><c> currently</c><00:13:15.920><c> six</c><00:13:16.310><c> in</c><00:13:16.490><c> one</c>

00:13:16.629 --> 00:13:16.639 align:start position:0%
the may net it's currently six in one
 

00:13:16.639 --> 00:13:19.930 align:start position:0%
the may net it's currently six in one
block<00:13:16.850><c> the</c><00:13:17.810><c> gas</c><00:13:17.990><c> cost</c><00:13:18.319><c> varies</c><00:13:18.860><c> a</c><00:13:18.890><c> bit</c><00:13:19.010><c> with</c><00:13:19.430><c> the</c>

00:13:19.930 --> 00:13:19.940 align:start position:0%
block the gas cost varies a bit with the
 

00:13:19.940 --> 00:13:22.900 align:start position:0%
block the gas cost varies a bit with the
amount<00:13:20.449><c> of</c><00:13:20.660><c> input</c><00:13:20.930><c> parameters</c><00:13:21.350><c> we</c>

00:13:22.900 --> 00:13:22.910 align:start position:0%
amount of input parameters we
 

00:13:22.910 --> 00:13:26.970 align:start position:0%
amount of input parameters we
we<00:13:23.750><c> give</c><00:13:24.080><c> with</c><00:13:24.500><c> proof</c><00:13:24.920><c> but</c><00:13:25.700><c> the</c><00:13:25.910><c> main</c><00:13:26.150><c> cost</c><00:13:26.540><c> is</c>

00:13:26.970 --> 00:13:26.980 align:start position:0%
we give with proof but the main cost is
 

00:13:26.980 --> 00:13:33.700 align:start position:0%
we give with proof but the main cost is
constant<00:13:27.980><c> and</c><00:13:28.610><c> n</c><00:13:28.910><c> rather</c><00:13:29.480><c> I</c><00:13:30.910><c> a</c><00:13:32.590><c> couple</c><00:13:33.590><c> of</c>

00:13:33.700 --> 00:13:33.710 align:start position:0%
constant and n rather I a couple of
 

00:13:33.710 --> 00:13:36.670 align:start position:0%
constant and n rather I a couple of
challenges<00:13:34.040><c> an</c><00:13:34.670><c> outlook</c><00:13:35.300><c> of</c><00:13:35.540><c> how</c><00:13:35.600><c> we</c><00:13:36.140><c> want</c><00:13:36.590><c> to</c>

00:13:36.670 --> 00:13:36.680 align:start position:0%
challenges an outlook of how we want to
 

00:13:36.680 --> 00:13:38.950 align:start position:0%
challenges an outlook of how we want to
proceed<00:13:37.040><c> with</c><00:13:37.420><c> circulars</c><00:13:38.420><c> what</c><00:13:38.690><c> would</c><00:13:38.840><c> be</c>

00:13:38.950 --> 00:13:38.960 align:start position:0%
proceed with circulars what would be
 

00:13:38.960 --> 00:13:42.640 align:start position:0%
proceed with circulars what would be
cool<00:13:39.410><c> in</c><00:13:39.590><c> the</c><00:13:39.680><c> future</c><00:13:39.880><c> so</c><00:13:40.880><c> I</c><00:13:41.300><c> think</c><00:13:41.660><c> for</c><00:13:42.500><c> the</c>

00:13:42.640 --> 00:13:42.650 align:start position:0%
cool in the future so I think for the
 

00:13:42.650 --> 00:13:45.180 align:start position:0%
cool in the future so I think for the
language<00:13:42.860><c> to</c><00:13:43.310><c> be</c><00:13:43.490><c> more</c><00:13:44.240><c> usable</c><00:13:44.900><c> more</c>

00:13:45.180 --> 00:13:45.190 align:start position:0%
language to be more usable more
 

00:13:45.190 --> 00:13:47.470 align:start position:0%
language to be more usable more
convenient<00:13:46.190><c> we</c><00:13:46.610><c> would</c><00:13:46.940><c> want</c><00:13:47.180><c> additional</c>

00:13:47.470 --> 00:13:47.480 align:start position:0%
convenient we would want additional
 

00:13:47.480 --> 00:13:49.890 align:start position:0%
convenient we would want additional
types<00:13:47.960><c> so</c><00:13:48.320><c> for</c><00:13:48.560><c> example</c><00:13:49.070><c> boolean</c><00:13:49.400><c> types</c>

00:13:49.890 --> 00:13:49.900 align:start position:0%
types so for example boolean types
 

00:13:49.900 --> 00:13:54.280 align:start position:0%
types so for example boolean types
everything<00:13:51.910><c> you</c><00:13:52.910><c> can</c><00:13:53.270><c> do</c><00:13:53.420><c> with</c><00:13:53.450><c> boolean</c><00:13:53.990><c> types</c>

00:13:54.280 --> 00:13:54.290 align:start position:0%
everything you can do with boolean types
 

00:13:54.290 --> 00:13:56.470 align:start position:0%
everything you can do with boolean types
can<00:13:54.650><c> be</c><00:13:54.710><c> done</c><00:13:55.040><c> now</c><00:13:55.250><c> that's</c><00:13:55.610><c> just</c><00:13:55.910><c> not</c><00:13:56.210><c> as</c>

00:13:56.470 --> 00:13:56.480 align:start position:0%
can be done now that's just not as
 

00:13:56.480 --> 00:13:58.960 align:start position:0%
can be done now that's just not as
convenient<00:13:57.020><c> to</c><00:13:57.620><c> do</c><00:13:57.740><c> it</c><00:13:57.920><c> on</c><00:13:58.100><c> prime</c><00:13:58.700><c> field</c>

00:13:58.960 --> 00:13:58.970 align:start position:0%
convenient to do it on prime field
 

00:13:58.970 --> 00:14:03.340 align:start position:0%
convenient to do it on prime field
elements<00:13:59.510><c> and</c><00:13:59.690><c> then</c><00:14:00.620><c> some</c><00:14:02.320><c> integers</c><00:14:03.320><c> that</c>

00:14:03.340 --> 00:14:03.350 align:start position:0%
elements and then some integers that
 

00:14:03.350 --> 00:14:07.560 align:start position:0%
elements and then some integers that
have<00:14:03.860><c> a</c><00:14:03.890><c> binary</c><00:14:04.370><c> representation</c><00:14:05.770><c> internally</c>

00:14:07.560 --> 00:14:07.570 align:start position:0%
have a binary representation internally
 

00:14:07.570 --> 00:14:09.700 align:start position:0%
have a binary representation internally
what's<00:14:08.570><c> very</c><00:14:08.810><c> important</c><00:14:09.350><c> and</c><00:14:09.590><c> that's</c>

00:14:09.700 --> 00:14:09.710 align:start position:0%
what's very important and that's
 

00:14:09.710 --> 00:14:11.890 align:start position:0%
what's very important and that's
basically<00:14:10.280><c> implementation</c><00:14:11.180><c> work</c><00:14:11.360><c> ahead</c><00:14:11.630><c> of</c>

00:14:11.890 --> 00:14:11.900 align:start position:0%
basically implementation work ahead of
 

00:14:11.900 --> 00:14:14.620 align:start position:0%
basically implementation work ahead of
us<00:14:12.050><c> is</c><00:14:12.430><c> domain-specific</c><00:14:13.430><c> library</c><00:14:14.390><c> with</c>

00:14:14.620 --> 00:14:14.630 align:start position:0%
us is domain-specific library with
 

00:14:14.630 --> 00:14:17.080 align:start position:0%
us is domain-specific library with
important<00:14:15.110><c> functions</c><00:14:15.530><c> so</c><00:14:15.800><c> next</c><00:14:16.520><c> thing</c><00:14:16.940><c> we</c>

00:14:17.080 --> 00:14:17.090 align:start position:0%
important functions so next thing we
 

00:14:17.090 --> 00:14:19.750 align:start position:0%
important functions so next thing we
need<00:14:17.240><c> in</c><00:14:17.420><c> my</c><00:14:17.540><c> opinion</c><00:14:17.900><c> is</c><00:14:18.050><c> a</c><00:14:18.710><c> hash</c><00:14:18.980><c> function</c><00:14:19.010><c> so</c>

00:14:19.750 --> 00:14:19.760 align:start position:0%
need in my opinion is a hash function so
 

00:14:19.760 --> 00:14:22.300 align:start position:0%
need in my opinion is a hash function so
we<00:14:19.940><c> can</c><00:14:19.970><c> do</c><00:14:20.330><c> commitments</c><00:14:21.140><c> in</c><00:14:21.350><c> circuits</c><00:14:22.070><c> and</c>

00:14:22.300 --> 00:14:22.310 align:start position:0%
we can do commitments in circuits and
 

00:14:22.310 --> 00:14:25.780 align:start position:0%
we can do commitments in circuits and
then<00:14:23.290><c> signature</c><00:14:24.290><c> encryption</c><00:14:25.190><c> that</c><00:14:25.490><c> would</c><00:14:25.670><c> be</c>

00:14:25.780 --> 00:14:25.790 align:start position:0%
then signature encryption that would be
 

00:14:25.790 --> 00:14:28.150 align:start position:0%
then signature encryption that would be
nice<00:14:25.970><c> to</c><00:14:26.180><c> have</c><00:14:26.300><c> also</c><00:14:26.990><c> we</c><00:14:27.530><c> want</c><00:14:27.740><c> to</c><00:14:27.830><c> look</c><00:14:27.980><c> at</c>

00:14:28.150 --> 00:14:28.160 align:start position:0%
nice to have also we want to look at
 

00:14:28.160 --> 00:14:30.760 align:start position:0%
nice to have also we want to look at
integration<00:14:28.790><c> of</c><00:14:28.910><c> other</c><00:14:29.120><c> front</c><00:14:29.570><c> ends</c><00:14:30.170><c> that</c><00:14:30.590><c> can</c>

00:14:30.760 --> 00:14:30.770 align:start position:0%
integration of other front ends that can
 

00:14:30.770 --> 00:14:33.430 align:start position:0%
integration of other front ends that can
also<00:14:30.950><c> be</c><00:14:31.100><c> used</c><00:14:31.400><c> to</c><00:14:31.700><c> arrive</c><00:14:32.090><c> at</c><00:14:32.420><c> rank</c><00:14:33.260><c> one</c>

00:14:33.430 --> 00:14:33.440 align:start position:0%
also be used to arrive at rank one
 

00:14:33.440 --> 00:14:38.310 align:start position:0%
also be used to arrive at rank one
constraint<00:14:33.920><c> systems</c><00:14:34.460><c> for</c><00:14:34.730><c> example</c><00:14:35.020><c> Buffett</c><00:14:36.520><c> a</c>

00:14:38.310 --> 00:14:38.320 align:start position:0%
constraint systems for example Buffett a
 

00:14:38.320 --> 00:14:41.860 align:start position:0%
constraint systems for example Buffett a
generic<00:14:39.320><c> CK</c><00:14:40.130><c> snark</c><00:14:40.460><c> challenge</c><00:14:41.150><c> that</c><00:14:41.510><c> is</c><00:14:41.660><c> not</c>

00:14:41.860 --> 00:14:41.870 align:start position:0%
generic CK snark challenge that is not
 

00:14:41.870 --> 00:14:46.150 align:start position:0%
generic CK snark challenge that is not
specific<00:14:42.620><c> to</c><00:14:42.670><c> Socrates</c><00:14:43.670><c> but</c><00:14:43.970><c> rather</c><00:14:45.160><c> yeah</c>

00:14:46.150 --> 00:14:46.160 align:start position:0%
specific to Socrates but rather yeah
 

00:14:46.160 --> 00:14:48.700 align:start position:0%
specific to Socrates but rather yeah
always<00:14:46.490><c> comes</c><00:14:47.180><c> up</c><00:14:47.360><c> when</c><00:14:47.630><c> speaking</c><00:14:48.140><c> about</c><00:14:48.320><c> the</c>

00:14:48.700 --> 00:14:48.710 align:start position:0%
always comes up when speaking about the
 

00:14:48.710 --> 00:14:52.930 align:start position:0%
always comes up when speaking about the
case<00:14:48.920><c> Norquist</c><00:14:49.460><c> trusted</c><00:14:50.390><c> set</c><00:14:50.900><c> up</c><00:14:51.050><c> phase</c><00:14:51.520><c> so</c><00:14:52.520><c> if</c>

00:14:52.930 --> 00:14:52.940 align:start position:0%
case Norquist trusted set up phase so if
 

00:14:52.940 --> 00:14:56.110 align:start position:0%
case Norquist trusted set up phase so if
you<00:14:53.390><c> supply</c><00:14:54.130><c> verification</c><00:14:55.130><c> smart</c><00:14:55.520><c> contract</c>

00:14:56.110 --> 00:14:56.120 align:start position:0%
you supply verification smart contract
 

00:14:56.120 --> 00:15:00.370 align:start position:0%
you supply verification smart contract
and<00:14:56.480><c> you</c><00:14:57.140><c> want</c><00:14:57.410><c> to</c><00:14:57.560><c> verify</c><00:14:58.210><c> something</c><00:14:59.380><c> someone</c>

00:15:00.370 --> 00:15:00.380 align:start position:0%
and you want to verify something someone
 

00:15:00.380 --> 00:15:02.350 align:start position:0%
and you want to verify something someone
else<00:15:00.410><c> proves</c><00:15:00.890><c> to</c><00:15:01.040><c> you</c><00:15:01.190><c> and</c><00:15:01.460><c> you</c><00:15:01.670><c> only</c><00:15:02.000><c> want</c><00:15:02.300><c> to</c>

00:15:02.350 --> 00:15:02.360 align:start position:0%
else proves to you and you only want to
 

00:15:02.360 --> 00:15:04.240 align:start position:0%
else proves to you and you only want to
be<00:15:02.450><c> convinced</c><00:15:03.050><c> you</c><00:15:03.200><c> don't</c><00:15:03.410><c> have</c><00:15:03.590><c> any</c><00:15:03.770><c> problem</c>

00:15:04.240 --> 00:15:04.250 align:start position:0%
be convinced you don't have any problem
 

00:15:04.250 --> 00:15:06.580 align:start position:0%
be convinced you don't have any problem
you<00:15:04.670><c> run</c><00:15:04.850><c> the</c><00:15:05.030><c> setup</c><00:15:05.420><c> and</c><00:15:05.630><c> you</c><00:15:05.990><c> know</c><00:15:06.200><c> that</c><00:15:06.440><c> you</c>

00:15:06.580 --> 00:15:06.590 align:start position:0%
you run the setup and you know that you
 

00:15:06.590 --> 00:15:09.070 align:start position:0%
you run the setup and you know that you
did<00:15:06.740><c> it</c><00:15:06.890><c> correctly</c><00:15:07.070><c> and</c><00:15:07.700><c> thus</c><00:15:08.360><c> you</c><00:15:08.540><c> can</c><00:15:08.750><c> trust</c>

00:15:09.070 --> 00:15:09.080 align:start position:0%
did it correctly and thus you can trust
 

00:15:09.080 --> 00:15:10.960 align:start position:0%
did it correctly and thus you can trust
approves<00:15:09.590><c> and</c><00:15:09.890><c> you</c><00:15:09.950><c> know</c><00:15:10.130><c> that</c><00:15:10.370><c> the</c><00:15:10.760><c> person</c>

00:15:10.960 --> 00:15:10.970 align:start position:0%
approves and you know that the person
 

00:15:10.970 --> 00:15:13.240 align:start position:0%
approves and you know that the person
proving<00:15:11.480><c> to</c><00:15:11.630><c> you</c><00:15:11.810><c> cannot</c><00:15:12.260><c> take</c><00:15:12.560><c> Bruce</c><00:15:12.830><c> because</c>

00:15:13.240 --> 00:15:13.250 align:start position:0%
proving to you cannot take Bruce because
 

00:15:13.250 --> 00:15:15.880 align:start position:0%
proving to you cannot take Bruce because
you<00:15:13.670><c> were</c><00:15:13.850><c> in</c><00:15:14.000><c> control</c><00:15:14.360><c> of</c><00:15:14.510><c> the</c><00:15:14.690><c> setup</c><00:15:14.960><c> but</c><00:15:15.710><c> if</c>

00:15:15.880 --> 00:15:15.890 align:start position:0%
you were in control of the setup but if
 

00:15:15.890 --> 00:15:20.050 align:start position:0%
you were in control of the setup but if
you<00:15:16.130><c> want</c><00:15:16.400><c> to</c><00:15:16.610><c> use</c><00:15:16.880><c> these</c><00:15:17.720><c> proofs</c><00:15:18.200><c> to</c><00:15:19.060><c> also</c>

00:15:20.050 --> 00:15:20.060 align:start position:0%
you want to use these proofs to also
 

00:15:20.060 --> 00:15:23.160 align:start position:0%
you want to use these proofs to also
convinced<00:15:20.600><c> third</c><00:15:21.050><c> parties</c><00:15:21.620><c> other</c><00:15:22.070><c> parties</c>

00:15:23.160 --> 00:15:23.170 align:start position:0%
convinced third parties other parties
 

00:15:23.170 --> 00:15:25.300 align:start position:0%
convinced third parties other parties
observing<00:15:24.170><c> these</c><00:15:24.290><c> proofs</c><00:15:24.620><c> on</c><00:15:24.800><c> on</c><00:15:25.040><c> the</c>

00:15:25.300 --> 00:15:25.310 align:start position:0%
observing these proofs on on the
 

00:15:25.310 --> 00:15:28.480 align:start position:0%
observing these proofs on on the
blockchain<00:15:26.080><c> then</c><00:15:27.080><c> they</c><00:15:27.380><c> would</c><00:15:27.590><c> have</c><00:15:28.010><c> to</c><00:15:28.190><c> trust</c>

00:15:28.480 --> 00:15:28.490 align:start position:0%
blockchain then they would have to trust
 

00:15:28.490 --> 00:15:30.400 align:start position:0%
blockchain then they would have to trust
you<00:15:28.670><c> with</c><00:15:28.880><c> the</c><00:15:29.030><c> setup</c><00:15:29.390><c> phase</c><00:15:29.570><c> so</c><00:15:30.110><c> what</c><00:15:30.290><c> would</c>

00:15:30.400 --> 00:15:30.410 align:start position:0%
you with the setup phase so what would
 

00:15:30.410 --> 00:15:32.620 align:start position:0%
you with the setup phase so what would
be<00:15:30.590><c> great</c><00:15:30.770><c> if</c><00:15:31.160><c> we</c><00:15:31.400><c> could</c><00:15:31.640><c> eliminate</c><00:15:31.910><c> some</c><00:15:32.600><c> of</c>

00:15:32.620 --> 00:15:32.630 align:start position:0%
be great if we could eliminate some of
 

00:15:32.630 --> 00:15:35.710 align:start position:0%
be great if we could eliminate some of
that<00:15:32.780><c> trust</c><00:15:33.380><c> by</c><00:15:34.040><c> integrating</c><00:15:35.030><c> a</c><00:15:35.120><c> distributed</c>

00:15:35.710 --> 00:15:35.720 align:start position:0%
that trust by integrating a distributed
 

00:15:35.720 --> 00:15:37.240 align:start position:0%
that trust by integrating a distributed
set<00:15:35.930><c> of</c><00:15:36.080><c> phase</c>

00:15:37.240 --> 00:15:37.250 align:start position:0%
set of phase
 

00:15:37.250 --> 00:15:39.700 align:start position:0%
set of phase
it<00:15:37.550><c> just</c><00:15:38.300><c> would</c><00:15:38.630><c> have</c><00:15:38.660><c> to</c><00:15:38.990><c> become</c><00:15:39.350><c> a</c><00:15:39.380><c> bit</c><00:15:39.680><c> more</c>

00:15:39.700 --> 00:15:39.710 align:start position:0%
it just would have to become a bit more
 

00:15:39.710 --> 00:15:43.300 align:start position:0%
it just would have to become a bit more
efficient<00:15:40.490><c> than</c><00:15:40.760><c> it</c><00:15:40.940><c> was</c><00:15:41.270><c> in</c><00:15:42.070><c> C</c><00:15:43.070><c> cash</c>

00:15:43.300 --> 00:15:43.310 align:start position:0%
efficient than it was in C cash
 

00:15:43.310 --> 00:15:45.370 align:start position:0%
efficient than it was in C cash
multi-party<00:15:43.970><c> computation</c><00:15:44.210><c> protocol</c><00:15:44.900><c> for</c>

00:15:45.370 --> 00:15:45.380 align:start position:0%
multi-party computation protocol for
 

00:15:45.380 --> 00:15:48.160 align:start position:0%
multi-party computation protocol for
example<00:15:45.860><c> which</c><00:15:46.430><c> they</c><00:15:46.790><c> employed</c><00:15:47.210><c> to</c><00:15:47.660><c> do</c><00:15:47.900><c> their</c>

00:15:48.160 --> 00:15:48.170 align:start position:0%
example which they employed to do their
 

00:15:48.170 --> 00:15:51.790 align:start position:0%
example which they employed to do their
trusted<00:15:49.130><c> set</c><00:15:49.340><c> up</c><00:15:49.520><c> so</c><00:15:50.390><c> I</c><00:15:50.810><c> think</c><00:15:50.990><c> we'll</c><00:15:51.620><c> hear</c>

00:15:51.790 --> 00:15:51.800 align:start position:0%
trusted set up so I think we'll hear
 

00:15:51.800 --> 00:15:55.090 align:start position:0%
trusted set up so I think we'll hear
more<00:15:52.040><c> about</c><00:15:52.100><c> that</c><00:15:52.370><c> on</c><00:15:53.140><c> Friday</c><00:15:54.140><c> in</c><00:15:54.500><c> the</c><00:15:54.530><c> CK</c>

00:15:55.090 --> 00:15:55.100 align:start position:0%
more about that on Friday in the CK
 

00:15:55.100 --> 00:15:59.050 align:start position:0%
more about that on Friday in the CK
snark<00:15:55.460><c> breakout</c><00:15:55.970><c> session</c><00:15:56.480><c> hopefully</c><00:15:57.610><c> okay</c><00:15:58.610><c> so</c>

00:15:59.050 --> 00:15:59.060 align:start position:0%
snark breakout session hopefully okay so
 

00:15:59.060 --> 00:16:01.540 align:start position:0%
snark breakout session hopefully okay so
the<00:15:59.450><c> code</c><00:15:59.840><c> is</c><00:16:00.170><c> open</c><00:16:00.530><c> source</c><00:16:00.770><c> it's</c><00:16:01.310><c> available</c>

00:16:01.540 --> 00:16:01.550 align:start position:0%
the code is open source it's available
 

00:16:01.550 --> 00:16:04.240 align:start position:0%
the code is open source it's available
on<00:16:01.910><c> github</c><00:16:02.060><c> you're</c><00:16:02.780><c> all</c><00:16:02.960><c> welcome</c><00:16:03.260><c> to</c><00:16:03.530><c> try</c><00:16:04.190><c> it</c>

00:16:04.240 --> 00:16:04.250 align:start position:0%
on github you're all welcome to try it
 

00:16:04.250 --> 00:16:06.540 align:start position:0%
on github you're all welcome to try it
out<00:16:04.490><c> I'm</c><00:16:04.790><c> happy</c><00:16:05.150><c> to</c><00:16:05.450><c> receive</c><00:16:05.810><c> your</c><00:16:06.020><c> feedback</c>

00:16:06.540 --> 00:16:06.550 align:start position:0%
out I'm happy to receive your feedback
 

00:16:06.550 --> 00:16:09.790 align:start position:0%
out I'm happy to receive your feedback
keep<00:16:07.550><c> in</c><00:16:07.700><c> mind</c><00:16:07.940><c> it's</c><00:16:08.150><c> proof</c><00:16:08.870><c> of</c><00:16:08.990><c> concept</c><00:16:09.470><c> and</c><00:16:09.770><c> a</c>

00:16:09.790 --> 00:16:09.800 align:start position:0%
keep in mind it's proof of concept and a
 

00:16:09.800 --> 00:16:12.300 align:start position:0%
keep in mind it's proof of concept and a
research<00:16:10.340><c> prototype</c><00:16:10.850><c> at</c><00:16:11.210><c> this</c><00:16:11.390><c> place</c><00:16:11.720><c> we're</c>

00:16:12.300 --> 00:16:12.310 align:start position:0%
research prototype at this place we're
 

00:16:12.310 --> 00:16:15.850 align:start position:0%
research prototype at this place we're
actively<00:16:13.310><c> developing</c><00:16:14.030><c> it</c><00:16:14.240><c> and</c><00:16:14.590><c> we're</c><00:16:15.590><c> always</c>

00:16:15.850 --> 00:16:15.860 align:start position:0%
actively developing it and we're always
 

00:16:15.860 --> 00:16:18.790 align:start position:0%
actively developing it and we're always
happy<00:16:16.340><c> for</c><00:16:16.880><c> people</c><00:16:17.600><c> who</c><00:16:17.810><c> want</c><00:16:18.320><c> to</c><00:16:18.410><c> contribute</c>

00:16:18.790 --> 00:16:18.800 align:start position:0%
happy for people who want to contribute
 

00:16:18.800 --> 00:16:21.580 align:start position:0%
happy for people who want to contribute
to<00:16:19.340><c> the</c><00:16:19.490><c> further</c><00:16:19.850><c> development</c><00:16:20.290><c> you</c><00:16:21.290><c> can</c><00:16:21.440><c> also</c>

00:16:21.580 --> 00:16:21.590 align:start position:0%
to the further development you can also
 

00:16:21.590 --> 00:16:24.460 align:start position:0%
to the further development you can also
contact<00:16:22.010><c> me</c><00:16:22.310><c> by</c><00:16:22.430><c> email</c><00:16:22.460><c> and</c><00:16:22.970><c> I</c><00:16:23.660><c> want</c><00:16:23.990><c> to</c><00:16:24.140><c> give</c>

00:16:24.460 --> 00:16:24.470 align:start position:0%
contact me by email and I want to give
 

00:16:24.470 --> 00:16:27.640 align:start position:0%
contact me by email and I want to give
credits<00:16:25.460><c> to</c><00:16:25.580><c> Christian</c><00:16:26.300><c> right</c><00:16:26.630><c> Wiesner</c><00:16:27.140><c> who</c>

00:16:27.640 --> 00:16:27.650 align:start position:0%
credits to Christian right Wiesner who
 

00:16:27.650 --> 00:16:30.040 align:start position:0%
credits to Christian right Wiesner who
always<00:16:28.000><c> provided</c><00:16:29.000><c> very</c><00:16:29.210><c> valuable</c><00:16:29.600><c> feedback</c>

00:16:30.040 --> 00:16:30.050 align:start position:0%
always provided very valuable feedback
 

00:16:30.050 --> 00:16:32.530 align:start position:0%
always provided very valuable feedback
and<00:16:30.530><c> input</c><00:16:30.680><c> in</c><00:16:31.130><c> discussions</c><00:16:31.730><c> and</c><00:16:31.880><c> also</c><00:16:32.330><c> to</c>

00:16:32.530 --> 00:16:32.540 align:start position:0%
and input in discussions and also to
 

00:16:32.540 --> 00:16:35.170 align:start position:0%
and input in discussions and also to
Dennis<00:16:33.170><c> cüneyt</c><00:16:33.590><c> who</c><00:16:34.040><c> contributed</c><00:16:34.640><c> a</c><00:16:34.910><c> lot</c><00:16:35.120><c> to</c>

00:16:35.170 --> 00:16:35.180 align:start position:0%
Dennis cüneyt who contributed a lot to
 

00:16:35.180 --> 00:16:37.810 align:start position:0%
Dennis cüneyt who contributed a lot to
the<00:16:35.600><c> existing</c><00:16:36.020><c> implementation</c><00:16:36.860><c> thank</c><00:16:37.730><c> you</c>

00:16:37.810 --> 00:16:37.820 align:start position:0%
the existing implementation thank you
 

00:16:37.820 --> 00:16:46.290 align:start position:0%
the existing implementation thank you
very<00:16:37.940><c> much</c>

00:16:46.290 --> 00:16:46.300 align:start position:0%
 
 

00:16:46.300 --> 00:16:53.890 align:start position:0%
 
[Music]

