WEBVTT
Kind: captions
Language: en

00:00:08.980 --> 00:00:14.110 align:start position:0%
 
[Music]

00:00:14.110 --> 00:00:14.120 align:start position:0%
[Music]
 

00:00:14.120 --> 00:00:17.900 align:start position:0%
[Music]
hello<00:00:15.120><c> my</c><00:00:15.900><c> name</c><00:00:16.139><c> is</c><00:00:16.170><c> Martin</c><00:00:16.890><c> Hollis</c><00:00:17.160><c> Wanda</c><00:00:17.610><c> and</c>

00:00:17.900 --> 00:00:17.910 align:start position:0%
hello my name is Martin Hollis Wanda and
 

00:00:17.910 --> 00:00:20.750 align:start position:0%
hello my name is Martin Hollis Wanda and
I<00:00:18.540><c> am</c><00:00:18.660><c> the</c><00:00:18.870><c> security</c><00:00:19.290><c> lead</c><00:00:19.620><c> for</c><00:00:20.280><c> their</c><00:00:20.430><c> Terry</c>

00:00:20.750 --> 00:00:20.760 align:start position:0%
I am the security lead for their Terry
 

00:00:20.760 --> 00:00:24.230 align:start position:0%
I am the security lead for their Terry
foundation<00:00:21.860><c> today</c><00:00:22.860><c> I'm</c><00:00:23.250><c> going</c><00:00:23.490><c> to</c><00:00:23.610><c> talk</c><00:00:24.090><c> a</c><00:00:24.120><c> bit</c>

00:00:24.230 --> 00:00:24.240 align:start position:0%
foundation today I'm going to talk a bit
 

00:00:24.240 --> 00:00:28.940 align:start position:0%
foundation today I'm going to talk a bit
about<00:00:25.520><c> avian</c><00:00:26.520><c> forensics</c><00:00:27.270><c> and</c><00:00:27.950><c> managing</c>

00:00:28.940 --> 00:00:28.950 align:start position:0%
about avian forensics and managing
 

00:00:28.950 --> 00:00:31.640 align:start position:0%
about avian forensics and managing
attacks<00:00:29.340><c> against</c><00:00:29.970><c> the</c><00:00:30.120><c> network</c><00:00:30.570><c> and</c><00:00:31.080><c> how</c>

00:00:31.640 --> 00:00:31.650 align:start position:0%
attacks against the network and how
 

00:00:31.650 --> 00:00:40.750 align:start position:0%
attacks against the network and how
we've<00:00:31.890><c> been</c><00:00:32.070><c> working</c><00:00:32.550><c> on</c><00:00:32.669><c> that</c><00:00:38.179><c> so</c><00:00:39.179><c> I've</c><00:00:39.960><c> been</c>

00:00:40.750 --> 00:00:40.760 align:start position:0%
we've been working on that so I've been
 

00:00:40.760 --> 00:00:43.549 align:start position:0%
we've been working on that so I've been
security<00:00:41.760><c> lead</c><00:00:41.940><c> for</c><00:00:42.239><c> one</c><00:00:42.449><c> year</c><00:00:42.809><c> I</c><00:00:43.019><c> started</c>

00:00:43.549 --> 00:00:43.559 align:start position:0%
security lead for one year I started
 

00:00:43.559 --> 00:00:47.299 align:start position:0%
security lead for one year I started
just<00:00:43.890><c> before</c><00:00:45.050><c> DEFCON</c><00:00:46.050><c> 2</c><00:00:46.289><c> in</c><00:00:46.499><c> Shanghai</c><00:00:47.010><c> last</c>

00:00:47.299 --> 00:00:47.309 align:start position:0%
just before DEFCON 2 in Shanghai last
 

00:00:47.309 --> 00:00:52.160 align:start position:0%
just before DEFCON 2 in Shanghai last
year<00:00:49.550><c> which</c><00:00:50.550><c> started</c><00:00:51.179><c> off</c><00:00:51.359><c> with</c><00:00:51.749><c> the</c><00:00:51.899><c> Shanghai</c>

00:00:52.160 --> 00:00:52.170 align:start position:0%
year which started off with the Shanghai
 

00:00:52.170 --> 00:00:55.579 align:start position:0%
year which started off with the Shanghai
attacks<00:00:52.769><c> roughly</c><00:00:53.429><c> one</c><00:00:54.059><c> day</c><00:00:54.300><c> after</c><00:00:54.629><c> I</c><00:00:54.989><c> started</c>

00:00:55.579 --> 00:00:55.589 align:start position:0%
attacks roughly one day after I started
 

00:00:55.589 --> 00:01:00.799 align:start position:0%
attacks roughly one day after I started
my<00:00:55.890><c> new</c><00:00:56.429><c> role</c><00:00:58.039><c> it</c><00:00:59.039><c> kept</c><00:00:59.309><c> on</c><00:00:59.429><c> for</c><00:00:59.640><c> a</c><00:00:59.699><c> month</c><00:00:59.879><c> we've</c>

00:01:00.799 --> 00:01:00.809 align:start position:0%
my new role it kept on for a month we've
 

00:01:00.809 --> 00:01:02.719 align:start position:0%
my new role it kept on for a month we've
also<00:01:01.109><c> seen</c><00:01:01.559><c> here</c><00:01:01.800><c> in</c><00:01:01.920><c> the</c><00:01:02.010><c> last</c><00:01:02.159><c> year</c><00:01:02.309><c> we</c><00:01:02.550><c> have</c>

00:01:02.719 --> 00:01:02.729 align:start position:0%
also seen here in the last year we have
 

00:01:02.729 --> 00:01:05.590 align:start position:0%
also seen here in the last year we have
done<00:01:03.239><c> three</c><00:01:03.659><c> hard</c><00:01:03.899><c> Forks</c><00:01:04.440><c> we've</c><00:01:05.040><c> had</c><00:01:05.339><c> one</c>

00:01:05.590 --> 00:01:05.600 align:start position:0%
done three hard Forks we've had one
 

00:01:05.600 --> 00:01:09.860 align:start position:0%
done three hard Forks we've had one
unintentional<00:01:06.600><c> consensus</c><00:01:07.380><c> split</c><00:01:08.690><c> there</c><00:01:09.690><c> was</c>

00:01:09.860 --> 00:01:09.870 align:start position:0%
unintentional consensus split there was
 

00:01:09.870 --> 00:01:12.790 align:start position:0%
unintentional consensus split there was
a<00:01:09.900><c> DOS</c><00:01:10.560><c> attack</c><00:01:10.670><c> against</c><00:01:11.670><c> specifically</c><00:01:12.390><c> the</c>

00:01:12.790 --> 00:01:12.800 align:start position:0%
a DOS attack against specifically the
 

00:01:12.800 --> 00:01:17.690 align:start position:0%
a DOS attack against specifically the
client<00:01:15.260><c> there</c><00:01:16.260><c> has</c><00:01:16.350><c> been</c><00:01:16.500><c> thousands</c><00:01:17.070><c> of</c><00:01:17.250><c> ether</c>

00:01:17.690 --> 00:01:17.700 align:start position:0%
client there has been thousands of ether
 

00:01:17.700 --> 00:01:21.290 align:start position:0%
client there has been thousands of ether
stolen<00:01:18.690><c> in</c><00:01:18.960><c> more</c><00:01:19.350><c> or</c><00:01:19.650><c> less</c><00:01:19.860><c> more</c><00:01:20.580><c> and</c><00:01:20.850><c> less</c>

00:01:21.290 --> 00:01:21.300 align:start position:0%
stolen in more or less more and less
 

00:01:21.300 --> 00:01:23.960 align:start position:0%
stolen in more or less more and less
sophisticated<00:01:21.840><c> attacks</c><00:01:22.620><c> both</c><00:01:23.190><c> on</c><00:01:23.460><c> Shane</c><00:01:23.760><c> and</c>

00:01:23.960 --> 00:01:23.970 align:start position:0%
sophisticated attacks both on Shane and
 

00:01:23.970 --> 00:01:29.030 align:start position:0%
sophisticated attacks both on Shane and
off<00:01:24.060><c> chain</c><00:01:25.850><c> we</c><00:01:26.850><c> had</c><00:01:27.180><c> the</c><00:01:27.720><c> test</c><00:01:28.110><c> not</c><00:01:28.380><c> totally</c>

00:01:29.030 --> 00:01:29.040 align:start position:0%
off chain we had the test not totally
 

00:01:29.040 --> 00:01:30.790 align:start position:0%
off chain we had the test not totally
brought<00:01:29.220><c> to</c><00:01:29.400><c> its</c><00:01:29.520><c> knees</c><00:01:29.610><c> and</c><00:01:29.790><c> then</c>

00:01:30.790 --> 00:01:30.800 align:start position:0%
brought to its knees and then
 

00:01:30.800 --> 00:01:33.560 align:start position:0%
brought to its knees and then
resurrected<00:01:31.800><c> again</c><00:01:31.920><c> and</c><00:01:32.580><c> of</c><00:01:33.060><c> course</c><00:01:33.300><c> there's</c>

00:01:33.560 --> 00:01:33.570 align:start position:0%
resurrected again and of course there's
 

00:01:33.570 --> 00:01:36.110 align:start position:0%
resurrected again and of course there's
the<00:01:33.780><c> standard</c><00:01:34.260><c> IT</c><00:01:34.590><c> incidents</c><00:01:35.370><c> with</c><00:01:35.940><c> leaked</c>

00:01:36.110 --> 00:01:36.120 align:start position:0%
the standard IT incidents with leaked
 

00:01:36.120 --> 00:01:38.960 align:start position:0%
the standard IT incidents with leaked
databases<00:01:37.050><c> and</c><00:01:37.410><c> someone</c><00:01:38.280><c> taking</c><00:01:38.670><c> over</c>

00:01:38.960 --> 00:01:38.970 align:start position:0%
databases and someone taking over
 

00:01:38.970 --> 00:01:42.080 align:start position:0%
databases and someone taking over
someone's<00:01:39.390><c> phone</c><00:01:40.140><c> number</c><00:01:40.170><c> and</c><00:01:40.920><c> their</c><00:01:41.790><c> account</c>

00:01:42.080 --> 00:01:42.090 align:start position:0%
someone's phone number and their account
 

00:01:42.090 --> 00:01:46.100 align:start position:0%
someone's phone number and their account
and<00:01:43.160><c> attacking</c><00:01:44.160><c> our</c><00:01:44.370><c> github</c><00:01:44.640><c> but</c><00:01:44.930><c> stuff</c><00:01:45.930><c> like</c>

00:01:46.100 --> 00:01:46.110 align:start position:0%
and attacking our github but stuff like
 

00:01:46.110 --> 00:01:46.960 align:start position:0%
and attacking our github but stuff like
that

00:01:46.960 --> 00:01:46.970 align:start position:0%
that
 

00:01:46.970 --> 00:01:51.530 align:start position:0%
that
so<00:01:48.110><c> we</c><00:01:49.110><c> should</c><00:01:49.440><c> all</c><00:01:49.820><c> be</c><00:01:50.820><c> very</c><00:01:51.060><c> clear</c><00:01:51.300><c> about</c>

00:01:51.530 --> 00:01:51.540 align:start position:0%
so we should all be very clear about
 

00:01:51.540 --> 00:01:54.410 align:start position:0%
so we should all be very clear about
where<00:01:52.080><c> we're</c><00:01:52.290><c> out</c><00:01:52.440><c> at</c><00:01:52.710><c> this</c><00:01:53.520><c> is</c><00:01:53.700><c> crypto</c><00:01:54.180><c> land</c>

00:01:54.410 --> 00:01:54.420 align:start position:0%
where we're out at this is crypto land
 

00:01:54.420 --> 00:01:56.540 align:start position:0%
where we're out at this is crypto land
and<00:01:54.660><c> we're</c><00:01:54.780><c> all</c><00:01:54.900><c> in</c><00:01:55.080><c> crypto</c><00:01:55.470><c> land</c><00:01:55.740><c> and</c><00:01:56.040><c> it's</c>

00:01:56.540 --> 00:01:56.550 align:start position:0%
and we're all in crypto land and it's
 

00:01:56.550 --> 00:01:59.600 align:start position:0%
and we're all in crypto land and it's
like<00:01:57.170><c> Australia</c><00:01:58.170><c> where</c><00:01:58.440><c> anything</c><00:01:59.190><c> with</c><00:01:59.490><c> the</c>

00:01:59.600 --> 00:01:59.610 align:start position:0%
like Australia where anything with the
 

00:01:59.610 --> 00:02:01.370 align:start position:0%
like Australia where anything with the
heartbeat<00:02:00.030><c> will</c><00:02:00.450><c> try</c><00:02:00.630><c> to</c><00:02:00.660><c> kill</c><00:02:00.990><c> you</c>

00:02:01.370 --> 00:02:01.380 align:start position:0%
heartbeat will try to kill you
 

00:02:01.380 --> 00:02:04.430 align:start position:0%
heartbeat will try to kill you
and<00:02:01.500><c> if</c><00:02:02.190><c> you</c><00:02:02.340><c> make</c><00:02:02.520><c> a</c><00:02:02.550><c> mistake</c><00:02:03.440><c> you're</c>

00:02:04.430 --> 00:02:04.440 align:start position:0%
and if you make a mistake you're
 

00:02:04.440 --> 00:02:10.999 align:start position:0%
and if you make a mistake you're
probably<00:02:04.800><c> dead</c><00:02:07.190><c> so</c><00:02:09.319><c> meanwhile</c><00:02:10.319><c> for</c><00:02:10.679><c> attackers</c>

00:02:10.999 --> 00:02:11.009 align:start position:0%
probably dead so meanwhile for attackers
 

00:02:11.009 --> 00:02:14.869 align:start position:0%
probably dead so meanwhile for attackers
they<00:02:11.969><c> have</c><00:02:12.299><c> never</c><00:02:12.900><c> had</c><00:02:13.109><c> it</c><00:02:13.260><c> better</c><00:02:13.519><c> they</c><00:02:14.519><c> no</c>

00:02:14.869 --> 00:02:14.879 align:start position:0%
they have never had it better they no
 

00:02:14.879 --> 00:02:15.660 align:start position:0%
they have never had it better they no
longer<00:02:14.909><c> need</c>

00:02:15.660 --> 00:02:15.670 align:start position:0%
longer need
 

00:02:15.670 --> 00:02:20.460 align:start position:0%
longer need
to<00:02:15.790><c> hack</c><00:02:16.890><c> point-of-sales</c><00:02:18.959><c> computers</c><00:02:19.959><c> and</c>

00:02:20.460 --> 00:02:20.470 align:start position:0%
to hack point-of-sales computers and
 

00:02:20.470 --> 00:02:26.010 align:start position:0%
to hack point-of-sales computers and
trade<00:02:21.400><c> carding</c><00:02:22.030><c> details</c><00:02:22.510><c> over</c><00:02:24.209><c> shady</c><00:02:25.209><c> forums</c>

00:02:26.010 --> 00:02:26.020 align:start position:0%
trade carding details over shady forums
 

00:02:26.020 --> 00:02:28.860 align:start position:0%
trade carding details over shady forums
they<00:02:26.920><c> can</c><00:02:27.160><c> just</c><00:02:27.370><c> hack</c><00:02:27.580><c> a</c><00:02:27.610><c> computer</c><00:02:27.819><c> and</c><00:02:28.480><c> or</c>

00:02:28.860 --> 00:02:28.870 align:start position:0%
they can just hack a computer and or
 

00:02:28.870 --> 00:02:32.330 align:start position:0%
they can just hack a computer and or
somehow<00:02:29.700><c> get</c><00:02:30.700><c> some</c><00:02:30.940><c> cryptocurrency</c><00:02:31.480><c> and</c>

00:02:32.330 --> 00:02:32.340 align:start position:0%
somehow get some cryptocurrency and
 

00:02:32.340 --> 00:02:37.110 align:start position:0%
somehow get some cryptocurrency and
immediately<00:02:33.340><c> turned</c><00:02:33.670><c> into</c><00:02:34.170><c> value</c><00:02:35.310><c> and</c><00:02:36.310><c> and</c>

00:02:37.110 --> 00:02:37.120 align:start position:0%
immediately turned into value and and
 

00:02:37.120 --> 00:02:39.240 align:start position:0%
immediately turned into value and and
it's<00:02:37.330><c> so</c><00:02:37.630><c> it's</c><00:02:37.780><c> like</c><00:02:38.050><c> a</c><00:02:38.319><c> Wild</c><00:02:38.650><c> West</c><00:02:38.890><c> in</c>

00:02:39.240 --> 00:02:39.250 align:start position:0%
it's so it's like a Wild West in
 

00:02:39.250 --> 00:02:43.110 align:start position:0%
it's so it's like a Wild West in
Australia<00:02:39.730><c> right</c><00:02:40.060><c> now</c><00:02:41.730><c> these</c><00:02:42.730><c> are</c><00:02:42.790><c> the</c>

00:02:43.110 --> 00:02:43.120 align:start position:0%
Australia right now these are the
 

00:02:43.120 --> 00:02:44.759 align:start position:0%
Australia right now these are the
Shanghai<00:02:43.690><c> attacks</c><00:02:43.959><c> I'm</c><00:02:44.110><c> not</c><00:02:44.230><c> going</c><00:02:44.440><c> to</c><00:02:44.560><c> talk</c>

00:02:44.759 --> 00:02:44.769 align:start position:0%
Shanghai attacks I'm not going to talk
 

00:02:44.769 --> 00:02:45.990 align:start position:0%
Shanghai attacks I'm not going to talk
that<00:02:45.130><c> much</c><00:02:45.370><c> about</c><00:02:45.430><c> them</c>

00:02:45.990 --> 00:02:46.000 align:start position:0%
that much about them
 

00:02:46.000 --> 00:02:48.120 align:start position:0%
that much about them
the<00:02:46.090><c> first</c><00:02:46.360><c> Chiang</c><00:02:46.690><c> attack</c><00:02:47.110><c> is</c><00:02:47.290><c> a</c><00:02:47.319><c> little</c><00:02:47.830><c> blip</c>

00:02:48.120 --> 00:02:48.130 align:start position:0%
the first Chiang attack is a little blip
 

00:02:48.130 --> 00:02:51.059 align:start position:0%
the first Chiang attack is a little blip
down<00:02:48.459><c> there</c><00:02:48.730><c> and</c><00:02:49.120><c> then</c><00:02:50.110><c> it</c><00:02:50.230><c> just</c><00:02:50.440><c> kept</c><00:02:50.890><c> on</c>

00:02:51.059 --> 00:02:51.069 align:start position:0%
down there and then it just kept on
 

00:02:51.069 --> 00:02:57.870 align:start position:0%
down there and then it just kept on
going<00:02:51.250><c> for</c><00:02:51.850><c> a</c><00:02:51.880><c> month</c><00:02:53.100><c> and</c><00:02:54.690><c> it</c><00:02:55.690><c> was</c><00:02:55.870><c> a</c><00:02:56.860><c> lot</c><00:02:57.760><c> of</c>

00:02:57.870 --> 00:02:57.880 align:start position:0%
going for a month and it was a lot of
 

00:02:57.880 --> 00:03:02.400 align:start position:0%
going for a month and it was a lot of
different<00:02:58.299><c> attacks</c><00:03:00.900><c> mostly</c><00:03:01.900><c> targeted</c>

00:03:02.400 --> 00:03:02.410 align:start position:0%
different attacks mostly targeted
 

00:03:02.410 --> 00:03:07.500 align:start position:0%
different attacks mostly targeted
towards<00:03:02.739><c> gap</c><00:03:05.190><c> but</c><00:03:06.190><c> when</c><00:03:06.610><c> the</c><00:03:06.730><c> dust</c><00:03:06.880><c> is</c><00:03:07.060><c> settled</c>

00:03:07.500 --> 00:03:07.510 align:start position:0%
towards gap but when the dust is settled
 

00:03:07.510 --> 00:03:14.340 align:start position:0%
towards gap but when the dust is settled
after<00:03:09.299><c> incidents</c><00:03:10.299><c> happen</c><00:03:11.790><c> then</c><00:03:13.019><c> that's</c><00:03:14.019><c> when</c>

00:03:14.340 --> 00:03:14.350 align:start position:0%
after incidents happen then that's when
 

00:03:14.350 --> 00:03:16.229 align:start position:0%
after incidents happen then that's when
you<00:03:14.500><c> can</c><00:03:14.650><c> actually</c><00:03:14.830><c> do</c><00:03:15.160><c> something</c><00:03:15.610><c> about</c><00:03:15.730><c> them</c>

00:03:16.229 --> 00:03:16.239 align:start position:0%
you can actually do something about them
 

00:03:16.239 --> 00:03:18.539 align:start position:0%
you can actually do something about them
and<00:03:16.450><c> think</c><00:03:16.989><c> about</c><00:03:17.319><c> how</c><00:03:17.950><c> can</c><00:03:18.220><c> we</c><00:03:18.370><c> be</c><00:03:18.519><c> better</c>

00:03:18.539 --> 00:03:18.549 align:start position:0%
and think about how can we be better
 

00:03:18.549 --> 00:03:21.210 align:start position:0%
and think about how can we be better
prepared<00:03:18.970><c> next</c><00:03:19.600><c> time</c><00:03:19.810><c> something</c><00:03:20.739><c> similar</c>

00:03:21.210 --> 00:03:21.220 align:start position:0%
prepared next time something similar
 

00:03:21.220 --> 00:03:24.300 align:start position:0%
prepared next time something similar
happens<00:03:21.780><c> when</c><00:03:22.780><c> I</c><00:03:22.870><c> can</c><00:03:23.049><c> we</c><00:03:23.140><c> prevent</c><00:03:23.380><c> it</c><00:03:23.620><c> so</c><00:03:23.829><c> how</c>

00:03:24.300 --> 00:03:24.310 align:start position:0%
happens when I can we prevent it so how
 

00:03:24.310 --> 00:03:27.030 align:start position:0%
happens when I can we prevent it so how
can<00:03:24.370><c> we</c><00:03:24.579><c> improve</c><00:03:24.670><c> the</c><00:03:24.910><c> readiness</c><00:03:25.329><c> and</c><00:03:26.109><c> the</c>

00:03:27.030 --> 00:03:27.040 align:start position:0%
can we improve the readiness and the
 

00:03:27.040 --> 00:03:30.180 align:start position:0%
can we improve the readiness and the
resiliency<00:03:28.079><c> so</c><00:03:29.079><c> for</c><00:03:29.260><c> readiness</c><00:03:29.530><c> it's</c><00:03:29.950><c> about</c>

00:03:30.180 --> 00:03:30.190 align:start position:0%
resiliency so for readiness it's about
 

00:03:30.190 --> 00:03:32.460 align:start position:0%
resiliency so for readiness it's about
detecting<00:03:30.760><c> attacks</c><00:03:31.090><c> and</c><00:03:31.570><c> performing</c>

00:03:32.460 --> 00:03:32.470 align:start position:0%
detecting attacks and performing
 

00:03:32.470 --> 00:03:37.289 align:start position:0%
detecting attacks and performing
analysis<00:03:33.010><c> quickly</c><00:03:35.400><c> so</c><00:03:36.400><c> we</c><00:03:36.519><c> started</c><00:03:37.000><c> improving</c>

00:03:37.289 --> 00:03:37.299 align:start position:0%
analysis quickly so we started improving
 

00:03:37.299 --> 00:03:40.500 align:start position:0%
analysis quickly so we started improving
that<00:03:37.680><c> with</c><00:03:38.680><c> some</c><00:03:39.070><c> monitoring</c><00:03:39.549><c> adding</c><00:03:40.060><c> up</c><00:03:40.239><c> some</c>

00:03:40.500 --> 00:03:40.510 align:start position:0%
that with some monitoring adding up some
 

00:03:40.510 --> 00:03:42.180 align:start position:0%
that with some monitoring adding up some
monitoring<00:03:40.930><c> nodes</c><00:03:41.200><c> that</c><00:03:41.739><c> we</c><00:03:41.859><c> run</c><00:03:42.010><c> in</c><00:03:42.100><c> the</c>

00:03:42.180 --> 00:03:42.190 align:start position:0%
monitoring nodes that we run in the
 

00:03:42.190 --> 00:03:45.750 align:start position:0%
monitoring nodes that we run in the
cloud<00:03:42.430><c> and</c><00:03:42.760><c> adding</c><00:03:43.090><c> some</c><00:03:43.269><c> graphs</c><00:03:44.489><c> turns</c><00:03:45.489><c> out</c>

00:03:45.750 --> 00:03:45.760 align:start position:0%
cloud and adding some graphs turns out
 

00:03:45.760 --> 00:03:49.410 align:start position:0%
cloud and adding some graphs turns out
there<00:03:46.209><c> was</c><00:03:46.390><c> some</c><00:03:46.620><c> inherent</c><00:03:47.620><c> issues</c><00:03:48.489><c> which</c>

00:03:49.410 --> 00:03:49.420 align:start position:0%
there was some inherent issues which
 

00:03:49.420 --> 00:03:50.699 align:start position:0%
there was some inherent issues which
hadn't<00:03:49.690><c> been</c><00:03:49.750><c> noticed</c><00:03:50.170><c> before</c>

00:03:50.699 --> 00:03:50.709 align:start position:0%
hadn't been noticed before
 

00:03:50.709 --> 00:03:53.210 align:start position:0%
hadn't been noticed before
with<00:03:51.340><c> transaction</c><00:03:52.209><c> propagation</c>

00:03:53.210 --> 00:03:53.220 align:start position:0%
with transaction propagation
 

00:03:53.220 --> 00:03:57.720 align:start position:0%
with transaction propagation
inefficiencies<00:03:55.799><c> which</c><00:03:56.799><c> over</c><00:03:57.280><c> the</c><00:03:57.310><c> course</c><00:03:57.400><c> of</c>

00:03:57.720 --> 00:03:57.730 align:start position:0%
inefficiencies which over the course of
 

00:03:57.730 --> 00:04:00.840 align:start position:0%
inefficiencies which over the course of
a<00:03:57.790><c> few</c><00:03:57.970><c> months</c><00:03:58.239><c> in</c><00:03:58.569><c> the</c><00:03:58.600><c> beginning</c><00:03:59.049><c> of</c><00:03:59.850><c> from</c>

00:04:00.840 --> 00:04:00.850 align:start position:0%
a few months in the beginning of from
 

00:04:00.850 --> 00:04:04.410 align:start position:0%
a few months in the beginning of from
January<00:04:01.209><c> to</c><00:04:01.569><c> March</c><00:04:02.640><c> we</c><00:04:03.640><c> managed</c><00:04:04.090><c> to</c><00:04:04.209><c> bring</c>

00:04:04.410 --> 00:04:04.420 align:start position:0%
January to March we managed to bring
 

00:04:04.420 --> 00:04:06.390 align:start position:0%
January to March we managed to bring
down<00:04:04.660><c> the</c><00:04:05.260><c> overall</c><00:04:05.470><c> network</c><00:04:05.859><c> traffic</c><00:04:06.069><c> with</c>

00:04:06.390 --> 00:04:06.400 align:start position:0%
down the overall network traffic with
 

00:04:06.400 --> 00:04:08.400 align:start position:0%
down the overall network traffic with
about<00:04:06.579><c> northern</c><00:04:07.090><c> magnitude</c><00:04:07.630><c> just</c><00:04:08.230><c> by</c>

00:04:08.400 --> 00:04:08.410 align:start position:0%
about northern magnitude just by
 

00:04:08.410 --> 00:04:12.170 align:start position:0%
about northern magnitude just by
removing<00:04:09.810><c> valid</c><00:04:10.810><c> transaction</c><00:04:11.040><c> propagation</c>

00:04:12.170 --> 00:04:12.180 align:start position:0%
removing valid transaction propagation
 

00:04:12.180 --> 00:04:16.379 align:start position:0%
removing valid transaction propagation
from<00:04:13.180><c> the</c><00:04:13.329><c> clients</c><00:04:14.760><c> on</c><00:04:15.760><c> these</c><00:04:16.000><c> monitoring</c>

00:04:16.379 --> 00:04:16.389 align:start position:0%
from the clients on these monitoring
 

00:04:16.389 --> 00:04:19.259 align:start position:0%
from the clients on these monitoring
nodes<00:04:16.630><c> we</c><00:04:17.200><c> also</c><00:04:17.380><c> added</c><00:04:17.769><c> some</c><00:04:17.950><c> interface</c><00:04:18.549><c> so</c>

00:04:19.259 --> 00:04:19.269 align:start position:0%
nodes we also added some interface so
 

00:04:19.269 --> 00:04:21.870 align:start position:0%
nodes we also added some interface so
that<00:04:19.709><c> we</c><00:04:20.709><c> can</c><00:04:20.859><c> extract</c><00:04:21.039><c> very</c><00:04:21.489><c> detailed</c>

00:04:21.870 --> 00:04:21.880 align:start position:0%
that we can extract very detailed
 

00:04:21.880 --> 00:04:23.790 align:start position:0%
that we can extract very detailed
information<00:04:22.479><c> about</c><00:04:22.600><c> what</c><00:04:23.229><c> are</c><00:04:23.440><c> the</c><00:04:23.560><c> canonical</c>

00:04:23.790 --> 00:04:23.800 align:start position:0%
information about what are the canonical
 

00:04:23.800 --> 00:04:27.240 align:start position:0%
information about what are the canonical
blocks<00:04:24.580><c> in</c><00:04:24.940><c> the</c><00:04:25.030><c> chain</c><00:04:25.270><c> and</c><00:04:26.050><c> if</c><00:04:26.860><c> we</c><00:04:27.039><c> see</c><00:04:27.220><c> a</c>

00:04:27.240 --> 00:04:27.250 align:start position:0%
blocks in the chain and if we see a
 

00:04:27.250 --> 00:04:29.439 align:start position:0%
blocks in the chain and if we see a
consensus<00:04:27.880><c> splits</c><00:04:28.210><c> we</c><00:04:28.599><c> can</c><00:04:28.810><c> get</c><00:04:28.990><c> very</c>

00:04:29.439 --> 00:04:29.449 align:start position:0%
consensus splits we can get very
 

00:04:29.449 --> 00:04:32.189 align:start position:0%
consensus splits we can get very
information<00:04:30.169><c> about</c><00:04:30.379><c> the</c><00:04:30.620><c> receipts</c><00:04:31.009><c> and</c>

00:04:32.189 --> 00:04:32.199 align:start position:0%
information about the receipts and
 

00:04:32.199 --> 00:04:35.679 align:start position:0%
information about the receipts and
differences<00:04:33.199><c> in</c><00:04:33.529><c> these</c><00:04:34.219><c> and</c><00:04:34.610><c> and</c><00:04:34.819><c> quickly</c>

00:04:35.679 --> 00:04:35.689 align:start position:0%
differences in these and and quickly
 

00:04:35.689 --> 00:04:38.769 align:start position:0%
differences in these and and quickly
point<00:04:36.050><c> out</c><00:04:36.259><c> which</c><00:04:36.620><c> transaction</c><00:04:37.370><c> cost</c><00:04:38.059><c> this</c>

00:04:38.769 --> 00:04:38.779 align:start position:0%
point out which transaction cost this
 

00:04:38.779 --> 00:04:45.719 align:start position:0%
point out which transaction cost this
consensus<00:04:39.680><c> issue</c><00:04:41.169><c> so</c><00:04:42.169><c> here</c><00:04:42.349><c> you</c><00:04:42.529><c> see</c><00:04:44.139><c> as</c><00:04:45.139><c> a</c><00:04:45.259><c> gas</c>

00:04:45.719 --> 00:04:45.729 align:start position:0%
consensus issue so here you see as a gas
 

00:04:45.729 --> 00:04:48.369 align:start position:0%
consensus issue so here you see as a gas
master<00:04:46.729><c> and</c><00:04:46.879><c> gas</c><00:04:47.029><c> develop</c><00:04:47.629><c> and</c><00:04:47.900><c> the</c><00:04:47.960><c> parity</c>

00:04:48.369 --> 00:04:48.379 align:start position:0%
master and gas develop and the parity
 

00:04:48.379 --> 00:04:50.920 align:start position:0%
master and gas develop and the parity
note<00:04:48.620><c> and</c><00:04:48.949><c> right</c><00:04:49.819><c> in</c><00:04:50.059><c> this</c><00:04:50.210><c> image</c><00:04:50.449><c> their</c>

00:04:50.920 --> 00:04:50.930 align:start position:0%
note and right in this image their
 

00:04:50.930 --> 00:04:52.929 align:start position:0%
note and right in this image their
differing<00:04:51.409><c> on</c><00:04:51.559><c> two</c><00:04:51.740><c> fields</c><00:04:52.219><c> marking</c><00:04:52.759><c> red</c>

00:04:52.929 --> 00:04:52.939 align:start position:0%
differing on two fields marking red
 

00:04:52.939 --> 00:04:56.619 align:start position:0%
differing on two fields marking red
there<00:04:53.180><c> and</c><00:04:53.210><c> that's</c><00:04:53.629><c> because</c><00:04:55.210><c> parity</c><00:04:56.210><c> RPC</c>

00:04:56.619 --> 00:04:56.629 align:start position:0%
there and that's because parity RPC
 

00:04:56.629 --> 00:04:58.570 align:start position:0%
there and that's because parity RPC
interface<00:04:56.719><c> exposes</c><00:04:57.620><c> a</c><00:04:57.650><c> few</c><00:04:57.889><c> different</c><00:04:58.249><c> fields</c>

00:04:58.570 --> 00:04:58.580 align:start position:0%
interface exposes a few different fields
 

00:04:58.580 --> 00:05:04.059 align:start position:0%
interface exposes a few different fields
than<00:04:58.789><c> gas</c><00:05:00.759><c> now</c><00:05:02.050><c> as</c><00:05:03.050><c> we're</c><00:05:03.289><c> going</c><00:05:03.379><c> to</c><00:05:03.560><c> analysis</c>

00:05:04.059 --> 00:05:04.069 align:start position:0%
than gas now as we're going to analysis
 

00:05:04.069 --> 00:05:07.600 align:start position:0%
than gas now as we're going to analysis
talk<00:05:04.909><c> a</c><00:05:04.939><c> few</c><00:05:05.330><c> words</c><00:05:05.479><c> about</c><00:05:05.569><c> the</c><00:05:05.810><c> EVM</c><00:05:06.610><c> because</c>

00:05:07.600 --> 00:05:07.610 align:start position:0%
talk a few words about the EVM because
 

00:05:07.610 --> 00:05:10.179 align:start position:0%
talk a few words about the EVM because
there's<00:05:08.110><c> they</c><00:05:09.110><c> might</c><00:05:09.289><c> be</c><00:05:09.469><c> conception</c><00:05:10.009><c> that</c>

00:05:10.179 --> 00:05:10.189 align:start position:0%
there's they might be conception that
 

00:05:10.189 --> 00:05:12.129 align:start position:0%
there's they might be conception that
any<00:05:10.400><c> minor</c><00:05:10.810><c> difference</c><00:05:11.810><c> in</c><00:05:12.020><c> the</c>

00:05:12.129 --> 00:05:12.139 align:start position:0%
any minor difference in the
 

00:05:12.139 --> 00:05:13.899 align:start position:0%
any minor difference in the
implementation<00:05:12.349><c> of</c><00:05:12.800><c> the</c><00:05:12.949><c> UM</c><00:05:13.249><c> will</c>

00:05:13.899 --> 00:05:13.909 align:start position:0%
implementation of the UM will
 

00:05:13.909 --> 00:05:15.429 align:start position:0%
implementation of the UM will
automatically<00:05:14.509><c> result</c><00:05:14.810><c> in</c><00:05:14.930><c> a</c><00:05:14.960><c> consensus</c>

00:05:15.429 --> 00:05:15.439 align:start position:0%
automatically result in a consensus
 

00:05:15.439 --> 00:05:16.839 align:start position:0%
automatically result in a consensus
failure<00:05:15.800><c> and</c><00:05:16.129><c> that's</c><00:05:16.370><c> not</c><00:05:16.520><c> quite</c><00:05:16.789><c> true</c>

00:05:16.839 --> 00:05:16.849 align:start position:0%
failure and that's not quite true
 

00:05:16.849 --> 00:05:19.089 align:start position:0%
failure and that's not quite true
because<00:05:17.419><c> there</c><00:05:17.599><c> are</c><00:05:17.689><c> some</c><00:05:17.870><c> things</c><00:05:18.110><c> some</c><00:05:18.830><c> parts</c>

00:05:19.089 --> 00:05:19.099 align:start position:0%
because there are some things some parts
 

00:05:19.099 --> 00:05:21.700 align:start position:0%
because there are some things some parts
of<00:05:19.189><c> the</c><00:05:19.310><c> ABM</c><00:05:19.969><c> which</c><00:05:20.150><c> are</c><00:05:20.330><c> ephemeral</c><00:05:20.599><c> such</c><00:05:21.529><c> as</c>

00:05:21.700 --> 00:05:21.710 align:start position:0%
of the ABM which are ephemeral such as
 

00:05:21.710 --> 00:05:27.519 align:start position:0%
of the ABM which are ephemeral such as
the<00:05:21.860><c> memory</c><00:05:22.219><c> on</c><00:05:22.310><c> the</c><00:05:22.430><c> stack</c><00:05:24.789><c> and</c><00:05:26.259><c> which</c><00:05:27.259><c> do</c><00:05:27.499><c> not</c>

00:05:27.519 --> 00:05:27.529 align:start position:0%
the memory on the stack and which do not
 

00:05:27.529 --> 00:05:30.129 align:start position:0%
the memory on the stack and which do not
necessarily<00:05:28.270><c> issues</c><00:05:29.270><c> but</c><00:05:29.719><c> they're</c><00:05:29.960><c> very</c>

00:05:30.129 --> 00:05:30.139 align:start position:0%
necessarily issues but they're very
 

00:05:30.139 --> 00:05:31.839 align:start position:0%
necessarily issues but they're very
interesting<00:05:30.620><c> because</c><00:05:30.800><c> they</c><00:05:31.039><c> can</c><00:05:31.069><c> be</c><00:05:31.309><c> used</c><00:05:31.520><c> to</c>

00:05:31.839 --> 00:05:31.849 align:start position:0%
interesting because they can be used to
 

00:05:31.849 --> 00:05:35.860 align:start position:0%
interesting because they can be used to
trigger<00:05:32.029><c> consensus</c><00:05:32.719><c> errors</c><00:05:34.120><c> and</c><00:05:35.120><c> in</c><00:05:35.449><c> order</c><00:05:35.719><c> to</c>

00:05:35.860 --> 00:05:35.870 align:start position:0%
trigger consensus errors and in order to
 

00:05:35.870 --> 00:05:39.600 align:start position:0%
trigger consensus errors and in order to
really<00:05:36.399><c> measure</c><00:05:37.399><c> EVM</c><00:05:37.969><c> side</c><00:05:38.270><c> by</c><00:05:38.449><c> side</c><00:05:38.779><c> and</c>

00:05:39.600 --> 00:05:39.610 align:start position:0%
really measure EVM side by side and
 

00:05:39.610 --> 00:05:42.219 align:start position:0%
really measure EVM side by side and
detect<00:05:40.610><c> implementation</c><00:05:41.330><c> differences</c><00:05:41.899><c> in</c>

00:05:42.219 --> 00:05:42.229 align:start position:0%
detect implementation differences in
 

00:05:42.229 --> 00:05:45.550 align:start position:0%
detect implementation differences in
idioms<00:05:42.620><c> we</c><00:05:43.249><c> need</c><00:05:43.399><c> an</c><00:05:43.580><c> kind</c><00:05:44.029><c> of</c><00:05:44.089><c> up</c><00:05:44.300><c> by</c><00:05:44.659><c> up</c><00:05:44.930><c> view</c>

00:05:45.550 --> 00:05:45.560 align:start position:0%
idioms we need an kind of up by up view
 

00:05:45.560 --> 00:05:49.839 align:start position:0%
idioms we need an kind of up by up view
of<00:05:45.589><c> the</c><00:05:45.889><c> internal</c><00:05:46.819><c> state</c><00:05:48.129><c> so</c><00:05:49.129><c> we</c><00:05:49.279><c> push</c><00:05:49.520><c> kind</c><00:05:49.759><c> of</c>

00:05:49.839 --> 00:05:49.849 align:start position:0%
of the internal state so we push kind of
 

00:05:49.849 --> 00:05:52.300 align:start position:0%
of the internal state so we push kind of
hard<00:05:50.089><c> to</c><00:05:50.330><c> get</c><00:05:50.659><c> common</c><00:05:51.589><c> output</c><00:05:51.740><c> format</c><00:05:52.279><c> for</c>

00:05:52.300 --> 00:05:52.310 align:start position:0%
hard to get common output format for
 

00:05:52.310 --> 00:05:55.659 align:start position:0%
hard to get common output format for
EVMs<00:05:52.939><c> so</c><00:05:53.629><c> that</c><00:05:53.839><c> after</c><00:05:54.229><c> each</c><00:05:54.349><c> instruction</c><00:05:55.009><c> made</c>

00:05:55.659 --> 00:05:55.669 align:start position:0%
EVMs so that after each instruction made
 

00:05:55.669 --> 00:05:58.239 align:start position:0%
EVMs so that after each instruction made
in<00:05:55.819><c> a</c><00:05:55.939><c> VM</c><00:05:56.240><c> it</c><00:05:56.419><c> would</c><00:05:56.569><c> output</c><00:05:56.930><c> JSON</c><00:05:57.529><c> blob</c><00:05:57.919><c> with</c>

00:05:58.239 --> 00:05:58.249 align:start position:0%
in a VM it would output JSON blob with
 

00:05:58.249 --> 00:06:00.070 align:start position:0%
in a VM it would output JSON blob with
internal<00:05:59.060><c> state</c><00:05:59.300><c> as</c><00:05:59.449><c> you</c><00:05:59.569><c> can</c><00:05:59.719><c> see</c><00:05:59.870><c> on</c><00:06:00.020><c> the</c>

00:06:00.070 --> 00:06:00.080 align:start position:0%
internal state as you can see on the
 

00:06:00.080 --> 00:06:05.980 align:start position:0%
internal state as you can see on the
left<00:06:02.499><c> and</c><00:06:03.499><c> also</c><00:06:04.490><c> a</c><00:06:04.520><c> capability</c><00:06:05.029><c> to</c><00:06:05.539><c> use</c>

00:06:05.980 --> 00:06:05.990 align:start position:0%
left and also a capability to use
 

00:06:05.990 --> 00:06:08.499 align:start position:0%
left and also a capability to use
arbitrary<00:06:06.560><c> state</c><00:06:07.189><c> in</c><00:06:07.339><c> Genesys</c><00:06:07.759><c> configuration</c>

00:06:08.499 --> 00:06:08.509 align:start position:0%
arbitrary state in Genesys configuration
 

00:06:08.509 --> 00:06:17.800 align:start position:0%
arbitrary state in Genesys configuration
with<00:06:08.779><c> the</c><00:06:08.810><c> raw</c><00:06:09.199><c> EVMs</c><00:06:15.759><c> so</c><00:06:16.759><c> one</c><00:06:16.939><c> problem</c><00:06:17.180><c> that</c>

00:06:17.800 --> 00:06:17.810 align:start position:0%
with the raw EVMs so one problem that
 

00:06:17.810 --> 00:06:21.129 align:start position:0%
with the raw EVMs so one problem that
can<00:06:18.110><c> arise</c><00:06:18.229><c> is</c><00:06:19.270><c> if</c><00:06:20.270><c> we</c><00:06:20.479><c> hit</c><00:06:20.539><c> by</c><00:06:20.749><c> an</c><00:06:20.810><c> attack</c>

00:06:21.129 --> 00:06:21.139 align:start position:0%
can arise is if we hit by an attack
 

00:06:21.139 --> 00:06:23.829 align:start position:0%
can arise is if we hit by an attack
which<00:06:21.589><c> blows</c><00:06:22.009><c> the</c><00:06:22.939><c> node</c><00:06:23.149><c> out</c><00:06:23.389><c> of</c><00:06:23.419><c> the</c><00:06:23.569><c> water</c>

00:06:23.829 --> 00:06:23.839 align:start position:0%
which blows the node out of the water
 

00:06:23.839 --> 00:06:27.879 align:start position:0%
which blows the node out of the water
how<00:06:24.709><c> can</c><00:06:24.949><c> we</c><00:06:25.129><c> analyze</c><00:06:25.430><c> that</c><00:06:26.620><c> because</c><00:06:27.620><c> I</c><00:06:27.649><c> now</c>

00:06:27.879 --> 00:06:27.889 align:start position:0%
how can we analyze that because I now
 

00:06:27.889 --> 00:06:29.019 align:start position:0%
how can we analyze that because I now
just<00:06:28.189><c> died</c><00:06:28.459><c> right</c>

00:06:29.019 --> 00:06:29.029 align:start position:0%
just died right
 

00:06:29.029 --> 00:06:31.449 align:start position:0%
just died right
how<00:06:29.120><c> can</c><00:06:29.300><c> analyze</c><00:06:29.689><c> transaction</c><00:06:30.439><c> if</c><00:06:31.219><c> the</c>

00:06:31.449 --> 00:06:31.459 align:start position:0%
how can analyze transaction if the
 

00:06:31.459 --> 00:06:34.899 align:start position:0%
how can analyze transaction if the
transaction<00:06:31.759><c> crashes</c><00:06:32.300><c> my</c><00:06:32.479><c> node</c><00:06:33.580><c> well</c><00:06:34.580><c> if</c><00:06:34.759><c> we</c>

00:06:34.899 --> 00:06:34.909 align:start position:0%
transaction crashes my node well if we
 

00:06:34.909 --> 00:06:38.110 align:start position:0%
transaction crashes my node well if we
have<00:06:35.089><c> a</c><00:06:35.360><c> standalone</c><00:06:35.870><c> EVM</c><00:06:36.709><c> what</c><00:06:37.490><c> we</c><00:06:37.639><c> can</c><00:06:37.789><c> do</c><00:06:37.939><c> is</c>

00:06:38.110 --> 00:06:38.120 align:start position:0%
have a standalone EVM what we can do is
 

00:06:38.120 --> 00:06:41.050 align:start position:0%
have a standalone EVM what we can do is
we<00:06:38.300><c> can</c><00:06:38.449><c> just</c><00:06:39.079><c> fetch</c><00:06:39.409><c> the</c><00:06:39.740><c> pre</c><00:06:39.979><c> state</c><00:06:40.339><c> about</c>

00:06:41.050 --> 00:06:41.060 align:start position:0%
we can just fetch the pre state about
 

00:06:41.060 --> 00:06:43.090 align:start position:0%
we can just fetch the pre state about
the<00:06:41.120><c> sender</c><00:06:41.569><c> and</c><00:06:41.689><c> the</c><00:06:41.750><c> receiver</c><00:06:42.050><c> is</c><00:06:42.319><c> just</c>

00:06:43.090 --> 00:06:43.100 align:start position:0%
the sender and the receiver is just
 

00:06:43.100 --> 00:06:47.350 align:start position:0%
the sender and the receiver is just
to<00:06:43.370><c> accounts</c><00:06:45.010><c> we</c><00:06:46.010><c> can</c><00:06:46.160><c> execute</c><00:06:46.430><c> that</c><00:06:46.640><c> locally</c>

00:06:47.350 --> 00:06:47.360 align:start position:0%
to accounts we can execute that locally
 

00:06:47.360 --> 00:06:50.200 align:start position:0%
to accounts we can execute that locally
in<00:06:47.600><c> our</c><00:06:47.720><c> EVM</c><00:06:48.290><c> and</c><00:06:48.680><c> then</c><00:06:49.040><c> analyze</c><00:06:49.490><c> the</c><00:06:49.520><c> trace</c><00:06:49.940><c> to</c>

00:06:50.200 --> 00:06:50.210 align:start position:0%
in our EVM and then analyze the trace to
 

00:06:50.210 --> 00:06:52.120 align:start position:0%
in our EVM and then analyze the trace to
find<00:06:50.570><c> did</c><00:06:51.080><c> we</c><00:06:51.200><c> miss</c><00:06:51.350><c> anything</c><00:06:51.650><c> was</c><00:06:52.010><c> there</c>

00:06:52.120 --> 00:06:52.130 align:start position:0%
find did we miss anything was there
 

00:06:52.130 --> 00:06:53.650 align:start position:0%
find did we miss anything was there
anything<00:06:52.250><c> else</c><00:06:52.460><c> we</c><00:06:52.550><c> should</c><00:06:52.670><c> have</c><00:06:52.910><c> had</c><00:06:53.060><c> here</c><00:06:53.360><c> an</c>

00:06:53.650 --> 00:06:53.660 align:start position:0%
anything else we should have had here an
 

00:06:53.660 --> 00:06:57.130 align:start position:0%
anything else we should have had here an
external<00:06:54.440><c> references</c><00:06:54.920><c> and</c><00:06:55.730><c> fetch</c><00:06:56.360><c> those</c><00:06:56.690><c> and</c>

00:06:57.130 --> 00:06:57.140 align:start position:0%
external references and fetch those and
 

00:06:57.140 --> 00:06:59.200 align:start position:0%
external references and fetch those and
start<00:06:57.410><c> over</c><00:06:57.680><c> and</c><00:06:57.980><c> if</c><00:06:58.130><c> no</c><00:06:58.370><c> crashes</c><00:06:58.850><c> then</c><00:06:59.060><c> we're</c>

00:06:59.200 --> 00:06:59.210 align:start position:0%
start over and if no crashes then we're
 

00:06:59.210 --> 00:07:03.250 align:start position:0%
start over and if no crashes then we're
just<00:06:59.240><c> successfully</c><00:07:00.610><c> reproduced</c><00:07:01.610><c> the</c><00:07:01.880><c> API</c><00:07:02.480><c> the</c>

00:07:03.250 --> 00:07:03.260 align:start position:0%
just successfully reproduced the API the
 

00:07:03.260 --> 00:07:05.680 align:start position:0%
just successfully reproduced the API the
transaction<00:07:03.620><c> and</c><00:07:04.490><c> for</c><00:07:05.000><c> this</c><00:07:05.120><c> we</c><00:07:05.270><c> only</c><00:07:05.360><c> need</c><00:07:05.600><c> a</c>

00:07:05.680 --> 00:07:05.690 align:start position:0%
transaction and for this we only need a
 

00:07:05.690 --> 00:07:08.790 align:start position:0%
transaction and for this we only need a
web<00:07:05.840><c> 3</c><00:07:06.080><c> standard</c><00:07:06.410><c> API</c><00:07:06.770><c> without</c><00:07:06.980><c> any</c><00:07:07.430><c> debug</c>

00:07:08.790 --> 00:07:08.800 align:start position:0%
web 3 standard API without any debug
 

00:07:08.800 --> 00:07:19.330 align:start position:0%
web 3 standard API without any debug
specialities<00:07:14.170><c> sorry</c><00:07:17.500><c> so</c><00:07:18.500><c> I'm</c><00:07:18.890><c> going</c><00:07:19.130><c> to</c>

00:07:19.330 --> 00:07:19.340 align:start position:0%
specialities sorry so I'm going to
 

00:07:19.340 --> 00:07:22.450 align:start position:0%
specialities sorry so I'm going to
demonstrate<00:07:20.380><c> quickly</c><00:07:21.380><c> how</c><00:07:22.010><c> we</c><00:07:22.070><c> can</c><00:07:22.370><c> do</c>

00:07:22.450 --> 00:07:22.460 align:start position:0%
demonstrate quickly how we can do
 

00:07:22.460 --> 00:07:25.180 align:start position:0%
demonstrate quickly how we can do
analysis<00:07:22.700><c> of</c><00:07:23.360><c> the</c><00:07:23.480><c> jump</c><00:07:23.750><c> test</c><00:07:23.990><c> attack</c><00:07:24.950><c> which</c>

00:07:25.180 --> 00:07:25.190 align:start position:0%
analysis of the jump test attack which
 

00:07:25.190 --> 00:07:36.790 align:start position:0%
analysis of the jump test attack which
we<00:07:25.310><c> were</c><00:07:25.370><c> hit</c><00:07:25.550><c> by</c><00:07:25.760><c> in</c><00:07:26.140><c> on</c><00:07:27.140><c> June</c><00:07:27.470><c> 1</c><00:07:35.440><c> so</c><00:07:36.440><c> I'm</c>

00:07:36.790 --> 00:07:36.800 align:start position:0%
we were hit by in on June 1 so I'm
 

00:07:36.800 --> 00:07:40.170 align:start position:0%
we were hit by in on June 1 so I'm
running<00:07:36.980><c> this</c><00:07:37.250><c> little</c><00:07:37.430><c> reproducer</c><00:07:38.150><c> here</c><00:07:38.950><c> I</c>

00:07:40.170 --> 00:07:40.180 align:start position:0%
running this little reproducer here I
 

00:07:40.180 --> 00:07:44.860 align:start position:0%
running this little reproducer here I
pipe<00:07:41.180><c> in</c><00:07:41.390><c> the</c><00:07:42.110><c> hash</c><00:07:42.710><c> used</c><00:07:43.550><c> in</c><00:07:43.970><c> the</c><00:07:44.090><c> attack</c><00:07:44.420><c> the</c>

00:07:44.860 --> 00:07:44.870 align:start position:0%
pipe in the hash used in the attack the
 

00:07:44.870 --> 00:07:47.440 align:start position:0%
pipe in the hash used in the attack the
transaction<00:07:45.730><c> telling</c><00:07:46.730><c> it</c><00:07:46.820><c> I'm</c><00:07:46.940><c> gonna</c><00:07:47.090><c> use</c><00:07:47.240><c> my</c>

00:07:47.440 --> 00:07:47.450 align:start position:0%
transaction telling it I'm gonna use my
 

00:07:47.450 --> 00:07:51.070 align:start position:0%
transaction telling it I'm gonna use my
local<00:07:47.720><c> EVM</c><00:07:48.350><c> not</c><00:07:49.160><c> through</c><00:07:49.730><c> darker</c><00:07:50.210><c> and</c><00:07:50.810><c> it</c>

00:07:51.070 --> 00:07:51.080 align:start position:0%
local EVM not through darker and it
 

00:07:51.080 --> 00:07:53.710 align:start position:0%
local EVM not through darker and it
basically<00:07:51.520><c> sets</c><00:07:52.520><c> the</c><00:07:52.610><c> right</c><00:07:52.850><c> fork</c><00:07:53.150><c> rules</c><00:07:53.450><c> for</c>

00:07:53.710 --> 00:07:53.720 align:start position:0%
basically sets the right fork rules for
 

00:07:53.720 --> 00:07:57.190 align:start position:0%
basically sets the right fork rules for
that<00:07:53.840><c> particular</c><00:07:54.080><c> block</c><00:07:55.570><c> and</c><00:07:56.570><c> executes</c><00:07:57.170><c> it</c>

00:07:57.190 --> 00:07:57.200 align:start position:0%
that particular block and executes it
 

00:07:57.200 --> 00:08:01.650 align:start position:0%
that particular block and executes it
and<00:07:57.710><c> it</c><00:07:58.220><c> has</c><00:07:58.460><c> some</c><00:07:58.490><c> intermediary</c><00:07:59.330><c> traces</c><00:07:59.900><c> here</c>

00:08:01.650 --> 00:08:01.660 align:start position:0%
and it has some intermediary traces here
 

00:08:01.660 --> 00:08:07.420 align:start position:0%
and it has some intermediary traces here
we<00:08:02.660><c> can</c><00:08:02.810><c> take</c><00:08:03.020><c> a</c><00:08:03.080><c> look</c><00:08:03.230><c> at</c><00:08:03.380><c> those</c><00:08:05.710><c> so</c><00:08:06.710><c> let's</c><00:08:07.280><c> go</c>

00:08:07.420 --> 00:08:07.430 align:start position:0%
we can take a look at those so let's go
 

00:08:07.430 --> 00:08:18.790 align:start position:0%
we can take a look at those so let's go
directly<00:08:07.850><c> and</c><00:08:07.940><c> set</c><00:08:08.120><c> for</c><00:08:08.330><c> the</c><00:08:08.740><c> final</c><00:08:09.740><c> trace</c><00:08:17.800><c> I'm</c>

00:08:18.790 --> 00:08:18.800 align:start position:0%
directly and set for the final trace I'm
 

00:08:18.800 --> 00:08:21.070 align:start position:0%
directly and set for the final trace I'm
showing<00:08:19.430><c> this</c><00:08:19.550><c> and</c><00:08:20.090><c> what</c><00:08:20.540><c> I</c><00:08:20.570><c> call</c><00:08:20.750><c> the</c><00:08:20.810><c> OP</c>

00:08:21.070 --> 00:08:21.080 align:start position:0%
showing this and what I call the OP
 

00:08:21.080 --> 00:08:25.690 align:start position:0%
showing this and what I call the OP
viewer<00:08:21.730><c> or</c><00:08:22.730><c> retro</c><00:08:23.210><c> mix</c><00:08:23.420><c> if</c><00:08:23.660><c> you</c><00:08:23.690><c> like</c><00:08:24.700><c> it's</c>

00:08:25.690 --> 00:08:25.700 align:start position:0%
viewer or retro mix if you like it's
 

00:08:25.700 --> 00:08:29.890 align:start position:0%
viewer or retro mix if you like it's
remix<00:08:26.270><c> like</c><00:08:26.510><c> a</c><00:08:27.250><c> debug</c><00:08:28.250><c> viewer</c><00:08:28.490><c> for</c><00:08:29.060><c> the</c><00:08:29.210><c> JSON</c>

00:08:29.890 --> 00:08:29.900 align:start position:0%
remix like a debug viewer for the JSON
 

00:08:29.900 --> 00:08:33.250 align:start position:0%
remix like a debug viewer for the JSON
output<00:08:29.990><c> format</c><00:08:30.590><c> that</c><00:08:30.680><c> I</c><00:08:30.770><c> showed</c><00:08:31.040><c> earlier</c><00:08:32.260><c> and</c>

00:08:33.250 --> 00:08:33.260 align:start position:0%
output format that I showed earlier and
 

00:08:33.260 --> 00:08:36.370 align:start position:0%
output format that I showed earlier and
it's<00:08:34.010><c> a</c><00:08:34.099><c> good</c><00:08:34.250><c> start</c><00:08:34.580><c> for</c><00:08:35.110><c> analyzing</c><00:08:36.110><c> what's</c>

00:08:36.370 --> 00:08:36.380 align:start position:0%
it's a good start for analyzing what's
 

00:08:36.380 --> 00:08:39.969 align:start position:0%
it's a good start for analyzing what's
happening<00:08:36.830><c> in</c><00:08:37.280><c> a</c><00:08:37.490><c> transaction</c><00:08:38.770><c> so</c><00:08:39.770><c> you</c><00:08:39.830><c> can</c>

00:08:39.969 --> 00:08:39.979 align:start position:0%
happening in a transaction so you can
 

00:08:39.979 --> 00:08:42.130 align:start position:0%
happening in a transaction so you can
see<00:08:40.130><c> this</c><00:08:40.340><c> particular</c><00:08:40.880><c> transaction</c><00:08:41.450><c> it</c>

00:08:42.130 --> 00:08:42.140 align:start position:0%
see this particular transaction it
 

00:08:42.140 --> 00:08:47.699 align:start position:0%
see this particular transaction it
doesn't<00:08:42.530><c> Xcode</c><00:08:42.860><c> copy</c>

00:08:47.699 --> 00:08:47.709 align:start position:0%
 
 

00:08:47.709 --> 00:08:51.389 align:start position:0%
 
and<00:08:47.980><c> the</c><00:08:48.370><c> Xcode</c><00:08:48.670><c> copy</c><00:08:49.529><c> fills</c><00:08:50.529><c> the</c><00:08:50.740><c> memory</c><00:08:51.069><c> with</c>

00:08:51.389 --> 00:08:51.399 align:start position:0%
and the Xcode copy fills the memory with
 

00:08:51.399 --> 00:08:55.079 align:start position:0%
and the Xcode copy fills the memory with
five<00:08:51.730><c> B</c><00:08:52.000><c> and</c><00:08:52.689><c> it</c><00:08:52.779><c> does</c><00:08:52.959><c> it</c><00:08:53.110><c> repeatedly</c><00:08:53.649><c> and</c><00:08:54.310><c> as</c>

00:08:55.079 --> 00:08:55.089 align:start position:0%
five B and it does it repeatedly and as
 

00:08:55.089 --> 00:09:00.600 align:start position:0%
five B and it does it repeatedly and as
you<00:08:55.209><c> can</c><00:08:55.329><c> see</c><00:08:55.389><c> the</c><00:08:56.370><c> memory</c><00:08:57.370><c> is</c><00:08:57.819><c> growing</c><00:08:59.310><c> and</c><00:09:00.310><c> it</c>

00:09:00.600 --> 00:09:00.610 align:start position:0%
you can see the memory is growing and it
 

00:09:00.610 --> 00:09:03.329 align:start position:0%
you can see the memory is growing and it
keeps<00:09:00.879><c> doing</c><00:09:01.089><c> this</c><00:09:01.329><c> for</c><00:09:01.660><c> about</c><00:09:01.769><c> 600</c><00:09:02.769><c> steps</c><00:09:03.100><c> I'm</c>

00:09:03.329 --> 00:09:03.339 align:start position:0%
keeps doing this for about 600 steps I'm
 

00:09:03.339 --> 00:09:07.319 align:start position:0%
keeps doing this for about 600 steps I'm
gonna<00:09:03.490><c> go</c><00:09:03.819><c> a</c><00:09:03.850><c> bit</c><00:09:04.000><c> faster</c><00:09:04.389><c> here</c><00:09:05.939><c> until</c><00:09:06.939><c> it</c><00:09:07.089><c> has</c>

00:09:07.319 --> 00:09:07.329 align:start position:0%
gonna go a bit faster here until it has
 

00:09:07.329 --> 00:09:10.710 align:start position:0%
gonna go a bit faster here until it has
filled<00:09:07.810><c> up</c><00:09:07.990><c> the</c><00:09:08.170><c> memory</c><00:09:08.939><c> with</c><00:09:09.939><c> half</c><00:09:10.600><c> a</c>

00:09:10.710 --> 00:09:10.720 align:start position:0%
filled up the memory with half a
 

00:09:10.720 --> 00:09:14.009 align:start position:0%
filled up the memory with half a
megabytes<00:09:11.199><c> all</c><00:09:11.730><c> 5b</c><00:09:12.730><c> which</c><00:09:13.360><c> happens</c><00:09:13.899><c> to</c><00:09:13.990><c> be</c>

00:09:14.009 --> 00:09:14.019 align:start position:0%
megabytes all 5b which happens to be
 

00:09:14.019 --> 00:09:19.829 align:start position:0%
megabytes all 5b which happens to be
jump<00:09:14.769><c> test</c><00:09:16.980><c> then</c><00:09:17.980><c> it</c><00:09:18.009><c> puts</c><00:09:18.370><c> some</c><00:09:19.209><c> more</c><00:09:19.420><c> code</c><00:09:19.689><c> in</c>

00:09:19.829 --> 00:09:19.839 align:start position:0%
jump test then it puts some more code in
 

00:09:19.839 --> 00:09:25.650 align:start position:0%
jump test then it puts some more code in
there<00:09:20.050><c> and</c><00:09:22.350><c> this</c><00:09:23.350><c> is</c><00:09:23.560><c> looks</c><00:09:24.189><c> like</c><00:09:24.430><c> actual</c><00:09:24.790><c> EVM</c>

00:09:25.650 --> 00:09:25.660 align:start position:0%
there and this is looks like actual EVM
 

00:09:25.660 --> 00:09:32.309 align:start position:0%
there and this is looks like actual EVM
code<00:09:26.399><c> 6003</c><00:09:27.480><c> 56</c><00:09:28.480><c> 5b</c><00:09:29.310><c> and</c><00:09:30.870><c> all</c><00:09:31.870><c> of</c><00:09:32.019><c> you</c><00:09:32.139><c> I'm</c><00:09:32.290><c> sure</c>

00:09:32.309 --> 00:09:32.319 align:start position:0%
code 6003 56 5b and all of you I'm sure
 

00:09:32.319 --> 00:09:36.900 align:start position:0%
code 6003 56 5b and all of you I'm sure
recognize<00:09:33.279><c> that</c><00:09:33.670><c> that</c><00:09:33.939><c> is</c><00:09:34.379><c> the</c><00:09:35.379><c> push</c><00:09:35.680><c> one</c><00:09:36.069><c> jump</c>

00:09:36.900 --> 00:09:36.910 align:start position:0%
recognize that that is the push one jump
 

00:09:36.910 --> 00:09:39.809 align:start position:0%
recognize that that is the push one jump
jump<00:09:37.360><c> test</c><00:09:37.600><c> and</c><00:09:37.899><c> stop</c><00:09:38.170><c> so</c><00:09:39.160><c> it</c><00:09:39.250><c> it's</c><00:09:39.610><c> just</c>

00:09:39.809 --> 00:09:39.819 align:start position:0%
jump test and stop so it it's just
 

00:09:39.819 --> 00:09:44.790 align:start position:0%
jump test and stop so it it's just
executed<00:09:40.540><c> to</c><00:09:40.629><c> create</c><00:09:41.019><c> with</c><00:09:41.620><c> that</c><00:09:41.649><c> code</c><00:09:42.189><c> and</c><00:09:43.800><c> as</c>

00:09:44.790 --> 00:09:44.800 align:start position:0%
executed to create with that code and as
 

00:09:44.800 --> 00:09:46.920 align:start position:0%
executed to create with that code and as
you<00:09:44.980><c> can</c><00:09:45.129><c> see</c><00:09:45.339><c> the</c><00:09:45.550><c> size</c><00:09:45.850><c> of</c><00:09:46.180><c> the</c><00:09:46.300><c> create</c><00:09:46.629><c> is</c>

00:09:46.920 --> 00:09:46.930 align:start position:0%
you can see the size of the create is
 

00:09:46.930 --> 00:09:50.189 align:start position:0%
you can see the size of the create is
the<00:09:47.079><c> full</c><00:09:47.319><c> half</c><00:09:47.649><c> megabytes</c><00:09:48.810><c> okay</c><00:09:49.810><c> so</c><00:09:49.899><c> now</c><00:09:50.139><c> we</c>

00:09:50.189 --> 00:09:50.199 align:start position:0%
the full half megabytes okay so now we
 

00:09:50.199 --> 00:09:52.410 align:start position:0%
the full half megabytes okay so now we
know<00:09:50.379><c> that</c><00:09:50.410><c> the</c><00:09:50.709><c> attacker</c><00:09:51.009><c> is</c><00:09:51.670><c> doing</c><00:09:52.089><c> creates</c>

00:09:52.410 --> 00:09:52.420 align:start position:0%
know that the attacker is doing creates
 

00:09:52.420 --> 00:09:57.150 align:start position:0%
know that the attacker is doing creates
and<00:09:52.720><c> he</c><00:09:53.670><c> keeps</c><00:09:54.670><c> doing</c><00:09:54.819><c> it</c><00:09:54.970><c> repeatedly</c><00:09:56.160><c> one</c>

00:09:57.150 --> 00:09:57.160 align:start position:0%
and he keeps doing it repeatedly one
 

00:09:57.160 --> 00:09:59.939 align:start position:0%
and he keeps doing it repeatedly one
part<00:09:57.430><c> of</c><00:09:57.579><c> the</c><00:09:57.699><c> memory</c><00:09:58.000><c> changes</c><00:09:58.509><c> between</c><00:09:59.500><c> each</c>

00:09:59.939 --> 00:09:59.949 align:start position:0%
part of the memory changes between each
 

00:09:59.949 --> 00:10:03.600 align:start position:0%
part of the memory changes between each
invocation<00:10:01.319><c> it's</c><00:10:02.319><c> a</c><00:10:02.410><c> little</c><00:10:02.649><c> counter</c><00:10:03.129><c> down</c>

00:10:03.600 --> 00:10:03.610 align:start position:0%
invocation it's a little counter down
 

00:10:03.610 --> 00:10:09.569 align:start position:0%
invocation it's a little counter down
there<00:10:03.879><c> and</c><00:10:04.720><c> I'll</c><00:10:05.279><c> skip</c><00:10:06.279><c> forward</c><00:10:06.670><c> with</c><00:10:08.430><c> so</c><00:10:09.430><c> it's</c>

00:10:09.569 --> 00:10:09.579 align:start position:0%
there and I'll skip forward with so it's
 

00:10:09.579 --> 00:10:12.329 align:start position:0%
there and I'll skip forward with so it's
all<00:10:09.699><c> just</c><00:10:09.939><c> create</c><00:10:10.269><c> and</c><00:10:10.930><c> it</c><00:10:11.110><c> ends</c><00:10:11.470><c> on</c><00:10:11.649><c> create</c>

00:10:12.329 --> 00:10:12.339 align:start position:0%
all just create and it ends on create
 

00:10:12.339 --> 00:10:16.350 align:start position:0%
all just create and it ends on create
number<00:10:12.819><c> 105</c><00:10:13.809><c> it</c><00:10:14.019><c> goes</c><00:10:14.230><c> out</c><00:10:14.379><c> of</c><00:10:14.529><c> gas</c><00:10:15.059><c> so</c><00:10:16.059><c> by</c><00:10:16.300><c> this</c>

00:10:16.350 --> 00:10:16.360 align:start position:0%
number 105 it goes out of gas so by this
 

00:10:16.360 --> 00:10:21.090 align:start position:0%
number 105 it goes out of gas so by this
time<00:10:17.250><c> you</c><00:10:18.250><c> can</c><00:10:18.430><c> be</c><00:10:18.569><c> kind</c><00:10:19.569><c> of</c><00:10:19.750><c> have</c><00:10:20.410><c> an</c><00:10:20.529><c> idea</c><00:10:20.620><c> so</c>

00:10:21.090 --> 00:10:21.100 align:start position:0%
time you can be kind of have an idea so
 

00:10:21.100 --> 00:10:23.249 align:start position:0%
time you can be kind of have an idea so
it's<00:10:21.309><c> it's</c><00:10:21.879><c> doing</c><00:10:22.029><c> creates</c><00:10:22.480><c> a</c><00:10:22.660><c> lots</c><00:10:22.839><c> of</c><00:10:22.959><c> times</c>

00:10:23.249 --> 00:10:23.259 align:start position:0%
it's it's doing creates a lots of times
 

00:10:23.259 --> 00:10:25.079 align:start position:0%
it's it's doing creates a lots of times
with<00:10:23.589><c> a</c><00:10:23.680><c> large</c><00:10:23.860><c> memory</c><00:10:24.189><c> segment</c><00:10:24.759><c> totally</c>

00:10:25.079 --> 00:10:25.089 align:start position:0%
with a large memory segment totally
 

00:10:25.089 --> 00:10:29.009 align:start position:0%
with a large memory segment totally
filled<00:10:25.329><c> with</c><00:10:25.569><c> jump</c><00:10:25.959><c> tests</c><00:10:26.670><c> it</c><00:10:27.670><c> changes</c><00:10:28.509><c> one</c>

00:10:29.009 --> 00:10:29.019 align:start position:0%
filled with jump tests it changes one
 

00:10:29.019 --> 00:10:32.040 align:start position:0%
filled with jump tests it changes one
little<00:10:29.350><c> bytes</c><00:10:29.649><c> each</c><00:10:30.009><c> time</c><00:10:30.670><c> so</c><00:10:31.569><c> obviously</c>

00:10:32.040 --> 00:10:32.050 align:start position:0%
little bytes each time so obviously
 

00:10:32.050 --> 00:10:37.230 align:start position:0%
little bytes each time so obviously
bypassing<00:10:32.769><c> and</c><00:10:32.889><c> caching</c><00:10:33.339><c> mechanisms</c><00:10:34.709><c> so</c><00:10:36.240><c> by</c>

00:10:37.230 --> 00:10:37.240 align:start position:0%
bypassing and caching mechanisms so by
 

00:10:37.240 --> 00:10:40.679 align:start position:0%
bypassing and caching mechanisms so by
reproducing<00:10:37.899><c> it</c><00:10:38.019><c> and</c><00:10:39.120><c> viewing</c><00:10:40.120><c> at</c><00:10:40.269><c> the</c><00:10:40.420><c> trace</c>

00:10:40.679 --> 00:10:40.689 align:start position:0%
reproducing it and viewing at the trace
 

00:10:40.689 --> 00:10:42.809 align:start position:0%
reproducing it and viewing at the trace
in<00:10:41.110><c> this</c><00:10:41.259><c> fashion</c><00:10:41.709><c> we</c><00:10:42.100><c> can</c><00:10:42.279><c> do</c><00:10:42.370><c> a</c><00:10:42.430><c> very</c><00:10:42.579><c> quick</c>

00:10:42.809 --> 00:10:42.819 align:start position:0%
in this fashion we can do a very quick
 

00:10:42.819 --> 00:10:48.019 align:start position:0%
in this fashion we can do a very quick
analysis<00:10:43.480><c> of</c><00:10:43.509><c> what</c><00:10:43.750><c> happened</c><00:10:44.139><c> and</c><00:10:44.879><c> we</c><00:10:45.879><c> can</c>

00:10:48.019 --> 00:10:48.029 align:start position:0%
analysis of what happened and we can
 

00:10:48.029 --> 00:10:51.630 align:start position:0%
analysis of what happened and we can
benchmark<00:10:49.029><c> it</c>

00:10:51.630 --> 00:10:51.640 align:start position:0%
 
 

00:10:51.640 --> 00:10:54.970 align:start position:0%
 
right<00:10:52.640><c> now</c><00:10:52.790><c> it's</c><00:10:53.000><c> running</c><00:10:53.360><c> at</c><00:10:53.980><c> 300</c>

00:10:54.970 --> 00:10:54.980 align:start position:0%
right now it's running at 300
 

00:10:54.980 --> 00:11:01.390 align:start position:0%
right now it's running at 300
milliseconds<00:10:56.380><c> and</c><00:10:57.380><c> if</c><00:10:57.590><c> I</c><00:10:57.710><c> compare</c><00:10:58.100><c> that</c><00:10:58.310><c> to</c><00:11:00.400><c> so</c>

00:11:01.390 --> 00:11:01.400 align:start position:0%
milliseconds and if I compare that to so
 

00:11:01.400 --> 00:11:06.570 align:start position:0%
milliseconds and if I compare that to so
this<00:11:01.610><c> is</c><00:11:01.730><c> the</c><00:11:01.850><c> EVM</c><00:11:02.800><c> get</c><00:11:03.800><c> EVM</c><00:11:04.430><c> with</c><00:11:05.210><c> the</c><00:11:05.690><c> patch</c>

00:11:06.570 --> 00:11:06.580 align:start position:0%
this is the EVM get EVM with the patch
 

00:11:06.580 --> 00:11:11.440 align:start position:0%
this is the EVM get EVM with the patch
applied<00:11:07.580><c> after</c><00:11:08.180><c> this</c><00:11:08.330><c> attack</c><00:11:08.690><c> I</c><00:11:10.120><c> can</c><00:11:11.120><c> try</c><00:11:11.420><c> it</c>

00:11:11.440 --> 00:11:11.450 align:start position:0%
applied after this attack I can try it
 

00:11:11.450 --> 00:11:14.440 align:start position:0%
applied after this attack I can try it
against<00:11:11.870><c> the</c><00:11:11.990><c> EVM</c><00:11:12.440><c> without</c><00:11:12.950><c> the</c><00:11:13.190><c> patch</c><00:11:13.450><c> for</c>

00:11:14.440 --> 00:11:14.450 align:start position:0%
against the EVM without the patch for
 

00:11:14.450 --> 00:11:23.560 align:start position:0%
against the EVM without the patch for
the<00:11:14.810><c> jump</c><00:11:15.050><c> test</c><00:11:15.290><c> analysis</c><00:11:21.670><c> and</c><00:11:22.670><c> as</c><00:11:23.300><c> you</c><00:11:23.420><c> can</c>

00:11:23.560 --> 00:11:23.570 align:start position:0%
the jump test analysis and as you can
 

00:11:23.570 --> 00:11:28.540 align:start position:0%
the jump test analysis and as you can
see<00:11:23.720><c> it</c><00:11:23.870><c> took</c><00:11:24.140><c> nine</c><00:11:24.920><c> seconds</c><00:11:26.050><c> so</c><00:11:27.050><c> this</c><00:11:27.680><c> tooling</c>

00:11:28.540 --> 00:11:28.550 align:start position:0%
see it took nine seconds so this tooling
 

00:11:28.550 --> 00:11:30.550 align:start position:0%
see it took nine seconds so this tooling
makes<00:11:28.880><c> it</c><00:11:29.000><c> possible</c><00:11:29.150><c> for</c><00:11:29.480><c> us</c><00:11:29.780><c> to</c><00:11:29.810><c> do</c><00:11:30.320><c> quick</c>

00:11:30.550 --> 00:11:30.560 align:start position:0%
makes it possible for us to do quick
 

00:11:30.560 --> 00:11:35.320 align:start position:0%
makes it possible for us to do quick
analysis<00:11:31.040><c> and</c><00:11:31.280><c> then</c><00:11:32.000><c> to</c><00:11:33.760><c> check</c><00:11:34.760><c> does</c><00:11:35.120><c> this</c>

00:11:35.320 --> 00:11:35.330 align:start position:0%
analysis and then to check does this
 

00:11:35.330 --> 00:11:43.180 align:start position:0%
analysis and then to check does this
patch<00:11:35.630><c> work</c><00:11:36.050><c> and</c><00:11:36.500><c> I</c><00:11:36.860><c> can</c><00:11:37.330><c> I</c><00:11:41.440><c> can</c><00:11:42.440><c> share</c><00:11:42.740><c> it</c><00:11:42.770><c> with</c>

00:11:43.180 --> 00:11:43.190 align:start position:0%
patch work and I can I can share it with
 

00:11:43.190 --> 00:11:44.950 align:start position:0%
patch work and I can I can share it with
the<00:11:43.280><c> co-workers</c><00:11:43.850><c> and</c><00:11:44.030><c> they</c><00:11:44.150><c> can</c><00:11:44.360><c> try</c><00:11:44.840><c> out</c>

00:11:44.950 --> 00:11:44.960 align:start position:0%
the co-workers and they can try out
 

00:11:44.960 --> 00:11:46.690 align:start position:0%
the co-workers and they can try out
various<00:11:44.990><c> patches</c><00:11:45.770><c> and</c><00:11:45.980><c> see</c><00:11:46.100><c> which</c><00:11:46.310><c> one</c><00:11:46.520><c> is</c><00:11:46.670><c> the</c>

00:11:46.690 --> 00:11:46.700 align:start position:0%
various patches and see which one is the
 

00:11:46.700 --> 00:11:51.460 align:start position:0%
various patches and see which one is the
best<00:11:46.970><c> I</c><00:11:47.530><c> can</c><00:11:48.530><c> also</c><00:11:48.740><c> run</c><00:11:48.950><c> this</c><00:11:49.160><c> in</c><00:11:49.960><c> a</c><00:11:50.960><c> web-like</c>

00:11:51.460 --> 00:11:51.470 align:start position:0%
best I can also run this in a web-like
 

00:11:51.470 --> 00:11:53.320 align:start position:0%
best I can also run this in a web-like
format<00:11:52.130><c> and</c><00:11:52.280><c> do</c><00:11:52.370><c> the</c><00:11:52.520><c> all</c><00:11:52.670><c> the</c><00:11:52.790><c> same</c><00:11:53.000><c> things</c>

00:11:53.320 --> 00:11:53.330 align:start position:0%
format and do the all the same things
 

00:11:53.330 --> 00:11:57.900 align:start position:0%
format and do the all the same things
and<00:11:55.300><c> investigate</c><00:11:56.300><c> other</c><00:11:56.510><c> on</c><00:11:56.720><c> chain</c><00:11:57.050><c> events</c>

00:11:57.900 --> 00:11:57.910 align:start position:0%
and investigate other on chain events
 

00:11:57.910 --> 00:12:02.970 align:start position:0%
and investigate other on chain events
for<00:11:58.910><c> example</c><00:11:59.300><c> the</c><00:12:00.130><c> take</c><00:12:01.130><c> that</c><00:12:01.160><c> was</c><00:12:01.430><c> the</c><00:12:01.520><c> same</c>

00:12:02.970 --> 00:12:02.980 align:start position:0%
for example the take that was the same
 

00:12:02.980 --> 00:12:12.570 align:start position:0%
for example the take that was the same
pair<00:12:03.980><c> 2</c><00:12:04.130><c> volt</c><00:12:04.310><c> attack</c>

00:12:12.570 --> 00:12:12.580 align:start position:0%
 
 

00:12:12.580 --> 00:12:16.120 align:start position:0%
 
and<00:12:13.630><c> there</c><00:12:14.630><c> we</c><00:12:14.780><c> have</c><00:12:14.930><c> the</c><00:12:14.960><c> parity</c><00:12:15.860><c> wolves</c>

00:12:16.120 --> 00:12:16.130 align:start position:0%
and there we have the parity wolves
 

00:12:16.130 --> 00:12:19.540 align:start position:0%
and there we have the parity wolves
attack<00:12:16.460><c> reproduced</c><00:12:18.040><c> and</c><00:12:19.040><c> you</c><00:12:19.160><c> can</c><00:12:19.310><c> run</c><00:12:19.460><c> it</c>

00:12:19.540 --> 00:12:19.550 align:start position:0%
attack reproduced and you can run it
 

00:12:19.550 --> 00:12:21.490 align:start position:0%
attack reproduced and you can run it
locally<00:12:19.730><c> or</c><00:12:20.000><c> you</c><00:12:20.240><c> can</c><00:12:20.360><c> check</c><00:12:20.540><c> and</c><00:12:20.900><c> annotate</c>

00:12:21.490 --> 00:12:21.500 align:start position:0%
locally or you can check and annotate
 

00:12:21.500 --> 00:12:23.500 align:start position:0%
locally or you can check and annotate
the<00:12:21.650><c> trace</c><00:12:21.920><c> of</c><00:12:22.310><c> what</c><00:12:22.700><c> happened</c><00:12:23.150><c> there</c><00:12:23.330><c> in</c><00:12:23.420><c> the</c>

00:12:23.500 --> 00:12:23.510 align:start position:0%
the trace of what happened there in the
 

00:12:23.510 --> 00:12:29.680 align:start position:0%
the trace of what happened there in the
Perrault<00:12:24.020><c> attack</c><00:12:24.380><c> and</c><00:12:26.710><c> for</c><00:12:27.710><c> example</c><00:12:28.550><c> yeah</c><00:12:29.450><c> so</c>

00:12:29.680 --> 00:12:29.690 align:start position:0%
Perrault attack and for example yeah so
 

00:12:29.690 --> 00:12:33.700 align:start position:0%
Perrault attack and for example yeah so
here's<00:12:29.960><c> the</c><00:12:30.610><c> fated</c><00:12:31.870><c> infamous</c><00:12:32.870><c> delegate</c><00:12:33.410><c> call</c>

00:12:33.700 --> 00:12:33.710 align:start position:0%
here's the fated infamous delegate call
 

00:12:33.710 --> 00:12:37.690 align:start position:0%
here's the fated infamous delegate call
and<00:12:34.100><c> the</c><00:12:35.680><c> node</c><00:12:36.680><c> attack</c><00:12:36.950><c> if</c><00:12:37.130><c> you</c><00:12:37.250><c> want</c><00:12:37.430><c> to</c><00:12:37.520><c> if</c>

00:12:37.690 --> 00:12:37.700 align:start position:0%
and the node attack if you want to if
 

00:12:37.700 --> 00:12:49.140 align:start position:0%
and the node attack if you want to if
you<00:12:37.820><c> want</c><00:12:37.880><c> to</c><00:12:37.970><c> analyze</c><00:12:38.120><c> that</c><00:12:38.570><c> more</c><00:12:38.810><c> in</c><00:12:38.900><c> depth</c>

00:12:49.140 --> 00:12:49.150 align:start position:0%
 
 

00:12:49.150 --> 00:12:51.970 align:start position:0%
 
so<00:12:50.150><c> the</c><00:12:50.300><c> EVM</c><00:12:50.600><c> lab</c><00:12:50.840><c> which</c><00:12:51.080><c> I</c><00:12:51.260><c> showed</c><00:12:51.560><c> you</c><00:12:51.590><c> part</c>

00:12:51.970 --> 00:12:51.980 align:start position:0%
so the EVM lab which I showed you part
 

00:12:51.980 --> 00:12:55.930 align:start position:0%
so the EVM lab which I showed you part
of<00:12:52.810><c> makes</c><00:12:53.810><c> possible</c><00:12:54.080><c> to</c><00:12:54.320><c> do</c><00:12:54.890><c> some</c><00:12:55.160><c> EVM</c>

00:12:55.930 --> 00:12:55.940 align:start position:0%
of makes possible to do some EVM
 

00:12:55.940 --> 00:12:59.410 align:start position:0%
of makes possible to do some EVM
assembly<00:12:56.510><c> pythonic</c><00:12:57.470><c> Li</c><00:12:57.910><c> and</c><00:12:58.910><c> investigate</c>

00:12:59.410 --> 00:12:59.420 align:start position:0%
assembly pythonic Li and investigate
 

00:12:59.420 --> 00:13:03.100 align:start position:0%
assembly pythonic Li and investigate
these<00:12:59.540><c> kinds</c><00:12:59.930><c> of</c><00:12:59.990><c> issues</c><00:13:00.140><c> and</c><00:13:01.480><c> yeah</c><00:13:02.480><c> dissect</c>

00:13:03.100 --> 00:13:03.110 align:start position:0%
these kinds of issues and yeah dissect
 

00:13:03.110 --> 00:13:09.220 align:start position:0%
these kinds of issues and yeah dissect
attacks<00:13:03.530><c> on</c><00:13:03.770><c> a</c><00:13:03.800><c> really</c><00:13:04.160><c> low</c><00:13:04.340><c> level</c><00:13:07.960><c> we</c><00:13:08.960><c> had</c><00:13:09.080><c> two</c>

00:13:09.220 --> 00:13:09.230 align:start position:0%
attacks on a really low level we had two
 

00:13:09.230 --> 00:13:11.410 align:start position:0%
attacks on a really low level we had two
hard<00:13:09.440><c> folks</c><00:13:09.680><c> also</c><00:13:10.490><c> and</c><00:13:10.730><c> in</c><00:13:10.820><c> preparation</c><00:13:11.360><c> of</c>

00:13:11.410 --> 00:13:11.420 align:start position:0%
hard folks also and in preparation of
 

00:13:11.420 --> 00:13:14.820 align:start position:0%
hard folks also and in preparation of
those<00:13:11.660><c> we</c><00:13:12.260><c> ramped</c><00:13:13.040><c> up</c><00:13:13.160><c> the</c><00:13:13.430><c> testing</c><00:13:13.940><c> and</c>

00:13:14.820 --> 00:13:14.830 align:start position:0%
those we ramped up the testing and
 

00:13:14.830 --> 00:13:17.410 align:start position:0%
those we ramped up the testing and
introducing<00:13:15.830><c> parameterize</c><00:13:16.430><c> tests</c><00:13:17.150><c> or</c>

00:13:17.410 --> 00:13:17.420 align:start position:0%
introducing parameterize tests or
 

00:13:17.420 --> 00:13:19.150 align:start position:0%
introducing parameterize tests or
generalized<00:13:17.870><c> test</c><00:13:18.230><c> which</c><00:13:18.470><c> Dmitriy</c><00:13:18.950><c> talked</c>

00:13:19.150 --> 00:13:19.160 align:start position:0%
generalized test which Dmitriy talked
 

00:13:19.160 --> 00:13:21.360 align:start position:0%
generalized test which Dmitriy talked
about<00:13:19.370><c> yesterday</c><00:13:19.700><c> in</c><00:13:19.940><c> the</c><00:13:20.030><c> breakout</c><00:13:20.330><c> room</c><00:13:20.600><c> and</c>

00:13:21.360 --> 00:13:21.370 align:start position:0%
about yesterday in the breakout room and
 

00:13:21.370 --> 00:13:25.630 align:start position:0%
about yesterday in the breakout room and
also<00:13:22.370><c> put</c><00:13:22.820><c> it</c><00:13:22.910><c> all</c><00:13:23.030><c> into</c><00:13:23.270><c> high</c><00:13:23.830><c> high</c><00:13:24.830><c> vis</c><00:13:25.040><c> PDC</c>

00:13:25.630 --> 00:13:25.640 align:start position:0%
also put it all into high high vis PDC
 

00:13:25.640 --> 00:13:28.150 align:start position:0%
also put it all into high high vis PDC
log<00:13:25.820><c> is</c><00:13:26.000><c> super</c><00:13:26.990><c> cool</c><00:13:27.140><c> framework</c><00:13:27.620><c> for</c><00:13:27.830><c> running</c>

00:13:28.150 --> 00:13:28.160 align:start position:0%
log is super cool framework for running
 

00:13:28.160 --> 00:13:31.300 align:start position:0%
log is super cool framework for running
notes<00:13:28.370><c> and</c><00:13:28.700><c> in</c><00:13:28.940><c> a</c><00:13:29.060><c> blackbox</c><00:13:29.510><c> fashion</c><00:13:30.020><c> and</c><00:13:30.310><c> just</c>

00:13:31.300 --> 00:13:31.310 align:start position:0%
notes and in a blackbox fashion and just
 

00:13:31.310 --> 00:13:34.810 align:start position:0%
notes and in a blackbox fashion and just
synthesize<00:13:32.000><c> the</c><00:13:32.890><c> the</c><00:13:33.890><c> environment</c><00:13:34.520><c> the</c>

00:13:34.810 --> 00:13:34.820 align:start position:0%
synthesize the the environment the
 

00:13:34.820 --> 00:13:36.220 align:start position:0%
synthesize the the environment the
genesis<00:13:35.270><c> and</c><00:13:35.420><c> the</c><00:13:35.510><c> blocks</c><00:13:35.720><c> and</c><00:13:35.900><c> everything</c>

00:13:36.220 --> 00:13:36.230 align:start position:0%
genesis and the blocks and everything
 

00:13:36.230 --> 00:13:38.560 align:start position:0%
genesis and the blocks and everything
and<00:13:36.410><c> then</c><00:13:37.250><c> you</c><00:13:37.370><c> can</c><00:13:37.520><c> compare</c><00:13:37.970><c> the</c><00:13:38.120><c> the</c>

00:13:38.560 --> 00:13:38.570 align:start position:0%
and then you can compare the the
 

00:13:38.570 --> 00:13:40.960 align:start position:0%
and then you can compare the the
expected<00:13:39.170><c> post</c><00:13:39.470><c> state</c><00:13:39.920><c> after</c><00:13:40.220><c> a</c><00:13:40.400><c> sequence</c><00:13:40.700><c> of</c>

00:13:40.960 --> 00:13:40.970 align:start position:0%
expected post state after a sequence of
 

00:13:40.970 --> 00:13:47.170 align:start position:0%
expected post state after a sequence of
blocks<00:13:43.780><c> and</c><00:13:44.780><c> this</c><00:13:44.990><c> makes</c><00:13:45.380><c> possible</c><00:13:45.800><c> to</c><00:13:45.890><c> run</c><00:13:46.180><c> it</c>

00:13:47.170 --> 00:13:47.180 align:start position:0%
blocks and this makes possible to run it
 

00:13:47.180 --> 00:13:50.160 align:start position:0%
blocks and this makes possible to run it
runs<00:13:47.450><c> about</c><00:13:47.710><c> 24,000</c><00:13:48.710><c> test</c><00:13:48.920><c> cases</c><00:13:49.160><c> against</c>

00:13:50.160 --> 00:13:50.170 align:start position:0%
runs about 24,000 test cases against
 

00:13:50.170 --> 00:13:54.970 align:start position:0%
runs about 24,000 test cases against
Pythian<00:13:51.170><c> parity</c><00:13:51.740><c> gets</c><00:13:52.160><c> and</c><00:13:52.400><c> cpp</c><00:13:52.970><c> and</c><00:13:53.830><c> it</c><00:13:54.830><c> runs</c>

00:13:54.970 --> 00:13:54.980 align:start position:0%
Pythian parity gets and cpp and it runs
 

00:13:54.980 --> 00:14:03.610 align:start position:0%
Pythian parity gets and cpp and it runs
it<00:13:55.160><c> 24/7</c><00:13:56.350><c> 365</c><00:14:00.220><c> it</c><00:14:01.220><c> removes</c><00:14:01.730><c> the</c><00:14:02.570><c> dependency</c><00:14:03.350><c> of</c>

00:14:03.610 --> 00:14:03.620 align:start position:0%
it 24/7 365 it removes the dependency of
 

00:14:03.620 --> 00:14:07.780 align:start position:0%
it 24/7 365 it removes the dependency of
the<00:14:03.830><c> developers</c><00:14:05.050><c> to</c><00:14:06.050><c> perform</c><00:14:06.560><c> tests</c><00:14:07.190><c> as</c><00:14:07.520><c> part</c>

00:14:07.780 --> 00:14:07.790 align:start position:0%
the developers to perform tests as part
 

00:14:07.790 --> 00:14:10.960 align:start position:0%
the developers to perform tests as part
of<00:14:08.060><c> the</c><00:14:08.150><c> test</c><00:14:08.360><c> process</c><00:14:08.570><c> so</c><00:14:09.230><c> now</c><00:14:09.610><c> testing</c><00:14:10.610><c> can</c>

00:14:10.960 --> 00:14:10.970 align:start position:0%
of the test process so now testing can
 

00:14:10.970 --> 00:14:12.370 align:start position:0%
of the test process so now testing can
be<00:14:11.090><c> a</c><00:14:11.120><c> totally</c><00:14:11.480><c> separate</c><00:14:11.780><c> process</c><00:14:12.200><c> which</c>

00:14:12.370 --> 00:14:12.380 align:start position:0%
be a totally separate process which
 

00:14:12.380 --> 00:14:15.040 align:start position:0%
be a totally separate process which
doesn't<00:14:12.710><c> really</c><00:14:12.890><c> rely</c><00:14:13.730><c> on</c><00:14:13.760><c> the</c><00:14:14.480><c> developers</c>

00:14:15.040 --> 00:14:15.050 align:start position:0%
doesn't really rely on the developers
 

00:14:15.050 --> 00:14:19.930 align:start position:0%
doesn't really rely on the developers
per<00:14:15.350><c> se</c><00:14:16.810><c> the</c><00:14:17.810><c> fall</c><00:14:18.080><c> out</c><00:14:18.320><c> however</c><00:14:18.730><c> after</c><00:14:19.730><c> the</c>

00:14:19.930 --> 00:14:19.940 align:start position:0%
per se the fall out however after the
 

00:14:19.940 --> 00:14:22.030 align:start position:0%
per se the fall out however after the
first<00:14:19.970><c> heart</c><00:14:20.600><c> sorry</c><00:14:21.020><c> second</c><00:14:21.320><c> heart</c><00:14:21.500><c> fork</c><00:14:21.770><c> is</c><00:14:22.010><c> a</c>

00:14:22.030 --> 00:14:22.040 align:start position:0%
first heart sorry second heart fork is a
 

00:14:22.040 --> 00:14:23.900 align:start position:0%
first heart sorry second heart fork is a
consensus<00:14:22.940><c> issue</c>

00:14:23.900 --> 00:14:23.910 align:start position:0%
consensus issue
 

00:14:23.910 --> 00:14:27.080 align:start position:0%
consensus issue
which<00:14:24.120><c> was</c><00:14:24.650><c> yeah</c><00:14:25.650><c> definitely</c><00:14:26.370><c> not</c><00:14:26.670><c> what</c><00:14:26.940><c> we</c>

00:14:27.080 --> 00:14:27.090 align:start position:0%
which was yeah definitely not what we
 

00:14:27.090 --> 00:14:31.160 align:start position:0%
which was yeah definitely not what we
wanted<00:14:29.060><c> manually</c><00:14:30.060><c> crafted</c><00:14:30.510><c> tests</c><00:14:30.810><c> are</c><00:14:30.930><c> great</c>

00:14:31.160 --> 00:14:31.170 align:start position:0%
wanted manually crafted tests are great
 

00:14:31.170 --> 00:14:34.370 align:start position:0%
wanted manually crafted tests are great
but<00:14:31.590><c> there's</c><00:14:31.800><c> no</c><00:14:31.950><c> way</c><00:14:32.130><c> to</c><00:14:32.190><c> scale</c><00:14:32.700><c> it</c><00:14:33.230><c> due</c><00:14:34.230><c> to</c>

00:14:34.370 --> 00:14:34.380 align:start position:0%
but there's no way to scale it due to
 

00:14:34.380 --> 00:14:36.320 align:start position:0%
but there's no way to scale it due to
the<00:14:34.500><c> inherent</c><00:14:34.860><c> complexity</c><00:14:35.460><c> of</c><00:14:35.610><c> the</c><00:14:35.760><c> EVM</c><00:14:36.060><c> we</c>

00:14:36.320 --> 00:14:36.330 align:start position:0%
the inherent complexity of the EVM we
 

00:14:36.330 --> 00:14:38.690 align:start position:0%
the inherent complexity of the EVM we
can't<00:14:36.570><c> just</c><00:14:36.810><c> have</c><00:14:37.380><c> enough</c><00:14:37.620><c> people</c><00:14:37.890><c> know</c><00:14:38.430><c> that</c>

00:14:38.690 --> 00:14:38.700 align:start position:0%
can't just have enough people know that
 

00:14:38.700 --> 00:14:41.330 align:start position:0%
can't just have enough people know that
much<00:14:38.970><c> about</c><00:14:39.000><c> it</c><00:14:39.510><c> to</c><00:14:39.870><c> to</c><00:14:40.380><c> be</c><00:14:40.740><c> able</c><00:14:40.800><c> to</c><00:14:41.010><c> scale</c><00:14:41.250><c> it</c>

00:14:41.330 --> 00:14:41.340 align:start position:0%
much about it to to be able to scale it
 

00:14:41.340 --> 00:14:43.250 align:start position:0%
much about it to to be able to scale it
up<00:14:41.400><c> so</c><00:14:41.700><c> we</c><00:14:42.120><c> wanted</c><00:14:42.390><c> more</c><00:14:42.630><c> coverage</c><00:14:43.050><c> for</c>

00:14:43.250 --> 00:14:43.260 align:start position:0%
up so we wanted more coverage for
 

00:14:43.260 --> 00:14:45.440 align:start position:0%
up so we wanted more coverage for
Byzantium<00:14:43.950><c> and</c><00:14:44.160><c> started</c><00:14:45.150><c> looking</c><00:14:45.360><c> into</c>

00:14:45.440 --> 00:14:45.450 align:start position:0%
Byzantium and started looking into
 

00:14:45.450 --> 00:14:47.810 align:start position:0%
Byzantium and started looking into
fussing<00:14:45.930><c> one</c><00:14:46.500><c> way</c><00:14:46.650><c> of</c><00:14:46.740><c> doing</c><00:14:46.920><c> that</c><00:14:47.250><c> would</c><00:14:47.760><c> be</c>

00:14:47.810 --> 00:14:47.820 align:start position:0%
fussing one way of doing that would be
 

00:14:47.820 --> 00:14:50.870 align:start position:0%
fussing one way of doing that would be
to<00:14:48.000><c> generate</c><00:14:48.390><c> test</c><00:14:49.020><c> cases</c><00:14:49.260><c> randomly</c><00:14:49.920><c> execute</c>

00:14:50.870 --> 00:14:50.880 align:start position:0%
to generate test cases randomly execute
 

00:14:50.880 --> 00:14:53.660 align:start position:0%
to generate test cases randomly execute
them<00:14:51.150><c> on</c><00:14:51.420><c> each</c><00:14:51.810><c> EVM</c><00:14:52.320><c> use</c><00:14:52.620><c> this</c><00:14:52.860><c> shared</c><00:14:53.280><c> output</c>

00:14:53.660 --> 00:14:53.670 align:start position:0%
them on each EVM use this shared output
 

00:14:53.670 --> 00:14:55.370 align:start position:0%
them on each EVM use this shared output
format<00:14:54.090><c> to</c><00:14:54.330><c> compare</c><00:14:54.660><c> the</c><00:14:54.780><c> internal</c><00:14:55.140><c> state</c>

00:14:55.370 --> 00:14:55.380 align:start position:0%
format to compare the internal state
 

00:14:55.380 --> 00:14:59.620 align:start position:0%
format to compare the internal state
after<00:14:55.830><c> each</c><00:14:56.070><c> operation</c><00:14:57.020><c> and</c><00:14:58.020><c> just</c><00:14:58.530><c> repeat</c><00:14:58.860><c> it</c>

00:14:59.620 --> 00:14:59.630 align:start position:0%
after each operation and just repeat it
 

00:14:59.630 --> 00:15:02.270 align:start position:0%
after each operation and just repeat it
this<00:15:00.630><c> can</c><00:15:00.810><c> be</c><00:15:00.840><c> done</c><00:15:01.050><c> fairly</c><00:15:01.350><c> quickly</c><00:15:01.770><c> you</c><00:15:02.160><c> can</c>

00:15:02.270 --> 00:15:02.280 align:start position:0%
this can be done fairly quickly you can
 

00:15:02.280 --> 00:15:04.160 align:start position:0%
this can be done fairly quickly you can
do<00:15:02.370><c> a</c><00:15:02.400><c> couple</c><00:15:02.640><c> of</c><00:15:02.790><c> million</c><00:15:03.060><c> tests</c><00:15:03.330><c> per</c><00:15:03.480><c> day</c><00:15:03.630><c> if</c>

00:15:04.160 --> 00:15:04.170 align:start position:0%
do a couple of million tests per day if
 

00:15:04.170 --> 00:15:07.580 align:start position:0%
do a couple of million tests per day if
you<00:15:04.620><c> draw</c><00:15:05.070><c> binaries</c><00:15:05.550><c> and</c><00:15:05.970><c> you</c><00:15:06.330><c> can</c><00:15:06.480><c> use</c><00:15:06.660><c> these</c>

00:15:07.580 --> 00:15:07.590 align:start position:0%
you draw binaries and you can use these
 

00:15:07.590 --> 00:15:13.310 align:start position:0%
you draw binaries and you can use these
for<00:15:07.890><c> clients</c><00:15:10.370><c> the</c><00:15:11.370><c> second</c><00:15:11.760><c> track</c><00:15:12.000><c> is</c><00:15:12.390><c> based</c><00:15:13.020><c> on</c>

00:15:13.310 --> 00:15:13.320 align:start position:0%
for clients the second track is based on
 

00:15:13.320 --> 00:15:15.350 align:start position:0%
for clients the second track is based on
Lib<00:15:13.530><c> foster</c><00:15:13.920><c> where</c><00:15:14.640><c> we</c><00:15:14.790><c> got</c><00:15:15.000><c> in</c><00:15:15.120><c> touch</c><00:15:15.300><c> with</c>

00:15:15.350 --> 00:15:15.360 align:start position:0%
Lib foster where we got in touch with
 

00:15:15.360 --> 00:15:18.560 align:start position:0%
Lib foster where we got in touch with
the<00:15:16.080><c> Guido</c><00:15:16.470><c> Rankin</c><00:15:17.190><c> who</c><00:15:17.340><c> has</c><00:15:17.520><c> done</c><00:15:18.210><c> a</c><00:15:18.240><c> lot</c><00:15:18.420><c> of</c>

00:15:18.560 --> 00:15:18.570 align:start position:0%
the Guido Rankin who has done a lot of
 

00:15:18.570 --> 00:15:21.110 align:start position:0%
the Guido Rankin who has done a lot of
fussing<00:15:18.960><c> and</c><00:15:19.020><c> is</c><00:15:19.140><c> a</c><00:15:19.170><c> real</c><00:15:19.380><c> expert</c><00:15:20.100><c> on</c><00:15:20.520><c> live</c>

00:15:21.110 --> 00:15:21.120 align:start position:0%
fussing and is a real expert on live
 

00:15:21.120 --> 00:15:23.990 align:start position:0%
fussing and is a real expert on live
foster<00:15:21.510><c> so</c><00:15:22.080><c> live</c><00:15:22.290><c> foster</c><00:15:22.650><c> is</c><00:15:22.920><c> the</c><00:15:23.190><c> core</c><00:15:23.550><c> of</c>

00:15:23.990 --> 00:15:24.000 align:start position:0%
foster so live foster is the core of
 

00:15:24.000 --> 00:15:27.680 align:start position:0%
foster so live foster is the core of
American<00:15:24.450><c> fossil</c><00:15:25.170><c> op</c><00:15:25.290><c> its</c><00:15:26.300><c> foster</c><00:15:27.300><c> developer</c>

00:15:27.680 --> 00:15:27.690 align:start position:0%
American fossil op its foster developer
 

00:15:27.690 --> 00:15:30.950 align:start position:0%
American fossil op its foster developer
mikhalev<00:15:28.440><c> scheme</c><00:15:28.970><c> and</c><00:15:29.970><c> it's</c><00:15:30.750><c> a</c><00:15:30.810><c> bit</c><00:15:30.930><c> more</c>

00:15:30.950 --> 00:15:30.960 align:start position:0%
mikhalev scheme and it's a bit more
 

00:15:30.960 --> 00:15:33.560 align:start position:0%
mikhalev scheme and it's a bit more
sophisticated<00:15:31.380><c> because</c><00:15:32.160><c> it</c><00:15:32.370><c> uses</c><00:15:32.670><c> code</c><00:15:33.180><c> paths</c>

00:15:33.560 --> 00:15:33.570 align:start position:0%
sophisticated because it uses code paths
 

00:15:33.570 --> 00:15:35.900 align:start position:0%
sophisticated because it uses code paths
and<00:15:34.050><c> instrumented</c><00:15:34.620><c> binaries</c><00:15:35.040><c> to</c><00:15:35.250><c> detect</c><00:15:35.610><c> code</c>

00:15:35.900 --> 00:15:35.910 align:start position:0%
and instrumented binaries to detect code
 

00:15:35.910 --> 00:15:38.180 align:start position:0%
and instrumented binaries to detect code
paths<00:15:36.270><c> for</c><00:15:36.570><c> any</c><00:15:36.660><c> given</c><00:15:36.930><c> input</c><00:15:37.050><c> and</c><00:15:37.620><c> mutating</c>

00:15:38.180 --> 00:15:38.190 align:start position:0%
paths for any given input and mutating
 

00:15:38.190 --> 00:15:39.800 align:start position:0%
paths for any given input and mutating
those<00:15:38.340><c> inputs</c><00:15:38.790><c> to</c><00:15:39.000><c> maximize</c><00:15:39.450><c> the</c><00:15:39.600><c> code</c>

00:15:39.800 --> 00:15:39.810 align:start position:0%
those inputs to maximize the code
 

00:15:39.810 --> 00:15:43.190 align:start position:0%
those inputs to maximize the code
coverage<00:15:41.480><c> and</c><00:15:42.480><c> since</c><00:15:42.720><c> everything</c><00:15:42.960><c> is</c>

00:15:43.190 --> 00:15:43.200 align:start position:0%
coverage and since everything is
 

00:15:43.200 --> 00:15:44.930 align:start position:0%
coverage and since everything is
instrumental<00:15:43.890><c> in</c><00:15:43.980><c> compiled</c><00:15:44.370><c> into</c><00:15:44.550><c> one</c><00:15:44.640><c> big</c>

00:15:44.930 --> 00:15:44.940 align:start position:0%
instrumental in compiled into one big
 

00:15:44.940 --> 00:15:48.490 align:start position:0%
instrumental in compiled into one big
binary<00:15:45.590><c> is</c><00:15:46.590><c> an</c><00:15:46.860><c> order</c><00:15:47.160><c> of</c><00:15:47.190><c> magnitude</c><00:15:47.730><c> faster</c>

00:15:48.490 --> 00:15:48.500 align:start position:0%
binary is an order of magnitude faster
 

00:15:48.500 --> 00:15:53.780 align:start position:0%
binary is an order of magnitude faster
to<00:15:49.500><c> perform</c><00:15:49.800><c> this</c><00:15:50.690><c> test</c><00:15:52.340><c> so</c><00:15:53.340><c> I</c><00:15:53.370><c> can</c><00:15:53.400><c> do</c><00:15:53.610><c> about</c>

00:15:53.780 --> 00:15:53.790 align:start position:0%
to perform this test so I can do about
 

00:15:53.790 --> 00:15:58.910 align:start position:0%
to perform this test so I can do about
100<00:15:54.150><c> million</c><00:15:54.300><c> tests</c><00:15:54.570><c> per</c><00:15:54.810><c> day</c><00:15:56.540><c> and</c><00:15:57.860><c> there</c><00:15:58.860><c> was</c>

00:15:58.910 --> 00:15:58.920 align:start position:0%
100 million tests per day and there was
 

00:15:58.920 --> 00:16:01.640 align:start position:0%
100 million tests per day and there was
a<00:15:58.980><c> spectacular</c><00:15:59.760><c> and</c><00:16:00.270><c> kind</c><00:16:00.600><c> of</c><00:16:00.660><c> unexpected</c>

00:16:01.640 --> 00:16:01.650 align:start position:0%
a spectacular and kind of unexpected
 

00:16:01.650 --> 00:16:05.030 align:start position:0%
a spectacular and kind of unexpected
success<00:16:01.950><c> in</c><00:16:02.490><c> this</c><00:16:03.080><c> we've</c><00:16:04.080><c> had</c><00:16:04.320><c> seven</c><00:16:04.830><c> or</c><00:16:04.920><c> eight</c>

00:16:05.030 --> 00:16:05.040 align:start position:0%
success in this we've had seven or eight
 

00:16:05.040 --> 00:16:07.700 align:start position:0%
success in this we've had seven or eight
consensus<00:16:05.700><c> issues</c><00:16:06.030><c> found</c><00:16:06.420><c> most</c><00:16:07.320><c> of</c><00:16:07.560><c> them</c>

00:16:07.700 --> 00:16:07.710 align:start position:0%
consensus issues found most of them
 

00:16:07.710 --> 00:16:11.210 align:start position:0%
consensus issues found most of them
before<00:16:08.430><c> the</c><00:16:08.670><c> heart</c><00:16:08.880><c> Fork</c><00:16:09.860><c> one</c><00:16:10.860><c> of</c><00:16:11.040><c> them</c>

00:16:11.210 --> 00:16:11.220 align:start position:0%
before the heart Fork one of them
 

00:16:11.220 --> 00:16:14.300 align:start position:0%
before the heart Fork one of them
slightly<00:16:11.610><c> after</c><00:16:12.150><c> the</c><00:16:12.240><c> hard</c><00:16:12.420><c> work</c><00:16:12.950><c> it</c><00:16:13.950><c> has</c><00:16:14.100><c> been</c>

00:16:14.300 --> 00:16:14.310 align:start position:0%
slightly after the hard work it has been
 

00:16:14.310 --> 00:16:21.020 align:start position:0%
slightly after the hard work it has been
fixed<00:16:15.000><c> and</c><00:16:15.210><c> patched</c><00:16:15.510><c> and</c><00:16:15.840><c> released</c><00:16:16.700><c> and</c><00:16:20.030><c> the</c>

00:16:21.020 --> 00:16:21.030 align:start position:0%
fixed and patched and released and the
 

00:16:21.030 --> 00:16:23.690 align:start position:0%
fixed and patched and released and the
clients<00:16:21.480><c> today</c><00:16:21.690><c> I</c><00:16:22.050><c> would</c><00:16:22.500><c> say</c><00:16:22.530><c> are</c><00:16:23.220><c> more</c>

00:16:23.690 --> 00:16:23.700 align:start position:0%
clients today I would say are more
 

00:16:23.700 --> 00:16:25.220 align:start position:0%
clients today I would say are more
thoroughly<00:16:24.270><c> tested</c><00:16:24.690><c> than</c><00:16:24.810><c> they</c><00:16:24.990><c> have</c><00:16:25.110><c> ever</c>

00:16:25.220 --> 00:16:25.230 align:start position:0%
thoroughly tested than they have ever
 

00:16:25.230 --> 00:16:28.030 align:start position:0%
thoroughly tested than they have ever
been<00:16:25.430><c> in</c><00:16:26.430><c> the</c><00:16:26.490><c> history</c><00:16:26.580><c> of</c><00:16:26.910><c> ethereum</c><00:16:27.180><c> and</c>

00:16:28.030 --> 00:16:28.040 align:start position:0%
been in the history of ethereum and
 

00:16:28.040 --> 00:16:32.020 align:start position:0%
been in the history of ethereum and
we're<00:16:29.040><c> still</c><00:16:29.280><c> running</c><00:16:29.430><c> fosters</c><00:16:30.770><c> 24/7</c><00:16:31.770><c> and</c>

00:16:32.020 --> 00:16:32.030 align:start position:0%
we're still running fosters 24/7 and
 

00:16:32.030 --> 00:16:35.030 align:start position:0%
we're still running fosters 24/7 and
it's<00:16:33.030><c> been</c><00:16:33.210><c> millions</c><00:16:33.540><c> of</c><00:16:33.810><c> tests</c><00:16:34.530><c> done</c><00:16:34.770><c> on</c><00:16:34.830><c> the</c>

00:16:35.030 --> 00:16:35.040 align:start position:0%
it's been millions of tests done on the
 

00:16:35.040 --> 00:16:38.840 align:start position:0%
it's been millions of tests done on the
tests<00:16:35.280><c> off</c><00:16:35.460><c> and</c><00:16:35.760><c> billions</c><00:16:36.510><c> of</c>

00:16:38.840 --> 00:16:38.850 align:start position:0%
 
 

00:16:38.850 --> 00:16:43.460 align:start position:0%
 
based<00:16:39.300><c> on</c><00:16:39.420><c> live</c><00:16:39.600><c> posture</c><00:16:42.380><c> naturally</c><00:16:43.380><c> the</c>

00:16:43.460 --> 00:16:43.470 align:start position:0%
based on live posture naturally the
 

00:16:43.470 --> 00:16:45.320 align:start position:0%
based on live posture naturally the
Castella<00:16:43.800><c> consensus</c><00:16:44.310><c> issues</c><00:16:44.610><c> or</c><00:16:44.970><c> denial</c><00:16:45.300><c> of</c>

00:16:45.320 --> 00:16:45.330 align:start position:0%
Castella consensus issues or denial of
 

00:16:45.330 --> 00:16:48.050 align:start position:0%
Castella consensus issues or denial of
service<00:16:45.690><c> issues</c><00:16:46.080><c> and</c><00:16:46.710><c> if</c><00:16:47.070><c> that's</c><00:16:47.250><c> really</c>

00:16:48.050 --> 00:16:48.060 align:start position:0%
service issues and if that's really
 

00:16:48.060 --> 00:16:51.410 align:start position:0%
service issues and if that's really
really<00:16:48.350><c> concern</c><00:16:49.350><c> of</c><00:16:49.470><c> you</c><00:16:49.590><c> of</c><00:16:50.250><c> yours</c><00:16:50.490><c> then</c><00:16:51.390><c> you</c>

00:16:51.410 --> 00:16:51.420 align:start position:0%
really concern of you of yours then you
 

00:16:51.420 --> 00:16:53.450 align:start position:0%
really concern of you of yours then you
should<00:16:51.690><c> run</c><00:16:51.840><c> multiple</c><00:16:52.260><c> clients</c><00:16:52.650><c> and</c><00:16:52.860><c> try</c><00:16:53.400><c> to</c>

00:16:53.450 --> 00:16:53.460 align:start position:0%
should run multiple clients and try to
 

00:16:53.460 --> 00:16:58.900 align:start position:0%
should run multiple clients and try to
detect<00:16:54.410><c> mismatches</c><00:16:55.410><c> and</c><00:16:57.290><c> you</c><00:16:58.290><c> can</c><00:16:58.440><c> use</c><00:16:58.560><c> the</c>

00:16:58.900 --> 00:16:58.910 align:start position:0%
detect mismatches and you can use the
 

00:16:58.910 --> 00:17:02.300 align:start position:0%
detect mismatches and you can use the
debug<00:16:59.910><c> method</c><00:17:00.300><c> and</c><00:17:00.420><c> guess</c><00:17:00.600><c> to</c><00:17:01.350><c> find</c><00:17:01.920><c> out</c><00:17:02.100><c> if</c>

00:17:02.300 --> 00:17:02.310 align:start position:0%
debug method and guess to find out if
 

00:17:02.310 --> 00:17:05.810 align:start position:0%
debug method and guess to find out if
guess<00:17:02.520><c> has</c><00:17:03.230><c> tagged</c><00:17:04.230><c> one</c><00:17:04.829><c> of</c><00:17:04.980><c> parities</c><00:17:05.339><c> connect</c>

00:17:05.810 --> 00:17:05.820 align:start position:0%
guess has tagged one of parities connect
 

00:17:05.820 --> 00:17:11.600 align:start position:0%
guess has tagged one of parities connect
canonical<00:17:06.390><c> blocks</c><00:17:06.660><c> as</c><00:17:06.930><c> bad</c><00:17:08.780><c> and</c><00:17:10.220><c> key</c><00:17:11.220><c> takeaway</c>

00:17:11.600 --> 00:17:11.610 align:start position:0%
canonical blocks as bad and key takeaway
 

00:17:11.610 --> 00:17:14.060 align:start position:0%
canonical blocks as bad and key takeaway
here<00:17:11.640><c> is</c><00:17:11.880><c> that</c><00:17:12.209><c> all</c><00:17:12.480><c> everyone</c><00:17:13.350><c> here</c><00:17:13.560><c> are</c>

00:17:14.060 --> 00:17:14.070 align:start position:0%
here is that all everyone here are
 

00:17:14.070 --> 00:17:16.490 align:start position:0%
here is that all everyone here are
target's<00:17:14.699><c> for</c><00:17:14.790><c> attacker</c><00:17:15.240><c> it's</c><00:17:15.959><c> involved</c>

00:17:16.490 --> 00:17:16.500 align:start position:0%
target's for attacker it's involved
 

00:17:16.500 --> 00:17:19.939 align:start position:0%
target's for attacker it's involved
because<00:17:16.620><c> it's</c><00:17:16.949><c> important</c><00:17:18.050><c> so</c><00:17:19.050><c> be</c><00:17:19.079><c> paranoid</c>

00:17:19.939 --> 00:17:19.949 align:start position:0%
because it's important so be paranoid
 

00:17:19.949 --> 00:17:23.630 align:start position:0%
because it's important so be paranoid
and<00:17:20.370><c> be</c><00:17:20.670><c> proactive</c><00:17:21.060><c> and</c><00:17:21.630><c> work</c><00:17:22.050><c> on</c><00:17:22.640><c> improving</c>

00:17:23.630 --> 00:17:23.640 align:start position:0%
and be proactive and work on improving
 

00:17:23.640 --> 00:17:26.420 align:start position:0%
and be proactive and work on improving
the<00:17:23.940><c> security</c><00:17:24.120><c> and</c><00:17:24.750><c> your</c><00:17:24.900><c> resilience</c><00:17:25.470><c> and</c><00:17:25.800><c> how</c>

00:17:26.420 --> 00:17:26.430 align:start position:0%
the security and your resilience and how
 

00:17:26.430 --> 00:17:30.410 align:start position:0%
the security and your resilience and how
you<00:17:26.490><c> can</c><00:17:26.790><c> handle</c><00:17:27.750><c> tax</c><00:17:28.910><c> that's</c><00:17:29.910><c> about</c><00:17:30.090><c> it</c><00:17:30.270><c> for</c>

00:17:30.410 --> 00:17:30.420 align:start position:0%
you can handle tax that's about it for
 

00:17:30.420 --> 00:17:39.180 align:start position:0%
you can handle tax that's about it for
me<00:17:30.540><c> thank</c><00:17:30.720><c> you</c>

00:17:39.180 --> 00:17:39.190 align:start position:0%
 
 

00:17:39.190 --> 00:17:46.769 align:start position:0%
 
[Music]

