WEBVTT
Kind: captions
Language: en

00:00:01.110 --> 00:00:06.650 align:start position:0%
 
[Music]

00:00:06.650 --> 00:00:06.660 align:start position:0%
 
 

00:00:06.660 --> 00:00:10.509 align:start position:0%
 
[Music]

00:00:10.509 --> 00:00:10.519 align:start position:0%
[Music]
 

00:00:10.519 --> 00:00:13.270 align:start position:0%
[Music]
wow<00:00:10.679><c> a</c><00:00:10.759><c> lot</c><00:00:10.920><c> of</c><00:00:11.040><c> fans</c><00:00:11.280><c> in</c><00:00:11.400><c> the</c><00:00:11.799><c> audience</c><00:00:12.799><c> yeah</c>

00:00:13.270 --> 00:00:13.280 align:start position:0%
wow a lot of fans in the audience yeah
 

00:00:13.280 --> 00:00:16.510 align:start position:0%
wow a lot of fans in the audience yeah
hello<00:00:13.679><c> everybody</c><00:00:14.480><c> hi</c><00:00:15.160><c> everybody</c><00:00:16.160><c> yeah</c><00:00:16.279><c> today</c>

00:00:16.510 --> 00:00:16.520 align:start position:0%
hello everybody hi everybody yeah today
 

00:00:16.520 --> 00:00:19.349 align:start position:0%
hello everybody hi everybody yeah today
we'll<00:00:16.720><c> talk</c><00:00:16.960><c> about</c><00:00:17.680><c> uh</c><00:00:18.320><c> FK</c><00:00:18.560><c> Choice</c><00:00:18.880><c> compliance</c>

00:00:19.349 --> 00:00:19.359 align:start position:0%
we'll talk about uh FK Choice compliance
 

00:00:19.359 --> 00:00:22.109 align:start position:0%
we'll talk about uh FK Choice compliance
and<00:00:19.560><c> how</c><00:00:19.720><c> we</c><00:00:19.960><c> approached</c><00:00:20.400><c> it</c><00:00:21.240><c> and</c><00:00:21.439><c> to</c><00:00:21.680><c> start</c>

00:00:22.109 --> 00:00:22.119 align:start position:0%
and how we approached it and to start
 

00:00:22.119 --> 00:00:24.950 align:start position:0%
and how we approached it and to start
let's<00:00:22.800><c> understand</c><00:00:23.240><c> uh</c><00:00:23.400><c> first</c><00:00:23.920><c> why</c><00:00:24.400><c> FK</c><00:00:24.680><c> Choice</c>

00:00:24.950 --> 00:00:24.960 align:start position:0%
let's understand uh first why FK Choice
 

00:00:24.960 --> 00:00:27.669 align:start position:0%
let's understand uh first why FK Choice
compliance<00:00:25.680><c> is</c><00:00:25.960><c> important</c><00:00:26.960><c> uh</c><00:00:27.080><c> the</c><00:00:27.160><c> FK</c><00:00:27.439><c> Choice</c>

00:00:27.669 --> 00:00:27.679 align:start position:0%
compliance is important uh the FK Choice
 

00:00:27.679 --> 00:00:29.710 align:start position:0%
compliance is important uh the FK Choice
rule<00:00:28.080><c> is</c><00:00:28.240><c> the</c><00:00:28.400><c> part</c><00:00:28.599><c> of</c><00:00:28.760><c> etherum</c><00:00:29.160><c> protocols</c>

00:00:29.710 --> 00:00:29.720 align:start position:0%
rule is the part of etherum protocols
 

00:00:29.720 --> 00:00:32.310 align:start position:0%
rule is the part of etherum protocols
that<00:00:30.080><c> that</c><00:00:30.240><c> decides</c><00:00:30.759><c> on</c><00:00:31.080><c> the</c><00:00:31.720><c> head</c><00:00:31.920><c> of</c><00:00:32.119><c> the</c>

00:00:32.310 --> 00:00:32.320 align:start position:0%
that that decides on the head of the
 

00:00:32.320 --> 00:00:34.709 align:start position:0%
that that decides on the head of the
canonical<00:00:32.840><c> chain</c><00:00:33.760><c> uh</c><00:00:33.879><c> that</c><00:00:34.000><c> is</c><00:00:34.160><c> the</c><00:00:34.320><c> chain</c>

00:00:34.709 --> 00:00:34.719 align:start position:0%
canonical chain uh that is the chain
 

00:00:34.719 --> 00:00:36.350 align:start position:0%
canonical chain uh that is the chain
that<00:00:34.840><c> is</c><00:00:35.120><c> the</c><00:00:35.239><c> chain</c><00:00:35.600><c> that</c><00:00:35.719><c> you</c><00:00:35.840><c> use</c><00:00:36.120><c> to</c>

00:00:36.350 --> 00:00:36.360 align:start position:0%
that is the chain that you use to
 

00:00:36.360 --> 00:00:38.270 align:start position:0%
that is the chain that you use to
confirm<00:00:36.800><c> your</c><00:00:37.040><c> transactions</c><00:00:37.800><c> that</c><00:00:38.000><c> is</c><00:00:38.160><c> the</c>

00:00:38.270 --> 00:00:38.280 align:start position:0%
confirm your transactions that is the
 

00:00:38.280 --> 00:00:41.350 align:start position:0%
confirm your transactions that is the
chain<00:00:38.719><c> that</c><00:00:39.000><c> will</c><00:00:39.239><c> be</c><00:00:39.800><c> eventually</c><00:00:40.360><c> finalized</c>

00:00:41.350 --> 00:00:41.360 align:start position:0%
chain that will be eventually finalized
 

00:00:41.360 --> 00:00:44.510 align:start position:0%
chain that will be eventually finalized
uh<00:00:41.520><c> by</c><00:00:41.680><c> the</c><00:00:42.079><c> protocol</c><00:00:43.079><c> and</c><00:00:43.440><c> uh</c><00:00:43.600><c> a</c><00:00:43.760><c> noncompliant</c>

00:00:44.510 --> 00:00:44.520 align:start position:0%
uh by the protocol and uh a noncompliant
 

00:00:44.520 --> 00:00:46.830 align:start position:0%
uh by the protocol and uh a noncompliant
with<00:00:44.680><c> the</c><00:00:44.760><c> FTR</c><00:00:45.280><c> speack</c><00:00:45.559><c> implementation</c><00:00:46.559><c> can</c>

00:00:46.830 --> 00:00:46.840 align:start position:0%
with the FTR speack implementation can
 

00:00:46.840 --> 00:00:49.709 align:start position:0%
with the FTR speack implementation can
cause<00:00:47.559><c> uh</c><00:00:47.800><c> different</c><00:00:48.199><c> security</c><00:00:48.680><c> issues</c><00:00:49.480><c> such</c>

00:00:49.709 --> 00:00:49.719 align:start position:0%
cause uh different security issues such
 

00:00:49.719 --> 00:00:52.189 align:start position:0%
cause uh different security issues such
as<00:00:50.480><c> confirming</c><00:00:51.120><c> your</c><00:00:51.360><c> transaction</c><00:00:51.879><c> with</c><00:00:52.079><c> the</c>

00:00:52.189 --> 00:00:52.199 align:start position:0%
as confirming your transaction with the
 

00:00:52.199 --> 00:00:54.910 align:start position:0%
as confirming your transaction with the
chain<00:00:52.640><c> that</c><00:00:52.800><c> your</c><00:00:52.960><c> local</c><00:00:53.239><c> node</c><00:00:53.520><c> pretends</c><00:00:54.079><c> to</c>

00:00:54.910 --> 00:00:54.920 align:start position:0%
chain that your local node pretends to
 

00:00:54.920 --> 00:00:57.910 align:start position:0%
chain that your local node pretends to
to<00:00:55.160><c> say</c><00:00:55.480><c> that</c><00:00:56.039><c> this</c><00:00:56.160><c> chain</c><00:00:56.399><c> is</c><00:00:56.559><c> canonical</c><00:00:57.280><c> but</c>

00:00:57.910 --> 00:00:57.920 align:start position:0%
to say that this chain is canonical but
 

00:00:57.920 --> 00:00:59.670 align:start position:0%
to say that this chain is canonical but
the<00:00:58.039><c> chain</c><00:00:58.280><c> is</c><00:00:58.480><c> effectively</c><00:00:59.000><c> not</c><00:00:59.160><c> canonical</c>

00:00:59.670 --> 00:00:59.680 align:start position:0%
the chain is effectively not canonical
 

00:00:59.680 --> 00:01:01.110 align:start position:0%
the chain is effectively not canonical
and<00:01:00.039><c> it's</c><00:01:00.160><c> not</c><00:01:00.359><c> canonical</c><00:01:00.800><c> to</c><00:01:00.920><c> the</c>

00:01:01.110 --> 00:01:01.120 align:start position:0%
and it's not canonical to the
 

00:01:01.120 --> 00:01:03.430 align:start position:0%
and it's not canonical to the
observation<00:01:01.680><c> of</c><00:01:02.280><c> uh</c><00:01:02.399><c> the</c><00:01:02.559><c> majority</c><00:01:03.039><c> notes</c><00:01:03.320><c> in</c>

00:01:03.430 --> 00:01:03.440 align:start position:0%
observation of uh the majority notes in
 

00:01:03.440 --> 00:01:06.910 align:start position:0%
observation of uh the majority notes in
the<00:01:03.760><c> network</c><00:01:04.760><c> um</c><00:01:05.119><c> in</c><00:01:05.280><c> some</c><00:01:05.560><c> situations</c><00:01:06.560><c> uh</c>

00:01:06.910 --> 00:01:06.920 align:start position:0%
the network um in some situations uh
 

00:01:06.920 --> 00:01:10.190 align:start position:0%
the network um in some situations uh
this<00:01:07.880><c> uh</c><00:01:08.400><c> non-compliant</c><00:01:09.159><c> implementation</c><00:01:09.880><c> can</c>

00:01:10.190 --> 00:01:10.200 align:start position:0%
this uh non-compliant implementation can
 

00:01:10.200 --> 00:01:13.789 align:start position:0%
this uh non-compliant implementation can
cause<00:01:10.759><c> uh</c><00:01:10.920><c> Network</c><00:01:12.040><c> splits</c><00:01:13.040><c> uh</c><00:01:13.240><c> which</c><00:01:13.560><c> can</c>

00:01:13.789 --> 00:01:13.799 align:start position:0%
cause uh Network splits uh which can
 

00:01:13.799 --> 00:01:16.990 align:start position:0%
cause uh Network splits uh which can
affect<00:01:14.280><c> validator</c><00:01:14.880><c> voting</c><00:01:15.880><c> uh</c><00:01:16.280><c> participate</c>

00:01:16.990 --> 00:01:17.000 align:start position:0%
affect validator voting uh participate
 

00:01:17.000 --> 00:01:20.789 align:start position:0%
affect validator voting uh participate
valer<00:01:17.439><c> voting</c><00:01:17.799><c> rate</c><00:01:18.320><c> uh</c><00:01:18.479><c> in</c><00:01:18.600><c> a</c><00:01:19.280><c> bad</c><00:01:19.600><c> way</c><00:01:20.040><c> and</c><00:01:20.560><c> uh</c>

00:01:20.789 --> 00:01:20.799 align:start position:0%
valer voting rate uh in a bad way and uh
 

00:01:20.799 --> 00:01:22.429 align:start position:0%
valer voting rate uh in a bad way and uh
in<00:01:20.920><c> the</c><00:01:21.040><c> worst</c><00:01:21.360><c> case</c><00:01:21.520><c> scenario</c><00:01:21.960><c> it</c><00:01:22.119><c> could</c>

00:01:22.429 --> 00:01:22.439 align:start position:0%
in the worst case scenario it could
 

00:01:22.439 --> 00:01:23.390 align:start position:0%
in the worst case scenario it could
delay

00:01:23.390 --> 00:01:23.400 align:start position:0%
delay
 

00:01:23.400 --> 00:01:28.190 align:start position:0%
delay
finality<00:01:24.400><c> um</c><00:01:24.560><c> in</c><00:01:24.759><c> Ideal</c><00:01:25.159><c> World</c><00:01:26.040><c> uh</c>

00:01:28.190 --> 00:01:28.200 align:start position:0%
finality um in Ideal World uh
 

00:01:28.200 --> 00:01:30.870 align:start position:0%
finality um in Ideal World uh
every<00:01:29.200><c> every</c><00:01:29.520><c> implement</c><00:01:29.920><c> mentation</c><00:01:30.720><c> is</c>

00:01:30.870 --> 00:01:30.880 align:start position:0%
every every implement mentation is
 

00:01:30.880 --> 00:01:32.950 align:start position:0%
every every implement mentation is
formally<00:01:31.360><c> verified</c><00:01:31.960><c> to</c><00:01:32.119><c> be</c><00:01:32.360><c> compliant</c><00:01:32.840><c> with</c>

00:01:32.950 --> 00:01:32.960 align:start position:0%
formally verified to be compliant with
 

00:01:32.960 --> 00:01:35.149 align:start position:0%
formally verified to be compliant with
the<00:01:33.040><c> for</c><00:01:33.320><c> CH</c><00:01:33.560><c> spec</c><00:01:34.040><c> but</c><00:01:34.200><c> we</c><00:01:34.360><c> cannot</c><00:01:34.759><c> expect</c>

00:01:35.149 --> 00:01:35.159 align:start position:0%
the for CH spec but we cannot expect
 

00:01:35.159 --> 00:01:36.789 align:start position:0%
the for CH spec but we cannot expect
this<00:01:35.320><c> to</c><00:01:35.520><c> happen</c><00:01:35.960><c> because</c><00:01:36.200><c> it</c><00:01:36.320><c> is</c><00:01:36.520><c> quite</c>

00:01:36.789 --> 00:01:36.799 align:start position:0%
this to happen because it is quite
 

00:01:36.799 --> 00:01:39.670 align:start position:0%
this to happen because it is quite
challenging<00:01:37.399><c> and</c><00:01:37.640><c> costly</c><00:01:38.640><c> and</c><00:01:38.880><c> our</c><00:01:39.240><c> approach</c>

00:01:39.670 --> 00:01:39.680 align:start position:0%
challenging and costly and our approach
 

00:01:39.680 --> 00:01:42.630 align:start position:0%
challenging and costly and our approach
to<00:01:40.399><c> the</c><00:01:40.600><c> compliance</c><00:01:41.280><c> is</c><00:01:41.439><c> to</c><00:01:41.640><c> extensively</c><00:01:42.280><c> test</c>

00:01:42.630 --> 00:01:42.640 align:start position:0%
to the compliance is to extensively test
 

00:01:42.640 --> 00:01:44.550 align:start position:0%
to the compliance is to extensively test
every<00:01:42.960><c> implementation</c><00:01:43.840><c> against</c><00:01:44.159><c> the</c><00:01:44.280><c> FK</c>

00:01:44.550 --> 00:01:44.560 align:start position:0%
every implementation against the FK
 

00:01:44.560 --> 00:01:45.429 align:start position:0%
every implementation against the FK
Choice

00:01:45.429 --> 00:01:45.439 align:start position:0%
Choice
 

00:01:45.439 --> 00:01:48.670 align:start position:0%
Choice
spec<00:01:46.439><c> uh</c><00:01:46.560><c> so</c><00:01:46.759><c> now</c><00:01:46.960><c> a</c><00:01:47.119><c> bit</c><00:01:47.759><c> uh</c><00:01:48.000><c> about</c><00:01:48.280><c> the</c><00:01:48.399><c> folk</c>

00:01:48.670 --> 00:01:48.680 align:start position:0%
spec uh so now a bit uh about the folk
 

00:01:48.680 --> 00:01:51.030 align:start position:0%
spec uh so now a bit uh about the folk
Choice<00:01:48.960><c> rule</c><00:01:49.280><c> itself</c><00:01:49.960><c> so</c><00:01:50.200><c> imagine</c><00:01:50.640><c> there</c><00:01:50.759><c> is</c><00:01:50.880><c> a</c>

00:01:51.030 --> 00:01:51.040 align:start position:0%
Choice rule itself so imagine there is a
 

00:01:51.040 --> 00:01:54.230 align:start position:0%
Choice rule itself so imagine there is a
node<00:01:51.399><c> state</c><00:01:52.040><c> that</c><00:01:52.200><c> is</c><00:01:52.439><c> computed</c><00:01:53.439><c> from</c><00:01:53.719><c> the</c>

00:01:54.230 --> 00:01:54.240 align:start position:0%
node state that is computed from the
 

00:01:54.240 --> 00:01:56.069 align:start position:0%
node state that is computed from the
messages<00:01:55.240><c> that</c><00:01:55.360><c> are</c><00:01:55.520><c> coming</c><00:01:55.759><c> from</c><00:01:55.960><c> the</c>

00:01:56.069 --> 00:01:56.079 align:start position:0%
messages that are coming from the
 

00:01:56.079 --> 00:02:00.109 align:start position:0%
messages that are coming from the
network<00:01:56.560><c> such</c><00:01:56.880><c> as</c><00:01:57.119><c> blogs</c><00:01:57.719><c> votes</c><00:01:58.320><c> and</c><00:01:58.680><c> others</c>

00:02:00.109 --> 00:02:00.119 align:start position:0%
network such as blogs votes and others
 

00:02:00.119 --> 00:02:02.870 align:start position:0%
network such as blogs votes and others
and<00:02:00.320><c> the</c><00:02:00.479><c> folk</c><00:02:00.799><c> Choice</c><00:02:01.039><c> rule</c><00:02:01.840><c> algorithm</c><00:02:02.560><c> is</c>

00:02:02.870 --> 00:02:02.880 align:start position:0%
and the folk Choice rule algorithm is
 

00:02:02.880 --> 00:02:05.950 align:start position:0%
and the folk Choice rule algorithm is
executed<00:02:03.600><c> over</c><00:02:04.520><c> this</c><00:02:04.960><c> state</c><00:02:05.520><c> in</c><00:02:05.719><c> in</c><00:02:05.840><c> the</c>

00:02:05.950 --> 00:02:05.960 align:start position:0%
executed over this state in in the
 

00:02:05.960 --> 00:02:08.550 align:start position:0%
executed over this state in in the
following<00:02:06.360><c> three</c><00:02:06.640><c> steps</c><00:02:07.399><c> so</c><00:02:08.039><c> at</c><00:02:08.160><c> the</c><00:02:08.319><c> first</c>

00:02:08.550 --> 00:02:08.560 align:start position:0%
following three steps so at the first
 

00:02:08.560 --> 00:02:11.270 align:start position:0%
following three steps so at the first
step<00:02:08.879><c> there</c><00:02:09.000><c> is</c><00:02:09.080><c> a</c><00:02:09.280><c> filtering</c><00:02:09.800><c> function</c><00:02:10.399><c> that</c>

00:02:11.270 --> 00:02:11.280 align:start position:0%
step there is a filtering function that
 

00:02:11.280 --> 00:02:14.390 align:start position:0%
step there is a filtering function that
uh<00:02:11.440><c> selects</c><00:02:12.239><c> blocks</c><00:02:12.640><c> that</c><00:02:12.800><c> are</c><00:02:13.160><c> candidate</c><00:02:13.720><c> for</c>

00:02:14.390 --> 00:02:14.400 align:start position:0%
uh selects blocks that are candidate for
 

00:02:14.400 --> 00:02:17.030 align:start position:0%
uh selects blocks that are candidate for
head<00:02:14.920><c> we</c><00:02:15.040><c> call</c><00:02:15.239><c> them</c><00:02:15.440><c> viable</c><00:02:15.879><c> for</c><00:02:16.080><c> head</c><00:02:16.280><c> blocks</c>

00:02:17.030 --> 00:02:17.040 align:start position:0%
head we call them viable for head blocks
 

00:02:17.040 --> 00:02:18.350 align:start position:0%
head we call them viable for head blocks
at<00:02:17.200><c> the</c><00:02:17.400><c> Second</c>

00:02:18.350 --> 00:02:18.360 align:start position:0%
at the Second
 

00:02:18.360 --> 00:02:22.070 align:start position:0%
at the Second
Step<00:02:19.360><c> uh</c><00:02:19.599><c> validator</c><00:02:20.519><c> votes</c><00:02:21.000><c> are</c><00:02:21.239><c> used</c><00:02:21.560><c> to</c>

00:02:22.070 --> 00:02:22.080 align:start position:0%
Step uh validator votes are used to
 

00:02:22.080 --> 00:02:25.509 align:start position:0%
Step uh validator votes are used to
compute<00:02:23.080><c> uh</c><00:02:23.480><c> weights</c><00:02:23.879><c> of</c><00:02:24.080><c> sub</c><00:02:24.360><c> trees</c><00:02:25.200><c> uh</c><00:02:25.319><c> which</c>

00:02:25.509 --> 00:02:25.519 align:start position:0%
compute uh weights of sub trees uh which
 

00:02:25.519 --> 00:02:29.150 align:start position:0%
compute uh weights of sub trees uh which
contains<00:02:26.040><c> those</c><00:02:26.560><c> uh</c><00:02:26.760><c> wable</c><00:02:27.560><c> blocks</c><00:02:28.560><c> and</c><00:02:28.879><c> uh</c><00:02:29.000><c> at</c>

00:02:29.150 --> 00:02:29.160 align:start position:0%
contains those uh wable blocks and uh at
 

00:02:29.160 --> 00:02:30.830 align:start position:0%
contains those uh wable blocks and uh at
the<00:02:29.280><c> last</c><00:02:29.480><c> step</c><00:02:30.080><c> uh</c><00:02:30.200><c> the</c><00:02:30.319><c> algorithm</c>

00:02:30.830 --> 00:02:30.840 align:start position:0%
the last step uh the algorithm
 

00:02:30.840 --> 00:02:34.390 align:start position:0%
the last step uh the algorithm
recursively<00:02:31.599><c> goes</c><00:02:32.360><c> uh</c><00:02:32.720><c> down</c><00:02:33.160><c> to</c><00:02:33.480><c> the</c><00:02:33.760><c> heaviest</c>

00:02:34.390 --> 00:02:34.400 align:start position:0%
recursively goes uh down to the heaviest
 

00:02:34.400 --> 00:02:37.550 align:start position:0%
recursively goes uh down to the heaviest
sub<00:02:34.680><c> tree</c><00:02:35.640><c> until</c><00:02:36.120><c> the</c><00:02:36.440><c> leaf</c><00:02:36.760><c> block</c><00:02:37.000><c> is</c><00:02:37.120><c> found</c>

00:02:37.550 --> 00:02:37.560 align:start position:0%
sub tree until the leaf block is found
 

00:02:37.560 --> 00:02:39.750 align:start position:0%
sub tree until the leaf block is found
and<00:02:37.680><c> that</c><00:02:37.879><c> Lea</c><00:02:38.120><c> block</c><00:02:38.599><c> uh</c><00:02:38.720><c> will</c><00:02:38.879><c> be</c><00:02:39.040><c> the</c><00:02:39.200><c> head</c>

00:02:39.750 --> 00:02:39.760 align:start position:0%
and that Lea block uh will be the head
 

00:02:39.760 --> 00:02:43.790 align:start position:0%
and that Lea block uh will be the head
so<00:02:40.040><c> the</c><00:02:40.239><c> algorithm</c><00:02:40.840><c> doesn't</c><00:02:41.239><c> look</c><00:02:42.239><c> uh</c><00:02:43.239><c> um</c>

00:02:43.790 --> 00:02:43.800 align:start position:0%
so the algorithm doesn't look uh um
 

00:02:43.800 --> 00:02:46.030 align:start position:0%
so the algorithm doesn't look uh um
quite<00:02:44.200><c> doesn't</c><00:02:44.519><c> look</c><00:02:44.720><c> complex</c><00:02:45.280><c> it's</c><00:02:45.599><c> Rel</c>

00:02:46.030 --> 00:02:46.040 align:start position:0%
quite doesn't look complex it's Rel
 

00:02:46.040 --> 00:02:47.149 align:start position:0%
quite doesn't look complex it's Rel
relatively

00:02:47.149 --> 00:02:47.159 align:start position:0%
relatively
 

00:02:47.159 --> 00:02:50.910 align:start position:0%
relatively
simple<00:02:48.159><c> but</c><00:02:48.560><c> uh</c><00:02:48.680><c> the</c><00:02:48.879><c> complexities</c><00:02:49.840><c> here</c><00:02:50.599><c> uh</c>

00:02:50.910 --> 00:02:50.920 align:start position:0%
simple but uh the complexities here uh
 

00:02:50.920 --> 00:02:52.910 align:start position:0%
simple but uh the complexities here uh
coming<00:02:51.319><c> from</c><00:02:51.599><c> the</c><00:02:51.840><c> different</c><00:02:52.200><c> place</c><00:02:52.680><c> uh</c><00:02:52.800><c> there</c>

00:02:52.910 --> 00:02:52.920 align:start position:0%
coming from the different place uh there
 

00:02:52.920 --> 00:02:55.229 align:start position:0%
coming from the different place uh there
are<00:02:53.080><c> many</c><00:02:53.360><c> many</c><00:02:53.800><c> inter</c><00:02:54.200><c> notd</c><00:02:54.599><c> interacting</c><00:02:55.120><c> in</c>

00:02:55.229 --> 00:02:55.239 align:start position:0%
are many many inter notd interacting in
 

00:02:55.239 --> 00:02:57.190 align:start position:0%
are many many inter notd interacting in
the<00:02:55.400><c> network</c><00:02:56.120><c> and</c><00:02:56.280><c> they</c><00:02:56.440><c> produce</c><00:02:56.840><c> many</c>

00:02:57.190 --> 00:02:57.200 align:start position:0%
the network and they produce many
 

00:02:57.200 --> 00:03:00.309 align:start position:0%
the network and they produce many
messages<00:02:58.080><c> blocks</c><00:02:58.519><c> and</c><00:02:58.720><c> votes</c><00:02:59.720><c> uh</c><00:03:00.120><c> that</c>

00:03:00.309 --> 00:03:00.319 align:start position:0%
messages blocks and votes uh that
 

00:03:00.319 --> 00:03:02.710 align:start position:0%
messages blocks and votes uh that
results<00:03:00.720><c> in</c><00:03:00.879><c> a</c><00:03:01.040><c> huge</c><00:03:01.360><c> variety</c><00:03:01.760><c> of</c><00:03:01.920><c> States</c><00:03:02.440><c> over</c>

00:03:02.710 --> 00:03:02.720 align:start position:0%
results in a huge variety of States over
 

00:03:02.720 --> 00:03:05.390 align:start position:0%
results in a huge variety of States over
which<00:03:02.959><c> the</c><00:03:03.200><c> folk</c><00:03:03.560><c> Choice</c><00:03:03.959><c> algorithm</c><00:03:04.720><c> is</c>

00:03:05.390 --> 00:03:05.400 align:start position:0%
which the folk Choice algorithm is
 

00:03:05.400 --> 00:03:07.589 align:start position:0%
which the folk Choice algorithm is
evaluated<00:03:06.400><c> and</c><00:03:06.959><c> every</c><00:03:07.239><c> client</c>

00:03:07.589 --> 00:03:07.599 align:start position:0%
evaluated and every client
 

00:03:07.599 --> 00:03:10.190 align:start position:0%
evaluated and every client
implementations<00:03:08.519><c> use</c><00:03:09.120><c> uses</c><00:03:09.519><c> their</c><00:03:09.799><c> own</c>

00:03:10.190 --> 00:03:10.200 align:start position:0%
implementations use uses their own
 

00:03:10.200 --> 00:03:12.190 align:start position:0%
implementations use uses their own
optimization<00:03:11.120><c> in</c><00:03:11.239><c> order</c><00:03:11.480><c> to</c><00:03:11.680><c> compute</c><00:03:12.040><c> the</c>

00:03:12.190 --> 00:03:12.200 align:start position:0%
optimization in order to compute the
 

00:03:12.200 --> 00:03:15.430 align:start position:0%
optimization in order to compute the
state<00:03:12.560><c> fast</c><00:03:13.519><c> and</c><00:03:13.959><c> uh</c><00:03:14.040><c> in</c><00:03:14.159><c> order</c><00:03:14.400><c> to</c><00:03:14.879><c> uh</c><00:03:15.000><c> run</c><00:03:15.280><c> the</c>

00:03:15.430 --> 00:03:15.440 align:start position:0%
state fast and uh in order to uh run the
 

00:03:15.440 --> 00:03:18.990 align:start position:0%
state fast and uh in order to uh run the
FTR<00:03:16.000><c> rule</c><00:03:16.640><c> so</c><00:03:17.080><c> those</c><00:03:17.680><c> makes</c><00:03:18.319><c> those</c><00:03:18.519><c> two</c><00:03:18.720><c> things</c>

00:03:18.990 --> 00:03:19.000 align:start position:0%
FTR rule so those makes those two things
 

00:03:19.000 --> 00:03:21.750 align:start position:0%
FTR rule so those makes those two things
makes<00:03:19.560><c> the</c><00:03:20.159><c> the</c><00:03:20.360><c> F</c><00:03:20.879><c> compliance</c><00:03:21.239><c> incredibly</c>

00:03:21.750 --> 00:03:21.760 align:start position:0%
makes the the F compliance incredibly
 

00:03:21.760 --> 00:03:25.110 align:start position:0%
makes the the F compliance incredibly
complicated<00:03:22.760><c> uh</c><00:03:23.280><c> and</c><00:03:23.599><c> now</c><00:03:23.840><c> over</c><00:03:24.080><c> to</c><00:03:24.319><c> Alex</c><00:03:24.799><c> on</c>

00:03:25.110 --> 00:03:25.120 align:start position:0%
complicated uh and now over to Alex on
 

00:03:25.120 --> 00:03:26.630 align:start position:0%
complicated uh and now over to Alex on
how<00:03:25.239><c> do</c><00:03:25.400><c> we</c><00:03:25.560><c> fight</c><00:03:25.879><c> those</c>

00:03:26.630 --> 00:03:26.640 align:start position:0%
how do we fight those
 

00:03:26.640 --> 00:03:29.350 align:start position:0%
how do we fight those
complexities<00:03:27.640><c> uh</c><00:03:27.799><c> so</c><00:03:28.040><c> our</c><00:03:28.319><c> goal</c><00:03:28.640><c> is</c><00:03:28.760><c> to</c><00:03:29.000><c> reveal</c>

00:03:29.350 --> 00:03:29.360 align:start position:0%
complexities uh so our goal is to reveal
 

00:03:29.360 --> 00:03:31.309 align:start position:0%
complexities uh so our goal is to reveal
difference<00:03:30.000><c> between</c><00:03:30.560><c> Fork</c><00:03:30.959><c> Choice</c>

00:03:31.309 --> 00:03:31.319 align:start position:0%
difference between Fork Choice
 

00:03:31.319 --> 00:03:33.630 align:start position:0%
difference between Fork Choice
specification<00:03:32.080><c> and</c><00:03:32.319><c> implementations</c><00:03:33.319><c> and</c><00:03:33.519><c> we</c>

00:03:33.630 --> 00:03:33.640 align:start position:0%
specification and implementations and we
 

00:03:33.640 --> 00:03:36.990 align:start position:0%
specification and implementations and we
need<00:03:33.840><c> a</c><00:03:34.040><c> lot</c><00:03:34.239><c> of</c><00:03:34.920><c> interesting</c><00:03:35.920><c> test</c><00:03:36.239><c> scenarios</c>

00:03:36.990 --> 00:03:37.000 align:start position:0%
need a lot of interesting test scenarios
 

00:03:37.000 --> 00:03:39.470 align:start position:0%
need a lot of interesting test scenarios
but<00:03:37.360><c> generating</c><00:03:38.360><c> lots</c><00:03:38.720><c> of</c><00:03:39.200><c> really</c>

00:03:39.470 --> 00:03:39.480 align:start position:0%
but generating lots of really
 

00:03:39.480 --> 00:03:41.270 align:start position:0%
but generating lots of really
interesting<00:03:39.879><c> scenarios</c><00:03:40.400><c> is</c><00:03:40.560><c> a</c><00:03:40.680><c> challenging</c>

00:03:41.270 --> 00:03:41.280 align:start position:0%
interesting scenarios is a challenging
 

00:03:41.280 --> 00:03:43.949 align:start position:0%
interesting scenarios is a challenging
problem<00:03:41.959><c> and</c><00:03:42.080><c> so</c><00:03:42.319><c> to</c><00:03:42.879><c> overcome</c><00:03:43.400><c> that</c><00:03:43.640><c> we</c>

00:03:43.949 --> 00:03:43.959 align:start position:0%
problem and so to overcome that we
 

00:03:43.959 --> 00:03:46.190 align:start position:0%
problem and so to overcome that we
developed<00:03:44.400><c> a</c><00:03:44.599><c> strategy</c><00:03:45.439><c> which</c><00:03:45.760><c> based</c><00:03:45.959><c> on</c><00:03:46.080><c> the</c>

00:03:46.190 --> 00:03:46.200 align:start position:0%
developed a strategy which based on the
 

00:03:46.200 --> 00:03:49.149 align:start position:0%
developed a strategy which based on the
following<00:03:46.720><c> principle</c><00:03:47.519><c> differential</c><00:03:48.239><c> testing</c>

00:03:49.149 --> 00:03:49.159 align:start position:0%
following principle differential testing
 

00:03:49.159 --> 00:03:51.750 align:start position:0%
following principle differential testing
property<00:03:49.640><c> based</c><00:03:50.000><c> testing</c><00:03:51.000><c> modelbased</c>

00:03:51.750 --> 00:03:51.760 align:start position:0%
property based testing modelbased
 

00:03:51.760 --> 00:03:55.830 align:start position:0%
property based testing modelbased
testing<00:03:52.239><c> and</c><00:03:52.400><c> final</c><00:03:52.760><c> ingredient</c><00:03:53.319><c> fing</c><00:03:53.840><c> and</c>

00:03:55.830 --> 00:03:55.840 align:start position:0%
testing and final ingredient fing and
 

00:03:55.840 --> 00:03:57.630 align:start position:0%
testing and final ingredient fing and
randomization<00:03:56.840><c> and</c><00:03:57.079><c> okay</c><00:03:57.319><c> about</c>

00:03:57.630 --> 00:03:57.640 align:start position:0%
randomization and okay about
 

00:03:57.640 --> 00:03:59.470 align:start position:0%
randomization and okay about
differential<00:03:58.200><c> property</c><00:03:58.599><c> testing</c><00:03:58.920><c> for</c><00:03:59.200><c> Choice</c>

00:03:59.470 --> 00:03:59.480 align:start position:0%
differential property testing for Choice
 

00:03:59.480 --> 00:04:00.589 align:start position:0%
differential property testing for Choice
spec<00:03:59.879><c> is</c>

00:04:00.589 --> 00:04:00.599 align:start position:0%
spec is
 

00:04:00.599 --> 00:04:02.990 align:start position:0%
spec is
executable<00:04:01.599><c> so</c><00:04:02.040><c> we</c><00:04:02.200><c> can</c><00:04:02.480><c> compare</c>

00:04:02.990 --> 00:04:03.000 align:start position:0%
executable so we can compare
 

00:04:03.000 --> 00:04:05.190 align:start position:0%
executable so we can compare
implementation<00:04:03.840><c> Behavior</c><00:04:04.840><c> against</c>

00:04:05.190 --> 00:04:05.200 align:start position:0%
implementation Behavior against
 

00:04:05.200 --> 00:04:07.309 align:start position:0%
implementation Behavior against
specification<00:04:05.920><c> directly</c><00:04:06.599><c> and</c><00:04:06.799><c> this</c><00:04:06.879><c> is</c><00:04:07.079><c> why</c>

00:04:07.309 --> 00:04:07.319 align:start position:0%
specification directly and this is why
 

00:04:07.319 --> 00:04:10.470 align:start position:0%
specification directly and this is why
differential<00:04:07.959><c> testing</c><00:04:08.920><c> and</c><00:04:09.280><c> we</c><00:04:09.519><c> want</c><00:04:10.200><c> to</c>

00:04:10.470 --> 00:04:10.480 align:start position:0%
differential testing and we want to
 

00:04:10.480 --> 00:04:13.949 align:start position:0%
differential testing and we want to
check<00:04:11.239><c> that</c><00:04:11.799><c> uh</c><00:04:12.159><c> every</c><00:04:12.959><c> implementation</c>

00:04:13.949 --> 00:04:13.959 align:start position:0%
check that uh every implementation
 

00:04:13.959 --> 00:04:16.509 align:start position:0%
check that uh every implementation
calculates<00:04:14.560><c> the</c><00:04:14.760><c> head</c><00:04:15.000><c> of</c><00:04:15.120><c> canonical</c><00:04:15.760><c> chain</c>

00:04:16.509 --> 00:04:16.519 align:start position:0%
calculates the head of canonical chain
 

00:04:16.519 --> 00:04:20.150 align:start position:0%
calculates the head of canonical chain
correctly<00:04:17.519><c> but</c><00:04:17.759><c> it</c><00:04:17.959><c> does</c><00:04:18.199><c> not</c><00:04:18.479><c> mean</c><00:04:19.479><c> that</c><00:04:19.919><c> so</c>

00:04:20.150 --> 00:04:20.160 align:start position:0%
correctly but it does not mean that so
 

00:04:20.160 --> 00:04:22.430 align:start position:0%
correctly but it does not mean that so
if<00:04:20.320><c> the</c><00:04:20.519><c> check</c><00:04:21.079><c> the</c><00:04:21.280><c> head</c><00:04:21.600><c> is</c><00:04:21.799><c> correct</c><00:04:22.160><c> it</c><00:04:22.280><c> does</c>

00:04:22.430 --> 00:04:22.440 align:start position:0%
if the check the head is correct it does
 

00:04:22.440 --> 00:04:24.430 align:start position:0%
if the check the head is correct it does
not<00:04:22.560><c> mean</c><00:04:22.800><c> that</c><00:04:23.000><c> protocol</c><00:04:23.479><c> state</c><00:04:23.880><c> is</c><00:04:24.080><c> correct</c>

00:04:24.430 --> 00:04:24.440 align:start position:0%
not mean that protocol state is correct
 

00:04:24.440 --> 00:04:27.230 align:start position:0%
not mean that protocol state is correct
too<00:04:24.960><c> and</c><00:04:25.080><c> so</c><00:04:25.280><c> we</c><00:04:25.400><c> can</c><00:04:25.560><c> check</c><00:04:25.880><c> additional</c>

00:04:27.230 --> 00:04:27.240 align:start position:0%
too and so we can check additional
 

00:04:27.240 --> 00:04:29.749 align:start position:0%
too and so we can check additional
properties<00:04:28.240><c> uh</c><00:04:28.360><c> to</c><00:04:28.560><c> reveal</c><00:04:28.919><c> more</c><00:04:29.120><c> buxs</c><00:04:29.520><c> with</c>

00:04:29.749 --> 00:04:29.759 align:start position:0%
properties uh to reveal more buxs with
 

00:04:29.759 --> 00:04:32.189 align:start position:0%
properties uh to reveal more buxs with
using<00:04:30.199><c> essentially</c><00:04:30.720><c> the</c><00:04:30.880><c> same</c><00:04:31.160><c> test</c>

00:04:32.189 --> 00:04:32.199 align:start position:0%
using essentially the same test
 

00:04:32.199 --> 00:04:35.390 align:start position:0%
using essentially the same test
seed<00:04:33.199><c> and</c><00:04:33.600><c> uh</c><00:04:33.759><c> here</c><00:04:33.880><c> is</c><00:04:34.080><c> the</c><00:04:34.280><c> example</c><00:04:34.800><c> of</c><00:04:35.160><c> how</c>

00:04:35.390 --> 00:04:35.400 align:start position:0%
seed and uh here is the example of how
 

00:04:35.400 --> 00:04:37.390 align:start position:0%
seed and uh here is the example of how
the<00:04:35.639><c> property</c><00:04:36.039><c> checks</c><00:04:36.440><c> can</c><00:04:36.600><c> be</c><00:04:36.840><c> really</c>

00:04:37.390 --> 00:04:37.400 align:start position:0%
the property checks can be really
 

00:04:37.400 --> 00:04:39.870 align:start position:0%
the property checks can be really
helpful<00:04:38.400><c> uh</c><00:04:38.680><c> on</c><00:04:38.840><c> the</c><00:04:39.000><c> left</c><00:04:39.240><c> side</c><00:04:39.440><c> there</c><00:04:39.560><c> is</c><00:04:39.680><c> a</c>

00:04:39.870 --> 00:04:39.880 align:start position:0%
helpful uh on the left side there is a
 

00:04:39.880 --> 00:04:42.189 align:start position:0%
helpful uh on the left side there is a
buy<00:04:40.240><c> implementation</c><00:04:41.080><c> that</c><00:04:41.320><c> for</c><00:04:41.639><c> some</c><00:04:41.880><c> reason</c>

00:04:42.189 --> 00:04:42.199 align:start position:0%
buy implementation that for some reason
 

00:04:42.199 --> 00:04:46.270 align:start position:0%
buy implementation that for some reason
just<00:04:42.400><c> missed</c><00:04:42.759><c> one</c><00:04:43.080><c> vote</c><00:04:44.080><c> uh</c><00:04:44.320><c> and</c><00:04:44.840><c> uh</c><00:04:45.800><c> the</c><00:04:46.000><c> head</c>

00:04:46.270 --> 00:04:46.280 align:start position:0%
just missed one vote uh and uh the head
 

00:04:46.280 --> 00:04:47.870 align:start position:0%
just missed one vote uh and uh the head
in<00:04:46.600><c> in</c><00:04:46.759><c> both</c><00:04:47.039><c> cases</c><00:04:47.320><c> in</c><00:04:47.520><c> case</c><00:04:47.720><c> of</c>

00:04:47.870 --> 00:04:47.880 align:start position:0%
in in both cases in case of
 

00:04:47.880 --> 00:04:49.909 align:start position:0%
in in both cases in case of
implementation<00:04:48.440><c> and</c><00:04:48.639><c> specification</c><00:04:49.600><c> is</c><00:04:49.759><c> the</c>

00:04:49.909 --> 00:04:49.919 align:start position:0%
implementation and specification is the
 

00:04:49.919 --> 00:04:53.110 align:start position:0%
implementation and specification is the
Block<00:04:50.160><c> C</c><00:04:50.960><c> so</c><00:04:51.199><c> this</c><00:04:51.479><c> V</c><00:04:51.880><c> this</c><00:04:52.120><c> Miss</c><00:04:52.479><c> vote</c><00:04:52.759><c> Miss</c>

00:04:53.110 --> 00:04:53.120 align:start position:0%
Block C so this V this Miss vote Miss
 

00:04:53.120 --> 00:04:57.469 align:start position:0%
Block C so this V this Miss vote Miss
did<00:04:53.280><c> not</c><00:04:53.560><c> affect</c><00:04:54.360><c> uh</c><00:04:54.520><c> the</c><00:04:54.759><c> had</c><00:04:55.880><c> computation</c><00:04:56.880><c> uh</c>

00:04:57.469 --> 00:04:57.479 align:start position:0%
did not affect uh the had computation uh
 

00:04:57.479 --> 00:05:00.629 align:start position:0%
did not affect uh the had computation uh
and<00:04:57.880><c> if</c><00:04:58.120><c> the</c><00:04:58.280><c> test</c><00:04:58.600><c> case</c><00:04:58.919><c> would</c><00:04:59.199><c> just</c><00:05:00.080><c> compare</c>

00:05:00.629 --> 00:05:00.639 align:start position:0%
and if the test case would just compare
 

00:05:00.639 --> 00:05:04.189 align:start position:0%
and if the test case would just compare
the<00:05:00.880><c> head</c><00:05:01.840><c> uh</c><00:05:02.240><c> and</c><00:05:02.680><c> uh</c><00:05:02.919><c> the</c><00:05:03.080><c> the</c><00:05:03.240><c> client</c><00:05:04.000><c> this</c>

00:05:04.189 --> 00:05:04.199 align:start position:0%
the head uh and uh the the client this
 

00:05:04.199 --> 00:05:06.430 align:start position:0%
the head uh and uh the the client this
bu<00:05:04.520><c> implementation</c><00:05:05.479><c> uh</c><00:05:05.600><c> running</c><00:05:06.000><c> this</c><00:05:06.160><c> test</c>

00:05:06.430 --> 00:05:06.440 align:start position:0%
bu implementation uh running this test
 

00:05:06.440 --> 00:05:08.870 align:start position:0%
bu implementation uh running this test
case<00:05:07.000><c> uh</c><00:05:07.280><c> would</c><00:05:07.479><c> pass</c><00:05:07.800><c> it</c>

00:05:08.870 --> 00:05:08.880 align:start position:0%
case uh would pass it
 

00:05:08.880 --> 00:05:11.710 align:start position:0%
case uh would pass it
successfully<00:05:09.880><c> and</c><00:05:10.280><c> uh</c><00:05:10.680><c> directly</c><00:05:11.160><c> comparing</c>

00:05:11.710 --> 00:05:11.720 align:start position:0%
successfully and uh directly comparing
 

00:05:11.720 --> 00:05:13.950 align:start position:0%
successfully and uh directly comparing
the<00:05:11.840><c> weight</c><00:05:12.080><c> of</c><00:05:12.199><c> Block</c><00:05:12.440><c> C</c><00:05:12.680><c> in</c><00:05:12.880><c> this</c><00:05:13.080><c> case</c><00:05:13.800><c> uh</c>

00:05:13.950 --> 00:05:13.960 align:start position:0%
the weight of Block C in this case uh
 

00:05:13.960 --> 00:05:16.990 align:start position:0%
the weight of Block C in this case uh
would<00:05:14.240><c> help</c><00:05:14.600><c> us</c><00:05:14.800><c> to</c><00:05:15.120><c> reveal</c><00:05:15.680><c> bug</c><00:05:16.039><c> much</c><00:05:16.280><c> easier</c>

00:05:16.990 --> 00:05:17.000 align:start position:0%
would help us to reveal bug much easier
 

00:05:17.000 --> 00:05:18.390 align:start position:0%
would help us to reveal bug much easier
because<00:05:17.320><c> otherwise</c><00:05:17.800><c> we</c><00:05:17.919><c> would</c><00:05:18.080><c> need</c><00:05:18.240><c> to</c>

00:05:18.390 --> 00:05:18.400 align:start position:0%
because otherwise we would need to
 

00:05:18.400 --> 00:05:21.670 align:start position:0%
because otherwise we would need to
create<00:05:18.639><c> a</c><00:05:18.800><c> test</c><00:05:19.360><c> that</c><00:05:20.240><c> uh</c><00:05:20.360><c> in</c><00:05:20.560><c> which</c><00:05:21.240><c> run</c><00:05:21.520><c> in</c>

00:05:21.670 --> 00:05:21.680 align:start position:0%
create a test that uh in which run in
 

00:05:21.680 --> 00:05:24.150 align:start position:0%
create a test that uh in which run in
which<00:05:22.080><c> this</c><00:05:22.280><c> bug</c><00:05:22.800><c> implementation</c><00:05:23.800><c> would</c>

00:05:24.150 --> 00:05:24.160 align:start position:0%
which this bug implementation would
 

00:05:24.160 --> 00:05:26.469 align:start position:0%
which this bug implementation would
would<00:05:24.319><c> lead</c><00:05:24.600><c> us</c><00:05:24.800><c> to</c><00:05:25.400><c> uh</c><00:05:25.560><c> the</c><00:05:25.720><c> different</c><00:05:26.360><c> uh</c>

00:05:26.469 --> 00:05:26.479 align:start position:0%
would lead us to uh the different uh
 

00:05:26.479 --> 00:05:27.990 align:start position:0%
would lead us to uh the different uh
block<00:05:26.720><c> to</c><00:05:26.840><c> be</c><00:05:27.000><c> the</c><00:05:27.160><c> head</c><00:05:27.400><c> like</c><00:05:27.560><c> for</c><00:05:27.680><c> instance</c>

00:05:27.990 --> 00:05:28.000 align:start position:0%
block to be the head like for instance
 

00:05:28.000 --> 00:05:33.710 align:start position:0%
block to be the head like for instance
Block<00:05:28.240><c> B</c><00:05:28.919><c> so</c><00:05:29.400><c> is</c><00:05:30.000><c> just</c><00:05:31.240><c> uh</c><00:05:32.240><c> like</c><00:05:32.440><c> less</c><00:05:32.759><c> test</c><00:05:33.120><c> can</c>

00:05:33.710 --> 00:05:33.720 align:start position:0%
Block B so is just uh like less test can
 

00:05:33.720 --> 00:05:36.790 align:start position:0%
Block B so is just uh like less test can
can<00:05:33.919><c> reveal</c><00:05:34.240><c> more</c><00:05:34.479><c> boxs</c><00:05:34.880><c> that's</c><00:05:35.360><c> uh</c><00:05:35.600><c> the</c><00:05:35.720><c> short</c>

00:05:36.790 --> 00:05:36.800 align:start position:0%
can reveal more boxs that's uh the short
 

00:05:36.800 --> 00:05:40.309 align:start position:0%
can reveal more boxs that's uh the short
uh<00:05:37.800><c> description</c><00:05:38.800><c> so</c><00:05:39.319><c> uh</c><00:05:39.800><c> yeah</c><00:05:40.039><c> what</c><00:05:40.160><c> we</c>

00:05:40.309 --> 00:05:40.319 align:start position:0%
uh description so uh yeah what we
 

00:05:40.319 --> 00:05:42.070 align:start position:0%
uh description so uh yeah what we
haven't<00:05:40.680><c> yet</c><00:05:40.840><c> mentioned</c><00:05:41.360><c> is</c><00:05:41.600><c> that</c><00:05:41.800><c> our</c>

00:05:42.070 --> 00:05:42.080 align:start position:0%
haven't yet mentioned is that our
 

00:05:42.080 --> 00:05:45.270 align:start position:0%
haven't yet mentioned is that our
compliance<00:05:42.880><c> uh</c><00:05:43.000><c> Tool</c><00:05:43.759><c> uh</c><00:05:44.160><c> leverages</c><00:05:44.800><c> on</c><00:05:45.080><c> the</c>

00:05:45.270 --> 00:05:45.280 align:start position:0%
compliance uh Tool uh leverages on the
 

00:05:45.280 --> 00:05:47.270 align:start position:0%
compliance uh Tool uh leverages on the
already<00:05:45.759><c> existing</c><00:05:46.120><c> folk</c><00:05:46.440><c> Choice</c><00:05:46.759><c> testing</c>

00:05:47.270 --> 00:05:47.280 align:start position:0%
already existing folk Choice testing
 

00:05:47.280 --> 00:05:50.029 align:start position:0%
already existing folk Choice testing
framework<00:05:48.280><c> uh</c><00:05:48.400><c> there</c><00:05:48.520><c> is</c><00:05:48.720><c> the</c><00:05:48.919><c> consensus</c><00:05:49.919><c> in</c>

00:05:50.029 --> 00:05:50.039 align:start position:0%
framework uh there is the consensus in
 

00:05:50.039 --> 00:05:52.070 align:start position:0%
framework uh there is the consensus in
the<00:05:50.199><c> consensus</c><00:05:50.720><c> specs</c><00:05:51.080><c> there</c><00:05:51.240><c> is</c><00:05:51.440><c> the</c><00:05:51.759><c> fork</c>

00:05:52.070 --> 00:05:52.080 align:start position:0%
the consensus specs there is the fork
 

00:05:52.080 --> 00:05:54.189 align:start position:0%
the consensus specs there is the fork
Choice<00:05:52.360><c> testing</c><00:05:53.280><c> uh</c><00:05:53.400><c> format</c><00:05:53.919><c> there</c><00:05:54.039><c> are</c>

00:05:54.189 --> 00:05:54.199 align:start position:0%
Choice testing uh format there are
 

00:05:54.199 --> 00:05:56.990 align:start position:0%
Choice testing uh format there are
manually<00:05:54.919><c> written</c><00:05:55.639><c> uh</c><00:05:55.759><c> Fork</c><00:05:56.080><c> Choice</c><00:05:56.440><c> tests</c>

00:05:56.990 --> 00:05:57.000 align:start position:0%
manually written uh Fork Choice tests
 

00:05:57.000 --> 00:05:59.029 align:start position:0%
manually written uh Fork Choice tests
and<00:05:57.280><c> clients</c><00:05:57.720><c> already</c><00:05:58.039><c> run</c><00:05:58.360><c> them</c><00:05:58.680><c> those</c><00:05:58.840><c> are</c>

00:05:59.029 --> 00:05:59.039 align:start position:0%
and clients already run them those are
 

00:05:59.039 --> 00:06:02.189 align:start position:0%
and clients already run them those are
integrated<00:06:00.080><c> uh</c><00:06:00.280><c> and</c><00:06:00.759><c> yeah</c><00:06:01.319><c> the</c><00:06:01.600><c> the</c><00:06:01.720><c> clients</c>

00:06:02.189 --> 00:06:02.199 align:start position:0%
integrated uh and yeah the the clients
 

00:06:02.199 --> 00:06:05.990 align:start position:0%
integrated uh and yeah the the clients
already<00:06:03.160><c> uh</c><00:06:03.400><c> check</c><00:06:04.000><c> some</c><00:06:04.240><c> of</c><00:06:04.880><c> the</c><00:06:05.120><c> properties</c>

00:06:05.990 --> 00:06:06.000 align:start position:0%
already uh check some of the properties
 

00:06:06.000 --> 00:06:07.670 align:start position:0%
already uh check some of the properties
so<00:06:06.199><c> the</c><00:06:06.360><c> differential</c><00:06:06.960><c> property</c><00:06:07.319><c> based</c>

00:06:07.670 --> 00:06:07.680 align:start position:0%
so the differential property based
 

00:06:07.680 --> 00:06:09.990 align:start position:0%
so the differential property based
testing<00:06:08.120><c> is</c><00:06:08.280><c> already</c><00:06:08.639><c> in</c><00:06:08.800><c> place</c><00:06:09.080><c> and</c><00:06:09.319><c> what</c><00:06:09.680><c> we</c>

00:06:09.990 --> 00:06:10.000 align:start position:0%
testing is already in place and what we
 

00:06:10.000 --> 00:06:12.950 align:start position:0%
testing is already in place and what we
we<00:06:10.160><c> do</c><00:06:10.440><c> with</c><00:06:10.840><c> uh</c><00:06:11.000><c> our</c><00:06:11.520><c> in</c><00:06:11.680><c> our</c><00:06:11.919><c> compliance</c><00:06:12.400><c> tool</c>

00:06:12.950 --> 00:06:12.960 align:start position:0%
we do with uh our in our compliance tool
 

00:06:12.960 --> 00:06:16.230 align:start position:0%
we do with uh our in our compliance tool
is<00:06:13.160><c> just</c><00:06:13.479><c> add</c><00:06:13.800><c> one</c><00:06:14.000><c> more</c><00:06:14.440><c> property</c><00:06:15.440><c> uh</c><00:06:15.680><c> which</c>

00:06:16.230 --> 00:06:16.240 align:start position:0%
is just add one more property uh which
 

00:06:16.240 --> 00:06:19.670 align:start position:0%
is just add one more property uh which
uh<00:06:16.400><c> is</c><00:06:16.599><c> to</c><00:06:16.840><c> check</c><00:06:17.160><c> weights</c><00:06:17.479><c> of</c><00:06:17.720><c> viable</c><00:06:18.120><c> for</c><00:06:18.360><c> hat</c>

00:06:19.670 --> 00:06:19.680 align:start position:0%
uh is to check weights of viable for hat
 

00:06:19.680 --> 00:06:23.390 align:start position:0%
uh is to check weights of viable for hat
blocks<00:06:20.680><c> okay</c><00:06:20.840><c> so</c><00:06:21.039><c> we</c><00:06:21.160><c> want</c><00:06:21.440><c> to</c><00:06:21.919><c> check</c><00:06:22.199><c> that</c><00:06:22.360><c> for</c>

00:06:23.390 --> 00:06:23.400 align:start position:0%
blocks okay so we want to check that for
 

00:06:23.400 --> 00:06:27.909 align:start position:0%
blocks okay so we want to check that for
Choice<00:06:24.400><c> uh</c><00:06:24.599><c> Ro</c><00:06:25.280><c> is</c><00:06:25.479><c> executed</c><00:06:26.479><c> correctly</c><00:06:27.479><c> but</c>

00:06:27.909 --> 00:06:27.919 align:start position:0%
Choice uh Ro is executed correctly but
 

00:06:27.919 --> 00:06:30.550 align:start position:0%
Choice uh Ro is executed correctly but
just<00:06:28.199><c> covering</c><00:06:28.680><c> various</c><00:06:29.080><c> execution</c><00:06:29.759><c> pass</c><00:06:30.360><c> is</c>

00:06:30.550 --> 00:06:30.560 align:start position:0%
just covering various execution pass is
 

00:06:30.560 --> 00:06:34.270 align:start position:0%
just covering various execution pass is
not<00:06:30.840><c> enough</c><00:06:31.840><c> because</c><00:06:32.599><c> um</c><00:06:33.319><c> the</c><00:06:33.599><c> through</c>

00:06:34.270 --> 00:06:34.280 align:start position:0%
not enough because um the through
 

00:06:34.280 --> 00:06:36.670 align:start position:0%
not enough because um the through
executed<00:06:34.880><c> on</c><00:06:35.080><c> many</c><00:06:35.360><c> nodes</c><00:06:35.759><c> and</c><00:06:35.919><c> they're</c>

00:06:36.670 --> 00:06:36.680 align:start position:0%
executed on many nodes and they're
 

00:06:36.680 --> 00:06:39.029 align:start position:0%
executed on many nodes and they're
interacting<00:06:37.680><c> and</c><00:06:37.840><c> building</c><00:06:38.280><c> blocks</c><00:06:38.720><c> using</c>

00:06:39.029 --> 00:06:39.039 align:start position:0%
interacting and building blocks using
 

00:06:39.039 --> 00:06:42.589 align:start position:0%
interacting and building blocks using
the<00:06:39.240><c> rule</c><00:06:40.199><c> and</c><00:06:40.280><c> so</c><00:06:40.560><c> we</c><00:06:40.960><c> actually</c><00:06:41.599><c> what</c><00:06:41.800><c> we</c><00:06:42.000><c> want</c>

00:06:42.589 --> 00:06:42.599 align:start position:0%
the rule and so we actually what we want
 

00:06:42.599 --> 00:06:46.309 align:start position:0%
the rule and so we actually what we want
is<00:06:43.080><c> to</c><00:06:44.080><c> capture</c><00:06:44.960><c> this</c>

00:06:46.309 --> 00:06:46.319 align:start position:0%
is to capture this
 

00:06:46.319 --> 00:06:50.909 align:start position:0%
is to capture this
interactions<00:06:47.319><c> but</c><00:06:47.599><c> we</c><00:06:48.280><c> do</c><00:06:48.560><c> not</c><00:06:49.560><c> uh</c><00:06:50.319><c> enumerate</c>

00:06:50.909 --> 00:06:50.919 align:start position:0%
interactions but we do not uh enumerate
 

00:06:50.919 --> 00:06:53.390 align:start position:0%
interactions but we do not uh enumerate
all<00:06:51.240><c> possible</c><00:06:51.759><c> scenarios</c><00:06:52.720><c> and</c><00:06:52.840><c> so</c><00:06:53.000><c> we</c><00:06:53.160><c> use</c>

00:06:53.390 --> 00:06:53.400 align:start position:0%
all possible scenarios and so we use
 

00:06:53.400 --> 00:06:54.790 align:start position:0%
all possible scenarios and so we use
modelbased

00:06:54.790 --> 00:06:54.800 align:start position:0%
modelbased
 

00:06:54.800 --> 00:06:58.309 align:start position:0%
modelbased
approach<00:06:55.800><c> um</c><00:06:56.280><c> our</c><00:06:56.560><c> models</c><00:06:57.080><c> basically</c><00:06:57.879><c> allows</c>

00:06:58.309 --> 00:06:58.319 align:start position:0%
approach um our models basically allows
 

00:06:58.319 --> 00:07:00.990 align:start position:0%
approach um our models basically allows
us<00:06:58.479><c> to</c><00:06:58.680><c> focus</c><00:06:59.080><c> on</c><00:06:59.319><c> the</c><00:06:59.759><c> aspects</c><00:07:00.240><c> that</c><00:07:00.479><c> are</c>

00:07:00.990 --> 00:07:01.000 align:start position:0%
us to focus on the aspects that are
 

00:07:01.000 --> 00:07:03.629 align:start position:0%
us to focus on the aspects that are
interesting<00:07:02.000><c> abstract</c><00:07:02.560><c> away</c><00:07:02.879><c> from</c><00:07:03.120><c> other</c>

00:07:03.629 --> 00:07:03.639 align:start position:0%
interesting abstract away from other
 

00:07:03.639 --> 00:07:07.150 align:start position:0%
interesting abstract away from other
stuff<00:07:04.639><c> and</c><00:07:04.840><c> we</c><00:07:05.039><c> have</c><00:07:05.240><c> three</c><00:07:05.479><c> models</c><00:07:06.039><c> here</c><00:07:06.599><c> FFG</c>

00:07:07.150 --> 00:07:07.160 align:start position:0%
stuff and we have three models here FFG
 

00:07:07.160 --> 00:07:09.430 align:start position:0%
stuff and we have three models here FFG
checkpoint<00:07:07.800><c> three</c><00:07:08.120><c> shapes</c><00:07:08.800><c> block</c><00:07:09.160><c> three</c>

00:07:09.430 --> 00:07:09.440 align:start position:0%
checkpoint three shapes block three
 

00:07:09.440 --> 00:07:11.749 align:start position:0%
checkpoint three shapes block three
shapes<00:07:10.199><c> and</c><00:07:10.400><c> also</c><00:07:10.759><c> filter</c><00:07:11.199><c> block</c><00:07:11.520><c> three</c>

00:07:11.749 --> 00:07:11.759 align:start position:0%
shapes and also filter block three
 

00:07:11.759 --> 00:07:14.710 align:start position:0%
shapes and also filter block three
predicates<00:07:12.360><c> coverage</c><00:07:13.160><c> model</c><00:07:14.160><c> and</c><00:07:14.479><c> each</c>

00:07:14.710 --> 00:07:14.720 align:start position:0%
predicates coverage model and each
 

00:07:14.720 --> 00:07:18.110 align:start position:0%
predicates coverage model and each
models<00:07:15.319><c> for</c><00:07:15.560><c> example</c><00:07:15.960><c> we</c><00:07:16.160><c> have</c><00:07:16.840><c> 10</c><00:07:17.199><c> blocks</c><00:07:17.960><c> and</c>

00:07:18.110 --> 00:07:18.120 align:start position:0%
models for example we have 10 blocks and
 

00:07:18.120 --> 00:07:21.629 align:start position:0%
models for example we have 10 blocks and
we<00:07:18.319><c> have</c><00:07:18.800><c> various</c><00:07:19.520><c> trees</c><00:07:19.960><c> constructed</c><00:07:20.479><c> of</c><00:07:21.120><c> of</c>

00:07:21.629 --> 00:07:21.639 align:start position:0%
we have various trees constructed of of
 

00:07:21.639 --> 00:07:23.950 align:start position:0%
we have various trees constructed of of
these<00:07:21.840><c> 10</c><00:07:22.160><c> blocks</c><00:07:22.800><c> and</c><00:07:22.919><c> so</c><00:07:23.120><c> we</c><00:07:23.319><c> basically</c><00:07:23.800><c> want</c>

00:07:23.950 --> 00:07:23.960 align:start position:0%
these 10 blocks and so we basically want
 

00:07:23.960 --> 00:07:27.150 align:start position:0%
these 10 blocks and so we basically want
to<00:07:24.160><c> generate</c><00:07:24.599><c> a</c><00:07:24.800><c> test</c><00:07:25.120><c> Vector</c><00:07:25.479><c> for</c><00:07:25.919><c> each</c><00:07:26.919><c> of</c>

00:07:27.150 --> 00:07:27.160 align:start position:0%
to generate a test Vector for each of
 

00:07:27.160 --> 00:07:29.510 align:start position:0%
to generate a test Vector for each of
these<00:07:27.360><c> three</c><00:07:27.680><c> shape</c><00:07:28.400><c> and</c><00:07:28.599><c> if</c><00:07:28.759><c> we</c><00:07:28.919><c> are</c><00:07:29.120><c> able</c><00:07:29.360><c> to</c>

00:07:29.510 --> 00:07:29.520 align:start position:0%
these three shape and if we are able to
 

00:07:29.520 --> 00:07:32.950 align:start position:0%
these three shape and if we are able to
to<00:07:29.639><c> do</c><00:07:29.800><c> that</c><00:07:30.039><c> then</c><00:07:30.160><c> we</c><00:07:30.520><c> have</c><00:07:31.520><c> 100%</c><00:07:32.280><c> coverage</c><00:07:32.759><c> of</c>

00:07:32.950 --> 00:07:32.960 align:start position:0%
to do that then we have 100% coverage of
 

00:07:32.960 --> 00:07:36.150 align:start position:0%
to do that then we have 100% coverage of
our<00:07:33.440><c> model</c><00:07:34.440><c> and</c><00:07:34.639><c> for</c><00:07:34.879><c> our</c><00:07:35.240><c> three</c><00:07:35.479><c> models</c><00:07:35.879><c> we</c>

00:07:36.150 --> 00:07:36.160 align:start position:0%
our model and for our three models we
 

00:07:36.160 --> 00:07:39.270 align:start position:0%
our model and for our three models we
currently<00:07:37.160><c> uh</c><00:07:37.319><c> optained</c><00:07:38.000><c> a</c><00:07:38.199><c> thousand</c><00:07:38.800><c> of</c>

00:07:39.270 --> 00:07:39.280 align:start position:0%
currently uh optained a thousand of
 

00:07:39.280 --> 00:07:42.230 align:start position:0%
currently uh optained a thousand of
solutions<00:07:40.280><c> but</c><00:07:40.720><c> in</c><00:07:40.919><c> practice</c><00:07:41.280><c> it</c><00:07:41.440><c> can</c><00:07:41.639><c> be</c>

00:07:42.230 --> 00:07:42.240 align:start position:0%
solutions but in practice it can be
 

00:07:42.240 --> 00:07:45.029 align:start position:0%
solutions but in practice it can be
arbitrarily<00:07:43.240><c> larger</c><00:07:44.240><c> so</c><00:07:44.479><c> it</c><00:07:44.639><c> can</c><00:07:44.800><c> be</c><00:07:44.919><c> a</c>

00:07:45.029 --> 00:07:45.039 align:start position:0%
arbitrarily larger so it can be a
 

00:07:45.039 --> 00:07:47.909 align:start position:0%
arbitrarily larger so it can be a
million<00:07:45.400><c> models</c><00:07:45.800><c> no</c><00:07:46.440><c> problem</c><00:07:47.440><c> yeah</c><00:07:47.560><c> so</c><00:07:47.720><c> to</c>

00:07:47.909 --> 00:07:47.919 align:start position:0%
million models no problem yeah so to
 

00:07:47.919 --> 00:07:49.869 align:start position:0%
million models no problem yeah so to
give<00:07:48.080><c> you</c><00:07:48.319><c> like</c><00:07:48.560><c> more</c><00:07:48.759><c> intuition</c><00:07:49.280><c> behind</c><00:07:49.639><c> how</c>

00:07:49.869 --> 00:07:49.879 align:start position:0%
give you like more intuition behind how
 

00:07:49.879 --> 00:07:52.189 align:start position:0%
give you like more intuition behind how
this<00:07:50.240><c> uh</c><00:07:50.360><c> model</c><00:07:50.720><c> based</c><00:07:51.120><c> generation</c><00:07:51.680><c> Works</c>

00:07:52.189 --> 00:07:52.199 align:start position:0%
this uh model based generation Works
 

00:07:52.199 --> 00:07:53.710 align:start position:0%
this uh model based generation Works
let's<00:07:52.400><c> consider</c><00:07:52.720><c> the</c><00:07:52.840><c> F</c><00:07:52.960><c> ofg</c><00:07:53.199><c> check</c><00:07:53.400><c> points</c>

00:07:53.710 --> 00:07:53.720 align:start position:0%
let's consider the F ofg check points
 

00:07:53.720 --> 00:07:56.390 align:start position:0%
let's consider the F ofg check points
model<00:07:54.720><c> uh</c><00:07:54.879><c> this</c><00:07:55.000><c> model</c><00:07:55.319><c> is</c><00:07:55.479><c> parameterized</c><00:07:56.199><c> by</c>

00:07:56.390 --> 00:07:56.400 align:start position:0%
model uh this model is parameterized by
 

00:07:56.400 --> 00:07:59.749 align:start position:0%
model uh this model is parameterized by
two<00:07:56.599><c> main</c><00:07:56.919><c> parameters</c><00:07:57.919><c> uh</c><00:07:58.080><c> which</c><00:07:58.199><c> are</c><00:07:58.879><c> uh</c><00:07:59.639><c> of</c>

00:07:59.749 --> 00:07:59.759 align:start position:0%
two main parameters uh which are uh of
 

00:07:59.759 --> 00:08:02.710 align:start position:0%
two main parameters uh which are uh of
EPO<00:08:00.360><c> and</c><00:08:00.759><c> number</c><00:08:00.960><c> of</c><00:08:01.120><c> Super</c><00:08:01.479><c> majority</c><00:08:01.879><c> links</c>

00:08:02.710 --> 00:08:02.720 align:start position:0%
EPO and number of Super majority links
 

00:08:02.720 --> 00:08:04.790 align:start position:0%
EPO and number of Super majority links
and<00:08:02.960><c> here</c><00:08:03.080><c> is</c><00:08:03.280><c> the</c><00:08:03.479><c> example</c><00:08:03.919><c> of</c><00:08:04.240><c> a</c><00:08:04.400><c> couple</c><00:08:04.639><c> of</c>

00:08:04.790 --> 00:08:04.800 align:start position:0%
and here is the example of a couple of
 

00:08:04.800 --> 00:08:08.270 align:start position:0%
and here is the example of a couple of
solutions<00:08:05.639><c> that</c><00:08:05.840><c> satisfy</c><00:08:06.840><c> uh</c><00:08:07.720><c> this</c><00:08:07.879><c> model</c>

00:08:08.270 --> 00:08:08.280 align:start position:0%
solutions that satisfy uh this model
 

00:08:08.280 --> 00:08:11.270 align:start position:0%
solutions that satisfy uh this model
with<00:08:08.840><c> four</c><00:08:09.199><c> EPO</c><00:08:09.960><c> and</c><00:08:10.240><c> two</c><00:08:10.479><c> super</c><00:08:10.800><c> majority</c>

00:08:11.270 --> 00:08:11.280 align:start position:0%
with four EPO and two super majority
 

00:08:11.280 --> 00:08:14.670 align:start position:0%
with four EPO and two super majority
links<00:08:12.280><c> and</c><00:08:12.680><c> uh</c><00:08:13.319><c> on</c><00:08:13.520><c> the</c><00:08:13.680><c> on</c><00:08:13.879><c> the</c><00:08:14.319><c> if</c><00:08:14.400><c> you</c><00:08:14.520><c> look</c>

00:08:14.670 --> 00:08:14.680 align:start position:0%
links and uh on the on the if you look
 

00:08:14.680 --> 00:08:18.029 align:start position:0%
links and uh on the on the if you look
at<00:08:14.840><c> the</c><00:08:15.039><c> top</c><00:08:15.479><c> uh</c><00:08:15.680><c> deok</c><00:08:16.120><c> number</c><00:08:16.360><c> four</c><00:08:17.360><c> uh</c><00:08:17.879><c> in</c>

00:08:18.029 --> 00:08:18.039 align:start position:0%
at the top uh deok number four uh in
 

00:08:18.039 --> 00:08:20.350 align:start position:0%
at the top uh deok number four uh in
this<00:08:18.280><c> case</c><00:08:18.479><c> will</c><00:08:18.680><c> be</c><00:08:18.840><c> finalized</c><00:08:19.840><c> according</c><00:08:20.159><c> to</c>

00:08:20.350 --> 00:08:20.360 align:start position:0%
this case will be finalized according to
 

00:08:20.360 --> 00:08:24.309 align:start position:0%
this case will be finalized according to
FFG<00:08:21.199><c> checkpoint</c><00:08:22.039><c> to</c><00:08:22.240><c> to</c><00:08:22.400><c> to</c><00:08:22.759><c> to</c><00:08:22.960><c> the</c><00:08:23.759><c> finality</c>

00:08:24.309 --> 00:08:24.319 align:start position:0%
FFG checkpoint to to to to the finality
 

00:08:24.319 --> 00:08:27.270 align:start position:0%
FFG checkpoint to to to to the finality
Gadget<00:08:25.080><c> rules</c><00:08:25.639><c> and</c><00:08:26.039><c> uh</c><00:08:26.240><c> in</c><00:08:26.360><c> the</c><00:08:26.560><c> SEC</c><00:08:26.800><c> in</c><00:08:26.960><c> the</c><00:08:27.159><c> in</c>

00:08:27.270 --> 00:08:27.280 align:start position:0%
Gadget rules and uh in the SEC in the in
 

00:08:27.280 --> 00:08:29.029 align:start position:0%
Gadget rules and uh in the SEC in the in
the<00:08:27.479><c> second</c><00:08:27.840><c> case</c><00:08:28.039><c> which</c><00:08:28.199><c> is</c><00:08:28.319><c> on</c><00:08:28.479><c> the</c><00:08:28.639><c> bottom</c>

00:08:29.029 --> 00:08:29.039 align:start position:0%
the second case which is on the bottom
 

00:08:29.039 --> 00:08:32.310 align:start position:0%
the second case which is on the bottom
the<00:08:29.520><c> e</c><00:08:29.680><c> book</c><00:08:29.919><c> number</c><00:08:30.599><c> two</c><00:08:30.919><c> will</c><00:08:31.080><c> be</c><00:08:31.320><c> finalized</c>

00:08:32.310 --> 00:08:32.320 align:start position:0%
the e book number two will be finalized
 

00:08:32.320 --> 00:08:35.110 align:start position:0%
the e book number two will be finalized
so<00:08:33.039><c> basically</c><00:08:33.959><c> uh</c><00:08:34.240><c> when</c><00:08:34.399><c> we</c><00:08:34.519><c> do</c><00:08:34.719><c> the</c><00:08:34.880><c> test</c>

00:08:35.110 --> 00:08:35.120 align:start position:0%
so basically uh when we do the test
 

00:08:35.120 --> 00:08:37.230 align:start position:0%
so basically uh when we do the test
generation<00:08:35.640><c> we</c><00:08:35.839><c> ask</c><00:08:36.200><c> the</c><00:08:36.399><c> constraint</c><00:08:36.839><c> solver</c>

00:08:37.230 --> 00:08:37.240 align:start position:0%
generation we ask the constraint solver
 

00:08:37.240 --> 00:08:38.790 align:start position:0%
generation we ask the constraint solver
to<00:08:37.519><c> find</c><00:08:37.880><c> all</c>

00:08:38.790 --> 00:08:38.800 align:start position:0%
to find all
 

00:08:38.800 --> 00:08:42.430 align:start position:0%
to find all
possible<00:08:39.800><c> uh</c><00:08:40.800><c> combinations</c><00:08:41.519><c> of</c><00:08:41.760><c> Justified</c>

00:08:42.430 --> 00:08:42.440 align:start position:0%
possible uh combinations of Justified
 

00:08:42.440 --> 00:08:46.070 align:start position:0%
possible uh combinations of Justified
and<00:08:42.599><c> finalized</c><00:08:43.479><c> points</c><00:08:43.919><c> given</c><00:08:44.320><c> the</c><00:08:44.839><c> um</c><00:08:45.839><c> some</c>

00:08:46.070 --> 00:08:46.080 align:start position:0%
and finalized points given the um some
 

00:08:46.080 --> 00:08:49.710 align:start position:0%
and finalized points given the um some
certain<00:08:46.399><c> model</c><00:08:46.839><c> inputs</c><00:08:47.600><c> and</c><00:08:48.000><c> uh</c><00:08:48.360><c> we</c><00:08:48.519><c> also</c><00:08:48.839><c> run</c>

00:08:49.710 --> 00:08:49.720 align:start position:0%
certain model inputs and uh we also run
 

00:08:49.720 --> 00:08:53.590 align:start position:0%
certain model inputs and uh we also run
uh<00:08:50.240><c> this</c><00:08:51.160><c> these</c><00:08:51.360><c> models</c><00:08:52.279><c> uh</c><00:08:52.720><c> with</c><00:08:53.240><c> uh</c>

00:08:53.590 --> 00:08:53.600 align:start position:0%
uh this these models uh with uh
 

00:08:53.600 --> 00:08:56.310 align:start position:0%
uh this these models uh with uh
different<00:08:53.920><c> inputs</c><00:08:54.519><c> like</c><00:08:55.519><c> uh</c><00:08:55.640><c> you</c><00:08:55.720><c> can</c><00:08:55.920><c> run</c><00:08:56.120><c> it</c>

00:08:56.310 --> 00:08:56.320 align:start position:0%
different inputs like uh you can run it
 

00:08:56.320 --> 00:08:58.829 align:start position:0%
different inputs like uh you can run it
like<00:08:56.519><c> with</c><00:08:56.680><c> 10</c><00:08:56.920><c> EPO</c><00:08:57.399><c> and</c><00:08:57.720><c> five</c><00:08:58.040><c> Super</c><00:08:58.399><c> majority</c>

00:08:58.829 --> 00:08:58.839 align:start position:0%
like with 10 EPO and five Super majority
 

00:08:58.839 --> 00:09:00.670 align:start position:0%
like with 10 EPO and five Super majority
links<00:08:59.120><c> with</c><00:08:59.279><c> 10</c><00:08:59.560><c> ooks</c><00:08:59.920><c> and</c><00:09:00.079><c> four</c><00:09:00.320><c> super</c>

00:09:00.670 --> 00:09:00.680 align:start position:0%
links with 10 ooks and four super
 

00:09:00.680 --> 00:09:02.710 align:start position:0%
links with 10 ooks and four super
majority<00:09:01.079><c> links</c><00:09:01.399><c> and</c><00:09:01.600><c> so</c><00:09:01.760><c> on</c><00:09:02.240><c> and</c><00:09:02.399><c> this</c><00:09:02.519><c> is</c>

00:09:02.710 --> 00:09:02.720 align:start position:0%
majority links and so on and this is
 

00:09:02.720 --> 00:09:06.710 align:start position:0%
majority links and so on and this is
gives<00:09:02.959><c> us</c><00:09:03.279><c> a</c><00:09:03.519><c> lot</c><00:09:03.959><c> of</c><00:09:04.560><c> uh</c><00:09:05.279><c> a</c><00:09:05.440><c> lot</c><00:09:05.640><c> of</c><00:09:06.279><c> uh</c>

00:09:06.710 --> 00:09:06.720 align:start position:0%
gives us a lot of uh a lot of uh
 

00:09:06.720 --> 00:09:12.030 align:start position:0%
gives us a lot of uh a lot of uh
solutions<00:09:07.440><c> to</c><00:09:07.800><c> further</c><00:09:08.399><c> work</c><00:09:08.880><c> with</c><00:09:09.720><c> uh</c><00:09:10.480><c> in</c><00:09:10.680><c> our</c>

00:09:12.030 --> 00:09:12.040 align:start position:0%
solutions to further work with uh in our
 

00:09:12.040 --> 00:09:15.150 align:start position:0%
solutions to further work with uh in our
generation<00:09:13.040><c> okay</c><00:09:13.399><c> so</c><00:09:13.600><c> now</c><00:09:13.800><c> we</c><00:09:14.000><c> have</c><00:09:14.560><c> uh</c><00:09:14.839><c> many</c>

00:09:15.150 --> 00:09:15.160 align:start position:0%
generation okay so now we have uh many
 

00:09:15.160 --> 00:09:17.949 align:start position:0%
generation okay so now we have uh many
model<00:09:15.560><c> Solutions</c><00:09:16.200><c> and</c><00:09:16.920><c> everyone</c><00:09:17.600><c> can</c><00:09:17.800><c> be</c>

00:09:17.949 --> 00:09:17.959 align:start position:0%
model Solutions and everyone can be
 

00:09:17.959 --> 00:09:20.230 align:start position:0%
model Solutions and everyone can be
turned<00:09:18.440><c> into</c><00:09:18.760><c> a</c><00:09:18.959><c> test</c><00:09:19.279><c> Vector</c><00:09:19.760><c> but</c><00:09:19.920><c> that</c><00:09:20.079><c> can</c>

00:09:20.230 --> 00:09:20.240 align:start position:0%
turned into a test Vector but that can
 

00:09:20.240 --> 00:09:22.110 align:start position:0%
turned into a test Vector but that can
be<00:09:20.399><c> done</c><00:09:20.600><c> in</c><00:09:20.800><c> different</c><00:09:21.120><c> ways</c><00:09:21.399><c> for</c><00:09:21.560><c> example</c>

00:09:22.110 --> 00:09:22.120 align:start position:0%
be done in different ways for example
 

00:09:22.120 --> 00:09:25.790 align:start position:0%
be done in different ways for example
validators<00:09:22.800><c> can</c><00:09:23.040><c> vote</c><00:09:23.800><c> for</c><00:09:24.200><c> different</c><00:09:25.200><c> blocks</c>

00:09:25.790 --> 00:09:25.800 align:start position:0%
validators can vote for different blocks
 

00:09:25.800 --> 00:09:28.630 align:start position:0%
validators can vote for different blocks
but<00:09:26.279><c> as</c><00:09:26.399><c> a</c><00:09:26.600><c> result</c><00:09:26.959><c> we</c><00:09:27.120><c> can</c><00:09:27.399><c> have</c><00:09:27.680><c> the</c><00:09:27.880><c> same</c>

00:09:28.630 --> 00:09:28.640 align:start position:0%
but as a result we can have the same
 

00:09:28.640 --> 00:09:31.590 align:start position:0%
but as a result we can have the same
shape

00:09:31.590 --> 00:09:31.600 align:start position:0%
 
 

00:09:31.600 --> 00:09:34.949 align:start position:0%
 
and<00:09:31.880><c> and</c><00:09:32.120><c> so</c><00:09:33.120><c> we</c><00:09:33.320><c> use</c><00:09:33.920><c> randomization</c><00:09:34.760><c> to</c>

00:09:34.949 --> 00:09:34.959 align:start position:0%
and and so we use randomization to
 

00:09:34.959 --> 00:09:36.910 align:start position:0%
and and so we use randomization to
instantiate<00:09:35.720><c> these</c><00:09:35.959><c> model</c><00:09:36.320><c> Solutions</c>

00:09:36.910 --> 00:09:36.920 align:start position:0%
instantiate these model Solutions
 

00:09:36.920 --> 00:09:38.550 align:start position:0%
instantiate these model Solutions
basically<00:09:37.360><c> flipping</c><00:09:37.720><c> a</c>

00:09:38.550 --> 00:09:38.560 align:start position:0%
basically flipping a
 

00:09:38.560 --> 00:09:43.069 align:start position:0%
basically flipping a
coin<00:09:39.560><c> and</c><00:09:40.440><c> uh</c><00:09:40.640><c> after</c><00:09:41.079><c> we</c><00:09:41.680><c> have</c><00:09:41.839><c> a</c><00:09:42.480><c> test</c><00:09:42.760><c> Suite</c>

00:09:43.069 --> 00:09:43.079 align:start position:0%
coin and uh after we have a test Suite
 

00:09:43.079 --> 00:09:46.509 align:start position:0%
coin and uh after we have a test Suite
of<00:09:43.240><c> test</c><00:09:43.519><c> vectors</c><00:09:43.959><c> we</c><00:09:44.079><c> can</c><00:09:44.279><c> additionally</c><00:09:45.040><c> do</c>

00:09:46.509 --> 00:09:46.519 align:start position:0%
of test vectors we can additionally do
 

00:09:46.519 --> 00:09:49.630 align:start position:0%
of test vectors we can additionally do
fing<00:09:47.519><c> um</c><00:09:48.240><c> it's</c><00:09:48.519><c> important</c><00:09:49.040><c> because</c><00:09:49.320><c> our</c>

00:09:49.630 --> 00:09:49.640 align:start position:0%
fing um it's important because our
 

00:09:49.640 --> 00:09:52.790 align:start position:0%
fing um it's important because our
models<00:09:50.200><c> actually</c><00:09:50.959><c> assume</c><00:09:51.959><c> that</c><00:09:52.120><c> all</c><00:09:52.399><c> events</c>

00:09:52.790 --> 00:09:52.800 align:start position:0%
models actually assume that all events
 

00:09:52.800 --> 00:09:54.990 align:start position:0%
models actually assume that all events
arrive<00:09:53.399><c> in</c><00:09:53.640><c> time</c><00:09:54.160><c> which</c><00:09:54.320><c> is</c>

00:09:54.990 --> 00:09:55.000 align:start position:0%
arrive in time which is
 

00:09:55.000 --> 00:09:56.870 align:start position:0%
arrive in time which is
unrealistically<00:09:56.000><c> but</c><00:09:56.160><c> we</c><00:09:56.279><c> can</c><00:09:56.519><c> easily</c>

00:09:56.870 --> 00:09:56.880 align:start position:0%
unrealistically but we can easily
 

00:09:56.880 --> 00:09:59.790 align:start position:0%
unrealistically but we can easily
overcome<00:09:57.360><c> it</c><00:09:57.560><c> by</c><00:09:57.720><c> shuffling</c><00:09:58.560><c> uh</c><00:09:58.720><c> duplication</c>

00:09:59.790 --> 00:09:59.800 align:start position:0%
overcome it by shuffling uh duplication
 

00:09:59.800 --> 00:10:01.990 align:start position:0%
overcome it by shuffling uh duplication
of<00:10:00.040><c> messages</c><00:10:00.680><c> and</c><00:10:00.839><c> dropping</c><00:10:01.240><c> some</c><00:10:01.519><c> messages</c>

00:10:01.990 --> 00:10:02.000 align:start position:0%
of messages and dropping some messages
 

00:10:02.000 --> 00:10:04.269 align:start position:0%
of messages and dropping some messages
and<00:10:02.240><c> also</c><00:10:02.800><c> by</c><00:10:03.000><c> mutating</c>

00:10:04.269 --> 00:10:04.279 align:start position:0%
and also by mutating
 

00:10:04.279 --> 00:10:07.230 align:start position:0%
and also by mutating
messages<00:10:05.279><c> we</c><00:10:05.480><c> will</c><00:10:05.880><c> also</c><00:10:06.320><c> plan</c><00:10:06.600><c> to</c><00:10:06.800><c> implement</c>

00:10:07.230 --> 00:10:07.240 align:start position:0%
messages we will also plan to implement
 

00:10:07.240 --> 00:10:10.030 align:start position:0%
messages we will also plan to implement
in<00:10:07.440><c> future</c><00:10:08.079><c> coverage</c><00:10:08.560><c> guided</c><00:10:08.920><c> fing</c><00:10:09.360><c> of</c>

00:10:10.030 --> 00:10:10.040 align:start position:0%
in future coverage guided fing of
 

00:10:10.040 --> 00:10:12.990 align:start position:0%
in future coverage guided fing of
implementations<00:10:11.040><c> and</c><00:10:11.320><c> this</c><00:10:11.920><c> uh</c><00:10:12.360><c> randomized</c>

00:10:12.990 --> 00:10:13.000 align:start position:0%
implementations and this uh randomized
 

00:10:13.000 --> 00:10:15.350 align:start position:0%
implementations and this uh randomized
instantiation<00:10:13.680><c> and</c><00:10:13.800><c> fing</c><00:10:14.279><c> allows</c><00:10:14.680><c> us</c><00:10:15.079><c> to</c>

00:10:15.350 --> 00:10:15.360 align:start position:0%
instantiation and fing allows us to
 

00:10:15.360 --> 00:10:17.630 align:start position:0%
instantiation and fing allows us to
increase<00:10:15.640><c> the</c><00:10:15.800><c> number</c><00:10:16.079><c> of</c><00:10:16.279><c> tests</c><00:10:17.040><c> in</c><00:10:17.440><c> by</c>

00:10:17.630 --> 00:10:17.640 align:start position:0%
increase the number of tests in by
 

00:10:17.640 --> 00:10:19.949 align:start position:0%
increase the number of tests in by
orders<00:10:17.959><c> of</c>

00:10:19.949 --> 00:10:19.959 align:start position:0%
orders of
 

00:10:19.959 --> 00:10:22.509 align:start position:0%
orders of
magnitude<00:10:20.959><c> yeah</c><00:10:21.160><c> here</c><00:10:21.320><c> is</c><00:10:21.560><c> the</c><00:10:21.800><c> example</c><00:10:22.279><c> of</c>

00:10:22.509 --> 00:10:22.519 align:start position:0%
magnitude yeah here is the example of
 

00:10:22.519 --> 00:10:25.870 align:start position:0%
magnitude yeah here is the example of
how<00:10:22.760><c> the</c><00:10:22.920><c> randomization</c><00:10:23.720><c> is</c><00:10:23.959><c> used</c><00:10:24.680><c> uh</c><00:10:25.320><c> as</c><00:10:25.519><c> Alex</c>

00:10:25.870 --> 00:10:25.880 align:start position:0%
how the randomization is used uh as Alex
 

00:10:25.880 --> 00:10:27.949 align:start position:0%
how the randomization is used uh as Alex
mentioned<00:10:26.399><c> we</c><00:10:26.560><c> have</c><00:10:26.760><c> these</c><00:10:26.959><c> model</c><00:10:27.360><c> Solutions</c>

00:10:27.949 --> 00:10:27.959 align:start position:0%
mentioned we have these model Solutions
 

00:10:27.959 --> 00:10:33.230 align:start position:0%
mentioned we have these model Solutions
and<00:10:28.120><c> we</c><00:10:28.240><c> use</c><00:10:28.560><c> them</c><00:10:28.800><c> to</c><00:10:29.800><c> uh</c><00:10:30.120><c> produce</c><00:10:31.440><c> uh</c><00:10:32.440><c> like</c>

00:10:33.230 --> 00:10:33.240 align:start position:0%
and we use them to uh produce uh like
 

00:10:33.240 --> 00:10:36.310 align:start position:0%
and we use them to uh produce uh like
various<00:10:33.640><c> test</c><00:10:34.000><c> vectors</c><00:10:35.000><c> and</c><00:10:35.760><c> on</c><00:10:35.920><c> the</c><00:10:36.079><c> top</c>

00:10:36.310 --> 00:10:36.320 align:start position:0%
various test vectors and on the top
 

00:10:36.320 --> 00:10:38.629 align:start position:0%
various test vectors and on the top
there<00:10:36.440><c> is</c><00:10:36.639><c> just</c><00:10:36.880><c> a</c><00:10:37.079><c> model</c><00:10:37.880><c> uh</c><00:10:38.120><c> which</c><00:10:38.480><c> which</c>

00:10:38.629 --> 00:10:38.639 align:start position:0%
there is just a model uh which which
 

00:10:38.639 --> 00:10:40.790 align:start position:0%
there is just a model uh which which
says<00:10:39.360><c> that</c><00:10:39.600><c> basically</c><00:10:40.079><c> there</c><00:10:40.200><c> is</c><00:10:40.320><c> a</c><00:10:40.480><c> block</c>

00:10:40.790 --> 00:10:40.800 align:start position:0%
says that basically there is a block
 

00:10:40.800 --> 00:10:43.430 align:start position:0%
says that basically there is a block
that<00:10:41.000><c> has</c><00:10:41.240><c> two</c><00:10:41.639><c> children</c><00:10:42.639><c> the</c><00:10:42.800><c> client</c><00:10:43.200><c> has</c>

00:10:43.430 --> 00:10:43.440 align:start position:0%
that has two children the client has
 

00:10:43.440 --> 00:10:45.030 align:start position:0%
that has two children the client has
nothing<00:10:43.680><c> to</c><00:10:43.800><c> do</c><00:10:43.959><c> with</c><00:10:44.120><c> this</c><00:10:44.279><c> model</c><00:10:44.560><c> it</c><00:10:44.720><c> cannot</c>

00:10:45.030 --> 00:10:45.040 align:start position:0%
nothing to do with this model it cannot
 

00:10:45.040 --> 00:10:48.430 align:start position:0%
nothing to do with this model it cannot
run<00:10:45.800><c> uh</c><00:10:46.000><c> this</c><00:10:46.160><c> model</c><00:10:46.600><c> because</c><00:10:47.600><c> uh</c><00:10:47.839><c> to</c><00:10:48.040><c> to</c><00:10:48.240><c> to</c>

00:10:48.430 --> 00:10:48.440 align:start position:0%
run uh this model because uh to to to
 

00:10:48.440 --> 00:10:51.509 align:start position:0%
run uh this model because uh to to to
make<00:10:48.639><c> it</c><00:10:49.360><c> a</c><00:10:49.480><c> real</c><00:10:49.760><c> test</c><00:10:50.040><c> Vector</c><00:10:50.560><c> to</c><00:10:50.760><c> make</c><00:10:50.880><c> it</c><00:10:51.320><c> we</c>

00:10:51.509 --> 00:10:51.519 align:start position:0%
make it a real test Vector to make it we
 

00:10:51.519 --> 00:10:53.030 align:start position:0%
make it a real test Vector to make it we
have<00:10:51.639><c> to</c><00:10:51.800><c> make</c><00:10:51.959><c> it</c><00:10:52.079><c> a</c><00:10:52.200><c> real</c><00:10:52.440><c> blockchain</c><00:10:52.920><c> that</c>

00:10:53.030 --> 00:10:53.040 align:start position:0%
have to make it a real blockchain that
 

00:10:53.040 --> 00:10:55.949 align:start position:0%
have to make it a real blockchain that
follows<00:10:53.440><c> the</c><00:10:53.560><c> ethereum</c><00:10:54.040><c> protocol</c><00:10:54.600><c> rules</c><00:10:55.600><c> and</c>

00:10:55.949 --> 00:10:55.959 align:start position:0%
follows the ethereum protocol rules and
 

00:10:55.959 --> 00:10:59.509 align:start position:0%
follows the ethereum protocol rules and
uh<00:10:56.079><c> we</c><00:10:56.240><c> use</c><00:10:56.519><c> consensus</c><00:10:57.360><c> spec</c><00:10:58.360><c> uh</c><00:10:58.600><c> specs</c><00:10:58.959><c> for</c>

00:10:59.509 --> 00:10:59.519 align:start position:0%
uh we use consensus spec uh specs for
 

00:10:59.519 --> 00:11:01.990 align:start position:0%
uh we use consensus spec uh specs for
for<00:10:59.760><c> doing</c><00:11:00.120><c> this</c><00:11:00.279><c> for</c><00:11:00.519><c> making</c><00:11:00.920><c> a</c><00:11:01.440><c> these</c><00:11:01.639><c> blocks</c>

00:11:01.990 --> 00:11:02.000 align:start position:0%
for doing this for making a these blocks
 

00:11:02.000 --> 00:11:05.190 align:start position:0%
for doing this for making a these blocks
turn<00:11:02.399><c> into</c><00:11:03.160><c> uh</c><00:11:03.560><c> making</c><00:11:03.959><c> this</c><00:11:04.480><c> uh</c><00:11:04.880><c> block</c>

00:11:05.190 --> 00:11:05.200 align:start position:0%
turn into uh making this uh block
 

00:11:05.200 --> 00:11:07.110 align:start position:0%
turn into uh making this uh block
dependency<00:11:05.760><c> to</c><00:11:05.880><c> turn</c><00:11:06.120><c> it</c><00:11:06.240><c> into</c><00:11:06.480><c> real</c><00:11:06.800><c> blocks</c>

00:11:07.110 --> 00:11:07.120 align:start position:0%
dependency to turn it into real blocks
 

00:11:07.120 --> 00:11:09.870 align:start position:0%
dependency to turn it into real blocks
and<00:11:07.320><c> real</c><00:11:07.680><c> votes</c><00:11:08.680><c> and</c><00:11:09.160><c> in</c><00:11:09.320><c> this</c><00:11:09.519><c> case</c><00:11:09.760><c> the</c>

00:11:09.870 --> 00:11:09.880 align:start position:0%
and real votes and in this case the
 

00:11:09.880 --> 00:11:12.150 align:start position:0%
and real votes and in this case the
model<00:11:10.200><c> does</c><00:11:10.399><c> not</c><00:11:10.720><c> answer</c><00:11:11.040><c> you</c><00:11:11.200><c> to</c><00:11:11.480><c> many</c><00:11:11.800><c> many</c>

00:11:12.150 --> 00:11:12.160 align:start position:0%
model does not answer you to many many
 

00:11:12.160 --> 00:11:14.670 align:start position:0%
model does not answer you to many many
questions<00:11:12.760><c> that</c><00:11:13.320><c> the</c><00:11:13.440><c> protocol</c><00:11:13.880><c> need</c><00:11:14.200><c> to</c><00:11:14.519><c> you</c>

00:11:14.670 --> 00:11:14.680 align:start position:0%
questions that the protocol need to you
 

00:11:14.680 --> 00:11:17.030 align:start position:0%
questions that the protocol need to you
know<00:11:14.880><c> to</c><00:11:15.360><c> to</c><00:11:15.639><c> to</c><00:11:15.839><c> create</c><00:11:16.120><c> an</c><00:11:16.320><c> instance</c><00:11:16.720><c> of</c><00:11:16.839><c> a</c>

00:11:17.030 --> 00:11:17.040 align:start position:0%
know to to to create an instance of a
 

00:11:17.040 --> 00:11:19.990 align:start position:0%
know to to to create an instance of a
blockchain<00:11:18.040><c> those</c><00:11:18.279><c> questions</c><00:11:18.680><c> such</c><00:11:18.920><c> as</c><00:11:19.440><c> like</c>

00:11:19.990 --> 00:11:20.000 align:start position:0%
blockchain those questions such as like
 

00:11:20.000 --> 00:11:22.990 align:start position:0%
blockchain those questions such as like
uh<00:11:20.760><c> which</c><00:11:20.959><c> validators</c><00:11:21.639><c> are</c><00:11:21.839><c> voting</c><00:11:22.279><c> for</c><00:11:22.760><c> which</c>

00:11:22.990 --> 00:11:23.000 align:start position:0%
uh which validators are voting for which
 

00:11:23.000 --> 00:11:25.710 align:start position:0%
uh which validators are voting for which
block<00:11:23.639><c> every</c><00:11:23.920><c> single</c><00:11:24.279><c> slot</c><00:11:25.040><c> uh</c><00:11:25.399><c> where</c><00:11:25.600><c> where</c>

00:11:25.710 --> 00:11:25.720 align:start position:0%
block every single slot uh where where
 

00:11:25.720 --> 00:11:28.069 align:start position:0%
block every single slot uh where where
is<00:11:26.000><c> the</c><00:11:26.560><c> maybe</c><00:11:26.839><c> there</c><00:11:26.959><c> is</c><00:11:27.079><c> an</c><00:11:27.320><c> empty</c><00:11:27.680><c> slot</c>

00:11:28.069 --> 00:11:28.079 align:start position:0%
is the maybe there is an empty slot
 

00:11:28.079 --> 00:11:29.990 align:start position:0%
is the maybe there is an empty slot
between<00:11:28.440><c> those</c><00:11:28.680><c> blocks</c>

00:11:29.990 --> 00:11:30.000 align:start position:0%
between those blocks
 

00:11:30.000 --> 00:11:32.629 align:start position:0%
between those blocks
uh<00:11:31.000><c> which</c><00:11:31.160><c> is</c><00:11:31.480><c> the</c><00:11:31.720><c> total</c><00:11:32.079><c> number</c><00:11:32.480><c> of</c>

00:11:32.629 --> 00:11:32.639 align:start position:0%
uh which is the total number of
 

00:11:32.639 --> 00:11:35.230 align:start position:0%
uh which is the total number of
validators<00:11:33.560><c> participating</c><00:11:34.279><c> at</c><00:11:34.680><c> Moment</c><00:11:35.000><c> In</c>

00:11:35.230 --> 00:11:35.240 align:start position:0%
validators participating at Moment In
 

00:11:35.240 --> 00:11:38.110 align:start position:0%
validators participating at Moment In
Time<00:11:35.800><c> whether</c><00:11:36.000><c> the</c><00:11:36.160><c> message</c><00:11:36.839><c> is</c><00:11:37.399><c> like</c><00:11:37.880><c> some</c>

00:11:38.110 --> 00:11:38.120 align:start position:0%
Time whether the message is like some
 

00:11:38.120 --> 00:11:41.150 align:start position:0%
Time whether the message is like some
message<00:11:38.480><c> is</c><00:11:38.760><c> invalid</c><00:11:39.320><c> or</c><00:11:39.560><c> not</c><00:11:40.120><c> and</c><00:11:40.200><c> so</c><00:11:40.399><c> forth</c>

00:11:41.150 --> 00:11:41.160 align:start position:0%
message is invalid or not and so forth
 

00:11:41.160 --> 00:11:44.350 align:start position:0%
message is invalid or not and so forth
and<00:11:41.519><c> for</c><00:11:42.079><c> every</c><00:11:42.959><c> case</c><00:11:43.360><c> for</c><00:11:43.600><c> every</c><00:11:43.880><c> possible</c>

00:11:44.350 --> 00:11:44.360 align:start position:0%
and for every case for every possible
 

00:11:44.360 --> 00:11:47.190 align:start position:0%
and for every case for every possible
case<00:11:44.760><c> here</c><00:11:45.560><c> uh</c><00:11:45.639><c> to</c><00:11:45.839><c> answer</c><00:11:46.240><c> such</c><00:11:46.519><c> questions</c><00:11:46.959><c> to</c>

00:11:47.190 --> 00:11:47.200 align:start position:0%
case here uh to answer such questions to
 

00:11:47.200 --> 00:11:49.710 align:start position:0%
case here uh to answer such questions to
to<00:11:47.360><c> decide</c><00:11:47.639><c> on</c><00:11:47.920><c> such</c><00:11:48.320><c> uh</c><00:11:48.519><c> things</c><00:11:48.959><c> we</c><00:11:49.240><c> flip</c><00:11:49.560><c> a</c>

00:11:49.710 --> 00:11:49.720 align:start position:0%
to decide on such uh things we flip a
 

00:11:49.720 --> 00:11:53.670 align:start position:0%
to decide on such uh things we flip a
coin<00:11:50.519><c> so</c><00:11:50.720><c> we</c><00:11:50.920><c> have</c><00:11:51.160><c> like</c><00:11:51.480><c> a</c><00:11:52.360><c> every</c><00:11:52.880><c> every</c><00:11:53.399><c> test</c>

00:11:53.670 --> 00:11:53.680 align:start position:0%
coin so we have like a every every test
 

00:11:53.680 --> 00:11:55.910 align:start position:0%
coin so we have like a every every test
generator<00:11:54.120><c> run</c><00:11:54.440><c> there</c><00:11:54.560><c> is</c><00:11:54.720><c> a</c><00:11:55.200><c> combination</c><00:11:55.760><c> of</c>

00:11:55.910 --> 00:11:55.920 align:start position:0%
generator run there is a combination of
 

00:11:55.920 --> 00:11:58.629 align:start position:0%
generator run there is a combination of
model<00:11:56.279><c> solutions</c><00:11:56.920><c> that</c><00:11:57.040><c> we</c><00:11:57.240><c> use</c><00:11:58.120><c> and</c><00:11:58.440><c> a</c>

00:11:58.629 --> 00:11:58.639 align:start position:0%
model solutions that we use and a
 

00:11:58.639 --> 00:12:02.269 align:start position:0%
model solutions that we use and a
randomness<00:11:59.240><c> seed</c><00:11:59.920><c> and</c><00:12:00.320><c> uh</c><00:12:00.920><c> running</c><00:12:01.399><c> the</c><00:12:01.639><c> same</c>

00:12:02.269 --> 00:12:02.279 align:start position:0%
randomness seed and uh running the same
 

00:12:02.279 --> 00:12:04.110 align:start position:0%
randomness seed and uh running the same
uh<00:12:02.440><c> combination</c><00:12:02.920><c> of</c><00:12:03.079><c> model</c><00:12:03.399><c> Solutions</c><00:12:03.920><c> with</c>

00:12:04.110 --> 00:12:04.120 align:start position:0%
uh combination of model Solutions with
 

00:12:04.120 --> 00:12:06.949 align:start position:0%
uh combination of model Solutions with
different<00:12:04.440><c> Randomness</c><00:12:05.000><c> seed</c><00:12:05.360><c> can</c><00:12:05.920><c> yield</c><00:12:06.440><c> a</c>

00:12:06.949 --> 00:12:06.959 align:start position:0%
different Randomness seed can yield a
 

00:12:06.959 --> 00:12:10.110 align:start position:0%
different Randomness seed can yield a
different<00:12:07.800><c> uh</c><00:12:07.920><c> test</c><00:12:08.279><c> Vector</c><00:12:09.279><c> what</c><00:12:09.440><c> matters</c>

00:12:10.110 --> 00:12:10.120 align:start position:0%
different uh test Vector what matters
 

00:12:10.120 --> 00:12:11.829 align:start position:0%
different uh test Vector what matters
here<00:12:10.360><c> is</c><00:12:10.560><c> that</c><00:12:10.720><c> this</c><00:12:10.880><c> test</c><00:12:11.120><c> Vector</c><00:12:11.440><c> will</c><00:12:11.600><c> be</c>

00:12:11.829 --> 00:12:11.839 align:start position:0%
here is that this test Vector will be
 

00:12:11.839 --> 00:12:13.870 align:start position:0%
here is that this test Vector will be
completely<00:12:12.399><c> different</c><00:12:13.120><c> uh</c><00:12:13.240><c> from</c><00:12:13.440><c> the</c><00:12:13.560><c> FK</c>

00:12:13.870 --> 00:12:13.880 align:start position:0%
completely different uh from the FK
 

00:12:13.880 --> 00:12:16.790 align:start position:0%
completely different uh from the FK
Choice<00:12:14.639><c> point</c><00:12:14.839><c> of</c><00:12:15.000><c> view</c><00:12:15.440><c> so</c><00:12:15.720><c> like</c><00:12:15.880><c> in</c><00:12:16.120><c> this</c><00:12:16.600><c> uh</c>

00:12:16.790 --> 00:12:16.800 align:start position:0%
Choice point of view so like in this uh
 

00:12:16.800 --> 00:12:20.189 align:start position:0%
Choice point of view so like in this uh
example<00:12:17.279><c> there</c><00:12:17.600><c> are</c><00:12:18.600><c> the</c><00:12:18.800><c> had</c><00:12:19.320><c> TS</c><00:12:19.560><c> a</c><00:12:19.720><c> different</c>

00:12:20.189 --> 00:12:20.199 align:start position:0%
example there are the had TS a different
 

00:12:20.199 --> 00:12:22.470 align:start position:0%
example there are the had TS a different
so<00:12:20.480><c> but</c><00:12:20.720><c> the</c><00:12:20.880><c> model</c><00:12:21.199><c> is</c><00:12:21.440><c> the</c>

00:12:22.470 --> 00:12:22.480 align:start position:0%
so but the model is the
 

00:12:22.480 --> 00:12:25.269 align:start position:0%
so but the model is the
same<00:12:23.480><c> so</c><00:12:23.680><c> we</c><00:12:23.839><c> have</c><00:12:24.040><c> implemented</c><00:12:24.639><c> the</c><00:12:24.800><c> initial</c>

00:12:25.269 --> 00:12:25.279 align:start position:0%
same so we have implemented the initial
 

00:12:25.279 --> 00:12:27.430 align:start position:0%
same so we have implemented the initial
phase<00:12:25.560><c> of</c><00:12:25.720><c> the</c><00:12:25.880><c> strategy</c><00:12:26.480><c> and</c><00:12:26.680><c> this</c><00:12:26.880><c> work</c><00:12:27.240><c> was</c>

00:12:27.430 --> 00:12:27.440 align:start position:0%
phase of the strategy and this work was
 

00:12:27.440 --> 00:12:29.829 align:start position:0%
phase of the strategy and this work was
supported<00:12:27.920><c> by</c><00:12:28.040><c> a</c><00:12:28.160><c> grant</c><00:12:28.440><c> from</c><00:12:28.600><c> eum</c><00:12:29.199><c> foundation</c>

00:12:29.829 --> 00:12:29.839 align:start position:0%
supported by a grant from eum foundation
 

00:12:29.839 --> 00:12:32.790 align:start position:0%
supported by a grant from eum foundation
and<00:12:30.120><c> but</c><00:12:30.320><c> from</c><00:12:30.839><c> consensus</c><00:12:31.839><c> and</c><00:12:31.959><c> so</c><00:12:32.279><c> we</c><00:12:32.480><c> have</c><00:12:32.639><c> a</c>

00:12:32.790 --> 00:12:32.800 align:start position:0%
and but from consensus and so we have a
 

00:12:32.800 --> 00:12:35.910 align:start position:0%
and but from consensus and so we have a
test<00:12:33.120><c> generator</c><00:12:34.000><c> we</c><00:12:34.120><c> have</c><00:12:34.279><c> a</c><00:12:34.440><c> PR</c><00:12:35.000><c> in</c><00:12:35.360><c> consensus</c>

00:12:35.910 --> 00:12:35.920 align:start position:0%
test generator we have a PR in consensus
 

00:12:35.920 --> 00:12:39.230 align:start position:0%
test generator we have a PR in consensus
spec<00:12:36.800><c> repository</c><00:12:37.800><c> we</c><00:12:38.000><c> have</c><00:12:38.240><c> generated</c><00:12:38.920><c> three</c>

00:12:39.230 --> 00:12:39.240 align:start position:0%
spec repository we have generated three
 

00:12:39.240 --> 00:12:42.590 align:start position:0%
spec repository we have generated three
test<00:12:39.519><c> Suites</c><00:12:40.360><c> to</c><00:12:40.720><c> Tiny</c><00:12:41.040><c> and</c><00:12:41.279><c> small</c><00:12:42.240><c> uh</c><00:12:42.399><c> the</c>

00:12:42.590 --> 00:12:42.600 align:start position:0%
test Suites to Tiny and small uh the
 

00:12:42.600 --> 00:12:44.990 align:start position:0%
test Suites to Tiny and small uh the
test<00:12:42.800><c> Suites</c><00:12:43.120><c> for</c><00:12:43.320><c> initial</c><00:12:43.760><c> adoption</c><00:12:44.279><c> and</c><00:12:44.440><c> we</c>

00:12:44.990 --> 00:12:45.000 align:start position:0%
test Suites for initial adoption and we
 

00:12:45.000 --> 00:12:48.310 align:start position:0%
test Suites for initial adoption and we
also<00:12:45.920><c> the</c><00:12:46.079><c> main</c><00:12:46.440><c> standard</c><00:12:47.000><c> test</c><00:12:47.320><c> Suite</c><00:12:47.720><c> which</c>

00:12:48.310 --> 00:12:48.320 align:start position:0%
also the main standard test Suite which
 

00:12:48.320 --> 00:12:51.350 align:start position:0%
also the main standard test Suite which
contains<00:12:48.920><c> about</c><00:12:49.480><c> 13,000</c><00:12:50.480><c> of</c><00:12:50.720><c> test</c><00:12:51.079><c> which</c><00:12:51.240><c> I</c>

00:12:51.350 --> 00:12:51.360 align:start position:0%
contains about 13,000 of test which I
 

00:12:51.360 --> 00:12:55.470 align:start position:0%
contains about 13,000 of test which I
believe<00:12:51.639><c> is</c><00:12:51.839><c> enough</c><00:12:52.480><c> for</c><00:12:52.760><c> initial</c>

00:12:55.470 --> 00:12:55.480 align:start position:0%
 
 

00:12:55.480 --> 00:12:59.230 align:start position:0%
 
phase<00:12:56.480><c> yeah</c><00:12:57.040><c> and</c><00:12:57.320><c> so</c><00:12:57.560><c> we</c><00:12:57.720><c> did</c><00:12:58.040><c> the</c><00:12:58.839><c> as</c><00:12:58.959><c> a</c>

00:12:59.230 --> 00:12:59.240 align:start position:0%
phase yeah and so we did the as a
 

00:12:59.240 --> 00:13:01.550 align:start position:0%
phase yeah and so we did the as a
prototype<00:12:59.760><c> we</c><00:12:59.880><c> did</c><00:13:00.120><c> the</c><00:13:00.440><c> integration</c><00:13:01.199><c> of</c><00:13:01.399><c> this</c>

00:13:01.550 --> 00:13:01.560 align:start position:0%
prototype we did the integration of this
 

00:13:01.560 --> 00:13:05.550 align:start position:0%
prototype we did the integration of this
tool<00:13:01.839><c> in</c><00:13:02.199><c> taku</c><00:13:03.199><c> as</c><00:13:03.320><c> I</c><00:13:03.519><c> mentioned</c><00:13:04.320><c> before</c><00:13:05.320><c> uh</c>

00:13:05.550 --> 00:13:05.560 align:start position:0%
tool in taku as I mentioned before uh
 

00:13:05.560 --> 00:13:07.629 align:start position:0%
tool in taku as I mentioned before uh
there<00:13:05.760><c> there</c><00:13:05.880><c> is</c><00:13:06.079><c> already</c><00:13:06.880><c> uh</c><00:13:07.000><c> the</c><00:13:07.160><c> F</c><00:13:07.360><c> choice</c>

00:13:07.629 --> 00:13:07.639 align:start position:0%
there there is already uh the F choice
 

00:13:07.639 --> 00:13:09.629 align:start position:0%
there there is already uh the F choice
test<00:13:07.959><c> and</c><00:13:08.160><c> clients</c><00:13:08.560><c> already</c><00:13:08.839><c> know</c><00:13:09.079><c> how</c><00:13:09.199><c> to</c><00:13:09.360><c> run</c>

00:13:09.629 --> 00:13:09.639 align:start position:0%
test and clients already know how to run
 

00:13:09.639 --> 00:13:12.189 align:start position:0%
test and clients already know how to run
them<00:13:10.120><c> so</c><00:13:10.360><c> this</c><00:13:10.560><c> integration</c><00:13:11.199><c> was</c><00:13:11.639><c> relatively</c>

00:13:12.189 --> 00:13:12.199 align:start position:0%
them so this integration was relatively
 

00:13:12.199 --> 00:13:14.110 align:start position:0%
them so this integration was relatively
straightforward<00:13:13.199><c> we</c><00:13:13.360><c> added</c><00:13:13.720><c> the</c><00:13:13.880><c> new</c>

00:13:14.110 --> 00:13:14.120 align:start position:0%
straightforward we added the new
 

00:13:14.120 --> 00:13:16.829 align:start position:0%
straightforward we added the new
property<00:13:14.560><c> check</c><00:13:14.880><c> that</c><00:13:15.160><c> mentioned</c><00:13:15.560><c> before</c><00:13:16.560><c> uh</c>

00:13:16.829 --> 00:13:16.839 align:start position:0%
property check that mentioned before uh
 

00:13:16.839 --> 00:13:19.310 align:start position:0%
property check that mentioned before uh
found<00:13:17.720><c> some</c><00:13:18.000><c> issues</c><00:13:18.440><c> a</c><00:13:18.560><c> couple</c><00:13:18.800><c> of</c><00:13:18.959><c> them</c><00:13:19.120><c> are</c>

00:13:19.310 --> 00:13:19.320 align:start position:0%
found some issues a couple of them are
 

00:13:19.320 --> 00:13:21.790 align:start position:0%
found some issues a couple of them are
related<00:13:19.680><c> to</c><00:13:19.959><c> optimizations</c><00:13:20.800><c> I'll</c><00:13:21.000><c> cover</c><00:13:21.360><c> this</c>

00:13:21.790 --> 00:13:21.800 align:start position:0%
related to optimizations I'll cover this
 

00:13:21.800 --> 00:13:24.310 align:start position:0%
related to optimizations I'll cover this
uh<00:13:21.920><c> on</c><00:13:22.040><c> the</c><00:13:22.160><c> next</c><00:13:22.399><c> slide</c><00:13:23.079><c> and</c><00:13:23.240><c> we</c><00:13:23.399><c> found</c><00:13:23.959><c> four</c>

00:13:24.310 --> 00:13:24.320 align:start position:0%
uh on the next slide and we found four
 

00:13:24.320 --> 00:13:29.150 align:start position:0%
uh on the next slide and we found four
Edge<00:13:24.720><c> case</c><00:13:25.959><c> uh</c><00:13:26.959><c> four</c><00:13:27.279><c> edge</c><00:13:27.680><c> cases</c><00:13:28.560><c> uh</c><00:13:28.959><c> where</c>

00:13:29.150 --> 00:13:29.160 align:start position:0%
Edge case uh four edge cases uh where
 

00:13:29.160 --> 00:13:32.269 align:start position:0%
Edge case uh four edge cases uh where
where<00:13:29.560><c> TECO</c><00:13:30.120><c> is</c><00:13:30.320><c> not</c><00:13:30.680><c> kind</c><00:13:30.839><c> of</c><00:13:31.120><c> like</c><00:13:31.800><c> compliant</c>

00:13:32.269 --> 00:13:32.279 align:start position:0%
where TECO is not kind of like compliant
 

00:13:32.279 --> 00:13:35.189 align:start position:0%
where TECO is not kind of like compliant
to<00:13:32.480><c> the</c><00:13:32.680><c> spec</c><00:13:33.040><c> but</c><00:13:33.519><c> these</c><00:13:33.760><c> edge</c><00:13:34.079><c> cases</c><00:13:34.600><c> are</c>

00:13:35.189 --> 00:13:35.199 align:start position:0%
to the spec but these edge cases are
 

00:13:35.199 --> 00:13:38.310 align:start position:0%
to the spec but these edge cases are
very<00:13:35.600><c> very</c><00:13:36.240><c> unlikely</c><00:13:36.760><c> to</c><00:13:36.959><c> happen</c><00:13:37.360><c> on</c><00:13:37.639><c> any</c><00:13:38.079><c> any</c>

00:13:38.310 --> 00:13:38.320 align:start position:0%
very very unlikely to happen on any any
 

00:13:38.320 --> 00:13:41.629 align:start position:0%
very very unlikely to happen on any any
test<00:13:38.639><c> net</c><00:13:39.560><c> uh</c><00:13:39.680><c> including</c><00:13:40.079><c> the</c><00:13:40.199><c> main</c><00:13:40.480><c> net</c><00:13:41.240><c> and</c>

00:13:41.629 --> 00:13:41.639 align:start position:0%
test net uh including the main net and
 

00:13:41.639 --> 00:13:43.990 align:start position:0%
test net uh including the main net and
uh<00:13:42.279><c> uh</c><00:13:42.399><c> the</c><00:13:42.560><c> fact</c><00:13:42.760><c> that</c><00:13:42.880><c> we</c><00:13:43.040><c> found</c><00:13:43.360><c> those</c><00:13:43.680><c> edge</c>

00:13:43.990 --> 00:13:44.000 align:start position:0%
uh uh the fact that we found those edge
 

00:13:44.000 --> 00:13:47.470 align:start position:0%
uh uh the fact that we found those edge
cases<00:13:44.839><c> uh</c><00:13:45.079><c> shows</c><00:13:45.399><c> us</c><00:13:46.120><c> how</c><00:13:46.399><c> powerful</c><00:13:46.959><c> this</c><00:13:47.120><c> tool</c>

00:13:47.470 --> 00:13:47.480 align:start position:0%
cases uh shows us how powerful this tool
 

00:13:47.480 --> 00:13:50.910 align:start position:0%
cases uh shows us how powerful this tool
is<00:13:47.720><c> with</c><00:13:47.920><c> only</c><00:13:48.240><c> 13,000</c><00:13:49.240><c> tests</c><00:13:50.240><c> just</c><00:13:50.440><c> imagine</c>

00:13:50.910 --> 00:13:50.920 align:start position:0%
is with only 13,000 tests just imagine
 

00:13:50.920 --> 00:13:54.069 align:start position:0%
is with only 13,000 tests just imagine
what<00:13:51.800><c> would</c><00:13:52.000><c> it</c><00:13:52.160><c> be</c><00:13:52.639><c> like</c><00:13:53.000><c> uh</c><00:13:53.199><c> if</c><00:13:53.320><c> we</c><00:13:53.519><c> have</c><00:13:53.759><c> like</c>

00:13:54.069 --> 00:13:54.079 align:start position:0%
what would it be like uh if we have like
 

00:13:54.079 --> 00:13:57.550 align:start position:0%
what would it be like uh if we have like
a<00:13:54.320><c> thousand</c><00:13:55.120><c> uh</c><00:13:55.720><c> 100</c><00:13:56.279><c> 100,000</c><00:13:57.000><c> tests</c><00:13:57.320><c> or</c><00:13:57.440><c> a</c>

00:13:57.550 --> 00:13:57.560 align:start position:0%
a thousand uh 100 100,000 tests or a
 

00:13:57.560 --> 00:13:59.790 align:start position:0%
a thousand uh 100 100,000 tests or a
million<00:13:57.959><c> tests</c><00:13:58.639><c> and</c><00:13:59.079><c> we're</c><00:13:59.240><c> looking</c><00:13:59.440><c> forward</c>

00:13:59.790 --> 00:13:59.800 align:start position:0%
million tests and we're looking forward
 

00:13:59.800 --> 00:14:02.509 align:start position:0%
million tests and we're looking forward
to<00:14:00.160><c> have</c><00:14:00.480><c> this</c><00:14:00.680><c> tool</c><00:14:01.079><c> in</c><00:14:01.560><c> to</c><00:14:01.720><c> have</c><00:14:01.959><c> this</c><00:14:02.399><c> uh</c>

00:14:02.509 --> 00:14:02.519 align:start position:0%
to have this tool in to have this uh
 

00:14:02.519 --> 00:14:05.470 align:start position:0%
to have this tool in to have this uh
suit<00:14:02.880><c> integrated</c><00:14:03.480><c> with</c><00:14:03.880><c> other</c><00:14:04.880><c> uh</c><00:14:05.000><c> consens</c>

00:14:05.470 --> 00:14:05.480 align:start position:0%
suit integrated with other uh consens
 

00:14:05.480 --> 00:14:08.150 align:start position:0%
suit integrated with other uh consens
layer<00:14:05.759><c> clients</c><00:14:06.120><c> to</c><00:14:06.279><c> find</c><00:14:06.560><c> issues</c><00:14:06.880><c> in</c><00:14:07.120><c> them</c><00:14:07.399><c> as</c>

00:14:08.150 --> 00:14:08.160 align:start position:0%
layer clients to find issues in them as
 

00:14:08.160 --> 00:14:11.430 align:start position:0%
layer clients to find issues in them as
well<00:14:09.160><c> so</c><00:14:09.480><c> let's</c><00:14:09.680><c> look</c><00:14:09.880><c> at</c><00:14:10.040><c> test</c><00:14:10.240><c> Suite</c><00:14:10.560><c> details</c>

00:14:11.430 --> 00:14:11.440 align:start position:0%
well so let's look at test Suite details
 

00:14:11.440 --> 00:14:14.870 align:start position:0%
well so let's look at test Suite details
so<00:14:11.639><c> we</c><00:14:11.880><c> have</c><00:14:12.880><c> uh</c><00:14:13.399><c> test</c><00:14:13.720><c> groups</c><00:14:14.079><c> inside</c><00:14:14.680><c> test</c>

00:14:14.870 --> 00:14:14.880 align:start position:0%
so we have uh test groups inside test
 

00:14:14.880 --> 00:14:17.710 align:start position:0%
so we have uh test groups inside test
suits<00:14:15.240><c> for</c><00:14:15.360><c> example</c><00:14:15.720><c> block</c><00:14:16.040><c> three</c><00:14:16.399><c> focuses</c><00:14:17.000><c> on</c>

00:14:17.710 --> 00:14:17.720 align:start position:0%
suits for example block three focuses on
 

00:14:17.720 --> 00:14:20.629 align:start position:0%
suits for example block three focuses on
trees<00:14:18.120><c> of</c><00:14:18.440><c> various</c><00:14:18.880><c> shapes</c><00:14:19.519><c> and</c><00:14:19.759><c> block</c><00:14:20.120><c> weight</c>

00:14:20.629 --> 00:14:20.639 align:start position:0%
trees of various shapes and block weight
 

00:14:20.639 --> 00:14:23.910 align:start position:0%
trees of various shapes and block weight
we<00:14:21.360><c> try</c><00:14:21.600><c> to</c><00:14:21.839><c> produce</c><00:14:22.240><c> block</c><00:14:22.560><c> trees</c><00:14:23.000><c> where</c>

00:14:23.910 --> 00:14:23.920 align:start position:0%
we try to produce block trees where
 

00:14:23.920 --> 00:14:25.790 align:start position:0%
we try to produce block trees where
weights<00:14:24.199><c> are</c><00:14:24.399><c> different</c><00:14:24.920><c> distant</c><00:14:25.279><c> from</c><00:14:25.519><c> each</c>

00:14:25.790 --> 00:14:25.800 align:start position:0%
weights are different distant from each
 

00:14:25.800 --> 00:14:29.870 align:start position:0%
weights are different distant from each
other<00:14:26.800><c> we</c><00:14:27.000><c> also</c><00:14:27.399><c> have</c><00:14:27.560><c> a</c><00:14:27.720><c> shuffling</c><00:14:28.360><c> group</c><00:14:29.399><c> and</c>

00:14:29.870 --> 00:14:29.880 align:start position:0%
other we also have a shuffling group and
 

00:14:29.880 --> 00:14:33.230 align:start position:0%
other we also have a shuffling group and
uh<00:14:30.160><c> test</c><00:14:30.440><c> group</c><00:14:30.759><c> which</c><00:14:30.959><c> focus</c><00:14:31.320><c> on</c><00:14:32.120><c> a</c><00:14:32.360><c> test</c><00:14:32.720><c> s</c>

00:14:33.230 --> 00:14:33.240 align:start position:0%
uh test group which focus on a test s
 

00:14:33.240 --> 00:14:35.670 align:start position:0%
uh test group which focus on a test s
invalid<00:14:33.720><c> messages</c><00:14:34.480><c> and</c><00:14:34.759><c> combinations</c><00:14:35.440><c> of</c>

00:14:35.670 --> 00:14:35.680 align:start position:0%
invalid messages and combinations of
 

00:14:35.680 --> 00:14:38.670 align:start position:0%
invalid messages and combinations of
filter<00:14:36.120><c> B</c><00:14:36.480><c> three</c><00:14:36.839><c> predicates</c><00:14:37.839><c> and</c><00:14:38.000><c> overall</c><00:14:38.519><c> we</c>

00:14:38.670 --> 00:14:38.680 align:start position:0%
filter B three predicates and overall we
 

00:14:38.680 --> 00:14:42.990 align:start position:0%
filter B three predicates and overall we
have<00:14:39.040><c> about</c><00:14:39.519><c> 13,000</c><00:14:40.519><c> of</c><00:14:40.680><c> tests</c><00:14:41.480><c> right</c>

00:14:42.990 --> 00:14:43.000 align:start position:0%
have about 13,000 of tests right
 

00:14:43.000 --> 00:14:47.150 align:start position:0%
have about 13,000 of tests right
now<00:14:44.000><c> okay</c><00:14:44.320><c> uh</c><00:14:44.480><c> so</c><00:14:45.079><c> we</c><00:14:45.320><c> have</c><00:14:45.639><c> problems</c><00:14:46.519><c> and</c><00:14:46.800><c> one</c>

00:14:47.150 --> 00:14:47.160 align:start position:0%
now okay uh so we have problems and one
 

00:14:47.160 --> 00:14:49.269 align:start position:0%
now okay uh so we have problems and one
pro<00:14:47.600><c> uh</c><00:14:47.839><c> problems</c><00:14:48.399><c> is</c><00:14:48.600><c> that</c><00:14:48.839><c> advanced</c>

00:14:49.269 --> 00:14:49.279 align:start position:0%
pro uh problems is that advanced
 

00:14:49.279 --> 00:14:51.550 align:start position:0%
pro uh problems is that advanced
mutation<00:14:49.759><c> are</c><00:14:49.959><c> challenging</c><00:14:50.440><c> to</c><00:14:50.600><c> implement</c>

00:14:51.550 --> 00:14:51.560 align:start position:0%
mutation are challenging to implement
 

00:14:51.560 --> 00:14:54.430 align:start position:0%
mutation are challenging to implement
for<00:14:51.720><c> example</c><00:14:52.120><c> if</c><00:14:52.279><c> you</c><00:14:52.720><c> change</c><00:14:53.720><c> a</c><00:14:53.920><c> block</c><00:14:54.279><c> we</c>

00:14:54.430 --> 00:14:54.440 align:start position:0%
for example if you change a block we
 

00:14:54.440 --> 00:14:58.470 align:start position:0%
for example if you change a block we
need<00:14:54.680><c> to</c><00:14:55.440><c> rec</c><00:14:55.639><c> compul</c><00:14:56.519><c> recalculate</c><00:14:57.160><c> its</c><00:14:57.480><c> cash</c>

00:14:58.470 --> 00:14:58.480 align:start position:0%
need to rec compul recalculate its cash
 

00:14:58.480 --> 00:15:02.269 align:start position:0%
need to rec compul recalculate its cash
and<00:14:59.079><c> descendant</c><00:14:59.759><c> blocks</c><00:15:00.399><c> and</c><00:15:01.279><c> attestations</c>

00:15:02.269 --> 00:15:02.279 align:start position:0%
and descendant blocks and attestations
 

00:15:02.279 --> 00:15:05.790 align:start position:0%
and descendant blocks and attestations
should<00:15:02.480><c> be</c><00:15:02.680><c> recalculated</c><00:15:03.800><c> too</c><00:15:04.800><c> and</c><00:15:05.040><c> this</c><00:15:05.639><c> uh</c>

00:15:05.790 --> 00:15:05.800 align:start position:0%
should be recalculated too and this uh
 

00:15:05.800 --> 00:15:09.189 align:start position:0%
should be recalculated too and this uh
takes<00:15:06.199><c> time</c><00:15:06.600><c> so</c><00:15:07.199><c> test</c><00:15:07.839><c> generation</c><00:15:08.399><c> is</c><00:15:08.759><c> slow</c>

00:15:09.189 --> 00:15:09.199 align:start position:0%
takes time so test generation is slow
 

00:15:09.199 --> 00:15:11.509 align:start position:0%
takes time so test generation is slow
currently<00:15:09.639><c> it</c><00:15:09.759><c> takes</c><00:15:10.040><c> about</c><00:15:10.320><c> 10</c><00:15:10.600><c> seconds</c><00:15:11.000><c> per</c>

00:15:11.509 --> 00:15:11.519 align:start position:0%
currently it takes about 10 seconds per
 

00:15:11.519 --> 00:15:14.189 align:start position:0%
currently it takes about 10 seconds per
second<00:15:12.519><c> we</c><00:15:12.720><c> have</c><00:15:12.959><c> investigated</c><00:15:13.720><c> the</c><00:15:13.880><c> reasons</c>

00:15:14.189 --> 00:15:14.199 align:start position:0%
second we have investigated the reasons
 

00:15:14.199 --> 00:15:16.710 align:start position:0%
second we have investigated the reasons
for<00:15:14.480><c> that</c><00:15:14.759><c> and</c><00:15:15.040><c> okay</c><00:15:15.240><c> one</c><00:15:15.480><c> reason</c><00:15:15.800><c> is</c><00:15:16.000><c> that</c>

00:15:16.710 --> 00:15:16.720 align:start position:0%
for that and okay one reason is that
 

00:15:16.720 --> 00:15:20.629 align:start position:0%
for that and okay one reason is that
fork<00:15:17.160><c> Choice</c><00:15:17.440><c> Ru</c><00:15:18.279><c> is</c><00:15:19.160><c> expressed</c><00:15:19.600><c> using</c><00:15:20.000><c> python</c>

00:15:20.629 --> 00:15:20.639 align:start position:0%
fork Choice Ru is expressed using python
 

00:15:20.639 --> 00:15:22.389 align:start position:0%
fork Choice Ru is expressed using python
which<00:15:20.759><c> is</c><00:15:20.880><c> an</c><00:15:21.079><c> interpreted</c><00:15:21.720><c> language</c><00:15:22.240><c> and</c>

00:15:22.389 --> 00:15:22.399 align:start position:0%
which is an interpreted language and
 

00:15:22.399 --> 00:15:24.949 align:start position:0%
which is an interpreted language and
it's<00:15:22.600><c> low</c><00:15:23.560><c> we</c><00:15:23.839><c> but</c><00:15:24.120><c> that's</c><00:15:24.320><c> not</c><00:15:24.560><c> the</c><00:15:24.680><c> only</c>

00:15:24.949 --> 00:15:24.959 align:start position:0%
it's low we but that's not the only
 

00:15:24.959 --> 00:15:26.670 align:start position:0%
it's low we but that's not the only
source<00:15:25.279><c> of</c><00:15:25.440><c> the</c><00:15:25.639><c> problem</c><00:15:26.000><c> because</c><00:15:26.320><c> there</c><00:15:26.440><c> are</c>

00:15:26.670 --> 00:15:26.680 align:start position:0%
source of the problem because there are
 

00:15:26.680 --> 00:15:29.309 align:start position:0%
source of the problem because there are
also<00:15:27.120><c> some</c><00:15:27.360><c> slow</c><00:15:27.839><c> spec</c><00:15:28.160><c> components</c><00:15:28.800><c> they</c><00:15:29.079><c> are</c>

00:15:29.309 --> 00:15:29.319 align:start position:0%
also some slow spec components they are
 

00:15:29.319 --> 00:15:32.030 align:start position:0%
also some slow spec components they are
optimized<00:15:30.000><c> actually</c><00:15:30.480><c> but</c><00:15:30.839><c> there</c><00:15:30.959><c> are</c><00:15:31.160><c> still</c><00:15:31.880><c> a</c>

00:15:32.030 --> 00:15:32.040 align:start position:0%
optimized actually but there are still a
 

00:15:32.040 --> 00:15:33.189 align:start position:0%
optimized actually but there are still a
room<00:15:32.279><c> for</c>

00:15:33.189 --> 00:15:33.199 align:start position:0%
room for
 

00:15:33.199 --> 00:15:35.870 align:start position:0%
room for
improvement<00:15:34.199><c> and</c><00:15:34.480><c> this</c><00:15:34.920><c> uh</c><00:15:35.199><c> slow</c><00:15:35.600><c> test</c>

00:15:35.870 --> 00:15:35.880 align:start position:0%
improvement and this uh slow test
 

00:15:35.880 --> 00:15:39.430 align:start position:0%
improvement and this uh slow test
generation<00:15:36.440><c> limits</c><00:15:37.279><c> uh</c><00:15:37.480><c> the</c><00:15:37.720><c> Practical</c><00:15:38.440><c> size</c>

00:15:39.430 --> 00:15:39.440 align:start position:0%
generation limits uh the Practical size
 

00:15:39.440 --> 00:15:40.550 align:start position:0%
generation limits uh the Practical size
which<00:15:39.639><c> we</c><00:15:39.759><c> can</c>

00:15:40.550 --> 00:15:40.560 align:start position:0%
which we can
 

00:15:40.560 --> 00:15:42.870 align:start position:0%
which we can
achieve<00:15:41.560><c> yeah</c><00:15:41.839><c> as</c><00:15:41.959><c> I</c><00:15:42.079><c> mentioned</c><00:15:42.480><c> before</c><00:15:42.759><c> there</c>

00:15:42.870 --> 00:15:42.880 align:start position:0%
achieve yeah as I mentioned before there
 

00:15:42.880 --> 00:15:45.389 align:start position:0%
achieve yeah as I mentioned before there
are<00:15:43.040><c> some</c><00:15:43.240><c> optimizations</c><00:15:44.199><c> that</c><00:15:44.759><c> uh</c><00:15:45.079><c> cause</c>

00:15:45.389 --> 00:15:45.399 align:start position:0%
are some optimizations that uh cause
 

00:15:45.399 --> 00:15:47.790 align:start position:0%
are some optimizations that uh cause
some<00:15:45.639><c> test</c><00:15:46.040><c> fail</c><00:15:47.040><c> uh</c><00:15:47.279><c> and</c><00:15:47.560><c> those</c>

00:15:47.790 --> 00:15:47.800 align:start position:0%
some test fail uh and those
 

00:15:47.800 --> 00:15:50.590 align:start position:0%
some test fail uh and those
optimizations<00:15:48.680><c> are</c><00:15:49.600><c> that</c><00:15:49.800><c> we</c><00:15:50.040><c> have</c><00:15:50.240><c> faced</c>

00:15:50.590 --> 00:15:50.600 align:start position:0%
optimizations are that we have faced
 

00:15:50.600 --> 00:15:53.629 align:start position:0%
optimizations are that we have faced
with<00:15:50.880><c> are</c><00:15:51.160><c> related</c><00:15:51.639><c> to</c><00:15:52.279><c> uh</c><00:15:52.399><c> dos</c><00:15:52.759><c> protection</c><00:15:53.399><c> so</c>

00:15:53.629 --> 00:15:53.639 align:start position:0%
with are related to uh dos protection so
 

00:15:53.639 --> 00:15:55.790 align:start position:0%
with are related to uh dos protection so
some<00:15:53.880><c> AR</c><00:15:54.279><c> stations</c><00:15:54.600><c> some</c><00:15:54.800><c> old</c><00:15:55.120><c> attestations</c>

00:15:55.790 --> 00:15:55.800 align:start position:0%
some AR stations some old attestations
 

00:15:55.800 --> 00:15:59.670 align:start position:0%
some AR stations some old attestations
that<00:15:55.920><c> are</c><00:15:56.160><c> not</c><00:15:56.959><c> going</c><00:15:57.079><c> to</c><00:15:57.440><c> affect</c><00:15:57.880><c> the</c><00:15:58.480><c> uh</c><00:15:59.240><c> folk</c>

00:15:59.670 --> 00:15:59.680 align:start position:0%
that are not going to affect the uh folk
 

00:15:59.680 --> 00:16:03.110 align:start position:0%
that are not going to affect the uh folk
Choice<00:16:00.040><c> decision</c><00:16:01.040><c> are</c><00:16:01.440><c> discarded</c><00:16:02.399><c> in</c><00:16:02.600><c> Teo</c><00:16:02.959><c> for</c>

00:16:03.110 --> 00:16:03.120 align:start position:0%
Choice decision are discarded in Teo for
 

00:16:03.120 --> 00:16:05.350 align:start position:0%
Choice decision are discarded in Teo for
instance<00:16:03.560><c> and</c><00:16:04.040><c> in</c><00:16:04.240><c> other</c><00:16:04.519><c> clients</c><00:16:04.959><c> as</c><00:16:05.120><c> well</c>

00:16:05.350 --> 00:16:05.360 align:start position:0%
instance and in other clients as well
 

00:16:05.360 --> 00:16:07.110 align:start position:0%
instance and in other clients as well
and<00:16:05.680><c> different</c><00:16:06.000><c> clients</c><00:16:06.319><c> use</c><00:16:06.560><c> different</c><00:16:06.959><c> her</c>

00:16:07.110 --> 00:16:07.120 align:start position:0%
and different clients use different her
 

00:16:07.120 --> 00:16:09.790 align:start position:0%
and different clients use different her
istics<00:16:07.440><c> to</c><00:16:07.600><c> discard</c><00:16:08.079><c> such</c><00:16:08.600><c> attestations</c><00:16:09.600><c> and</c>

00:16:09.790 --> 00:16:09.800 align:start position:0%
istics to discard such attestations and
 

00:16:09.800 --> 00:16:12.509 align:start position:0%
istics to discard such attestations and
here<00:16:10.160><c> we</c><00:16:10.319><c> have</c><00:16:10.519><c> another</c><00:16:10.920><c> problem</c><00:16:11.800><c> uh</c><00:16:11.959><c> is</c><00:16:12.199><c> that</c>

00:16:12.509 --> 00:16:12.519 align:start position:0%
here we have another problem uh is that
 

00:16:12.519 --> 00:16:16.509 align:start position:0%
here we have another problem uh is that
the<00:16:12.920><c> uh</c><00:16:13.240><c> the</c><00:16:13.399><c> two</c><00:16:14.279><c> the</c><00:16:15.160><c> the</c><00:16:15.399><c> cute</c><00:16:15.880><c> cannot</c><00:16:16.279><c> be</c>

00:16:16.509 --> 00:16:16.519 align:start position:0%
the uh the two the the cute cannot be
 

00:16:16.519 --> 00:16:21.189 align:start position:0%
the uh the two the the cute cannot be
designed<00:16:17.120><c> to</c><00:16:18.519><c> uh</c><00:16:19.519><c> to</c><00:16:19.839><c> avoid</c><00:16:20.240><c> all</c><00:16:20.480><c> those</c><00:16:20.920><c> uh</c>

00:16:21.189 --> 00:16:21.199 align:start position:0%
designed to uh to avoid all those uh
 

00:16:21.199 --> 00:16:24.829 align:start position:0%
designed to uh to avoid all those uh
failures<00:16:22.199><c> and</c><00:16:22.680><c> uh</c><00:16:23.000><c> diff</c><00:16:23.959><c> and</c><00:16:24.399><c> because</c><00:16:24.639><c> of</c>

00:16:24.829 --> 00:16:24.839 align:start position:0%
failures and uh diff and because of
 

00:16:24.839 --> 00:16:26.829 align:start position:0%
failures and uh diff and because of
different<00:16:25.560><c> clients</c><00:16:25.920><c> has</c><00:16:26.160><c> different</c>

00:16:26.829 --> 00:16:26.839 align:start position:0%
different clients has different
 

00:16:26.839 --> 00:16:28.910 align:start position:0%
different clients has different
optimizations<00:16:27.519><c> and</c><00:16:27.680><c> different</c><00:16:27.959><c> her</c><00:16:28.160><c> ristics</c>

00:16:28.910 --> 00:16:28.920 align:start position:0%
optimizations and different her ristics
 

00:16:28.920 --> 00:16:31.110 align:start position:0%
optimizations and different her ristics
there<00:16:29.040><c> will</c><00:16:29.199><c> be</c><00:16:29.560><c> different</c><00:16:29.880><c> subset</c><00:16:30.360><c> of</c><00:16:30.600><c> tests</c>

00:16:31.110 --> 00:16:31.120 align:start position:0%
there will be different subset of tests
 

00:16:31.120 --> 00:16:34.069 align:start position:0%
there will be different subset of tests
that<00:16:31.360><c> are</c><00:16:31.680><c> failing</c><00:16:32.480><c> and</c><00:16:32.880><c> uh</c><00:16:33.519><c> we</c><00:16:33.680><c> have</c><00:16:33.920><c> like</c>

00:16:34.069 --> 00:16:34.079 align:start position:0%
that are failing and uh we have like
 

00:16:34.079 --> 00:16:36.189 align:start position:0%
that are failing and uh we have like
just<00:16:34.279><c> 13,000</c><00:16:35.079><c> tests</c><00:16:35.319><c> but</c><00:16:35.480><c> imagine</c><00:16:35.759><c> if</c><00:16:35.880><c> we</c><00:16:36.040><c> have</c>

00:16:36.189 --> 00:16:36.199 align:start position:0%
just 13,000 tests but imagine if we have
 

00:16:36.199 --> 00:16:39.069 align:start position:0%
just 13,000 tests but imagine if we have
a<00:16:36.319><c> million</c><00:16:36.720><c> tests</c><00:16:37.279><c> and</c><00:16:37.480><c> you</c><00:16:37.639><c> have</c><00:16:37.880><c> like</c><00:16:38.720><c> uh</c><00:16:39.000><c> I</c>

00:16:39.069 --> 00:16:39.079 align:start position:0%
a million tests and you have like uh I
 

00:16:39.079 --> 00:16:40.829 align:start position:0%
a million tests and you have like uh I
don't<00:16:39.199><c> know</c><00:16:39.440><c> thousand</c><00:16:39.800><c> of</c><00:16:39.959><c> tests</c><00:16:40.240><c> failing</c><00:16:40.720><c> and</c>

00:16:40.829 --> 00:16:40.839 align:start position:0%
don't know thousand of tests failing and
 

00:16:40.839 --> 00:16:42.790 align:start position:0%
don't know thousand of tests failing and
you<00:16:41.000><c> have</c><00:16:41.120><c> to</c><00:16:41.600><c> ensure</c>

00:16:42.790 --> 00:16:42.800 align:start position:0%
you have to ensure
 

00:16:42.800 --> 00:16:45.430 align:start position:0%
you have to ensure
that<00:16:43.800><c> you</c><00:16:43.920><c> have</c><00:16:44.040><c> to</c><00:16:44.279><c> real</c><00:16:44.680><c> you</c><00:16:44.880><c> have</c><00:16:45.000><c> to</c>

00:16:45.430 --> 00:16:45.440 align:start position:0%
that you have to real you have to
 

00:16:45.440 --> 00:16:47.389 align:start position:0%
that you have to real you have to
understand<00:16:45.680><c> whether</c><00:16:46.000><c> those</c><00:16:46.199><c> are</c><00:16:47.040><c> uh</c><00:16:47.160><c> because</c>

00:16:47.389 --> 00:16:47.399 align:start position:0%
understand whether those are uh because
 

00:16:47.399 --> 00:16:49.550 align:start position:0%
understand whether those are uh because
of<00:16:47.519><c> such</c><00:16:47.759><c> optimizations</c><00:16:48.519><c> and</c><00:16:48.759><c> this</c><00:16:48.839><c> is</c><00:16:49.120><c> legit</c>

00:16:49.550 --> 00:16:49.560 align:start position:0%
of such optimizations and this is legit
 

00:16:49.560 --> 00:16:51.590 align:start position:0%
of such optimizations and this is legit
case<00:16:49.759><c> or</c><00:16:50.040><c> whe</c><00:16:50.240><c> this</c><00:16:50.360><c> is</c><00:16:50.440><c> a</c><00:16:50.600><c> real</c><00:16:50.880><c> bug</c><00:16:51.240><c> so</c><00:16:51.480><c> this</c>

00:16:51.590 --> 00:16:51.600 align:start position:0%
case or whe this is a real bug so this
 

00:16:51.600 --> 00:16:53.389 align:start position:0%
case or whe this is a real bug so this
is<00:16:51.759><c> something</c><00:16:52.079><c> to</c><00:16:52.399><c> work</c><00:16:52.680><c> with</c><00:16:52.959><c> the</c><00:16:53.120><c> client</c>

00:16:53.389 --> 00:16:53.399 align:start position:0%
is something to work with the client
 

00:16:53.399 --> 00:16:54.629 align:start position:0%
is something to work with the client
developers

00:16:54.629 --> 00:16:54.639 align:start position:0%
developers
 

00:16:54.639 --> 00:16:57.870 align:start position:0%
developers
on<00:16:55.639><c> and</c><00:16:56.040><c> as</c><00:16:56.120><c> a</c><00:16:56.279><c> Next</c><00:16:56.519><c> Step</c><00:16:56.839><c> as</c><00:16:56.959><c> a</c><00:16:57.079><c> next</c><00:16:57.240><c> low</c><00:16:57.560><c> step</c>

00:16:57.870 --> 00:16:57.880 align:start position:0%
on and as a Next Step as a next low step
 

00:16:57.880 --> 00:16:59.870 align:start position:0%
on and as a Next Step as a next low step
we<00:16:58.079><c> want</c><00:16:58.279><c> to</c><00:16:58.440><c> integrate</c><00:16:59.040><c> this</c><00:16:59.160><c> test</c><00:16:59.360><c> you</c><00:16:59.639><c> into</c>

00:16:59.870 --> 00:16:59.880 align:start position:0%
we want to integrate this test you into
 

00:16:59.880 --> 00:17:02.749 align:start position:0%
we want to integrate this test you into
other<00:17:00.360><c> consens</c><00:17:00.880><c> clients</c><00:17:01.360><c> here</c><00:17:01.560><c> we</c><00:17:01.759><c> engage</c>

00:17:02.749 --> 00:17:02.759 align:start position:0%
other consens clients here we engage
 

00:17:02.759 --> 00:17:06.510 align:start position:0%
other consens clients here we engage
other<00:17:03.000><c> client</c><00:17:03.360><c> developers</c><00:17:04.360><c> to</c><00:17:04.520><c> to</c><00:17:04.679><c> help</c><00:17:04.919><c> us</c>

00:17:06.510 --> 00:17:06.520 align:start position:0%
other client developers to to help us
 

00:17:06.520 --> 00:17:09.750 align:start position:0%
other client developers to to help us
with<00:17:07.520><c> and</c><00:17:08.000><c> yeah</c><00:17:08.280><c> yeah</c><00:17:08.520><c> okay</c><00:17:08.679><c> so</c><00:17:09.039><c> one</c><00:17:09.400><c> of</c><00:17:09.600><c> the</c>

00:17:09.750 --> 00:17:09.760 align:start position:0%
with and yeah yeah okay so one of the
 

00:17:09.760 --> 00:17:12.270 align:start position:0%
with and yeah yeah okay so one of the
most<00:17:10.120><c> important</c><00:17:11.120><c> things</c><00:17:11.360><c> to</c><00:17:11.520><c> do</c><00:17:11.720><c> is</c><00:17:11.839><c> to</c><00:17:12.000><c> speed</c>

00:17:12.270 --> 00:17:12.280 align:start position:0%
most important things to do is to speed
 

00:17:12.280 --> 00:17:15.429 align:start position:0%
most important things to do is to speed
up<00:17:12.480><c> test</c><00:17:13.000><c> generation</c><00:17:14.000><c> and</c><00:17:14.319><c> okay</c><00:17:14.559><c> one</c><00:17:15.079><c> thing</c>

00:17:15.429 --> 00:17:15.439 align:start position:0%
up test generation and okay one thing
 

00:17:15.439 --> 00:17:17.150 align:start position:0%
up test generation and okay one thing
that<00:17:15.559><c> we</c><00:17:15.679><c> want</c><00:17:15.839><c> to</c><00:17:16.000><c> do</c><00:17:16.120><c> is</c><00:17:16.240><c> to</c><00:17:16.439><c> transpile</c>

00:17:17.150 --> 00:17:17.160 align:start position:0%
that we want to do is to transpile
 

00:17:17.160 --> 00:17:20.230 align:start position:0%
that we want to do is to transpile
specification<00:17:17.799><c> to</c><00:17:18.000><c> C</c><00:17:18.400><c> or</c><00:17:18.600><c> to</c><00:17:18.839><c> n</c><00:17:19.199><c> rust</c><00:17:19.720><c> other</c>

00:17:20.230 --> 00:17:20.240 align:start position:0%
specification to C or to n rust other
 

00:17:20.240 --> 00:17:23.710 align:start position:0%
specification to C or to n rust other
compiled<00:17:21.120><c> language</c><00:17:22.120><c> and</c><00:17:22.280><c> of</c><00:17:22.400><c> course</c><00:17:22.640><c> there</c><00:17:23.480><c> a</c>

00:17:23.710 --> 00:17:23.720 align:start position:0%
compiled language and of course there a
 

00:17:23.720 --> 00:17:27.069 align:start position:0%
compiled language and of course there a
problem<00:17:24.280><c> that</c><00:17:24.640><c> a</c><00:17:24.880><c> transpired</c><00:17:25.760><c> code</c><00:17:26.760><c> there</c><00:17:26.919><c> can</c>

00:17:27.069 --> 00:17:27.079 align:start position:0%
problem that a transpired code there can
 

00:17:27.079 --> 00:17:29.710 align:start position:0%
problem that a transpired code there can
be<00:17:27.240><c> a</c><00:17:27.360><c> bu</c><00:17:27.679><c> into</c><00:17:27.959><c> the</c><00:17:28.199><c> translation</c>

00:17:29.710 --> 00:17:29.720 align:start position:0%
be a bu into the translation
 

00:17:29.720 --> 00:17:32.230 align:start position:0%
be a bu into the translation
but<00:17:30.400><c> uh</c><00:17:30.600><c> since</c><00:17:30.880><c> we</c><00:17:31.000><c> are</c><00:17:31.160><c> translating</c><00:17:31.880><c> function</c>

00:17:32.230 --> 00:17:32.240 align:start position:0%
but uh since we are translating function
 

00:17:32.240 --> 00:17:34.630 align:start position:0%
but uh since we are translating function
to<00:17:32.480><c> function</c><00:17:32.919><c> it's</c><00:17:33.200><c> actually</c><00:17:33.720><c> much</c><00:17:34.000><c> easier</c><00:17:34.400><c> to</c>

00:17:34.630 --> 00:17:34.640 align:start position:0%
to function it's actually much easier to
 

00:17:34.640 --> 00:17:37.710 align:start position:0%
to function it's actually much easier to
test<00:17:35.080><c> each</c><00:17:35.280><c> function</c><00:17:35.720><c> individually</c>

00:17:37.710 --> 00:17:37.720 align:start position:0%
test each function individually
 

00:17:37.720 --> 00:17:40.789 align:start position:0%
test each function individually
individually<00:17:38.720><c> and</c><00:17:39.080><c> another</c><00:17:39.720><c> approach</c><00:17:40.600><c> uh</c>

00:17:40.789 --> 00:17:40.799 align:start position:0%
individually and another approach uh
 

00:17:40.799 --> 00:17:43.669 align:start position:0%
individually and another approach uh
another<00:17:41.799><c> important</c><00:17:42.799><c> thing</c><00:17:43.120><c> is</c><00:17:43.280><c> that</c><00:17:43.480><c> to</c>

00:17:43.669 --> 00:17:43.679 align:start position:0%
another important thing is that to
 

00:17:43.679 --> 00:17:45.950 align:start position:0%
another important thing is that to
optimize<00:17:44.200><c> all</c><00:17:44.520><c> components</c><00:17:45.080><c> we</c><00:17:45.320><c> have</c><00:17:45.559><c> already</c>

00:17:45.950 --> 00:17:45.960 align:start position:0%
optimize all components we have already
 

00:17:45.960 --> 00:17:48.669 align:start position:0%
optimize all components we have already
experimented<00:17:46.640><c> with</c><00:17:46.880><c> faster</c><00:17:47.679><c> implementation</c>

00:17:48.669 --> 00:17:48.679 align:start position:0%
experimented with faster implementation
 

00:17:48.679 --> 00:17:53.190 align:start position:0%
experimented with faster implementation
so<00:17:49.120><c> we</c><00:17:49.919><c> as</c><00:17:50.039><c> a</c><00:17:50.240><c> result</c><00:17:50.640><c> we</c><00:17:50.919><c> expect</c><00:17:51.880><c> uh</c><00:17:52.120><c> that</c><00:17:52.679><c> our</c>

00:17:53.190 --> 00:17:53.200 align:start position:0%
so we as a result we expect uh that our
 

00:17:53.200 --> 00:17:55.870 align:start position:0%
so we as a result we expect uh that our
test<00:17:53.720><c> should</c><00:17:54.039><c> run</c><00:17:54.840><c> uh</c><00:17:55.120><c> test</c><00:17:55.400><c> should</c><00:17:55.600><c> be</c>

00:17:55.870 --> 00:17:55.880 align:start position:0%
test should run uh test should be
 

00:17:55.880 --> 00:17:59.390 align:start position:0%
test should run uh test should be
generated<00:17:56.520><c> at</c><00:17:56.679><c> least</c><00:17:56.919><c> 10</c><00:17:57.280><c> times</c><00:17:57.640><c> faster</c><00:17:59.080><c> and</c>

00:17:59.390 --> 00:17:59.400 align:start position:0%
generated at least 10 times faster and
 

00:17:59.400 --> 00:18:03.190 align:start position:0%
generated at least 10 times faster and
also<00:17:59.960><c> an</c><00:18:00.159><c> important</c><00:18:00.840><c> thing</c><00:18:01.840><c> is</c><00:18:02.080><c> to</c><00:18:02.440><c> implement</c>

00:18:03.190 --> 00:18:03.200 align:start position:0%
also an important thing is to implement
 

00:18:03.200 --> 00:18:06.630 align:start position:0%
also an important thing is to implement
coverage<00:18:03.760><c> guided</c><00:18:04.760><c> fast</c><00:18:05.159><c> testing</c><00:18:05.760><c> of</c><00:18:06.280><c> client</c>

00:18:06.630 --> 00:18:06.640 align:start position:0%
coverage guided fast testing of client
 

00:18:06.640 --> 00:18:09.510 align:start position:0%
coverage guided fast testing of client
implementation<00:18:07.559><c> and</c><00:18:07.760><c> for</c><00:18:08.039><c> this</c><00:18:08.280><c> reason</c><00:18:08.720><c> we</c>

00:18:09.510 --> 00:18:09.520 align:start position:0%
implementation and for this reason we
 

00:18:09.520 --> 00:18:14.149 align:start position:0%
implementation and for this reason we
it's<00:18:10.120><c> critical</c><00:18:10.720><c> to</c><00:18:10.960><c> have</c><00:18:11.919><c> fast</c><00:18:12.480><c> test</c>

00:18:14.149 --> 00:18:14.159 align:start position:0%
it's critical to have fast test
 

00:18:14.159 --> 00:18:16.669 align:start position:0%
it's critical to have fast test
Generation<00:18:15.159><c> Um</c><00:18:15.400><c> so</c><00:18:15.919><c> if</c><00:18:16.039><c> you</c><00:18:16.159><c> want</c><00:18:16.240><c> to</c><00:18:16.440><c> talk</c>

00:18:16.669 --> 00:18:16.679 align:start position:0%
Generation Um so if you want to talk
 

00:18:16.679 --> 00:18:18.870 align:start position:0%
Generation Um so if you want to talk
about<00:18:17.080><c> this</c><00:18:17.440><c> topic</c><00:18:17.799><c> reaches</c><00:18:18.240><c> out</c><00:18:18.559><c> you</c><00:18:18.640><c> can</c>

00:18:18.870 --> 00:18:18.880 align:start position:0%
about this topic reaches out you can
 

00:18:18.880 --> 00:18:21.789 align:start position:0%
about this topic reaches out you can
also<00:18:19.159><c> find</c><00:18:19.440><c> us</c><00:18:19.600><c> on</c><00:18:19.840><c> E</c><00:18:20.200><c> andd</c><00:18:20.600><c> Discord</c><00:18:21.440><c> here</c><00:18:21.600><c> is</c>

00:18:21.789 --> 00:18:21.799 align:start position:0%
also find us on E andd Discord here is
 

00:18:21.799 --> 00:18:24.549 align:start position:0%
also find us on E andd Discord here is
the<00:18:21.960><c> core</c><00:18:22.320><c> code</c><00:18:22.840><c> which</c><00:18:23.480><c> uh</c><00:18:23.679><c> links</c><00:18:24.000><c> you</c><00:18:24.159><c> to</c><00:18:24.320><c> a</c>

00:18:24.549 --> 00:18:24.559 align:start position:0%
the core code which uh links you to a
 

00:18:24.559 --> 00:18:27.510 align:start position:0%
the core code which uh links you to a
page<00:18:25.240><c> uh</c><00:18:25.480><c> with</c><00:18:25.600><c> the</c><00:18:25.840><c> references</c><00:18:26.840><c> uh</c><00:18:27.000><c> to</c><00:18:27.400><c> the</c>

00:18:27.510 --> 00:18:27.520 align:start position:0%
page uh with the references uh to the
 

00:18:27.520 --> 00:18:29.549 align:start position:0%
page uh with the references uh to the
work<00:18:27.760><c> we</c><00:18:27.919><c> did</c><00:18:28.440><c> there</c><00:18:28.559><c> is</c><00:18:28.840><c> a</c><00:18:29.039><c> description</c><00:18:29.440><c> of</c>

00:18:29.549 --> 00:18:29.559 align:start position:0%
work we did there is a description of
 

00:18:29.559 --> 00:18:32.110 align:start position:0%
work we did there is a description of
the<00:18:29.720><c> test</c><00:18:29.919><c> and</c><00:18:30.080><c> methodology</c><00:18:30.720><c> there</c><00:18:30.840><c> is</c><00:18:30.960><c> a</c><00:18:31.919><c> uh</c>

00:18:32.110 --> 00:18:32.120 align:start position:0%
the test and methodology there is a uh
 

00:18:32.120 --> 00:18:34.270 align:start position:0%
the test and methodology there is a uh
link<00:18:32.360><c> to</c><00:18:32.480><c> the</c><00:18:32.640><c> pr</c><00:18:33.000><c> to</c><00:18:33.200><c> this</c><00:18:33.400><c> pack</c><00:18:34.120><c> which</c>

00:18:34.270 --> 00:18:34.280 align:start position:0%
link to the pr to this pack which
 

00:18:34.280 --> 00:18:36.390 align:start position:0%
link to the pr to this pack which
introduces<00:18:34.840><c> the</c><00:18:34.960><c> test</c><00:18:35.200><c> generator</c><00:18:35.679><c> for</c><00:18:36.120><c> this</c>

00:18:36.390 --> 00:18:36.400 align:start position:0%
introduces the test generator for this
 

00:18:36.400 --> 00:18:40.990 align:start position:0%
introduces the test generator for this
suit<00:18:36.840><c> and</c><00:18:37.039><c> also</c><00:18:37.320><c> there</c><00:18:37.480><c> is</c><00:18:37.720><c> the</c><00:18:38.440><c> pr</c><00:18:39.320><c> uh</c><00:18:39.600><c> that</c><00:18:40.320><c> uh</c>

00:18:40.990 --> 00:18:41.000 align:start position:0%
suit and also there is the pr uh that uh
 

00:18:41.000 --> 00:18:44.310 align:start position:0%
suit and also there is the pr uh that uh
PR<00:18:41.320><c> to</c><00:18:41.480><c> te</c><00:18:42.039><c> that</c><00:18:42.200><c> integrates</c><00:18:42.720><c> the</c><00:18:42.880><c> Su</c><00:18:43.200><c> into</c><00:18:43.799><c> Teo</c>

00:18:44.310 --> 00:18:44.320 align:start position:0%
PR to te that integrates the Su into Teo
 

00:18:44.320 --> 00:18:46.950 align:start position:0%
PR to te that integrates the Su into Teo
thank<00:18:44.440><c> you</c><00:18:44.559><c> very</c><00:18:44.799><c> much</c><00:18:45.679><c> thank</c><00:18:45.880><c> you</c><00:18:46.640><c> thank</c><00:18:46.799><c> you</c>

00:18:46.950 --> 00:18:46.960 align:start position:0%
thank you very much thank you thank you
 

00:18:46.960 --> 00:18:49.750 align:start position:0%
thank you very much thank you thank you
very<00:18:47.159><c> much</c><00:18:47.400><c> Alex</c><00:18:47.720><c> and</c><00:18:47.919><c> mik</c><00:18:48.840><c> all</c>

00:18:49.750 --> 00:18:49.760 align:start position:0%
very much Alex and mik all
 

00:18:49.760 --> 00:18:52.029 align:start position:0%
very much Alex and mik all
right<00:18:50.760><c> great</c><00:18:51.000><c> to</c><00:18:51.120><c> see</c><00:18:51.360><c> you</c><00:18:51.480><c> got</c><00:18:51.640><c> a</c><00:18:51.720><c> lot</c><00:18:51.880><c> of</c>

00:18:52.029 --> 00:18:52.039 align:start position:0%
right great to see you got a lot of
 

00:18:52.039 --> 00:18:53.549 align:start position:0%
right great to see you got a lot of
support<00:18:52.400><c> from</c><00:18:52.600><c> the</c><00:18:52.799><c> audience</c><00:18:53.280><c> that's</c>

00:18:53.549 --> 00:18:53.559 align:start position:0%
support from the audience that's
 

00:18:53.559 --> 00:18:55.470 align:start position:0%
support from the audience that's
fantastic<00:18:54.440><c> now</c><00:18:54.679><c> I</c><00:18:54.799><c> wish</c><00:18:55.000><c> I</c><00:18:55.080><c> could</c><00:18:55.240><c> say</c><00:18:55.360><c> I</c>

00:18:55.470 --> 00:18:55.480 align:start position:0%
fantastic now I wish I could say I
 

00:18:55.480 --> 00:18:57.070 align:start position:0%
fantastic now I wish I could say I
understood<00:18:55.919><c> the</c><00:18:56.080><c> topic</c><00:18:56.320><c> of</c><00:18:56.480><c> the</c><00:18:56.600><c> content</c><00:18:56.960><c> but</c>

00:18:57.070 --> 00:18:57.080 align:start position:0%
understood the topic of the content but
 

00:18:57.080 --> 00:18:59.029 align:start position:0%
understood the topic of the content but
I<00:18:57.200><c> didn't</c><00:18:57.559><c> but</c><00:18:57.880><c> I'm</c><00:18:57.960><c> sure</c><00:18:58.200><c> the</c><00:18:58.280><c> audience</c>

00:18:59.029 --> 00:18:59.039 align:start position:0%
I didn't but I'm sure the audience
 

00:18:59.039 --> 00:19:00.710 align:start position:0%
I didn't but I'm sure the audience
because<00:18:59.200><c> they're</c><00:18:59.360><c> asking</c><00:18:59.679><c> lots</c><00:18:59.840><c> of</c><00:19:00.039><c> questions</c>

00:19:00.710 --> 00:19:00.720 align:start position:0%
because they're asking lots of questions
 

00:19:00.720 --> 00:19:02.549 align:start position:0%
because they're asking lots of questions
I'm<00:19:00.960><c> very</c><00:19:01.120><c> honest</c><00:19:01.520><c> about</c><00:19:01.760><c> it</c><00:19:01.919><c> you</c><00:19:02.039><c> know</c><00:19:02.440><c> uh</c>

00:19:02.549 --> 00:19:02.559 align:start position:0%
I'm very honest about it you know uh
 

00:19:02.559 --> 00:19:04.110 align:start position:0%
I'm very honest about it you know uh
please<00:19:02.799><c> upvote</c><00:19:03.240><c> your</c><00:19:03.400><c> questions</c><00:19:03.760><c> which</c><00:19:03.919><c> are</c>

00:19:04.110 --> 00:19:04.120 align:start position:0%
please upvote your questions which are
 

00:19:04.120 --> 00:19:05.510 align:start position:0%
please upvote your questions which are
most<00:19:04.360><c> popular</c><00:19:04.840><c> and</c><00:19:04.960><c> we're</c><00:19:05.080><c> going</c><00:19:05.200><c> to</c><00:19:05.280><c> look</c><00:19:05.400><c> at</c>

00:19:05.510 --> 00:19:05.520 align:start position:0%
most popular and we're going to look at
 

00:19:05.520 --> 00:19:07.110 align:start position:0%
most popular and we're going to look at
the<00:19:05.640><c> screen</c><00:19:05.919><c> and</c><00:19:06.240><c> take</c><00:19:06.400><c> a</c><00:19:06.520><c> run</c><00:19:06.799><c> through</c><00:19:06.960><c> the</c>

00:19:07.110 --> 00:19:07.120 align:start position:0%
the screen and take a run through the
 

00:19:07.120 --> 00:19:09.230 align:start position:0%
the screen and take a run through the
questions<00:19:07.520><c> right</c><00:19:07.679><c> at</c><00:19:07.799><c> the</c><00:19:08.000><c> top</c><00:19:08.480><c> do</c><00:19:08.679><c> you</c><00:19:08.919><c> run</c>

00:19:09.230 --> 00:19:09.240 align:start position:0%
questions right at the top do you run
 

00:19:09.240 --> 00:19:11.590 align:start position:0%
questions right at the top do you run
Fork<00:19:09.640><c> Choice</c><00:19:10.039><c> tests</c><00:19:10.520><c> covering</c><00:19:11.000><c> nonf</c>

00:19:11.590 --> 00:19:11.600 align:start position:0%
Fork Choice tests covering nonf
 

00:19:11.600 --> 00:19:13.950 align:start position:0%
Fork Choice tests covering nonf
finalization<00:19:12.600><c> with</c><00:19:12.880><c> multiple</c><00:19:13.400><c> Forks</c><00:19:13.799><c> who'd</c>

00:19:13.950 --> 00:19:13.960 align:start position:0%
finalization with multiple Forks who'd
 

00:19:13.960 --> 00:19:15.669 align:start position:0%
finalization with multiple Forks who'd
like<00:19:14.120><c> to</c><00:19:14.200><c> take</c><00:19:14.320><c> this</c><00:19:14.559><c> question</c><00:19:14.919><c> I</c><00:19:15.039><c> I</c><00:19:15.159><c> love</c><00:19:15.480><c> this</c>

00:19:15.669 --> 00:19:15.679 align:start position:0%
like to take this question I I love this
 

00:19:15.679 --> 00:19:18.750 align:start position:0%
like to take this question I I love this
question<00:19:16.120><c> because</c><00:19:16.679><c> I</c><00:19:17.320><c> before</c><00:19:17.840><c> this</c><00:19:18.080><c> talk</c><00:19:18.559><c> an</c>

00:19:18.750 --> 00:19:18.760 align:start position:0%
question because I before this talk an
 

00:19:18.760 --> 00:19:20.549 align:start position:0%
question because I before this talk an
hour<00:19:19.200><c> before</c><00:19:19.480><c> this</c><00:19:19.640><c> talk</c><00:19:19.880><c> I</c><00:19:20.000><c> was</c><00:19:20.200><c> thinking</c>

00:19:20.549 --> 00:19:20.559 align:start position:0%
hour before this talk I was thinking
 

00:19:20.559 --> 00:19:22.990 align:start position:0%
hour before this talk I was thinking
about<00:19:21.000><c> having</c><00:19:21.280><c> this</c><00:19:21.480><c> test</c><00:19:21.720><c> in</c><00:19:21.919><c> suit</c><00:19:22.320><c> because</c>

00:19:22.990 --> 00:19:23.000 align:start position:0%
about having this test in suit because
 

00:19:23.000 --> 00:19:24.950 align:start position:0%
about having this test in suit because
if<00:19:23.120><c> you</c><00:19:23.360><c> have</c><00:19:23.720><c> if</c><00:19:23.840><c> you've</c><00:19:24.120><c> been</c><00:19:24.320><c> at</c><00:19:24.480><c> the</c><00:19:24.640><c> dep</c>

00:19:24.950 --> 00:19:24.960 align:start position:0%
if you have if you've been at the dep
 

00:19:24.960 --> 00:19:27.190 align:start position:0%
if you have if you've been at the dep
Lance<00:19:25.559><c> presentation</c><00:19:26.280><c> who</c><00:19:26.440><c> was</c><00:19:26.640><c> presenting</c><00:19:27.080><c> on</c>

00:19:27.190 --> 00:19:27.200 align:start position:0%
Lance presentation who was presenting on
 

00:19:27.200 --> 00:19:29.230 align:start position:0%
Lance presentation who was presenting on
the<00:19:27.320><c> non-f</c><00:19:27.640><c> finality</c><00:19:28.280><c> and</c><00:19:28.440><c> how</c><00:19:28.760><c> can</c><00:19:28.880><c> it</c><00:19:29.039><c> kill</c>

00:19:29.230 --> 00:19:29.240 align:start position:0%
the non-f finality and how can it kill
 

00:19:29.240 --> 00:19:31.190 align:start position:0%
the non-f finality and how can it kill
ethereum<00:19:30.080><c> this</c><00:19:30.200><c> is</c><00:19:30.400><c> very</c><00:19:30.640><c> important</c><00:19:31.000><c> for</c>

00:19:31.190 --> 00:19:31.200 align:start position:0%
ethereum this is very important for
 

00:19:31.200 --> 00:19:33.230 align:start position:0%
ethereum this is very important for
clients<00:19:31.520><c> to</c><00:19:31.720><c> have</c><00:19:31.919><c> this</c><00:19:32.120><c> kind</c><00:19:32.280><c> of</c><00:19:32.799><c> testing</c>

00:19:33.230 --> 00:19:33.240 align:start position:0%
clients to have this kind of testing
 

00:19:33.240 --> 00:19:35.830 align:start position:0%
clients to have this kind of testing
suit<00:19:34.039><c> uh</c><00:19:34.159><c> we</c><00:19:34.280><c> haven't</c><00:19:34.720><c> think</c><00:19:35.240><c> thought</c><00:19:35.520><c> about</c>

00:19:35.830 --> 00:19:35.840 align:start position:0%
suit uh we haven't think thought about
 

00:19:35.840 --> 00:19:39.190 align:start position:0%
suit uh we haven't think thought about
this<00:19:36.039><c> much</c><00:19:36.440><c> but</c><00:19:36.840><c> I</c><00:19:37.039><c> think</c><00:19:37.360><c> it</c><00:19:37.480><c> is</c><00:19:37.919><c> doable</c><00:19:38.919><c> uh</c>

00:19:39.190 --> 00:19:39.200 align:start position:0%
this much but I think it is doable uh
 

00:19:39.200 --> 00:19:41.390 align:start position:0%
this much but I think it is doable uh
and<00:19:39.640><c> yeah</c><00:19:39.919><c> I'm</c><00:19:40.080><c> I'm</c><00:19:40.240><c> very</c><00:19:40.480><c> happy</c><00:19:40.720><c> to</c><00:19:40.919><c> discuss</c>

00:19:41.390 --> 00:19:41.400 align:start position:0%
and yeah I'm I'm very happy to discuss
 

00:19:41.400 --> 00:19:45.029 align:start position:0%
and yeah I'm I'm very happy to discuss
this<00:19:41.880><c> um</c><00:19:42.120><c> and</c><00:19:42.520><c> try</c><00:19:42.799><c> to</c><00:19:43.000><c> make</c><00:19:43.559><c> something</c><00:19:44.559><c> uh</c><00:19:44.880><c> and</c>

00:19:45.029 --> 00:19:45.039 align:start position:0%
this um and try to make something uh and
 

00:19:45.039 --> 00:19:47.110 align:start position:0%
this um and try to make something uh and
try<00:19:45.240><c> to</c><00:19:45.400><c> make</c><00:19:45.520><c> a</c><00:19:45.679><c> suit</c><00:19:46.080><c> that</c><00:19:46.280><c> would</c><00:19:46.559><c> test</c><00:19:46.840><c> nonf</c>

00:19:47.110 --> 00:19:47.120 align:start position:0%
try to make a suit that would test nonf
 

00:19:47.120 --> 00:19:49.029 align:start position:0%
try to make a suit that would test nonf
finality<00:19:47.679><c> and</c><00:19:47.919><c> let</c><00:19:48.240><c> clients</c><00:19:48.600><c> do</c><00:19:48.840><c> their</c>

00:19:49.029 --> 00:19:49.039 align:start position:0%
finality and let clients do their
 

00:19:49.039 --> 00:19:51.710 align:start position:0%
finality and let clients do their
optimizations<00:19:50.000><c> and</c><00:19:50.400><c> uh</c><00:19:50.799><c> check</c><00:19:51.120><c> them</c><00:19:51.320><c> by</c><00:19:51.559><c> just</c>

00:19:51.710 --> 00:19:51.720 align:start position:0%
optimizations and uh check them by just
 

00:19:51.720 --> 00:19:54.070 align:start position:0%
optimizations and uh check them by just
running<00:19:52.240><c> this</c><00:19:52.480><c> on</c><00:19:52.799><c> the</c><00:19:53.039><c> computer</c><00:19:53.679><c> excellent</c>

00:19:54.070 --> 00:19:54.080 align:start position:0%
running this on the computer excellent
 

00:19:54.080 --> 00:19:56.190 align:start position:0%
running this on the computer excellent
from<00:19:54.360><c> one</c><00:19:54.880><c> one</c><00:19:55.159><c> question</c><00:19:55.480><c> can</c><00:19:55.679><c> change</c>

00:19:56.190 --> 00:19:56.200 align:start position:0%
from one one question can change
 

00:19:56.200 --> 00:19:58.270 align:start position:0%
from one one question can change
everything<00:19:56.720><c> right</c><00:19:57.320><c> uh</c><00:19:57.520><c> now</c><00:19:57.760><c> the</c><00:19:57.919><c> question</c><00:19:58.200><c> at</c>

00:19:58.270 --> 00:19:58.280 align:start position:0%
everything right uh now the question at
 

00:19:58.280 --> 00:20:00.750 align:start position:0%
everything right uh now the question at
the<00:19:58.400><c> top</c><00:19:58.720><c> this</c><00:19:58.880><c> test</c><00:19:59.280><c> generator</c><00:20:00.080><c> Rock</c><00:20:00.520><c> so</c>

00:20:00.750 --> 00:20:00.760 align:start position:0%
the top this test generator Rock so
 

00:20:00.760 --> 00:20:02.470 align:start position:0%
the top this test generator Rock so
another<00:20:01.080><c> round</c><00:20:01.280><c> of</c><00:20:01.400><c> applause</c><00:20:01.720><c> for</c><00:20:02.039><c> creating</c>

00:20:02.470 --> 00:20:02.480 align:start position:0%
another round of applause for creating
 

00:20:02.480 --> 00:20:04.909 align:start position:0%
another round of applause for creating
such<00:20:02.640><c> a</c><00:20:02.799><c> wonderful</c><00:20:03.280><c> test</c>

00:20:04.909 --> 00:20:04.919 align:start position:0%
such a wonderful test
 

00:20:04.919 --> 00:20:07.029 align:start position:0%
such a wonderful test
generator<00:20:05.919><c> again</c><00:20:06.159><c> if</c><00:20:06.240><c> you</c><00:20:06.360><c> want</c><00:20:06.440><c> to</c><00:20:06.679><c> give</c>

00:20:07.029 --> 00:20:07.039 align:start position:0%
generator again if you want to give
 

00:20:07.039 --> 00:20:09.070 align:start position:0%
generator again if you want to give
feedback<00:20:07.720><c> before</c><00:20:07.960><c> you</c><00:20:08.120><c> go</c><00:20:08.320><c> into</c><00:20:08.520><c> the</c><00:20:08.640><c> Q&amp;A</c>

00:20:09.070 --> 00:20:09.080 align:start position:0%
feedback before you go into the Q&amp;A
 

00:20:09.080 --> 00:20:10.230 align:start position:0%
feedback before you go into the Q&amp;A
there's<00:20:09.200><c> a</c><00:20:09.320><c> little</c><00:20:09.520><c> box</c><00:20:09.720><c> for</c><00:20:09.880><c> speaker</c>

00:20:10.230 --> 00:20:10.240 align:start position:0%
there's a little box for speaker
 

00:20:10.240 --> 00:20:11.990 align:start position:0%
there's a little box for speaker
feedback<00:20:10.880><c> please</c><00:20:11.080><c> go</c><00:20:11.280><c> and</c><00:20:11.400><c> write</c><00:20:11.600><c> it</c><00:20:11.720><c> there</c><00:20:11.840><c> so</c>

00:20:11.990 --> 00:20:12.000 align:start position:0%
feedback please go and write it there so
 

00:20:12.000 --> 00:20:13.549 align:start position:0%
feedback please go and write it there so
the<00:20:12.120><c> speakers</c><00:20:12.520><c> can</c><00:20:12.760><c> take</c><00:20:13.080><c> take</c><00:20:13.240><c> a</c><00:20:13.320><c> look</c><00:20:13.440><c> at</c>

00:20:13.549 --> 00:20:13.559 align:start position:0%
the speakers can take take a look at
 

00:20:13.559 --> 00:20:14.950 align:start position:0%
the speakers can take take a look at
that<00:20:13.679><c> but</c><00:20:13.799><c> well</c><00:20:13.960><c> done</c><00:20:14.120><c> to</c><00:20:14.280><c> both</c><00:20:14.400><c> of</c><00:20:14.520><c> you</c><00:20:14.679><c> let's</c>

00:20:14.950 --> 00:20:14.960 align:start position:0%
that but well done to both of you let's
 

00:20:14.960 --> 00:20:17.310 align:start position:0%
that but well done to both of you let's
go<00:20:15.120><c> to</c><00:20:15.240><c> the</c><00:20:15.400><c> next</c><00:20:15.600><c> few</c><00:20:15.840><c> questions</c><00:20:16.559><c> do</c><00:20:16.720><c> you</c><00:20:17.000><c> plan</c>

00:20:17.310 --> 00:20:17.320 align:start position:0%
go to the next few questions do you plan
 

00:20:17.320 --> 00:20:20.110 align:start position:0%
go to the next few questions do you plan
to<00:20:17.559><c> set</c><00:20:17.760><c> up</c><00:20:18.000><c> a</c><00:20:18.240><c> dashboard</c><00:20:19.200><c> to</c><00:20:19.360><c> show</c><00:20:19.720><c> test</c>

00:20:20.110 --> 00:20:20.120 align:start position:0%
to set up a dashboard to show test
 

00:20:20.120 --> 00:20:22.710 align:start position:0%
to set up a dashboard to show test
results<00:20:20.640><c> from</c><00:20:20.919><c> different</c><00:20:21.240><c> CL</c><00:20:21.799><c> clients</c><00:20:22.400><c> like</c>

00:20:22.710 --> 00:20:22.720 align:start position:0%
results from different CL clients like
 

00:20:22.720 --> 00:20:24.510 align:start position:0%
results from different CL clients like
Hive<00:20:23.120><c> who</c><00:20:23.200><c> wouldd</c><00:20:23.360><c> like</c><00:20:23.480><c> to</c><00:20:23.640><c> take</c><00:20:23.840><c> this</c><00:20:24.320><c> um</c>

00:20:24.510 --> 00:20:24.520 align:start position:0%
Hive who wouldd like to take this um
 

00:20:24.520 --> 00:20:27.669 align:start position:0%
Hive who wouldd like to take this um
I'll<00:20:24.760><c> take</c><00:20:25.000><c> this</c><00:20:25.559><c> I</c><00:20:26.559><c> we</c><00:20:26.799><c> don't</c><00:20:27.159><c> have</c><00:20:27.400><c> such</c>

00:20:27.669 --> 00:20:27.679 align:start position:0%
I'll take this I we don't have such
 

00:20:27.679 --> 00:20:30.070 align:start position:0%
I'll take this I we don't have such
dashboard<00:20:28.240><c> for</c><00:20:28.720><c> other</c><00:20:29.000><c> CL</c><00:20:29.400><c> tests</c><00:20:29.720><c> we</c><00:20:29.840><c> have</c><00:20:29.960><c> a</c>

00:20:30.070 --> 00:20:30.080 align:start position:0%
dashboard for other CL tests we have a
 

00:20:30.080 --> 00:20:32.909 align:start position:0%
dashboard for other CL tests we have a
plenty<00:20:30.320><c> of</c><00:20:30.440><c> Cl</c><00:20:30.720><c> tests</c><00:20:31.080><c> that</c><00:20:31.400><c> are</c><00:20:32.120><c> uh</c><00:20:32.400><c> run</c><00:20:32.720><c> by</c>

00:20:32.909 --> 00:20:32.919 align:start position:0%
plenty of Cl tests that are uh run by
 

00:20:32.919 --> 00:20:34.950 align:start position:0%
plenty of Cl tests that are uh run by
clients<00:20:33.799><c> and</c><00:20:34.159><c> yeah</c><00:20:34.280><c> I</c><00:20:34.360><c> haven't</c><00:20:34.640><c> thought</c>

00:20:34.950 --> 00:20:34.960 align:start position:0%
clients and yeah I haven't thought
 

00:20:34.960 --> 00:20:36.149 align:start position:0%
clients and yeah I haven't thought
thought<00:20:35.200><c> about</c><00:20:35.400><c> it</c><00:20:35.600><c> we</c><00:20:35.720><c> haven't</c><00:20:35.919><c> thought</c>

00:20:36.149 --> 00:20:36.159 align:start position:0%
thought about it we haven't thought
 

00:20:36.159 --> 00:20:38.230 align:start position:0%
thought about it we haven't thought
about<00:20:36.360><c> it</c><00:20:36.480><c> so</c><00:20:36.799><c> probably</c><00:20:37.159><c> not</c><00:20:37.520><c> because</c><00:20:37.960><c> yeah</c><00:20:38.080><c> if</c>

00:20:38.230 --> 00:20:38.240 align:start position:0%
about it so probably not because yeah if
 

00:20:38.240 --> 00:20:41.510 align:start position:0%
about it so probably not because yeah if
it<00:20:38.360><c> will</c><00:20:38.520><c> be</c><00:20:38.640><c> useful</c><00:20:39.039><c> we</c><00:20:39.200><c> can</c><00:20:39.520><c> but</c><00:20:40.400><c> maybe</c><00:20:40.679><c> not</c>

00:20:41.510 --> 00:20:41.520 align:start position:0%
it will be useful we can but maybe not
 

00:20:41.520 --> 00:20:43.710 align:start position:0%
it will be useful we can but maybe not
okay<00:20:42.520><c> all</c><00:20:42.679><c> right</c><00:20:42.840><c> let's</c><00:20:43.039><c> go</c><00:20:43.200><c> straight</c><00:20:43.440><c> to</c><00:20:43.559><c> the</c>

00:20:43.710 --> 00:20:43.720 align:start position:0%
okay all right let's go straight to the
 

00:20:43.720 --> 00:20:46.350 align:start position:0%
okay all right let's go straight to the
next<00:20:43.919><c> one</c><00:20:44.400><c> what</c><00:20:44.640><c> does</c><00:20:44.760><c> it</c><00:20:44.960><c> mean</c><00:20:45.559><c> for</c><00:20:45.799><c> the</c><00:20:45.919><c> fork</c>

00:20:46.350 --> 00:20:46.360 align:start position:0%
next one what does it mean for the fork
 

00:20:46.360 --> 00:20:49.470 align:start position:0%
next one what does it mean for the fork
Choice<00:20:46.720><c> spec</c><00:20:47.080><c> to</c><00:20:47.240><c> be</c><00:20:48.159><c> executable</c><00:20:49.159><c> go</c><00:20:49.280><c> ahead</c>

00:20:49.470 --> 00:20:49.480 align:start position:0%
Choice spec to be executable go ahead
 

00:20:49.480 --> 00:20:52.390 align:start position:0%
Choice spec to be executable go ahead
yeah<00:20:49.640><c> I'll</c><00:20:49.799><c> take</c><00:20:49.960><c> one</c><00:20:50.559><c> okay</c><00:20:51.080><c> so</c><00:20:51.760><c> um</c><00:20:52.120><c> it's</c>

00:20:52.390 --> 00:20:52.400 align:start position:0%
yeah I'll take one okay so um it's
 

00:20:52.400 --> 00:20:54.789 align:start position:0%
yeah I'll take one okay so um it's
expressed<00:20:52.960><c> as</c><00:20:53.080><c> a</c><00:20:53.360><c> python</c><00:20:53.880><c> code</c><00:20:54.400><c> so</c><00:20:54.559><c> it's</c>

00:20:54.789 --> 00:20:54.799 align:start position:0%
expressed as a python code so it's
 

00:20:54.799 --> 00:20:57.070 align:start position:0%
expressed as a python code so it's
basically<00:20:55.280><c> a</c><00:20:55.400><c> number</c><00:20:55.679><c> of</c><00:20:55.840><c> functions</c><00:20:56.640><c> and</c><00:20:56.799><c> some</c>

00:20:57.070 --> 00:20:57.080 align:start position:0%
basically a number of functions and some
 

00:20:57.080 --> 00:21:00.149 align:start position:0%
basically a number of functions and some
functions<00:20:57.640><c> prescribe</c><00:20:58.240><c> how</c><00:20:58.679><c> to</c><00:20:59.280><c> react</c><00:20:59.799><c> to</c>

00:21:00.149 --> 00:21:00.159 align:start position:0%
functions prescribe how to react to
 

00:21:00.159 --> 00:21:02.710 align:start position:0%
functions prescribe how to react to
events<00:21:00.760><c> or</c><00:21:01.000><c> messages</c><00:21:01.480><c> arriving</c><00:21:01.960><c> from</c><00:21:02.200><c> Network</c>

00:21:02.710 --> 00:21:02.720 align:start position:0%
events or messages arriving from Network
 

00:21:02.720 --> 00:21:06.909 align:start position:0%
events or messages arriving from Network
it's<00:21:03.280><c> on</c><00:21:03.840><c> block</c><00:21:04.840><c> on</c><00:21:05.520><c> attestation</c><00:21:06.240><c> on</c><00:21:06.640><c> on</c><00:21:06.760><c> a</c>

00:21:06.909 --> 00:21:06.919 align:start position:0%
it's on block on attestation on on a
 

00:21:06.919 --> 00:21:08.909 align:start position:0%
it's on block on attestation on on a
tester<00:21:07.320><c> session</c><00:21:07.720><c> and</c><00:21:07.919><c> some</c><00:21:08.200><c> others</c><00:21:08.679><c> there's</c>

00:21:08.909 --> 00:21:08.919 align:start position:0%
tester session and some others there's
 

00:21:08.919 --> 00:21:12.470 align:start position:0%
tester session and some others there's
also<00:21:09.360><c> time</c><00:21:10.000><c> tick</c><00:21:11.000><c> and</c><00:21:11.559><c> finally</c><00:21:11.960><c> you</c><00:21:12.120><c> have</c><00:21:12.279><c> a</c>

00:21:12.470 --> 00:21:12.480 align:start position:0%
also time tick and finally you have a
 

00:21:12.480 --> 00:21:16.549 align:start position:0%
also time tick and finally you have a
method<00:21:12.919><c> to</c><00:21:13.159><c> get</c><00:21:13.760><c> head</c><00:21:14.760><c> so</c><00:21:15.000><c> this</c><00:21:15.080><c> is</c><00:21:15.279><c> just</c><00:21:15.640><c> by</c><00:21:16.080><c> PL</c>

00:21:16.549 --> 00:21:16.559 align:start position:0%
method to get head so this is just by PL
 

00:21:16.559 --> 00:21:18.950 align:start position:0%
method to get head so this is just by PL
python<00:21:16.880><c> code</c><00:21:17.159><c> you</c><00:21:17.240><c> can</c><00:21:17.400><c> run</c><00:21:17.600><c> it</c><00:21:18.559><c> all</c><00:21:18.720><c> right</c>

00:21:18.950 --> 00:21:18.960 align:start position:0%
python code you can run it all right
 

00:21:18.960 --> 00:21:20.710 align:start position:0%
python code you can run it all right
let's<00:21:19.159><c> go</c><00:21:19.400><c> right</c><00:21:19.520><c> to</c><00:21:19.679><c> the</c><00:21:19.840><c> next</c><00:21:20.080><c> one</c><00:21:20.440><c> we</c><00:21:20.559><c> got</c>

00:21:20.710 --> 00:21:20.720 align:start position:0%
let's go right to the next one we got
 

00:21:20.720 --> 00:21:21.990 align:start position:0%
let's go right to the next one we got
three<00:21:20.960><c> questions</c><00:21:21.279><c> left</c><00:21:21.520><c> I</c><00:21:21.600><c> think</c><00:21:21.679><c> we</c><00:21:21.840><c> got</c>

00:21:21.990 --> 00:21:22.000 align:start position:0%
three questions left I think we got
 

00:21:22.000 --> 00:21:24.070 align:start position:0%
three questions left I think we got
enough<00:21:22.279><c> time</c><00:21:22.799><c> the</c><00:21:22.960><c> randomizing</c><00:21:23.679><c> weights</c>

00:21:24.070 --> 00:21:24.080 align:start position:0%
enough time the randomizing weights
 

00:21:24.080 --> 00:21:26.190 align:start position:0%
enough time the randomizing weights
model<00:21:24.559><c> can</c><00:21:24.760><c> take</c><00:21:24.960><c> an</c><00:21:25.200><c> arbitrary</c><00:21:25.760><c> tree</c><00:21:26.039><c> as</c>

00:21:26.190 --> 00:21:26.200 align:start position:0%
model can take an arbitrary tree as
 

00:21:26.200 --> 00:21:28.830 align:start position:0%
model can take an arbitrary tree as
model<00:21:26.559><c> question</c><00:21:26.880><c> mark</c><00:21:27.440><c> how</c><00:21:27.679><c> about</c><00:21:27.960><c> FFG</c>

00:21:28.830 --> 00:21:28.840 align:start position:0%
model question mark how about FFG
 

00:21:28.840 --> 00:21:30.470 align:start position:0%
model question mark how about FFG
information<00:21:29.640><c> who</c><00:21:29.720><c> would</c><00:21:29.880><c> like</c><00:21:30.039><c> to</c><00:21:30.159><c> answer</c>

00:21:30.470 --> 00:21:30.480 align:start position:0%
information who would like to answer
 

00:21:30.480 --> 00:21:33.630 align:start position:0%
information who would like to answer
this<00:21:30.640><c> one</c><00:21:31.480><c> I</c><00:21:31.760><c> can</c><00:21:32.760><c> yeah</c>

00:21:33.630 --> 00:21:33.640 align:start position:0%
this one I can yeah
 

00:21:33.640 --> 00:21:37.710 align:start position:0%
this one I can yeah
so<00:21:34.640><c> uh</c><00:21:34.960><c> the</c><00:21:35.600><c> Tre</c><00:21:36.600><c> block</c><00:21:36.840><c> tree</c><00:21:37.080><c> model</c><00:21:37.360><c> is</c><00:21:37.559><c> just</c>

00:21:37.710 --> 00:21:37.720 align:start position:0%
so uh the Tre block tree model is just
 

00:21:37.720 --> 00:21:40.390 align:start position:0%
so uh the Tre block tree model is just
one<00:21:37.840><c> of</c><00:21:37.960><c> the</c><00:21:38.120><c> models</c><00:21:39.080><c> uh</c><00:21:39.760><c> and</c><00:21:39.919><c> there</c><00:21:40.080><c> was</c><00:21:40.279><c> just</c>

00:21:40.390 --> 00:21:40.400 align:start position:0%
one of the models uh and there was just
 

00:21:40.400 --> 00:21:43.669 align:start position:0%
one of the models uh and there was just
an<00:21:40.640><c> example</c><00:21:41.159><c> so</c><00:21:41.600><c> with</c><00:21:42.200><c> randomization</c><00:21:43.200><c> and</c><00:21:43.559><c> uh</c>

00:21:43.669 --> 00:21:43.679 align:start position:0%
an example so with randomization and uh
 

00:21:43.679 --> 00:21:45.950 align:start position:0%
an example so with randomization and uh
we<00:21:43.840><c> also</c><00:21:44.159><c> have</c><00:21:44.320><c> the</c><00:21:44.559><c> F</c><00:21:44.679><c> ofg</c><00:21:44.960><c> checkpoints</c><00:21:45.480><c> model</c>

00:21:45.950 --> 00:21:45.960 align:start position:0%
we also have the F ofg checkpoints model
 

00:21:45.960 --> 00:21:49.630 align:start position:0%
we also have the F ofg checkpoints model
that<00:21:46.320><c> gives</c><00:21:46.679><c> the</c><00:21:47.400><c> all</c><00:21:47.919><c> all</c><00:21:48.520><c> possible</c><00:21:49.520><c> uh</c>

00:21:49.630 --> 00:21:49.640 align:start position:0%
that gives the all all possible uh
 

00:21:49.640 --> 00:21:52.269 align:start position:0%
that gives the all all possible uh
combinations<00:21:50.320><c> of</c><00:21:50.600><c> Justified</c><00:21:51.559><c> and</c><00:21:51.760><c> finalized</c>

00:21:52.269 --> 00:21:52.279 align:start position:0%
combinations of Justified and finalized
 

00:21:52.279 --> 00:21:54.470 align:start position:0%
combinations of Justified and finalized
checkpoints<00:21:53.159><c> given</c><00:21:53.440><c> the</c><00:21:53.520><c> model</c><00:21:53.840><c> input</c><00:21:54.159><c> so</c><00:21:54.360><c> it</c>

00:21:54.470 --> 00:21:54.480 align:start position:0%
checkpoints given the model input so it
 

00:21:54.480 --> 00:21:55.950 align:start position:0%
checkpoints given the model input so it
was<00:21:54.600><c> in</c><00:21:54.720><c> the</c><00:21:54.880><c> presentation</c><00:21:55.400><c> as</c><00:21:55.520><c> well</c><00:21:55.679><c> so</c><00:21:55.840><c> we</c>

00:21:55.950 --> 00:21:55.960 align:start position:0%
was in the presentation as well so we
 

00:21:55.960 --> 00:21:58.110 align:start position:0%
was in the presentation as well so we
have<00:21:56.080><c> a</c><00:21:56.200><c> model</c><00:21:56.480><c> for</c><00:21:56.720><c> that</c><00:21:57.240><c> it</c><00:21:57.360><c> is</c><00:21:57.640><c> also</c><00:21:57.960><c> this</c>

00:21:58.110 --> 00:21:58.120 align:start position:0%
have a model for that it is also this
 

00:21:58.120 --> 00:21:59.909 align:start position:0%
have a model for that it is also this
information<00:21:58.960><c> also</c><00:21:59.200><c> used</c><00:21:59.480><c> by</c><00:21:59.600><c> the</c><00:21:59.720><c> test</c>

00:21:59.909 --> 00:21:59.919 align:start position:0%
information also used by the test
 

00:21:59.919 --> 00:22:01.750 align:start position:0%
information also used by the test
generator<00:22:00.840><c> all</c><00:22:01.000><c> right</c><00:22:01.279><c> thank</c><00:22:01.440><c> you</c><00:22:01.559><c> for</c>

00:22:01.750 --> 00:22:01.760 align:start position:0%
generator all right thank you for
 

00:22:01.760 --> 00:22:03.269 align:start position:0%
generator all right thank you for
answering<00:22:02.240><c> that</c><00:22:02.360><c> I'm</c><00:22:02.480><c> going</c><00:22:02.559><c> to</c><00:22:02.720><c> mark</c><00:22:02.919><c> it</c><00:22:03.039><c> as</c>

00:22:03.269 --> 00:22:03.279 align:start position:0%
answering that I'm going to mark it as
 

00:22:03.279 --> 00:22:06.350 align:start position:0%
answering that I'm going to mark it as
answered<00:22:04.000><c> last</c><00:22:04.240><c> two</c><00:22:04.679><c> are</c><00:22:05.000><c> attestations</c><00:22:06.000><c> only</c>

00:22:06.350 --> 00:22:06.360 align:start position:0%
answered last two are attestations only
 

00:22:06.360 --> 00:22:09.909 align:start position:0%
answered last two are attestations only
on<00:22:06.679><c> chain</c><00:22:07.240><c> coming</c><00:22:07.600><c> from</c><00:22:07.880><c> blocks</c><00:22:08.760><c> uh</c><00:22:08.960><c> no</c><00:22:09.320><c> no</c><00:22:09.760><c> uh</c>

00:22:09.909 --> 00:22:09.919 align:start position:0%
on chain coming from blocks uh no no uh
 

00:22:09.919 --> 00:22:14.029 align:start position:0%
on chain coming from blocks uh no no uh
we<00:22:10.120><c> have</c><00:22:11.080><c> both</c><00:22:11.520><c> cases</c><00:22:12.080><c> so</c><00:22:12.520><c> we</c><00:22:12.679><c> have</c><00:22:13.440><c> uh</c><00:22:13.720><c> get</c><00:22:13.919><c> a</c>

00:22:14.029 --> 00:22:14.039 align:start position:0%
we have both cases so we have uh get a
 

00:22:14.039 --> 00:22:16.630 align:start position:0%
we have both cases so we have uh get a
two<00:22:14.200><c> station</c><00:22:14.559><c> from</c><00:22:14.720><c> blocks</c><00:22:15.200><c> also</c><00:22:16.200><c> produce</c>

00:22:16.630 --> 00:22:16.640 align:start position:0%
two station from blocks also produce
 

00:22:16.640 --> 00:22:19.549 align:start position:0%
two station from blocks also produce
them<00:22:17.240><c> separately</c><00:22:18.240><c> very</c><00:22:18.600><c> um</c><00:22:18.720><c> I</c><00:22:18.799><c> can</c><00:22:19.080><c> expand</c><00:22:19.400><c> on</c>

00:22:19.549 --> 00:22:19.559 align:start position:0%
them separately very um I can expand on
 

00:22:19.559 --> 00:22:22.190 align:start position:0%
them separately very um I can expand on
this<00:22:19.720><c> we</c><00:22:19.919><c> have</c><00:22:20.440><c> actually</c><00:22:20.760><c> have</c><00:22:21.000><c> three</c><00:22:21.720><c> uh</c>

00:22:22.190 --> 00:22:22.200 align:start position:0%
this we have actually have three uh
 

00:22:22.200 --> 00:22:24.870 align:start position:0%
this we have actually have three uh
possible<00:22:22.679><c> cases</c><00:22:22.960><c> for</c><00:22:23.200><c> this</c><00:22:23.799><c> one</c><00:22:24.000><c> is</c><00:22:24.240><c> that</c><00:22:24.559><c> just</c>

00:22:24.870 --> 00:22:24.880 align:start position:0%
possible cases for this one is that just
 

00:22:24.880 --> 00:22:27.510 align:start position:0%
possible cases for this one is that just
in<00:22:25.520><c> pure</c><00:22:25.840><c> onchain</c><00:22:26.480><c> attestation</c><00:22:27.159><c> the</c><00:22:27.320><c> other</c>

00:22:27.510 --> 00:22:27.520 align:start position:0%
in pure onchain attestation the other
 

00:22:27.520 --> 00:22:30.230 align:start position:0%
in pure onchain attestation the other
one<00:22:27.720><c> is</c><00:22:28.400><c> uh</c><00:22:28.720><c> pure</c><00:22:29.000><c> Network</c><00:22:29.440><c> attestation</c><00:22:30.039><c> that</c>

00:22:30.230 --> 00:22:30.240 align:start position:0%
one is uh pure Network attestation that
 

00:22:30.240 --> 00:22:31.830 align:start position:0%
one is uh pure Network attestation that
the<00:22:30.360><c> attestation</c><00:22:30.919><c> that</c><00:22:31.039><c> is</c><00:22:31.159><c> not</c><00:22:31.360><c> included</c><00:22:31.720><c> in</c>

00:22:31.830 --> 00:22:31.840 align:start position:0%
the attestation that is not included in
 

00:22:31.840 --> 00:22:34.510 align:start position:0%
the attestation that is not included in
any<00:22:32.039><c> Block</c><00:22:32.880><c> in</c><00:22:33.039><c> any</c><00:22:33.279><c> block</c><00:22:33.720><c> and</c><00:22:34.039><c> the</c><00:22:34.200><c> third</c>

00:22:34.510 --> 00:22:34.520 align:start position:0%
any Block in any block and the third
 

00:22:34.520 --> 00:22:36.710 align:start position:0%
any Block in any block and the third
case<00:22:34.799><c> is</c><00:22:35.080><c> both</c><00:22:35.440><c> it</c><00:22:35.559><c> is</c><00:22:35.799><c> in</c><00:22:35.919><c> the</c><00:22:36.039><c> block</c><00:22:36.320><c> it</c><00:22:36.400><c> is</c><00:22:36.559><c> on</c>

00:22:36.710 --> 00:22:36.720 align:start position:0%
case is both it is in the block it is on
 

00:22:36.720 --> 00:22:38.430 align:start position:0%
case is both it is in the block it is on
chain<00:22:37.000><c> and</c><00:22:37.120><c> it</c><00:22:37.200><c> is</c><00:22:37.400><c> coming</c><00:22:37.679><c> from</c><00:22:37.880><c> the</c><00:22:38.000><c> network</c>

00:22:38.430 --> 00:22:38.440 align:start position:0%
chain and it is coming from the network
 

00:22:38.440 --> 00:22:40.870 align:start position:0%
chain and it is coming from the network
as<00:22:38.559><c> well</c><00:22:39.000><c> and</c><00:22:39.159><c> this</c><00:22:39.279><c> is</c><00:22:39.559><c> all</c><00:22:40.039><c> decided</c><00:22:40.520><c> by</c><00:22:40.720><c> the</c>

00:22:40.870 --> 00:22:40.880 align:start position:0%
as well and this is all decided by the
 

00:22:40.880 --> 00:22:42.669 align:start position:0%
as well and this is all decided by the
randomization<00:22:41.520><c> so</c><00:22:41.679><c> we</c><00:22:41.799><c> flip</c><00:22:42.039><c> a</c><00:22:42.200><c> coin</c><00:22:42.520><c> and</c>

00:22:42.669 --> 00:22:42.679 align:start position:0%
randomization so we flip a coin and
 

00:22:42.679 --> 00:22:45.190 align:start position:0%
randomization so we flip a coin and
decide<00:22:43.000><c> which</c><00:22:43.440><c> station</c><00:22:44.080><c> uh</c><00:22:44.279><c> would</c><00:22:44.720><c> will</c><00:22:44.919><c> be</c><00:22:45.039><c> in</c>

00:22:45.190 --> 00:22:45.200 align:start position:0%
decide which station uh would will be in
 

00:22:45.200 --> 00:22:46.870 align:start position:0%
decide which station uh would will be in
which<00:22:45.400><c> state</c><00:22:46.000><c> all</c><00:22:46.159><c> right</c><00:22:46.400><c> thank</c><00:22:46.559><c> you</c><00:22:46.679><c> for</c>

00:22:46.870 --> 00:22:46.880 align:start position:0%
which state all right thank you for
 

00:22:46.880 --> 00:22:48.549 align:start position:0%
which state all right thank you for
answering<00:22:47.360><c> that</c><00:22:47.720><c> you're</c><00:22:47.880><c> looking</c><00:22:48.120><c> at</c><00:22:48.240><c> me</c><00:22:48.400><c> like</c>

00:22:48.549 --> 00:22:48.559 align:start position:0%
answering that you're looking at me like
 

00:22:48.559 --> 00:22:50.549 align:start position:0%
answering that you're looking at me like
I<00:22:48.960><c> understand</c><00:22:49.120><c> the</c><00:22:49.240><c> answer</c><00:22:49.520><c> I</c><00:22:49.640><c> don't</c><00:22:50.159><c> but</c><00:22:50.360><c> the</c>

00:22:50.549 --> 00:22:50.559 align:start position:0%
I understand the answer I don't but the
 

00:22:50.559 --> 00:22:52.750 align:start position:0%
I understand the answer I don't but the
audience<00:22:51.559><c> I</c><00:22:51.640><c> can</c><00:22:51.760><c> tell</c><00:22:51.919><c> from</c><00:22:52.080><c> the</c><00:22:52.360><c> audience</c><00:22:52.640><c> is</c>

00:22:52.750 --> 00:22:52.760 align:start position:0%
audience I can tell from the audience is
 

00:22:52.760 --> 00:22:54.390 align:start position:0%
audience I can tell from the audience is
nodding<00:22:53.120><c> and</c><00:22:53.240><c> I'm</c><00:22:53.400><c> just</c><00:22:53.520><c> nodding</c><00:22:53.919><c> along</c><00:22:54.159><c> with</c>

00:22:54.390 --> 00:22:54.400 align:start position:0%
nodding and I'm just nodding along with
 

00:22:54.400 --> 00:22:56.750 align:start position:0%
nodding and I'm just nodding along with
them<00:22:55.080><c> U</c><00:22:55.240><c> okay</c><00:22:55.400><c> we</c><00:22:55.559><c> got</c><00:22:55.799><c> uh</c><00:22:55.919><c> one</c><00:22:56.120><c> vter</c><00:22:56.520><c> okay</c><00:22:56.640><c> we</c>

00:22:56.750 --> 00:22:56.760 align:start position:0%
them U okay we got uh one vter okay we
 

00:22:56.760 --> 00:22:58.870 align:start position:0%
them U okay we got uh one vter okay we
got<00:22:56.919><c> 51</c><00:22:57.279><c> seconds</c><00:22:57.600><c> let's</c><00:22:57.760><c> do</c><00:22:57.880><c> it</c><00:22:58.200><c> if</c><00:22:58.559><c> the</c><00:22:58.640><c> model</c>

00:22:58.870 --> 00:22:58.880 align:start position:0%
got 51 seconds let's do it if the model
 

00:22:58.880 --> 00:23:00.430 align:start position:0%
got 51 seconds let's do it if the model
is<00:22:59.039><c> written</c><00:22:59.360><c> to</c><00:22:59.559><c> test</c><00:22:59.840><c> the</c><00:23:00.000><c> spec</c>

00:23:00.430 --> 00:23:00.440 align:start position:0%
is written to test the spec
 

00:23:00.440 --> 00:23:02.549 align:start position:0%
is written to test the spec
implementation<00:23:01.440><c> how</c><00:23:01.600><c> do</c><00:23:01.760><c> you</c><00:23:01.960><c> guarantee</c><00:23:02.440><c> the</c>

00:23:02.549 --> 00:23:02.559 align:start position:0%
implementation how do you guarantee the
 

00:23:02.559 --> 00:23:05.830 align:start position:0%
implementation how do you guarantee the
model<00:23:03.000><c> correctness</c><00:23:04.000><c> okay</c><00:23:04.200><c> the</c><00:23:04.320><c> model</c><00:23:05.120><c> uh</c><00:23:05.559><c> does</c>

00:23:05.830 --> 00:23:05.840 align:start position:0%
model correctness okay the model uh does
 

00:23:05.840 --> 00:23:08.149 align:start position:0%
model correctness okay the model uh does
not<00:23:06.080><c> have</c><00:23:06.240><c> to</c><00:23:06.480><c> be</c><00:23:06.640><c> correct</c><00:23:07.279><c> because</c><00:23:07.720><c> we</c>

00:23:08.149 --> 00:23:08.159 align:start position:0%
not have to be correct because we
 

00:23:08.159 --> 00:23:11.190 align:start position:0%
not have to be correct because we
execute<00:23:08.840><c> python</c><00:23:09.279><c> specs</c><00:23:09.760><c> directly</c><00:23:10.679><c> so</c><00:23:10.880><c> we</c><00:23:11.000><c> use</c>

00:23:11.190 --> 00:23:11.200 align:start position:0%
execute python specs directly so we use
 

00:23:11.200 --> 00:23:13.149 align:start position:0%
execute python specs directly so we use
it<00:23:11.440><c> just</c><00:23:11.600><c> to</c><00:23:11.799><c> produce</c><00:23:12.159><c> interest</c><00:23:12.480><c> in</c><00:23:12.720><c> test</c>

00:23:13.149 --> 00:23:13.159 align:start position:0%
it just to produce interest in test
 

00:23:13.159 --> 00:23:17.070 align:start position:0%
it just to produce interest in test
vectors<00:23:14.159><c> and</c><00:23:15.120><c> yeah</c><00:23:15.320><c> we</c><00:23:15.440><c> are</c><00:23:15.720><c> using</c><00:23:16.200><c> spec</c><00:23:16.679><c> code</c>

00:23:17.070 --> 00:23:17.080 align:start position:0%
vectors and yeah we are using spec code
 

00:23:17.080 --> 00:23:19.430 align:start position:0%
vectors and yeah we are using spec code
to<00:23:17.360><c> produce</c><00:23:17.799><c> the</c><00:23:18.000><c> text</c><00:23:18.279><c> vectors</c><00:23:18.840><c> but</c><00:23:19.039><c> finally</c>

00:23:19.430 --> 00:23:19.440 align:start position:0%
to produce the text vectors but finally
 

00:23:19.440 --> 00:23:22.669 align:start position:0%
to produce the text vectors but finally
we<00:23:19.640><c> have</c><00:23:19.799><c> a</c><00:23:20.480><c> special</c><00:23:21.039><c> procedure</c><00:23:21.559><c> to</c><00:23:21.760><c> run</c><00:23:22.480><c> the</c>

00:23:22.669 --> 00:23:22.679 align:start position:0%
we have a special procedure to run the
 

00:23:22.679 --> 00:23:24.710 align:start position:0%
we have a special procedure to run the
generated<00:23:23.320><c> test</c>

00:23:24.710 --> 00:23:24.720 align:start position:0%
generated test
 

00:23:24.720 --> 00:23:28.669 align:start position:0%
generated test
using<00:23:25.720><c> um</c><00:23:26.520><c> the</c><00:23:26.799><c> python</c><00:23:27.200><c> spec</c><00:23:27.919><c> and</c><00:23:28.080><c> check</c><00:23:28.320><c> the</c>

00:23:28.669 --> 00:23:28.679 align:start position:0%
using um the python spec and check the
 

00:23:28.679 --> 00:23:30.950 align:start position:0%
using um the python spec and check the
everything<00:23:28.960><c> is</c><00:23:29.320><c> okay</c><00:23:30.320><c> very</c><00:23:30.520><c> good</c><00:23:30.679><c> and</c><00:23:30.840><c> I</c>

00:23:30.950 --> 00:23:30.960 align:start position:0%
everything is okay very good and I
 

00:23:30.960 --> 00:23:32.470 align:start position:0%
everything is okay very good and I
believe<00:23:31.240><c> I</c><00:23:31.320><c> can</c><00:23:31.520><c> help</c><00:23:31.679><c> you</c><00:23:31.840><c> answer</c><00:23:32.159><c> do</c><00:23:32.279><c> you</c>

00:23:32.470 --> 00:23:32.480 align:start position:0%
believe I can help you answer do you
 

00:23:32.480 --> 00:23:35.310 align:start position:0%
believe I can help you answer do you
execute<00:23:32.880><c> the</c><00:23:33.039><c> python</c><00:23:33.400><c> spec</c><00:23:33.679><c> directly</c><00:23:34.559><c> yes</c><00:23:34.799><c> you</c>

00:23:35.310 --> 00:23:35.320 align:start position:0%
execute the python spec directly yes you
 

00:23:35.320 --> 00:23:37.630 align:start position:0%
execute the python spec directly yes you
do<00:23:36.320><c> ladies</c><00:23:36.679><c> and</c><00:23:36.799><c> Gentlemen</c><00:23:37.159><c> let's</c><00:23:37.360><c> give</c><00:23:37.480><c> our</c>

00:23:37.630 --> 00:23:37.640 align:start position:0%
do ladies and Gentlemen let's give our
 

00:23:37.640 --> 00:23:39.230 align:start position:0%
do ladies and Gentlemen let's give our
two<00:23:37.840><c> speakers</c><00:23:38.159><c> a</c><00:23:38.360><c> wonderful</c><00:23:38.840><c> Round</c><00:23:39.080><c> of</c>

00:23:39.230 --> 00:23:39.240 align:start position:0%
two speakers a wonderful Round of
 

00:23:39.240 --> 00:23:42.310 align:start position:0%
two speakers a wonderful Round of
Applause<00:23:39.880><c> to</c><00:23:40.039><c> Alex</c><00:23:40.360><c> and</c><00:23:40.760><c> mik</c><00:23:41.760><c> thank</c><00:23:42.039><c> thank</c><00:23:42.200><c> you</c>

00:23:42.310 --> 00:23:42.320 align:start position:0%
Applause to Alex and mik thank thank you
 

00:23:42.320 --> 00:23:46.320 align:start position:0%
Applause to Alex and mik thank thank you
gentlemen<00:23:42.799><c> thank</c><00:23:42.919><c> you</c><00:23:43.159><c> thank</c><00:23:43.320><c> you</c><00:23:43.480><c> very</c><00:23:43.679><c> much</c>

