WEBVTT
Kind: captions
Language: en

00:00:04.560 --> 00:00:08.150 align:start position:0%
 
so<00:00:05.280><c> my</c><00:00:05.460><c> name</c><00:00:05.610><c> is</c><00:00:05.730><c> Martin</c><00:00:06.090><c> holes</c><00:00:06.240><c> Linda</c><00:00:06.900><c> and</c><00:00:07.710><c> I</c>

00:00:08.150 --> 00:00:08.160 align:start position:0%
so my name is Martin holes Linda and I
 

00:00:08.160 --> 00:00:11.540 align:start position:0%
so my name is Martin holes Linda and I
work<00:00:08.370><c> with</c><00:00:09.240><c> the</c><00:00:09.360><c> security</c><00:00:10.040><c> for</c><00:00:11.040><c> the</c><00:00:11.190><c> etherium</c>

00:00:11.540 --> 00:00:11.550 align:start position:0%
work with the security for the etherium
 

00:00:11.550 --> 00:00:13.910 align:start position:0%
work with the security for the etherium
Foundation<00:00:12.030><c> and</c><00:00:12.300><c> I</c><00:00:12.540><c> also</c><00:00:12.719><c> work</c><00:00:12.990><c> with</c><00:00:13.020><c> a</c><00:00:13.260><c> gift</c>

00:00:13.910 --> 00:00:13.920 align:start position:0%
Foundation and I also work with a gift
 

00:00:13.920 --> 00:00:17.740 align:start position:0%
Foundation and I also work with a gift
client<00:00:14.719><c> and</c><00:00:15.719><c> I'm</c><00:00:15.990><c> going</c><00:00:16.170><c> to</c><00:00:16.230><c> talk</c><00:00:16.470><c> today</c><00:00:16.920><c> about</c>

00:00:17.740 --> 00:00:17.750 align:start position:0%
client and I'm going to talk today about
 

00:00:17.750 --> 00:00:19.609 align:start position:0%
client and I'm going to talk today about
basically<00:00:18.750><c> things</c><00:00:19.080><c> that</c><00:00:19.200><c> have</c><00:00:19.440><c> happened</c>

00:00:19.609 --> 00:00:19.619 align:start position:0%
basically things that have happened
 

00:00:19.619 --> 00:00:22.160 align:start position:0%
basically things that have happened
during<00:00:20.070><c> the</c><00:00:20.340><c> last</c><00:00:20.460><c> three</c><00:00:21.030><c> years</c><00:00:21.060><c> so</c><00:00:21.660><c> I</c><00:00:21.690><c> became</c>

00:00:22.160 --> 00:00:22.170 align:start position:0%
during the last three years so I became
 

00:00:22.170 --> 00:00:25.010 align:start position:0%
during the last three years so I became
the<00:00:22.350><c> security</c><00:00:23.010><c> guy</c><00:00:23.160><c> in</c><00:00:23.580><c> basically</c><00:00:24.540><c> when</c><00:00:24.780><c> I</c><00:00:24.810><c> was</c>

00:00:25.010 --> 00:00:25.020 align:start position:0%
the security guy in basically when I was
 

00:00:25.020 --> 00:00:27.470 align:start position:0%
the security guy in basically when I was
Def<00:00:25.290><c> Con</c><00:00:25.560><c> in</c><00:00:25.740><c> Shanghai</c><00:00:26.220><c> and</c><00:00:26.940><c> we're</c><00:00:27.060><c> now</c><00:00:27.180><c> in</c><00:00:27.330><c> all</c>

00:00:27.470 --> 00:00:27.480 align:start position:0%
Def Con in Shanghai and we're now in all
 

00:00:27.480 --> 00:00:29.270 align:start position:0%
Def Con in Shanghai and we're now in all
second<00:00:27.780><c> I'm</c><00:00:27.960><c> going</c><00:00:28.110><c> to</c><00:00:28.230><c> talk</c><00:00:28.410><c> about</c><00:00:28.440><c> the</c><00:00:28.890><c> base</c>

00:00:29.270 --> 00:00:29.280 align:start position:0%
second I'm going to talk about the base
 

00:00:29.280 --> 00:00:34.100 align:start position:0%
second I'm going to talk about the base
layer<00:00:29.550><c> the</c><00:00:30.060><c> infrastructure</c><00:00:30.660><c> of</c><00:00:31.200><c> ethereum</c><00:00:33.110><c> so</c>

00:00:34.100 --> 00:00:34.110 align:start position:0%
layer the infrastructure of ethereum so
 

00:00:34.110 --> 00:00:37.560 align:start position:0%
layer the infrastructure of ethereum so
what<00:00:34.710><c> is</c><00:00:34.860><c> the</c><00:00:35.100><c> theorem</c><00:00:35.370><c> infrastructure</c><00:00:36.090><c> and</c>

00:00:37.560 --> 00:00:37.570 align:start position:0%
what is the theorem infrastructure and
 

00:00:37.570 --> 00:00:39.430 align:start position:0%
what is the theorem infrastructure and
[Music]

00:00:39.430 --> 00:00:39.440 align:start position:0%
[Music]
 

00:00:39.440 --> 00:00:43.160 align:start position:0%
[Music]
the<00:00:40.440><c> building</c><00:00:40.949><c> blocks</c><00:00:40.980><c> of</c><00:00:41.429><c> ethereum</c><00:00:42.170><c> so</c>

00:00:43.160 --> 00:00:43.170 align:start position:0%
the building blocks of ethereum so
 

00:00:43.170 --> 00:00:46.790 align:start position:0%
the building blocks of ethereum so
etherium<00:00:44.010><c> is</c><00:00:44.249><c> a</c><00:00:44.760><c> blockchain</c><00:00:45.320><c> and</c><00:00:46.320><c> one</c><00:00:46.559><c> of</c><00:00:46.710><c> the</c>

00:00:46.790 --> 00:00:46.800 align:start position:0%
etherium is a blockchain and one of the
 

00:00:46.800 --> 00:00:49.149 align:start position:0%
etherium is a blockchain and one of the
things<00:00:47.039><c> that</c><00:00:47.339><c> can</c><00:00:47.550><c> be</c><00:00:47.609><c> attacked</c><00:00:48.089><c> and</c><00:00:48.480><c> it's</c><00:00:48.929><c> a</c>

00:00:49.149 --> 00:00:49.159 align:start position:0%
things that can be attacked and it's a
 

00:00:49.159 --> 00:00:53.809 align:start position:0%
things that can be attacked and it's a
vulnerability<00:00:51.170><c> which</c><00:00:52.170><c> can</c><00:00:52.409><c> be</c><00:00:52.559><c> is</c><00:00:52.769><c> the</c><00:00:53.609><c> block</c>

00:00:53.809 --> 00:00:53.819 align:start position:0%
vulnerability which can be is the block
 

00:00:53.819 --> 00:00:57.739 align:start position:0%
vulnerability which can be is the block
processing<00:00:54.420><c> so</c><00:00:55.409><c> a</c><00:00:55.979><c> client</c><00:00:56.550><c> gets</c><00:00:56.819><c> blocks</c><00:00:57.239><c> and</c>

00:00:57.739 --> 00:00:57.749 align:start position:0%
processing so a client gets blocks and
 

00:00:57.749 --> 00:01:00.259 align:start position:0%
processing so a client gets blocks and
the<00:00:58.170><c> block</c><00:00:58.499><c> consists</c><00:00:59.370><c> of</c><00:00:59.519><c> headers</c><00:00:59.969><c> and</c>

00:01:00.259 --> 00:01:00.269 align:start position:0%
the block consists of headers and
 

00:01:00.269 --> 00:01:02.329 align:start position:0%
the block consists of headers and
transactions<00:01:00.960><c> and</c><00:01:01.350><c> some</c><00:01:01.589><c> other</c><00:01:01.739><c> things</c>

00:01:02.329 --> 00:01:02.339 align:start position:0%
transactions and some other things
 

00:01:02.339 --> 00:01:05.030 align:start position:0%
transactions and some other things
and<00:01:02.749><c> they</c><00:01:03.749><c> need</c><00:01:03.899><c> to</c><00:01:04.019><c> be</c><00:01:04.140><c> validated</c><00:01:04.860><c> according</c>

00:01:05.030 --> 00:01:05.040 align:start position:0%
and they need to be validated according
 

00:01:05.040 --> 00:01:10.249 align:start position:0%
and they need to be validated according
to<00:01:05.489><c> a</c><00:01:05.519><c> very</c><00:01:06.530><c> particular</c><00:01:07.530><c> set</c><00:01:08.280><c> of</c><00:01:08.820><c> rules</c><00:01:09.270><c> it</c>

00:01:10.249 --> 00:01:10.259 align:start position:0%
to a very particular set of rules it
 

00:01:10.259 --> 00:01:12.380 align:start position:0%
to a very particular set of rules it
can't<00:01:10.530><c> be</c><00:01:10.680><c> too</c><00:01:10.890><c> much</c><00:01:10.920><c> validated</c><00:01:11.880><c> and</c><00:01:12.060><c> it</c><00:01:12.149><c> can't</c>

00:01:12.380 --> 00:01:12.390 align:start position:0%
can't be too much validated and it can't
 

00:01:12.390 --> 00:01:16.039 align:start position:0%
can't be too much validated and it can't
be<00:01:12.540><c> too</c><00:01:12.719><c> little</c><00:01:12.960><c> validated</c><00:01:14.719><c> so</c><00:01:15.719><c> there's</c><00:01:15.869><c> very</c>

00:01:16.039 --> 00:01:16.049 align:start position:0%
be too little validated so there's very
 

00:01:16.049 --> 00:01:18.410 align:start position:0%
be too little validated so there's very
intricate<00:01:16.469><c> rules</c><00:01:16.649><c> and</c><00:01:17.040><c> it's</c><00:01:17.939><c> extremely</c>

00:01:18.410 --> 00:01:18.420 align:start position:0%
intricate rules and it's extremely
 

00:01:18.420 --> 00:01:21.469 align:start position:0%
intricate rules and it's extremely
consensus<00:01:18.990><c> critical</c><00:01:19.500><c> because</c><00:01:20.130><c> if</c><00:01:20.460><c> clients</c><00:01:21.090><c> do</c>

00:01:21.469 --> 00:01:21.479 align:start position:0%
consensus critical because if clients do
 

00:01:21.479 --> 00:01:22.789 align:start position:0%
consensus critical because if clients do
it<00:01:21.570><c> differently</c><00:01:21.960><c> we</c><00:01:22.229><c> have</c><00:01:22.469><c> an</c><00:01:22.590><c> immediate</c>

00:01:22.789 --> 00:01:22.799 align:start position:0%
it differently we have an immediate
 

00:01:22.799 --> 00:01:27.080 align:start position:0%
it differently we have an immediate
chain<00:01:23.250><c> split</c><00:01:24.680><c> there's</c><00:01:25.680><c> this</c><00:01:25.890><c> EVM</c><00:01:26.460><c> which</c><00:01:26.909><c> I</c>

00:01:27.080 --> 00:01:27.090 align:start position:0%
chain split there's this EVM which I
 

00:01:27.090 --> 00:01:28.730 align:start position:0%
chain split there's this EVM which I
think<00:01:27.329><c> is</c><00:01:27.450><c> the</c><00:01:27.570><c> one</c><00:01:27.750><c> thing</c><00:01:28.020><c> that</c><00:01:28.289><c> everyone</c>

00:01:28.730 --> 00:01:28.740 align:start position:0%
think is the one thing that everyone
 

00:01:28.740 --> 00:01:31.310 align:start position:0%
think is the one thing that everyone
knows<00:01:29.130><c> exists</c><00:01:29.670><c> in</c><00:01:29.880><c> ethereum</c><00:01:30.329><c> and</c><00:01:30.539><c> this</c><00:01:31.170><c> is</c>

00:01:31.310 --> 00:01:31.320 align:start position:0%
knows exists in ethereum and this is
 

00:01:31.320 --> 00:01:37.510 align:start position:0%
knows exists in ethereum and this is
where<00:01:31.560><c> the</c><00:01:31.770><c> smart</c><00:01:31.860><c> contracts</c><00:01:33.530><c> operate</c><00:01:34.530><c> and</c>

00:01:37.510 --> 00:01:37.520 align:start position:0%
 
 

00:01:37.520 --> 00:01:40.789 align:start position:0%
 
the<00:01:38.520><c> smart</c><00:01:39.090><c> contracts</c><00:01:39.630><c> execute</c><00:01:40.200><c> on</c><00:01:40.409><c> top</c><00:01:40.619><c> of</c>

00:01:40.789 --> 00:01:40.799 align:start position:0%
the smart contracts execute on top of
 

00:01:40.799 --> 00:01:42.800 align:start position:0%
the smart contracts execute on top of
this<00:01:40.950><c> thing</c><00:01:41.280><c> called</c><00:01:41.579><c> the</c><00:01:41.700><c> state</c><00:01:42.060><c> which</c><00:01:42.570><c> is</c>

00:01:42.800 --> 00:01:42.810 align:start position:0%
this thing called the state which is
 

00:01:42.810 --> 00:01:46.399 align:start position:0%
this thing called the state which is
this<00:01:43.500><c> global</c><00:01:44.310><c> state</c><00:01:44.700><c> of</c><00:01:45.000><c> where</c><00:01:45.840><c> everything</c><00:01:46.109><c> is</c>

00:01:46.399 --> 00:01:46.409 align:start position:0%
this global state of where everything is
 

00:01:46.409 --> 00:01:48.980 align:start position:0%
this global state of where everything is
right<00:01:46.649><c> now</c><00:01:46.890><c> and</c><00:01:47.399><c> basically</c><00:01:47.939><c> they</c><00:01:48.270><c> accumulated</c>

00:01:48.980 --> 00:01:48.990 align:start position:0%
right now and basically they accumulated
 

00:01:48.990 --> 00:01:51.560 align:start position:0%
right now and basically they accumulated
result<00:01:49.530><c> of</c><00:01:49.859><c> all</c><00:01:50.070><c> the</c><00:01:50.280><c> transactions</c><00:01:50.969><c> in</c><00:01:51.359><c> the</c>

00:01:51.560 --> 00:01:51.570 align:start position:0%
result of all the transactions in the
 

00:01:51.570 --> 00:01:54.469 align:start position:0%
result of all the transactions in the
history<00:01:51.960><c> of</c><00:01:51.990><c> ethereum</c><00:01:53.000><c> also</c><00:01:54.000><c> highly</c>

00:01:54.469 --> 00:01:54.479 align:start position:0%
history of ethereum also highly
 

00:01:54.479 --> 00:01:57.380 align:start position:0%
history of ethereum also highly
consensus<00:01:54.960><c> critical</c><00:01:55.439><c> and</c><00:01:56.310><c> but</c><00:01:57.090><c> aside</c><00:01:57.329><c> from</c>

00:01:57.380 --> 00:01:57.390 align:start position:0%
consensus critical and but aside from
 

00:01:57.390 --> 00:01:59.510 align:start position:0%
consensus critical and but aside from
that<00:01:57.570><c> they</c><00:01:58.259><c> can</c><00:01:58.439><c> also</c><00:01:58.560><c> be</c><00:01:58.770><c> denial</c><00:01:59.100><c> of</c><00:01:59.189><c> service</c>

00:01:59.510 --> 00:01:59.520 align:start position:0%
that they can also be denial of service
 

00:01:59.520 --> 00:02:02.929 align:start position:0%
that they can also be denial of service
attacks<00:01:59.880><c> that</c><00:02:00.299><c> causes</c><00:02:00.719><c> slow</c><00:02:00.929><c> blocks</c><00:02:01.609><c> and</c><00:02:02.609><c> this</c>

00:02:02.929 --> 00:02:02.939 align:start position:0%
attacks that causes slow blocks and this
 

00:02:02.939 --> 00:02:04.069 align:start position:0%
attacks that causes slow blocks and this
is<00:02:03.060><c> what</c><00:02:03.240><c> happened</c><00:02:03.600><c> during</c><00:02:03.689><c> the</c><00:02:03.869><c> so-called</c>

00:02:04.069 --> 00:02:04.079 align:start position:0%
is what happened during the so-called
 

00:02:04.079 --> 00:02:08.570 align:start position:0%
is what happened during the so-called
Shanghai<00:02:04.740><c> attacks</c><00:02:06.439><c> we</c><00:02:07.439><c> have</c><00:02:07.580><c> networking</c>

00:02:08.570 --> 00:02:08.580 align:start position:0%
Shanghai attacks we have networking
 

00:02:08.580 --> 00:02:11.060 align:start position:0%
Shanghai attacks we have networking
protocols<00:02:09.060><c> one</c><00:02:09.690><c> of</c><00:02:09.840><c> them</c><00:02:10.020><c> is</c><00:02:10.350><c> the</c><00:02:10.920><c> eath</c>

00:02:11.060 --> 00:02:11.070 align:start position:0%
protocols one of them is the eath
 

00:02:11.070 --> 00:02:12.890 align:start position:0%
protocols one of them is the eath
protocol<00:02:11.610><c> it's</c><00:02:11.970><c> not</c><00:02:12.090><c> actually</c><00:02:12.510><c> a</c><00:02:12.540><c> networking</c>

00:02:12.890 --> 00:02:12.900 align:start position:0%
protocol it's not actually a networking
 

00:02:12.900 --> 00:02:16.990 align:start position:0%
protocol it's not actually a networking
protocol<00:02:13.319><c> it's</c><00:02:13.890><c> it's</c><00:02:14.280><c> the</c><00:02:15.090><c> ethereum</c><00:02:15.810><c> specific</c>

00:02:16.990 --> 00:02:17.000 align:start position:0%
protocol it's it's the ethereum specific
 

00:02:17.000 --> 00:02:18.220 align:start position:0%
protocol it's it's the ethereum specific
application

00:02:18.220 --> 00:02:18.230 align:start position:0%
application
 

00:02:18.230 --> 00:02:20.770 align:start position:0%
application
recall<00:02:18.530><c> so</c><00:02:19.340><c> that</c><00:02:19.580><c> two</c><00:02:19.819><c> nodes</c><00:02:20.420><c> can</c><00:02:20.750><c> communicate</c>

00:02:20.770 --> 00:02:20.780 align:start position:0%
recall so that two nodes can communicate
 

00:02:20.780 --> 00:02:22.720 align:start position:0%
recall so that two nodes can communicate
over<00:02:21.409><c> each</c><00:02:21.530><c> other</c><00:02:21.769><c> and</c><00:02:21.980><c> one</c><00:02:22.129><c> can</c><00:02:22.310><c> say</c><00:02:22.459><c> I</c><00:02:22.489><c> need</c>

00:02:22.720 --> 00:02:22.730 align:start position:0%
over each other and one can say I need
 

00:02:22.730 --> 00:02:25.229 align:start position:0%
over each other and one can say I need
some<00:02:23.150><c> blocks</c><00:02:23.420><c> and</c><00:02:23.870><c> they</c><00:02:24.560><c> can</c><00:02:24.769><c> do</c>

00:02:25.229 --> 00:02:25.239 align:start position:0%
some blocks and they can do
 

00:02:25.239 --> 00:02:31.000 align:start position:0%
some blocks and they can do
announcements<00:02:26.239><c> of</c><00:02:26.390><c> new</c><00:02:27.040><c> books</c><00:02:28.040><c> etc</c><00:02:28.599><c> and</c><00:02:30.010><c> this</c>

00:02:31.000 --> 00:02:31.010 align:start position:0%
announcements of new books etc and this
 

00:02:31.010 --> 00:02:33.190 align:start position:0%
announcements of new books etc and this
protocol<00:02:31.700><c> contains</c><00:02:32.150><c> the</c><00:02:32.420><c> building</c><00:02:32.870><c> blocks</c>

00:02:33.190 --> 00:02:33.200 align:start position:0%
protocol contains the building blocks
 

00:02:33.200 --> 00:02:36.300 align:start position:0%
protocol contains the building blocks
that<00:02:33.620><c> clients</c><00:02:34.370><c> can</c><00:02:34.519><c> use</c><00:02:34.549><c> for</c><00:02:35.090><c> their</c><00:02:35.209><c> syncs</c>

00:02:36.300 --> 00:02:36.310 align:start position:0%
that clients can use for their syncs
 

00:02:36.310 --> 00:02:39.449 align:start position:0%
that clients can use for their syncs
there<00:02:37.310><c> are</c><00:02:37.370><c> neighboring</c><00:02:37.730><c> protocols</c><00:02:38.299><c> for</c><00:02:38.660><c> LS</c>

00:02:39.449 --> 00:02:39.459 align:start position:0%
there are neighboring protocols for LS
 

00:02:39.459 --> 00:02:42.009 align:start position:0%
there are neighboring protocols for LS
there's<00:02:40.459><c> like</c><00:02:40.670><c> science</c><00:02:41.060><c> and</c><00:02:41.269><c> parodies</c><00:02:41.840><c> own</c>

00:02:42.009 --> 00:02:42.019 align:start position:0%
there's like science and parodies own
 

00:02:42.019 --> 00:02:45.910 align:start position:0%
there's like science and parodies own
custom<00:02:42.560><c> warp</c><00:02:42.769><c> sync</c><00:02:43.930><c> this</c><00:02:44.930><c> piece</c><00:02:45.650><c> is</c><00:02:45.890><c> not</c>

00:02:45.910 --> 00:02:45.920 align:start position:0%
custom warp sync this piece is not
 

00:02:45.920 --> 00:02:47.800 align:start position:0%
custom warp sync this piece is not
consensus<00:02:46.549><c> critical</c><00:02:46.910><c> per</c><00:02:47.060><c> se</c><00:02:47.239><c> but</c><00:02:47.299><c> of</c><00:02:47.599><c> course</c>

00:02:47.800 --> 00:02:47.810 align:start position:0%
consensus critical per se but of course
 

00:02:47.810 --> 00:02:49.449 align:start position:0%
consensus critical per se but of course
it's<00:02:47.989><c> very</c><00:02:48.019><c> important</c><00:02:48.860><c> that</c><00:02:49.040><c> it</c><00:02:49.159><c> works</c>

00:02:49.449 --> 00:02:49.459 align:start position:0%
it's very important that it works
 

00:02:49.459 --> 00:02:52.449 align:start position:0%
it's very important that it works
because<00:02:49.970><c> otherwise</c><00:02:50.269><c> we</c><00:02:50.720><c> can</c><00:02:50.870><c> have</c><00:02:51.459><c> problems</c>

00:02:52.449 --> 00:02:52.459 align:start position:0%
because otherwise we can have problems
 

00:02:52.459 --> 00:02:56.559 align:start position:0%
because otherwise we can have problems
getting<00:02:52.910><c> no</c><00:02:53.329><c> sync</c><00:02:54.459><c> and</c><00:02:55.459><c> there</c><00:02:56.060><c> can</c><00:02:56.209><c> be</c><00:02:56.239><c> denial</c>

00:02:56.559 --> 00:02:56.569 align:start position:0%
getting no sync and there can be denial
 

00:02:56.569 --> 00:02:58.660 align:start position:0%
getting no sync and there can be denial
of<00:02:56.660><c> service</c><00:02:57.109><c> and</c><00:02:57.440><c> there</c><00:02:57.590><c> can</c><00:02:57.739><c> be</c><00:02:57.769><c> lost</c><00:02:58.280><c> blocks</c>

00:02:58.660 --> 00:02:58.670 align:start position:0%
of service and there can be lost blocks
 

00:02:58.670 --> 00:03:01.270 align:start position:0%
of service and there can be lost blocks
and<00:02:59.000><c> largely</c><00:02:59.239><c> orcs</c><00:02:59.629><c> and</c><00:02:59.989><c> generally</c><00:03:00.650><c> bad</c>

00:03:01.270 --> 00:03:01.280 align:start position:0%
and largely orcs and generally bad
 

00:03:01.280 --> 00:03:04.900 align:start position:0%
and largely orcs and generally bad
functioning<00:03:02.150><c> of</c><00:03:02.269><c> ethereum</c><00:03:02.540><c> and</c><00:03:03.760><c> the</c><00:03:04.760><c> eath</c>

00:03:04.900 --> 00:03:04.910 align:start position:0%
functioning of ethereum and the eath
 

00:03:04.910 --> 00:03:06.490 align:start position:0%
functioning of ethereum and the eath
protocol<00:03:05.480><c> operates</c><00:03:06.019><c> on</c><00:03:06.140><c> top</c><00:03:06.290><c> of</c><00:03:06.410><c> the</c>

00:03:06.490 --> 00:03:06.500 align:start position:0%
protocol operates on top of the
 

00:03:06.500 --> 00:03:08.759 align:start position:0%
protocol operates on top of the
peer-to-peer<00:03:06.769><c> protocol</c><00:03:07.459><c> the</c><00:03:07.609><c> p2p</c><00:03:07.970><c> protocol</c>

00:03:08.759 --> 00:03:08.769 align:start position:0%
peer-to-peer protocol the p2p protocol
 

00:03:08.769 --> 00:03:12.670 align:start position:0%
peer-to-peer protocol the p2p protocol
which<00:03:09.769><c> sits</c><00:03:10.040><c> on</c><00:03:10.129><c> top</c><00:03:10.280><c> of</c><00:03:10.459><c> TCP</c><00:03:10.670><c> and</c><00:03:11.329><c> it</c><00:03:12.109><c> has</c><00:03:12.379><c> just</c>

00:03:12.670 --> 00:03:12.680 align:start position:0%
which sits on top of TCP and it has just
 

00:03:12.680 --> 00:03:15.640 align:start position:0%
which sits on top of TCP and it has just
some<00:03:12.799><c> basic</c><00:03:13.190><c> guarantees</c><00:03:13.790><c> and</c><00:03:14.150><c> identify</c><00:03:15.019><c> no</c>

00:03:15.640 --> 00:03:15.650 align:start position:0%
some basic guarantees and identify no
 

00:03:15.650 --> 00:03:19.089 align:start position:0%
some basic guarantees and identify no
verifies<00:03:16.519><c> node</c><00:03:16.790><c> identities</c><00:03:17.829><c> also</c><00:03:18.829><c> and</c><00:03:19.040><c> not</c>

00:03:19.089 --> 00:03:19.099 align:start position:0%
verifies node identities also and not
 

00:03:19.099 --> 00:03:20.440 align:start position:0%
verifies node identities also and not
concerns<00:03:19.519><c> is</c><00:03:19.640><c> critical</c><00:03:20.030><c> but</c><00:03:20.180><c> it's</c><00:03:20.359><c> the</c>

00:03:20.440 --> 00:03:20.450 align:start position:0%
concerns is critical but it's the
 

00:03:20.450 --> 00:03:22.180 align:start position:0%
concerns is critical but it's the
backbone<00:03:20.900><c> for</c><00:03:21.170><c> the</c><00:03:21.560><c> upper</c><00:03:22.010><c> layer</c>

00:03:22.180 --> 00:03:22.190 align:start position:0%
backbone for the upper layer
 

00:03:22.190 --> 00:03:25.569 align:start position:0%
backbone for the upper layer
peer-to-peer<00:03:22.930><c> protocols</c><00:03:23.930><c> so</c><00:03:24.739><c> if</c><00:03:24.980><c> this</c><00:03:25.190><c> were</c>

00:03:25.569 --> 00:03:25.579 align:start position:0%
peer-to-peer protocols so if this were
 

00:03:25.579 --> 00:03:27.640 align:start position:0%
peer-to-peer protocols so if this were
to<00:03:25.790><c> fail</c><00:03:26.030><c> then</c><00:03:26.540><c> of</c><00:03:26.660><c> oh</c><00:03:26.870><c> yeah</c><00:03:27.109><c> you'd</c><00:03:27.349><c> have</c><00:03:27.530><c> the</c>

00:03:27.640 --> 00:03:27.650 align:start position:0%
to fail then of oh yeah you'd have the
 

00:03:27.650 --> 00:03:33.009 align:start position:0%
to fail then of oh yeah you'd have the
same<00:03:27.829><c> failures</c><00:03:28.639><c> as</c><00:03:28.849><c> the</c><00:03:29.480><c> each</c><00:03:29.630><c> protocol</c><00:03:32.019><c> if</c>

00:03:33.009 --> 00:03:33.019 align:start position:0%
same failures as the each protocol if
 

00:03:33.019 --> 00:03:39.479 align:start position:0%
same failures as the each protocol if
varium<00:03:33.919><c> peer-to-peer</c><00:03:36.130><c> networking</c><00:03:38.230><c> obviously</c>

00:03:39.479 --> 00:03:39.489 align:start position:0%
varium peer-to-peer networking obviously
 

00:03:39.489 --> 00:03:43.449 align:start position:0%
varium peer-to-peer networking obviously
is<00:03:40.489><c> built</c><00:03:41.180><c> upon</c><00:03:41.450><c> the</c><00:03:41.930><c> premise</c><00:03:42.349><c> that</c><00:03:42.560><c> I</c><00:03:42.799><c> as</c><00:03:43.430><c> a</c>

00:03:43.449 --> 00:03:43.459 align:start position:0%
is built upon the premise that I as a
 

00:03:43.459 --> 00:03:46.930 align:start position:0%
is built upon the premise that I as a
node<00:03:43.849><c> can</c><00:03:44.180><c> find</c><00:03:44.510><c> another</c><00:03:44.930><c> node</c><00:03:45.639><c> on</c><00:03:46.639><c> the</c>

00:03:46.930 --> 00:03:46.940 align:start position:0%
node can find another node on the
 

00:03:46.940 --> 00:03:49.449 align:start position:0%
node can find another node on the
Internet<00:03:47.419><c> which</c><00:03:47.750><c> is</c><00:03:47.989><c> not</c><00:03:48.260><c> a</c><00:03:48.290><c> trivial</c><00:03:48.620><c> task</c><00:03:49.040><c> but</c>

00:03:49.449 --> 00:03:49.459 align:start position:0%
Internet which is not a trivial task but
 

00:03:49.459 --> 00:03:51.370 align:start position:0%
Internet which is not a trivial task but
for<00:03:49.700><c> that</c><00:03:49.849><c> we</c><00:03:50.060><c> have</c><00:03:50.209><c> the</c><00:03:50.359><c> discovery</c><00:03:50.870><c> protocol</c>

00:03:51.370 --> 00:03:51.380 align:start position:0%
for that we have the discovery protocol
 

00:03:51.380 --> 00:03:54.460 align:start position:0%
for that we have the discovery protocol
which<00:03:51.980><c> currently</c><00:03:52.430><c> is</c><00:03:52.700><c> in</c><00:03:52.730><c> version</c><00:03:53.389><c> 4</c><00:03:53.660><c> there</c><00:03:54.440><c> is</c>

00:03:54.460 --> 00:03:54.470 align:start position:0%
which currently is in version 4 there is
 

00:03:54.470 --> 00:03:58.990 align:start position:0%
which currently is in version 4 there is
a<00:03:54.560><c> version</c><00:03:54.950><c> 5</c><00:03:55.310><c> being</c><00:03:55.579><c> worked</c><00:03:55.790><c> at</c><00:03:57.790><c> and</c><00:03:58.790><c> this</c>

00:03:58.990 --> 00:03:59.000 align:start position:0%
a version 5 being worked at and this
 

00:03:59.000 --> 00:04:02.349 align:start position:0%
a version 5 being worked at and this
uses<00:03:59.329><c> academia</c><00:04:00.250><c> distributed</c><00:04:01.250><c> hash</c><00:04:01.430><c> table</c><00:04:01.910><c> to</c>

00:04:02.349 --> 00:04:02.359 align:start position:0%
uses academia distributed hash table to
 

00:04:02.359 --> 00:04:07.839 align:start position:0%
uses academia distributed hash table to
announce<00:04:02.810><c> presence</c><00:04:03.530><c> and</c><00:04:04.599><c> using</c><00:04:05.599><c> this</c><00:04:06.430><c> DHT</c><00:04:07.430><c> we</c>

00:04:07.839 --> 00:04:07.849 align:start position:0%
announce presence and using this DHT we
 

00:04:07.849 --> 00:04:10.180 align:start position:0%
announce presence and using this DHT we
can<00:04:08.030><c> find</c><00:04:08.299><c> nodes</c><00:04:08.660><c> according</c><00:04:09.590><c> to</c><00:04:09.739><c> a</c><00:04:09.769><c> distance</c>

00:04:10.180 --> 00:04:10.190 align:start position:0%
can find nodes according to a distance
 

00:04:10.190 --> 00:04:12.069 align:start position:0%
can find nodes according to a distance
metric<00:04:10.430><c> and</c><00:04:11.060><c> they</c><00:04:11.299><c> can</c><00:04:11.480><c> hone</c><00:04:11.660><c> in</c><00:04:11.810><c> on</c><00:04:11.930><c> each</c>

00:04:12.069 --> 00:04:12.079 align:start position:0%
metric and they can hone in on each
 

00:04:12.079 --> 00:04:13.720 align:start position:0%
metric and they can hone in on each
other<00:04:12.230><c> and</c><00:04:12.500><c> the</c><00:04:12.590><c> distance</c><00:04:13.010><c> does</c><00:04:13.190><c> has</c><00:04:13.400><c> nothing</c>

00:04:13.720 --> 00:04:13.730 align:start position:0%
other and the distance does has nothing
 

00:04:13.730 --> 00:04:15.490 align:start position:0%
other and the distance does has nothing
to<00:04:13.760><c> do</c><00:04:13.940><c> with</c><00:04:14.060><c> geographic</c><00:04:14.780><c> location</c><00:04:15.349><c> or</c>

00:04:15.490 --> 00:04:15.500 align:start position:0%
to do with geographic location or
 

00:04:15.500 --> 00:04:19.750 align:start position:0%
to do with geographic location or
network<00:04:16.430><c> distance</c><00:04:17.829><c> the</c><00:04:18.829><c> discovery</c><00:04:19.250><c> protocol</c>

00:04:19.750 --> 00:04:19.760 align:start position:0%
network distance the discovery protocol
 

00:04:19.760 --> 00:04:23.469 align:start position:0%
network distance the discovery protocol
is<00:04:20.150><c> not</c><00:04:20.449><c> based</c><00:04:20.660><c> on</c><00:04:20.720><c> these</c><00:04:20.900><c> p</c><00:04:21.109><c> but</c><00:04:21.289><c> UDP</c><00:04:22.330><c> so</c><00:04:23.330><c> it</c>

00:04:23.469 --> 00:04:23.479 align:start position:0%
is not based on these p but UDP so it
 

00:04:23.479 --> 00:04:25.810 align:start position:0%
is not based on these p but UDP so it
has<00:04:23.630><c> no</c><00:04:23.900><c> built-in</c><00:04:24.470><c> guarantees</c><00:04:25.070><c> from</c><00:04:25.760><c> the</c>

00:04:25.810 --> 00:04:25.820 align:start position:0%
has no built-in guarantees from the
 

00:04:25.820 --> 00:04:28.210 align:start position:0%
has no built-in guarantees from the
lower<00:04:26.090><c> layers</c><00:04:26.450><c> about</c>

00:04:28.210 --> 00:04:28.220 align:start position:0%
lower layers about
 

00:04:28.220 --> 00:04:30.830 align:start position:0%
lower layers about
for<00:04:29.220><c> spoofing</c><00:04:29.610><c> protection</c><00:04:30.120><c> it's</c><00:04:30.300><c> trivial</c><00:04:30.810><c> to</c>

00:04:30.830 --> 00:04:30.840 align:start position:0%
for spoofing protection it's trivial to
 

00:04:30.840 --> 00:04:38.740 align:start position:0%
for spoofing protection it's trivial to
spoof<00:04:31.169><c> by</c><00:04:31.349><c> piece</c><00:04:31.590><c> and</c><00:04:32.870><c> this</c><00:04:33.870><c> protocol</c><00:04:36.020><c> can</c><00:04:37.020><c> be</c>

00:04:38.740 --> 00:04:38.750 align:start position:0%
spoof by piece and this protocol can be
 

00:04:38.750 --> 00:04:41.059 align:start position:0%
spoof by piece and this protocol can be
successful<00:04:39.750><c> to</c><00:04:39.900><c> a</c><00:04:39.930><c> couple</c><00:04:40.560><c> different</c><00:04:40.919><c> types</c>

00:04:41.059 --> 00:04:41.069 align:start position:0%
successful to a couple different types
 

00:04:41.069 --> 00:04:42.950 align:start position:0%
successful to a couple different types
of<00:04:41.220><c> vulnerabilities</c><00:04:41.300><c> one</c><00:04:42.300><c> of</c><00:04:42.449><c> them</c><00:04:42.659><c> is</c>

00:04:42.950 --> 00:04:42.960 align:start position:0%
of vulnerabilities one of them is
 

00:04:42.960 --> 00:04:45.770 align:start position:0%
of vulnerabilities one of them is
Eclipse<00:04:43.409><c> attacks</c><00:04:44.069><c> where</c><00:04:44.849><c> a</c><00:04:44.879><c> node</c><00:04:45.389><c> is</c>

00:04:45.770 --> 00:04:45.780 align:start position:0%
Eclipse attacks where a node is
 

00:04:45.780 --> 00:04:47.450 align:start position:0%
Eclipse attacks where a node is
partitioned<00:04:46.379><c> off</c><00:04:46.650><c> from</c><00:04:46.919><c> the</c><00:04:47.039><c> rest</c><00:04:47.220><c> of</c><00:04:47.340><c> the</c>

00:04:47.450 --> 00:04:47.460 align:start position:0%
partitioned off from the rest of the
 

00:04:47.460 --> 00:04:48.800 align:start position:0%
partitioned off from the rest of the
network<00:04:47.639><c> and</c><00:04:48.120><c> they</c><00:04:48.360><c> only</c><00:04:48.479><c> wants</c><00:04:48.780><c> to</c>

00:04:48.800 --> 00:04:48.810 align:start position:0%
network and they only wants to
 

00:04:48.810 --> 00:04:51.580 align:start position:0%
network and they only wants to
communicate<00:04:49.020><c> with</c><00:04:49.560><c> our</c><00:04:49.889><c> nodes</c><00:04:50.460><c> controlled</c><00:04:50.879><c> by</c>

00:04:51.580 --> 00:04:51.590 align:start position:0%
communicate with our nodes controlled by
 

00:04:51.590 --> 00:04:53.439 align:start position:0%
communicate with our nodes controlled by
the<00:04:52.590><c> attacker</c>

00:04:53.439 --> 00:04:53.449 align:start position:0%
the attacker
 

00:04:53.449 --> 00:04:56.300 align:start position:0%
the attacker
this<00:04:54.449><c> protocol</c><00:04:54.840><c> can</c><00:04:54.990><c> also</c><00:04:55.139><c> be</c><00:04:55.319><c> used</c><00:04:55.440><c> to</c><00:04:55.680><c> do</c>

00:04:56.300 --> 00:04:56.310 align:start position:0%
this protocol can also be used to do
 

00:04:56.310 --> 00:04:58.249 align:start position:0%
this protocol can also be used to do
distributed<00:04:57.150><c> denial</c><00:04:57.449><c> of</c><00:04:57.539><c> service</c><00:04:57.599><c> attacks</c>

00:04:58.249 --> 00:04:58.259 align:start position:0%
distributed denial of service attacks
 

00:04:58.259 --> 00:05:00.350 align:start position:0%
distributed denial of service attacks
against<00:04:58.830><c> third</c><00:04:59.129><c> parties</c><00:04:59.370><c> that</c><00:04:59.789><c> are</c><00:04:59.970><c> nothing</c>

00:05:00.350 --> 00:05:00.360 align:start position:0%
against third parties that are nothing
 

00:05:00.360 --> 00:05:04.939 align:start position:0%
against third parties that are nothing
to<00:05:00.599><c> do</c><00:05:00.719><c> with</c><00:05:00.810><c> ethereum</c><00:05:02.930><c> and</c><00:05:03.949><c> amplification</c>

00:05:04.939 --> 00:05:04.949 align:start position:0%
to do with ethereum and amplification
 

00:05:04.949 --> 00:05:07.309 align:start position:0%
to do with ethereum and amplification
attacks<00:05:05.639><c> which</c><00:05:05.969><c> kind</c><00:05:06.690><c> of</c><00:05:06.750><c> is</c><00:05:06.870><c> part</c><00:05:07.110><c> of</c><00:05:07.169><c> the</c>

00:05:07.309 --> 00:05:07.319 align:start position:0%
attacks which kind of is part of the
 

00:05:07.319 --> 00:05:12.890 align:start position:0%
attacks which kind of is part of the
DDoS<00:05:08.750><c> and</c><00:05:09.750><c> an</c><00:05:10.099><c> amplification</c><00:05:11.099><c> attack</c><00:05:12.000><c> can</c><00:05:12.719><c> be</c>

00:05:12.890 --> 00:05:12.900 align:start position:0%
DDoS and an amplification attack can be
 

00:05:12.900 --> 00:05:17.020 align:start position:0%
DDoS and an amplification attack can be
said<00:05:13.349><c> to</c><00:05:13.469><c> be</c><00:05:13.530><c> an</c><00:05:13.889><c> attack</c><00:05:14.219><c> where</c><00:05:14.490><c> I</c><00:05:14.719><c> have</c><00:05:15.719><c> a</c>

00:05:17.020 --> 00:05:17.030 align:start position:0%
said to be an attack where I have a
 

00:05:17.030 --> 00:05:19.909 align:start position:0%
said to be an attack where I have a
small<00:05:18.030><c> resource</c><00:05:18.719><c> that</c><00:05:19.199><c> can</c><00:05:19.440><c> be</c><00:05:19.590><c> a</c><00:05:19.620><c> small</c>

00:05:19.909 --> 00:05:19.919 align:start position:0%
small resource that can be a small
 

00:05:19.919 --> 00:05:22.279 align:start position:0%
small resource that can be a small
network<00:05:20.550><c> bandwidth</c><00:05:21.000><c> and</c><00:05:21.389><c> I</c><00:05:21.629><c> could</c><00:05:21.810><c> sell</c><00:05:22.020><c> my</c>

00:05:22.279 --> 00:05:22.289 align:start position:0%
network bandwidth and I could sell my
 

00:05:22.289 --> 00:05:25.219 align:start position:0%
network bandwidth and I could sell my
and<00:05:22.590><c> bytes</c><00:05:23.520><c> out</c><00:05:23.789><c> to</c><00:05:23.969><c> the</c><00:05:24.090><c> network</c><00:05:24.509><c> but</c><00:05:24.840><c> the</c>

00:05:25.219 --> 00:05:25.229 align:start position:0%
and bytes out to the network but the
 

00:05:25.229 --> 00:05:27.879 align:start position:0%
and bytes out to the network but the
effect<00:05:25.590><c> that</c><00:05:25.680><c> is</c><00:05:26.009><c> reached</c><00:05:26.759><c> on</c><00:05:27.000><c> the</c><00:05:27.030><c> victim</c><00:05:27.599><c> is</c>

00:05:27.879 --> 00:05:27.889 align:start position:0%
effect that is reached on the victim is
 

00:05:27.889 --> 00:05:32.499 align:start position:0%
effect that is reached on the victim is
amplified<00:05:28.889><c> by</c><00:05:29.129><c> a</c><00:05:29.159><c> factor</c><00:05:29.610><c> of</c><00:05:29.639><c> something</c><00:05:29.909><c> else</c>

00:05:32.499 --> 00:05:32.509 align:start position:0%
 
 

00:05:32.509 --> 00:05:35.870 align:start position:0%
 
so<00:05:33.509><c> basically</c><00:05:33.900><c> this</c><00:05:34.680><c> is</c><00:05:34.889><c> one</c><00:05:35.069><c> way</c><00:05:35.219><c> to</c><00:05:35.250><c> develop</c>

00:05:35.870 --> 00:05:35.880 align:start position:0%
so basically this is one way to develop
 

00:05:35.880 --> 00:05:39.170 align:start position:0%
so basically this is one way to develop
the<00:05:35.969><c> attack</c><00:05:36.270><c> service</c><00:05:36.569><c> surface</c><00:05:37.349><c> I</c><00:05:38.180><c> omitted</c>

00:05:39.170 --> 00:05:39.180 align:start position:0%
the attack service surface I omitted
 

00:05:39.180 --> 00:05:41.120 align:start position:0%
the attack service surface I omitted
some<00:05:39.569><c> parts</c><00:05:39.960><c> there's</c><00:05:40.349><c> also</c><00:05:40.620><c> the</c><00:05:40.860><c> sync</c>

00:05:41.120 --> 00:05:41.130 align:start position:0%
some parts there's also the sync
 

00:05:41.130 --> 00:05:46.399 align:start position:0%
some parts there's also the sync
protocols<00:05:43.520><c> but</c><00:05:44.520><c> there</c><00:05:44.940><c> were</c><00:05:45.029><c> only</c><00:05:45.090><c> four</c><00:05:45.690><c> forth</c>

00:05:46.399 --> 00:05:46.409 align:start position:0%
protocols but there were only four forth
 

00:05:46.409 --> 00:05:49.550 align:start position:0%
protocols but there were only four forth
things<00:05:46.979><c> in</c><00:05:47.250><c> this</c><00:05:47.400><c> slide</c><00:05:47.969><c> template</c><00:05:48.659><c> so</c><00:05:48.810><c> I</c><00:05:48.900><c> had</c>

00:05:49.550 --> 00:05:49.560 align:start position:0%
things in this slide template so I had
 

00:05:49.560 --> 00:05:52.760 align:start position:0%
things in this slide template so I had
to<00:05:49.680><c> divvy</c><00:05:49.889><c> it</c><00:05:49.979><c> up</c><00:05:50.039><c> like</c><00:05:50.340><c> this</c><00:05:51.380><c> so</c><00:05:52.380><c> I'm</c><00:05:52.590><c> going</c>

00:05:52.760 --> 00:05:52.770 align:start position:0%
to divvy it up like this so I'm going
 

00:05:52.770 --> 00:05:58.010 align:start position:0%
to divvy it up like this so I'm going
from<00:05:53.009><c> the</c><00:05:53.099><c> bottom</c><00:05:53.400><c> up</c><00:05:53.550><c> here</c><00:05:54.860><c> and</c><00:05:56.060><c> during</c><00:05:57.060><c> 2018</c>

00:05:58.010 --> 00:05:58.020 align:start position:0%
from the bottom up here and during 2018
 

00:05:58.020 --> 00:06:00.709 align:start position:0%
from the bottom up here and during 2018
and<00:05:58.169><c> 2019</c><00:05:58.800><c> there</c><00:05:59.610><c> was</c><00:05:59.789><c> actually</c><00:06:00.240><c> quite</c><00:06:00.270><c> a</c><00:06:00.539><c> lot</c>

00:06:00.709 --> 00:06:00.719 align:start position:0%
and 2019 there was actually quite a lot
 

00:06:00.719 --> 00:06:02.990 align:start position:0%
and 2019 there was actually quite a lot
research<00:06:01.199><c> into</c><00:06:01.650><c> the</c><00:06:01.770><c> discovery</c><00:06:02.250><c> protocol</c><00:06:02.729><c> and</c>

00:06:02.990 --> 00:06:03.000 align:start position:0%
research into the discovery protocol and
 

00:06:03.000 --> 00:06:07.760 align:start position:0%
research into the discovery protocol and
there<00:06:03.120><c> were</c><00:06:03.240><c> two</c><00:06:04.099><c> papers</c><00:06:05.099><c> sent</c><00:06:06.090><c> to</c><00:06:06.629><c> us</c><00:06:06.840><c> before</c>

00:06:07.760 --> 00:06:07.770 align:start position:0%
there were two papers sent to us before
 

00:06:07.770 --> 00:06:09.499 align:start position:0%
there were two papers sent to us before
they<00:06:07.919><c> were</c><00:06:07.979><c> released</c><00:06:08.580><c> to</c><00:06:08.729><c> the</c><00:06:08.789><c> general</c><00:06:08.849><c> public</c>

00:06:09.499 --> 00:06:09.509 align:start position:0%
they were released to the general public
 

00:06:09.509 --> 00:06:13.909 align:start position:0%
they were released to the general public
about<00:06:10.279><c> the</c><00:06:11.279><c> Klipsch</c><00:06:11.490><c> attacks</c><00:06:11.879><c> and</c><00:06:12.919><c> some</c>

00:06:13.909 --> 00:06:13.919 align:start position:0%
about the Klipsch attacks and some
 

00:06:13.919 --> 00:06:16.700 align:start position:0%
about the Klipsch attacks and some
people<00:06:14.250><c> also</c><00:06:14.370><c> reported</c><00:06:14.940><c> by</c><00:06:15.270><c> the</c><00:06:15.330><c> bouncy</c><00:06:15.960><c> bug</c>

00:06:16.700 --> 00:06:16.710 align:start position:0%
people also reported by the bouncy bug
 

00:06:16.710 --> 00:06:19.939 align:start position:0%
people also reported by the bouncy bug
bounty<00:06:17.129><c> and</c><00:06:17.930><c> vulnerabilities</c><00:06:18.949><c> amplification</c>

00:06:19.939 --> 00:06:19.949 align:start position:0%
bounty and vulnerabilities amplification
 

00:06:19.949 --> 00:06:22.790 align:start position:0%
bounty and vulnerabilities amplification
DDoS<00:06:20.310><c> attacks</c><00:06:20.639><c> and</c><00:06:21.060><c> Felix</c><00:06:21.509><c> and</c><00:06:21.840><c> Frank</c><00:06:22.229><c> on</c><00:06:22.620><c> the</c>

00:06:22.790 --> 00:06:22.800 align:start position:0%
DDoS attacks and Felix and Frank on the
 

00:06:22.800 --> 00:06:26.360 align:start position:0%
DDoS attacks and Felix and Frank on the
guest<00:06:22.949><c> team</c><00:06:23.190><c> found</c><00:06:23.550><c> even</c><00:06:23.729><c> more</c><00:06:24.029><c> issues</c><00:06:25.370><c> and</c>

00:06:26.360 --> 00:06:26.370 align:start position:0%
guest team found even more issues and
 

00:06:26.370 --> 00:06:28.909 align:start position:0%
guest team found even more issues and
one<00:06:26.610><c> of</c><00:06:26.699><c> the</c><00:06:26.789><c> eclipse</c><00:06:27.150><c> attacks</c><00:06:27.539><c> that</c><00:06:28.319><c> was</c>

00:06:28.909 --> 00:06:28.919 align:start position:0%
one of the eclipse attacks that was
 

00:06:28.919 --> 00:06:33.140 align:start position:0%
one of the eclipse attacks that was
found<00:06:29.159><c> in</c><00:06:29.279><c> the</c><00:06:29.370><c> first</c><00:06:29.610><c> paper</c><00:06:29.849><c> is</c><00:06:30.779><c> that</c><00:06:31.560><c> gif</c><00:06:32.430><c> as</c>

00:06:33.140 --> 00:06:33.150 align:start position:0%
found in the first paper is that gif as
 

00:06:33.150 --> 00:06:34.730 align:start position:0%
found in the first paper is that gif as
a<00:06:33.210><c> client</c>

00:06:34.730 --> 00:06:34.740 align:start position:0%
a client
 

00:06:34.740 --> 00:06:38.500 align:start position:0%
a client
had<00:06:35.370><c> dedicated</c><00:06:35.940><c> half</c><00:06:36.870><c> the</c><00:06:37.680><c> connection</c>

00:06:38.500 --> 00:06:38.510 align:start position:0%
had dedicated half the connection
 

00:06:38.510 --> 00:06:41.360 align:start position:0%
had dedicated half the connection
numbers<00:06:39.510><c> to</c><00:06:40.080><c> be</c><00:06:40.200><c> incoming</c><00:06:40.650><c> and</c><00:06:40.830><c> half</c><00:06:41.040><c> to</c><00:06:41.250><c> be</c>

00:06:41.360 --> 00:06:41.370 align:start position:0%
numbers to be incoming and half to be
 

00:06:41.370 --> 00:06:44.510 align:start position:0%
numbers to be incoming and half to be
outgoing<00:06:41.760><c> however</c><00:06:42.630><c> if</c><00:06:43.020><c> it</c><00:06:43.800><c> hadn't</c><00:06:44.310><c> already</c>

00:06:44.510 --> 00:06:44.520 align:start position:0%
outgoing however if it hadn't already
 

00:06:44.520 --> 00:06:47.270 align:start position:0%
outgoing however if it hadn't already
failed<00:06:45.120><c> done</c><00:06:45.990><c> all</c><00:06:46.230><c> the</c><00:06:46.380><c> outgoing</c><00:06:46.830><c> connections</c>

00:06:47.270 --> 00:06:47.280 align:start position:0%
failed done all the outgoing connections
 

00:06:47.280 --> 00:06:50.510 align:start position:0%
failed done all the outgoing connections
it<00:06:47.910><c> allowed</c><00:06:48.420><c> the</c><00:06:48.870><c> incoming</c><00:06:49.320><c> connections</c><00:06:49.920><c> to</c>

00:06:50.510 --> 00:06:50.520 align:start position:0%
it allowed the incoming connections to
 

00:06:50.520 --> 00:06:53.570 align:start position:0%
it allowed the incoming connections to
fill<00:06:50.850><c> up</c><00:06:50.970><c> all</c><00:06:51.120><c> the</c><00:06:51.300><c> slots</c><00:06:51.450><c> so</c><00:06:52.350><c> an</c><00:06:53.190><c> attacker</c>

00:06:53.570 --> 00:06:53.580 align:start position:0%
fill up all the slots so an attacker
 

00:06:53.580 --> 00:06:55.910 align:start position:0%
fill up all the slots so an attacker
could<00:06:53.790><c> simply</c><00:06:54.180><c> just</c><00:06:54.240><c> over</c><00:06:54.750><c> we're</c><00:06:54.960><c> overwhelmed</c>

00:06:55.910 --> 00:06:55.920 align:start position:0%
could simply just over we're overwhelmed
 

00:06:55.920 --> 00:06:58.280 align:start position:0%
could simply just over we're overwhelmed
I<00:06:56.130><c> guess</c><00:06:56.610><c> no</c><00:06:56.910><c> with</c><00:06:57.300><c> incoming</c><00:06:57.630><c> connection</c><00:06:58.110><c> and</c>

00:06:58.280 --> 00:06:58.290 align:start position:0%
I guess no with incoming connection and
 

00:06:58.290 --> 00:07:02.170 align:start position:0%
I guess no with incoming connection and
have<00:06:59.190><c> all</c><00:06:59.550><c> the</c><00:06:59.760><c> connections</c><00:07:00.210><c> to</c><00:07:00.360><c> the</c><00:07:00.450><c> thing</c>

00:07:02.170 --> 00:07:02.180 align:start position:0%
have all the connections to the thing
 

00:07:02.180 --> 00:07:04.100 align:start position:0%
have all the connections to the thing
they<00:07:03.180><c> could</c><00:07:03.330><c> also</c><00:07:03.450><c> see</c><00:07:03.720><c> that</c><00:07:03.750><c> there</c><00:07:04.020><c> were</c>

00:07:04.100 --> 00:07:04.110 align:start position:0%
they could also see that there were
 

00:07:04.110 --> 00:07:07.190 align:start position:0%
they could also see that there were
other<00:07:04.260><c> ways</c><00:07:04.500><c> to</c><00:07:05.010><c> fill</c><00:07:05.400><c> out</c><00:07:05.580><c> slots</c><00:07:06.000><c> by</c><00:07:06.780><c> pinging</c>

00:07:07.190 --> 00:07:07.200 align:start position:0%
other ways to fill out slots by pinging
 

00:07:07.200 --> 00:07:10.250 align:start position:0%
other ways to fill out slots by pinging
pinging<00:07:07.590><c> them</c><00:07:08.130><c> and</c><00:07:08.430><c> looting</c><00:07:09.420><c> the</c><00:07:09.600><c> identity</c>

00:07:10.250 --> 00:07:10.260 align:start position:0%
pinging them and looting the identity
 

00:07:10.260 --> 00:07:13.310 align:start position:0%
pinging them and looting the identity
database<00:07:11.180><c> and</c><00:07:12.180><c> the</c><00:07:12.300><c> third</c><00:07:12.570><c> attack</c><00:07:12.870><c> they</c><00:07:13.080><c> found</c>

00:07:13.310 --> 00:07:13.320 align:start position:0%
database and the third attack they found
 

00:07:13.320 --> 00:07:16.850 align:start position:0%
database and the third attack they found
was<00:07:13.560><c> that</c><00:07:13.590><c> if</c><00:07:14.040><c> you</c><00:07:14.220><c> manage</c><00:07:15.150><c> to</c><00:07:15.410><c> disturb</c><00:07:16.410><c> the</c>

00:07:16.850 --> 00:07:16.860 align:start position:0%
was that if you manage to disturb the
 

00:07:16.860 --> 00:07:21.950 align:start position:0%
was that if you manage to disturb the
timing<00:07:17.550><c> at</c><00:07:18.270><c> the</c><00:07:18.420><c> time</c><00:07:18.750><c> that</c><00:07:19.530><c> a</c><00:07:19.860><c> node</c><00:07:20.460><c> has</c><00:07:20.960><c> other</c>

00:07:21.950 --> 00:07:21.960 align:start position:0%
timing at the time that a node has other
 

00:07:21.960 --> 00:07:24.920 align:start position:0%
timing at the time that a node has other
peers<00:07:22.500><c> will</c><00:07:22.860><c> reject</c><00:07:23.550><c> him</c><00:07:23.670><c> and</c><00:07:24.210><c> forget</c><00:07:24.780><c> about</c>

00:07:24.920 --> 00:07:24.930 align:start position:0%
peers will reject him and forget about
 

00:07:24.930 --> 00:07:28.510 align:start position:0%
peers will reject him and forget about
him<00:07:25.290><c> and</c><00:07:25.440><c> he</c><00:07:26.040><c> will</c><00:07:26.220><c> reject</c><00:07:26.550><c> other</c><00:07:26.760><c> peers</c><00:07:27.180><c> and</c>

00:07:28.510 --> 00:07:28.520 align:start position:0%
him and he will reject other peers and
 

00:07:28.520 --> 00:07:30.830 align:start position:0%
him and he will reject other peers and
only<00:07:29.520><c> the</c><00:07:29.640><c> malicious</c><00:07:30.000><c> payers</c><00:07:30.240><c> will</c><00:07:30.510><c> accept</c>

00:07:30.830 --> 00:07:30.840 align:start position:0%
only the malicious payers will accept
 

00:07:30.840 --> 00:07:36.380 align:start position:0%
only the malicious payers will accept
him<00:07:32.360><c> as</c><00:07:33.360><c> for</c><00:07:33.540><c> amplification</c><00:07:34.580><c> attacks</c><00:07:35.580><c> here's</c>

00:07:36.380 --> 00:07:36.390 align:start position:0%
him as for amplification attacks here's
 

00:07:36.390 --> 00:07:39.790 align:start position:0%
him as for amplification attacks here's
one<00:07:37.160><c> example</c><00:07:38.160><c> that</c><00:07:38.340><c> Jeff</c><00:07:38.700><c> was</c><00:07:38.940><c> susceptible</c><00:07:39.270><c> to</c>

00:07:39.790 --> 00:07:39.800 align:start position:0%
one example that Jeff was susceptible to
 

00:07:39.800 --> 00:07:47.090 align:start position:0%
one example that Jeff was susceptible to
so<00:07:41.750><c> if</c><00:07:42.750><c> a</c><00:07:42.960><c> malicious</c><00:07:43.410><c> node</c><00:07:44.750><c> spoof</c><00:07:45.750><c> and</c><00:07:46.260><c> spoof</c>

00:07:47.090 --> 00:07:47.100 align:start position:0%
so if a malicious node spoof and spoof
 

00:07:47.100 --> 00:07:50.600 align:start position:0%
so if a malicious node spoof and spoof
pinged<00:07:47.550><c> the</c><00:07:47.910><c> target</c><00:07:48.590><c> the</c><00:07:49.590><c> target</c><00:07:49.800><c> would</c><00:07:50.100><c> reach</c>

00:07:50.600 --> 00:07:50.610 align:start position:0%
pinged the target the target would reach
 

00:07:50.610 --> 00:07:53.060 align:start position:0%
pinged the target the target would reach
out<00:07:50.910><c> to</c><00:07:51.210><c> the</c><00:07:51.330><c> actual</c><00:07:51.630><c> victim</c><00:07:52.080><c> with</c><00:07:52.770><c> the</c><00:07:52.860><c> ping</c>

00:07:53.060 --> 00:07:53.070 align:start position:0%
out to the actual victim with the ping
 

00:07:53.070 --> 00:07:55.580 align:start position:0%
out to the actual victim with the ping
with<00:07:53.940><c> the</c><00:07:54.030><c> poems</c><00:07:54.360><c> or</c><00:07:54.540><c> in</c><00:07:54.660><c> the</c><00:07:54.780><c> new</c><00:07:55.110><c> ping</c><00:07:55.380><c> and</c>

00:07:55.580 --> 00:07:55.590 align:start position:0%
with the poems or in the new ping and
 

00:07:55.590 --> 00:07:57.680 align:start position:0%
with the poems or in the new ping and
the<00:07:56.250><c> malicious</c><00:07:56.610><c> node</c><00:07:56.850><c> could</c><00:07:57.090><c> send</c><00:07:57.420><c> in</c><00:07:57.540><c> the</c>

00:07:57.680 --> 00:07:57.690 align:start position:0%
the malicious node could send in the
 

00:07:57.690 --> 00:08:01.550 align:start position:0%
the malicious node could send in the
poem<00:07:58.880><c> pretending</c><00:07:59.880><c> to</c><00:08:00.030><c> have</c><00:08:00.120><c> seen</c><00:08:00.390><c> the</c><00:08:00.570><c> first</c>

00:08:01.550 --> 00:08:01.560 align:start position:0%
poem pretending to have seen the first
 

00:08:01.560 --> 00:08:04.790 align:start position:0%
poem pretending to have seen the first
outgoing<00:08:02.220><c> ping</c><00:08:02.460><c> from</c><00:08:02.730><c> the</c><00:08:02.850><c> target</c><00:08:03.180><c> and</c><00:08:03.800><c> he's</c>

00:08:04.790 --> 00:08:04.800 align:start position:0%
outgoing ping from the target and he's
 

00:08:04.800 --> 00:08:06.740 align:start position:0%
outgoing ping from the target and he's
supposed<00:08:05.190><c> to</c><00:08:05.310><c> supply</c><00:08:05.580><c> reply</c><00:08:06.000><c> token</c><00:08:06.480><c> but</c>

00:08:06.740 --> 00:08:06.750 align:start position:0%
supposed to supply reply token but
 

00:08:06.750 --> 00:08:08.960 align:start position:0%
supposed to supply reply token but
didn't<00:08:07.320><c> actually</c><00:08:07.500><c> validate</c><00:08:08.130><c> the</c><00:08:08.280><c> reply</c><00:08:08.550><c> token</c>

00:08:08.960 --> 00:08:08.970 align:start position:0%
didn't actually validate the reply token
 

00:08:08.970 --> 00:08:13.150 align:start position:0%
didn't actually validate the reply token
so<00:08:09.720><c> at</c><00:08:10.050><c> that</c><00:08:10.200><c> point</c><00:08:10.440><c> target</c><00:08:11.070><c> believed</c><00:08:12.110><c> that</c>

00:08:13.150 --> 00:08:13.160 align:start position:0%
so at that point target believed that
 

00:08:13.160 --> 00:08:16.790 align:start position:0%
so at that point target believed that
malicious<00:08:14.160><c> node</c><00:08:14.340><c> resided</c><00:08:14.940><c> on</c><00:08:15.210><c> IP</c><00:08:15.990><c> address</c><00:08:16.410><c> 1</c><00:08:16.620><c> 2</c>

00:08:16.790 --> 00:08:16.800 align:start position:0%
malicious node resided on IP address 1 2
 

00:08:16.800 --> 00:08:21.320 align:start position:0%
malicious node resided on IP address 1 2
3<00:08:16.980><c> 4</c><00:08:17.310><c> and</c><00:08:18.080><c> if</c><00:08:19.080><c> the</c><00:08:19.230><c> militia</c><00:08:19.470><c> of</c><00:08:19.740><c> them</c><00:08:20.150><c> sends</c><00:08:21.150><c> a</c>

00:08:21.320 --> 00:08:21.330 align:start position:0%
3 4 and if the militia of them sends a
 

00:08:21.330 --> 00:08:23.500 align:start position:0%
3 4 and if the militia of them sends a
so-called<00:08:21.720><c> final</c><00:08:22.230><c> request</c><00:08:22.830><c> which</c><00:08:23.130><c> is</c><00:08:23.160><c> only</c>

00:08:23.500 --> 00:08:23.510 align:start position:0%
so-called final request which is only
 

00:08:23.510 --> 00:08:27.800 align:start position:0%
so-called final request which is only
213<00:08:24.510><c> bytes</c><00:08:24.780><c> or</c><00:08:24.990><c> so</c><00:08:25.700><c> it</c><00:08:26.700><c> causes</c><00:08:27.060><c> a</c><00:08:27.240><c> final</c>

00:08:27.800 --> 00:08:27.810 align:start position:0%
213 bytes or so it causes a final
 

00:08:27.810 --> 00:08:30.800 align:start position:0%
213 bytes or so it causes a final
response<00:08:28.400><c> called</c><00:08:29.400><c> neighbors</c><00:08:29.760><c> to</c><00:08:30.330><c> be</c><00:08:30.480><c> sent</c><00:08:30.690><c> to</c>

00:08:30.800 --> 00:08:30.810 align:start position:0%
response called neighbors to be sent to
 

00:08:30.810 --> 00:08:33.320 align:start position:0%
response called neighbors to be sent to
the<00:08:30.870><c> victim</c><00:08:31.050><c> which</c><00:08:31.410><c> is</c><00:08:31.590><c> 1.5</c><00:08:32.340><c> kilobytes</c>

00:08:33.320 --> 00:08:33.330 align:start position:0%
the victim which is 1.5 kilobytes
 

00:08:33.330 --> 00:08:35.750 align:start position:0%
the victim which is 1.5 kilobytes
there's<00:08:33.780><c> an</c><00:08:33.900><c> amplification</c><00:08:34.230><c> like</c><00:08:34.920><c> an</c>

00:08:35.750 --> 00:08:35.760 align:start position:0%
there's an amplification like an
 

00:08:35.760 --> 00:08:39.620 align:start position:0%
there's an amplification like an
amplification<00:08:36.270><c> of</c><00:08:36.600><c> about</c><00:08:36.870><c> 7</c><00:08:38.240><c> on</c><00:08:39.240><c> these</c>

00:08:39.620 --> 00:08:39.630 align:start position:0%
amplification of about 7 on these
 

00:08:39.630 --> 00:08:44.870 align:start position:0%
amplification of about 7 on these
attacks<00:08:39.990><c> which</c><00:08:40.620><c> is</c><00:08:40.800><c> not</c><00:08:41.520><c> trivial</c><00:08:43.880><c> more</c>

00:08:44.870 --> 00:08:44.880 align:start position:0%
attacks which is not trivial more
 

00:08:44.880 --> 00:08:47.540 align:start position:0%
attacks which is not trivial more
complex<00:08:45.390><c> example</c><00:08:45.930><c> could</c><00:08:46.230><c> be</c><00:08:46.350><c> made</c><00:08:46.530><c> also</c><00:08:46.950><c> where</c>

00:08:47.540 --> 00:08:47.550 align:start position:0%
complex example could be made also where
 

00:08:47.550 --> 00:08:48.530 align:start position:0%
complex example could be made also where
you<00:08:47.670><c> set</c><00:08:48.030><c> up</c><00:08:48.180><c> the</c><00:08:48.330><c> ball</c>

00:08:48.530 --> 00:08:48.540 align:start position:0%
you set up the ball
 

00:08:48.540 --> 00:08:51.829 align:start position:0%
you set up the ball
ending<00:08:48.779><c> with</c><00:08:49.380><c> two</c><00:08:49.620><c> notes</c><00:08:50.100><c> and</c><00:08:50.459><c> then</c><00:08:51.120><c> had</c><00:08:51.480><c> one</c>

00:08:51.829 --> 00:08:51.839 align:start position:0%
ending with two notes and then had one
 

00:08:51.839 --> 00:08:55.069 align:start position:0%
ending with two notes and then had one
of<00:08:51.990><c> them</c><00:08:52.199><c> lie</c><00:08:52.709><c> about</c><00:08:53.339><c> the</c><00:08:53.940><c> location</c><00:08:54.810><c> of</c><00:08:54.899><c> the</c>

00:08:55.069 --> 00:08:55.079 align:start position:0%
of them lie about the location of the
 

00:08:55.079 --> 00:08:58.579 align:start position:0%
of them lie about the location of the
first<00:08:55.320><c> one</c><00:08:55.620><c> and</c><00:08:56.009><c> the</c><00:08:56.730><c> first</c><00:08:56.940><c> one</c><00:08:57.149><c> then</c><00:08:57.570><c> do</c><00:08:58.410><c> is</c>

00:08:58.579 --> 00:08:58.589 align:start position:0%
first one and the first one then do is
 

00:08:58.589 --> 00:09:02.540 align:start position:0%
first one and the first one then do is
moved<00:08:58.949><c> find</c><00:08:59.610><c> out</c><00:08:59.820><c> requests</c><00:09:00.420><c> from</c><00:09:00.779><c> that</c><00:09:01.550><c> IP</c>

00:09:02.540 --> 00:09:02.550 align:start position:0%
moved find out requests from that IP
 

00:09:02.550 --> 00:09:05.389 align:start position:0%
moved find out requests from that IP
address<00:09:02.759><c> which</c><00:09:03.180><c> he'd</c><00:09:03.360><c> lied</c><00:09:03.570><c> about</c><00:09:03.720><c> and</c><00:09:04.399><c> ankles</c>

00:09:05.389 --> 00:09:05.399 align:start position:0%
address which he'd lied about and ankles
 

00:09:05.399 --> 00:09:09.050 align:start position:0%
address which he'd lied about and ankles
the<00:09:05.519><c> same</c><00:09:05.670><c> effect</c><00:09:07.310><c> moving</c><00:09:08.310><c> upwards</c><00:09:08.790><c> in</c><00:09:09.029><c> the</c>

00:09:09.050 --> 00:09:09.060 align:start position:0%
the same effect moving upwards in the
 

00:09:09.060 --> 00:09:11.269 align:start position:0%
the same effect moving upwards in the
network<00:09:09.779><c> stack</c><00:09:10.019><c> to</c><00:09:10.199><c> ethan</c><00:09:10.620><c> peer-to-peer</c><00:09:10.860><c> la</c>

00:09:11.269 --> 00:09:11.279 align:start position:0%
network stack to ethan peer-to-peer la
 

00:09:11.279 --> 00:09:15.949 align:start position:0%
network stack to ethan peer-to-peer la
lair<00:09:12.920><c> in</c><00:09:13.920><c> the</c><00:09:14.040><c> beginning</c><00:09:14.370><c> of</c><00:09:14.459><c> 2017</c><00:09:15.420><c> we</c><00:09:15.750><c> saw</c>

00:09:15.949 --> 00:09:15.959 align:start position:0%
lair in the beginning of 2017 we saw
 

00:09:15.959 --> 00:09:18.290 align:start position:0%
lair in the beginning of 2017 we saw
that<00:09:16.139><c> the</c><00:09:16.620><c> network</c><00:09:17.100><c> traffic</c><00:09:17.339><c> was</c><00:09:17.790><c> really</c><00:09:18.089><c> up</c>

00:09:18.290 --> 00:09:18.300 align:start position:0%
that the network traffic was really up
 

00:09:18.300 --> 00:09:20.990 align:start position:0%
that the network traffic was really up
here<00:09:18.810><c> so</c><00:09:19.410><c> much</c><00:09:19.620><c> noise</c><00:09:19.889><c> and</c><00:09:20.579><c> we</c><00:09:20.699><c> started</c>

00:09:20.990 --> 00:09:21.000 align:start position:0%
here so much noise and we started
 

00:09:21.000 --> 00:09:22.519 align:start position:0%
here so much noise and we started
analyzing<00:09:21.149><c> and</c><00:09:21.690><c> looking</c><00:09:21.930><c> into</c><00:09:22.019><c> what</c><00:09:22.259><c> caused</c>

00:09:22.519 --> 00:09:22.529 align:start position:0%
analyzing and looking into what caused
 

00:09:22.529 --> 00:09:24.680 align:start position:0%
analyzing and looking into what caused
that<00:09:22.560><c> and</c><00:09:23.100><c> found</c><00:09:23.250><c> that</c><00:09:23.459><c> during</c><00:09:23.759><c> about</c><00:09:24.209><c> two</c>

00:09:24.680 --> 00:09:24.690 align:start position:0%
that and found that during about two
 

00:09:24.690 --> 00:09:28.389 align:start position:0%
that and found that during about two
hours<00:09:25.100><c> and</c><00:09:26.100><c> note</c><00:09:26.399><c> would</c><00:09:26.670><c> typically</c><00:09:27.060><c> reject</c>

00:09:28.389 --> 00:09:28.399 align:start position:0%
hours and note would typically reject
 

00:09:28.399 --> 00:09:30.680 align:start position:0%
hours and note would typically reject
165,000<00:09:29.399><c> transactions</c><00:09:30.180><c> because</c><00:09:30.360><c> they</c><00:09:30.630><c> were</c>

00:09:30.680 --> 00:09:30.690 align:start position:0%
165,000 transactions because they were
 

00:09:30.690 --> 00:09:33.710 align:start position:0%
165,000 transactions because they were
invalid<00:09:31.410><c> so</c><00:09:32.100><c> 19</c><00:09:32.610><c> invalid</c><00:09:33.000><c> transactions</c><00:09:33.480><c> every</c>

00:09:33.710 --> 00:09:33.720 align:start position:0%
invalid so 19 invalid transactions every
 

00:09:33.720 --> 00:09:40.360 align:start position:0%
invalid so 19 invalid transactions every
second<00:09:34.110><c> just</c><00:09:35.089><c> streaming</c><00:09:36.089><c> into</c><00:09:36.420><c> the</c><00:09:36.540><c> client</c>

00:09:40.360 --> 00:09:40.370 align:start position:0%
 
 

00:09:40.370 --> 00:09:43.569 align:start position:0%
 
problems<00:09:41.370><c> were</c><00:09:41.579><c> that</c><00:09:41.930><c> one</c><00:09:42.930><c> of</c><00:09:42.990><c> the</c><00:09:43.079><c> clients</c>

00:09:43.569 --> 00:09:43.579 align:start position:0%
problems were that one of the clients
 

00:09:43.579 --> 00:09:46.610 align:start position:0%
problems were that one of the clients
parrot<00:09:44.579><c> I</c><00:09:44.699><c> didn't</c><00:09:45.060><c> remember</c><00:09:45.750><c> who</c><00:09:46.110><c> they'd</c><00:09:46.290><c> sent</c>

00:09:46.610 --> 00:09:46.620 align:start position:0%
parrot I didn't remember who they'd sent
 

00:09:46.620 --> 00:09:48.710 align:start position:0%
parrot I didn't remember who they'd sent
transactions<00:09:47.220><c> to</c><00:09:47.430><c> and</c><00:09:47.699><c> another</c><00:09:47.940><c> issue</c><00:09:48.449><c> was</c>

00:09:48.710 --> 00:09:48.720 align:start position:0%
transactions to and another issue was
 

00:09:48.720 --> 00:09:51.650 align:start position:0%
transactions to and another issue was
that<00:09:48.750><c> they</c><00:09:49.649><c> didn't</c><00:09:50.009><c> actually</c><00:09:50.660><c> garbage</c>

00:09:51.650 --> 00:09:51.660 align:start position:0%
that they didn't actually garbage
 

00:09:51.660 --> 00:09:54.290 align:start position:0%
that they didn't actually garbage
collect<00:09:52.079><c> invalid</c><00:09:52.589><c> transactions</c><00:09:53.250><c> asked</c><00:09:53.730><c> state</c>

00:09:54.290 --> 00:09:54.300 align:start position:0%
collect invalid transactions asked state
 

00:09:54.300 --> 00:09:55.970 align:start position:0%
collect invalid transactions asked state
progressed<00:09:54.930><c> over</c><00:09:55.230><c> blocks</c>

00:09:55.970 --> 00:09:55.980 align:start position:0%
progressed over blocks
 

00:09:55.980 --> 00:09:58.730 align:start position:0%
progressed over blocks
so<00:09:56.490><c> we've</c><00:09:56.790><c> if</c><00:09:57.690><c> they</c><00:09:57.930><c> were</c><00:09:57.990><c> included</c><00:09:58.529><c> they</c><00:09:58.680><c> were</c>

00:09:58.730 --> 00:09:58.740 align:start position:0%
so we've if they were included they were
 

00:09:58.740 --> 00:10:00.620 align:start position:0%
so we've if they were included they were
removed<00:09:59.430><c> but</c><00:09:59.639><c> if</c><00:09:59.850><c> they</c><00:10:00.029><c> became</c><00:10:00.300><c> invalid</c>

00:10:00.620 --> 00:10:00.630 align:start position:0%
removed but if they became invalid
 

00:10:00.630 --> 00:10:02.960 align:start position:0%
removed but if they became invalid
because<00:10:01.050><c> of</c><00:10:01.350><c> they</c><00:10:01.440><c> projected</c><00:10:01.980><c> progressional</c>

00:10:02.960 --> 00:10:02.970 align:start position:0%
because of they projected progressional
 

00:10:02.970 --> 00:10:05.329 align:start position:0%
because of they projected progressional
blocks<00:10:03.180><c> and</c><00:10:03.630><c> they</c><00:10:04.410><c> were</c><00:10:04.529><c> not</c><00:10:04.680><c> removed</c><00:10:05.040><c> so</c><00:10:05.220><c> they</c>

00:10:05.329 --> 00:10:05.339 align:start position:0%
blocks and they were not removed so they
 

00:10:05.339 --> 00:10:08.150 align:start position:0%
blocks and they were not removed so they
were<00:10:05.459><c> just</c><00:10:05.490><c> constantly</c><00:10:06.240><c> being</c><00:10:06.510><c> recent</c><00:10:07.380><c> and</c>

00:10:08.150 --> 00:10:08.160 align:start position:0%
were just constantly being recent and
 

00:10:08.160 --> 00:10:11.840 align:start position:0%
were just constantly being recent and
after<00:10:08.819><c> we</c><00:10:08.970><c> looked</c><00:10:09.720><c> into</c><00:10:10.050><c> that</c><00:10:10.199><c> and</c><00:10:10.589><c> and</c><00:10:10.850><c> nail</c>

00:10:11.840 --> 00:10:11.850 align:start position:0%
after we looked into that and and nail
 

00:10:11.850 --> 00:10:14.059 align:start position:0%
after we looked into that and and nail
out<00:10:12.149><c> iron</c><00:10:12.600><c> out</c><00:10:12.839><c> those</c><00:10:13.050><c> issues</c><00:10:13.500><c> you</c><00:10:13.529><c> could</c><00:10:13.829><c> see</c>

00:10:14.059 --> 00:10:14.069 align:start position:0%
out iron out those issues you could see
 

00:10:14.069 --> 00:10:16.430 align:start position:0%
out iron out those issues you could see
that<00:10:14.279><c> the</c><00:10:14.490><c> the</c><00:10:15.089><c> graphs</c><00:10:15.510><c> on</c><00:10:15.779><c> these</c><00:10:15.930><c> monitoring</c>

00:10:16.430 --> 00:10:16.440 align:start position:0%
that the the graphs on these monitoring
 

00:10:16.440 --> 00:10:18.650 align:start position:0%
that the the graphs on these monitoring
notes<00:10:16.680><c> which</c><00:10:16.920><c> we</c><00:10:17.100><c> put</c><00:10:17.430><c> up</c><00:10:17.579><c> started</c><00:10:18.180><c> levelling</c>

00:10:18.650 --> 00:10:18.660 align:start position:0%
notes which we put up started levelling
 

00:10:18.660 --> 00:10:21.980 align:start position:0%
notes which we put up started levelling
out<00:10:18.810><c> and</c><00:10:19.230><c> that</c><00:10:19.920><c> the</c><00:10:20.160><c> incoming</c><00:10:20.850><c> traffic</c><00:10:21.420><c> on</c><00:10:21.959><c> a</c>

00:10:21.980 --> 00:10:21.990 align:start position:0%
out and that the incoming traffic on a
 

00:10:21.990 --> 00:10:24.740 align:start position:0%
out and that the incoming traffic on a
node<00:10:22.319><c> went</c><00:10:23.040><c> down</c><00:10:23.279><c> by</c><00:10:23.550><c> a</c><00:10:23.579><c> factor</c><00:10:24.029><c> of</c><00:10:24.089><c> 20</c><00:10:24.569><c> to</c><00:10:24.720><c> 30</c>

00:10:24.740 --> 00:10:24.750 align:start position:0%
node went down by a factor of 20 to 30
 

00:10:24.750 --> 00:10:32.540 align:start position:0%
node went down by a factor of 20 to 30
during<00:10:25.970><c> January</c><00:10:26.970><c> to</c><00:10:27.149><c> March</c><00:10:27.360><c> in</c><00:10:27.889><c> 2017</c><00:10:30.920><c> and</c><00:10:31.920><c> also</c>

00:10:32.540 --> 00:10:32.550 align:start position:0%
during January to March in 2017 and also
 

00:10:32.550 --> 00:10:36.530 align:start position:0%
during January to March in 2017 and also
the<00:10:32.760><c> only</c><00:10:33.329><c> is</c><00:10:33.480><c> this</c><00:10:34.019><c> protocol</c><00:10:34.500><c> level</c><00:10:35.510><c> there</c><00:10:36.510><c> is</c>

00:10:36.530 --> 00:10:36.540 align:start position:0%
the only is this protocol level there is
 

00:10:36.540 --> 00:10:38.449 align:start position:0%
the only is this protocol level there is
the<00:10:36.810><c> sync</c><00:10:37.050><c> protocols</c><00:10:37.589><c> as</c><00:10:37.769><c> I</c><00:10:37.889><c> mentioned</c><00:10:38.339><c> and</c>

00:10:38.449 --> 00:10:38.459 align:start position:0%
the sync protocols as I mentioned and
 

00:10:38.459 --> 00:10:41.629 align:start position:0%
the sync protocols as I mentioned and
earlier<00:10:39.120><c> in</c><00:10:39.240><c> April</c><00:10:39.720><c> this</c><00:10:39.870><c> year</c><00:10:39.930><c> we</c><00:10:40.860><c> saw</c><00:10:41.160><c> a</c><00:10:41.459><c> new</c>

00:10:41.629 --> 00:10:41.639 align:start position:0%
earlier in April this year we saw a new
 

00:10:41.639 --> 00:10:43.009 align:start position:0%
earlier in April this year we saw a new
kind<00:10:41.910><c> of</c><00:10:42.000><c> attack</c><00:10:42.269><c> which</c><00:10:42.510><c> we</c><00:10:42.630><c> hadn't</c><00:10:42.870><c> seen</c>

00:10:43.009 --> 00:10:43.019 align:start position:0%
kind of attack which we hadn't seen
 

00:10:43.019 --> 00:10:45.019 align:start position:0%
kind of attack which we hadn't seen
before<00:10:43.050><c> which</c><00:10:43.439><c> was</c><00:10:43.649><c> a</c><00:10:43.709><c> target</c><00:10:44.130><c> attack</c><00:10:44.699><c> or</c><00:10:44.939><c> the</c>

00:10:45.019 --> 00:10:45.029 align:start position:0%
before which was a target attack or the
 

00:10:45.029 --> 00:10:48.199 align:start position:0%
before which was a target attack or the
fasting<00:10:45.689><c> protocol</c><00:10:46.579><c> which</c><00:10:47.579><c> was</c><00:10:47.699><c> a</c><00:10:47.759><c> grieving</c>

00:10:48.199 --> 00:10:48.209 align:start position:0%
fasting protocol which was a grieving
 

00:10:48.209 --> 00:10:51.050 align:start position:0%
fasting protocol which was a grieving
attack<00:10:48.509><c> where</c><00:10:48.870><c> as</c><00:10:49.620><c> soon</c><00:10:49.860><c> as</c><00:10:50.040><c> a</c><00:10:50.069><c> node</c><00:10:50.399><c> joined</c>

00:10:51.050 --> 00:10:51.060 align:start position:0%
attack where as soon as a node joined
 

00:10:51.060 --> 00:10:54.139 align:start position:0%
attack where as soon as a node joined
the<00:10:51.269><c> network</c><00:10:51.920><c> the</c><00:10:52.920><c> attacker</c><00:10:53.579><c> who</c><00:10:53.970><c> was</c>

00:10:54.139 --> 00:10:54.149 align:start position:0%
the network the attacker who was
 

00:10:54.149 --> 00:10:57.199 align:start position:0%
the network the attacker who was
scanning<00:10:54.509><c> the</c><00:10:54.779><c> DHT</c><00:10:55.079><c> tables</c><00:10:55.829><c> a</c><00:10:56.069><c> new</c><00:10:56.250><c> node</c><00:10:56.519><c> would</c>

00:10:57.199 --> 00:10:57.209 align:start position:0%
scanning the DHT tables a new node would
 

00:10:57.209 --> 00:10:59.750 align:start position:0%
scanning the DHT tables a new node would
instantly<00:10:57.870><c> connect</c><00:10:58.319><c> to</c><00:10:58.439><c> that</c><00:10:58.589><c> node</c><00:10:58.860><c> and</c><00:10:59.069><c> tell</c>

00:10:59.750 --> 00:10:59.760 align:start position:0%
instantly connect to that node and tell
 

00:10:59.760 --> 00:11:00.650 align:start position:0%
instantly connect to that node and tell
him

00:11:00.650 --> 00:11:00.660 align:start position:0%
him
 

00:11:00.660 --> 00:11:02.840 align:start position:0%
him
Hey<00:11:01.170><c> I</c><00:11:01.350><c> had</c><00:11:01.590><c> the</c><00:11:01.710><c> blockchain</c><00:11:01.890><c> here</c><00:11:02.430><c> I'm</c><00:11:02.520><c> full</c>

00:11:02.840 --> 00:11:02.850 align:start position:0%
Hey I had the blockchain here I'm full
 

00:11:02.850 --> 00:11:05.450 align:start position:0%
Hey I had the blockchain here I'm full
of<00:11:02.880><c> sinked</c><00:11:03.240><c> at</c><00:11:03.390><c> block</c><00:11:03.570><c> five</c><00:11:03.840><c> and</c><00:11:04.320><c> the</c><00:11:05.070><c> victim</c>

00:11:05.450 --> 00:11:05.460 align:start position:0%
of sinked at block five and the victim
 

00:11:05.460 --> 00:11:07.910 align:start position:0%
of sinked at block five and the victim
having<00:11:05.820><c> no</c><00:11:06.060><c> other</c><00:11:06.210><c> source</c><00:11:06.630><c> of</c><00:11:06.840><c> truth</c><00:11:07.140><c> would</c>

00:11:07.910 --> 00:11:07.920 align:start position:0%
having no other source of truth would
 

00:11:07.920 --> 00:11:09.860 align:start position:0%
having no other source of truth would
tell<00:11:08.460><c> him</c><00:11:08.670><c> yeah</c><00:11:08.850><c> please</c><00:11:09.150><c> send</c><00:11:09.480><c> me</c><00:11:09.600><c> over</c><00:11:09.780><c> the</c>

00:11:09.860 --> 00:11:09.870 align:start position:0%
tell him yeah please send me over the
 

00:11:09.870 --> 00:11:11.840 align:start position:0%
tell him yeah please send me over the
states<00:11:10.110><c> on</c><00:11:10.260><c> the</c><00:11:10.290><c> blocks</c><00:11:10.560><c> and</c><00:11:10.890><c> that</c><00:11:11.400><c> of</c><00:11:11.580><c> course</c>

00:11:11.840 --> 00:11:11.850 align:start position:0%
states on the blocks and that of course
 

00:11:11.850 --> 00:11:14.900 align:start position:0%
states on the blocks and that of course
happens<00:11:12.240><c> very</c><00:11:12.540><c> quickly</c><00:11:12.810><c> since</c><00:11:13.590><c> what</c><00:11:13.890><c> it</c><00:11:14.190><c> was</c><00:11:14.340><c> a</c>

00:11:14.900 --> 00:11:14.910 align:start position:0%
happens very quickly since what it was a
 

00:11:14.910 --> 00:11:18.530 align:start position:0%
happens very quickly since what it was a
very<00:11:15.390><c> small</c><00:11:15.690><c> chain</c><00:11:15.990><c> and</c><00:11:16.910><c> the</c><00:11:17.910><c> victim</c><00:11:18.360><c> would</c>

00:11:18.530 --> 00:11:18.540 align:start position:0%
very small chain and the victim would
 

00:11:18.540 --> 00:11:22.160 align:start position:0%
very small chain and the victim would
then<00:11:18.720><c> be</c><00:11:19.140><c> fast</c><00:11:19.620><c> synched</c><00:11:20.160><c> to</c><00:11:20.310><c> block</c><00:11:20.880><c> five</c><00:11:21.420><c> or</c><00:11:21.900><c> so</c>

00:11:22.160 --> 00:11:22.170 align:start position:0%
then be fast synched to block five or so
 

00:11:22.170 --> 00:11:24.410 align:start position:0%
then be fast synched to block five or so
and<00:11:22.440><c> after</c><00:11:23.100><c> that</c><00:11:23.220><c> switch</c><00:11:23.580><c> over</c><00:11:23.910><c> to</c><00:11:23.940><c> block</c><00:11:24.240><c> by</c>

00:11:24.410 --> 00:11:24.420 align:start position:0%
and after that switch over to block by
 

00:11:24.420 --> 00:11:26.540 align:start position:0%
and after that switch over to block by
block<00:11:24.600><c> sync</c><00:11:24.990><c> effectively</c><00:11:25.620><c> doing</c><00:11:25.800><c> a</c><00:11:25.950><c> full</c><00:11:26.190><c> sync</c>

00:11:26.540 --> 00:11:26.550 align:start position:0%
block sync effectively doing a full sync
 

00:11:26.550 --> 00:11:29.090 align:start position:0%
block sync effectively doing a full sync
to<00:11:26.970><c> book</c><00:11:27.180><c> one</c><00:11:27.420><c> the</c><00:11:27.720><c> remaining</c><00:11:28.140><c> eight</c><00:11:28.830><c> point</c>

00:11:29.090 --> 00:11:29.100 align:start position:0%
to book one the remaining eight point
 

00:11:29.100 --> 00:11:32.570 align:start position:0%
to book one the remaining eight point
five<00:11:29.280><c> million</c><00:11:29.520><c> blocks</c><00:11:30.950><c> so</c><00:11:31.950><c> it</c><00:11:32.340><c> was</c><00:11:32.490><c> an</c>

00:11:32.570 --> 00:11:32.580 align:start position:0%
five million blocks so it was an
 

00:11:32.580 --> 00:11:34.460 align:start position:0%
five million blocks so it was an
interesting<00:11:32.760><c> attack</c><00:11:33.150><c> because</c><00:11:33.510><c> in</c><00:11:33.870><c> no</c><00:11:34.200><c> way</c>

00:11:34.460 --> 00:11:34.470 align:start position:0%
interesting attack because in no way
 

00:11:34.470 --> 00:11:37.430 align:start position:0%
interesting attack because in no way
does<00:11:34.770><c> it</c><00:11:34.830><c> benefit</c><00:11:35.430><c> the</c><00:11:35.490><c> attacker</c><00:11:36.000><c> he</c><00:11:36.900><c> needs</c><00:11:37.170><c> to</c>

00:11:37.430 --> 00:11:37.440 align:start position:0%
does it benefit the attacker he needs to
 

00:11:37.440 --> 00:11:40.010 align:start position:0%
does it benefit the attacker he needs to
actively<00:11:38.010><c> run</c><00:11:38.340><c> nodes</c><00:11:38.700><c> and</c><00:11:39.120><c> run</c><00:11:39.330><c> some</c><00:11:39.540><c> custom</c>

00:11:40.010 --> 00:11:40.020 align:start position:0%
actively run nodes and run some custom
 

00:11:40.020 --> 00:11:43.820 align:start position:0%
actively run nodes and run some custom
software<00:11:40.260><c> to</c><00:11:41.160><c> scan</c><00:11:41.430><c> the</c><00:11:41.610><c> DHT</c><00:11:42.300><c> and</c><00:11:42.650><c> do</c><00:11:43.650><c> this</c>

00:11:43.820 --> 00:11:43.830 align:start position:0%
software to scan the DHT and do this
 

00:11:43.830 --> 00:11:48.320 align:start position:0%
software to scan the DHT and do this
attack<00:11:44.220><c> and</c><00:11:45.770><c> gain</c><00:11:46.770><c> absolutely</c><00:11:47.580><c> nothing</c><00:11:47.970><c> other</c>

00:11:48.320 --> 00:11:48.330 align:start position:0%
attack and gain absolutely nothing other
 

00:11:48.330 --> 00:11:50.240 align:start position:0%
attack and gain absolutely nothing other
than<00:11:48.660><c> what's</c><00:11:48.960><c> the</c><00:11:49.230><c> etherion</c><00:11:49.770><c> world</c><00:11:49.980><c> burn</c><00:11:50.220><c> a</c>

00:11:50.240 --> 00:11:50.250 align:start position:0%
than what's the etherion world burn a
 

00:11:50.250 --> 00:11:58.480 align:start position:0%
than what's the etherion world burn a
bit<00:11:53.210><c> a</c><00:11:54.620><c> bug</c><00:11:55.620><c> bounty</c><00:11:56.000><c> from</c><00:11:57.110><c> junior-m</c>

00:11:58.480 --> 00:11:58.490 align:start position:0%
bit a bug bounty from junior-m
 

00:11:58.490 --> 00:12:01.610 align:start position:0%
bit a bug bounty from junior-m
was<00:11:59.490><c> that</c><00:11:59.910><c> there</c><00:12:00.330><c> was</c><00:12:00.480><c> a</c><00:12:00.510><c> vulnerability</c><00:12:01.290><c> in</c>

00:12:01.610 --> 00:12:01.620 align:start position:0%
was that there was a vulnerability in
 

00:12:01.620 --> 00:12:04.310 align:start position:0%
was that there was a vulnerability in
the<00:12:01.650><c> protocol</c><00:12:02.280><c> and</c><00:12:02.400><c> gap</c><00:12:02.610><c> where</c><00:12:03.540><c> someone</c><00:12:03.930><c> queer</c>

00:12:04.310 --> 00:12:04.320 align:start position:0%
the protocol and gap where someone queer
 

00:12:04.320 --> 00:12:07.040 align:start position:0%
the protocol and gap where someone queer
state<00:12:04.740><c> entries</c><00:12:05.280><c> with</c><00:12:05.610><c> a</c><00:12:05.640><c> so-called</c><00:12:06.150><c> kind</c><00:12:06.900><c> of</c><00:12:06.990><c> a</c>

00:12:07.040 --> 00:12:07.050 align:start position:0%
state entries with a so-called kind of a
 

00:12:07.050 --> 00:12:09.590 align:start position:0%
state entries with a so-called kind of a
null<00:12:07.790><c> requests</c><00:12:08.790><c> were</c><00:12:08.940><c> crossing</c><00:12:09.150><c> the</c><00:12:09.300><c> Tri</c>

00:12:09.590 --> 00:12:09.600 align:start position:0%
null requests were crossing the Tri
 

00:12:09.600 --> 00:12:11.900 align:start position:0%
null requests were crossing the Tri
metal<00:12:09.960><c> route</c><00:12:10.110><c> an</c><00:12:10.380><c> instantly</c><00:12:11.220><c> crash</c><00:12:11.610><c> and</c>

00:12:11.900 --> 00:12:11.910 align:start position:0%
metal route an instantly crash and
 

00:12:11.910 --> 00:12:16.610 align:start position:0%
metal route an instantly crash and
appeared<00:12:12.390><c> so</c><00:12:13.050><c> these</c><00:12:13.890><c> kinds</c><00:12:14.400><c> of</c><00:12:14.490><c> bugs</c><00:12:14.730><c> if</c><00:12:15.690><c> even</c>

00:12:16.610 --> 00:12:16.620 align:start position:0%
appeared so these kinds of bugs if even
 

00:12:16.620 --> 00:12:18.500 align:start position:0%
appeared so these kinds of bugs if even
an<00:12:16.710><c> attacker</c><00:12:17.070><c> has</c><00:12:17.400><c> them</c><00:12:17.670><c> he</c><00:12:17.820><c> can</c><00:12:17.970><c> iteratively</c>

00:12:18.500 --> 00:12:18.510 align:start position:0%
an attacker has them he can iteratively
 

00:12:18.510 --> 00:12:22.040 align:start position:0%
an attacker has them he can iteratively
shut<00:12:19.380><c> down</c><00:12:19.620><c> the</c><00:12:19.890><c> etherium</c><00:12:20.340><c> Network</c><00:12:20.840><c> but</c><00:12:21.840><c> just</c>

00:12:22.040 --> 00:12:22.050 align:start position:0%
shut down the etherium Network but just
 

00:12:22.050 --> 00:12:25.430 align:start position:0%
shut down the etherium Network but just
connecting<00:12:22.530><c> to</c><00:12:22.560><c> them</c><00:12:23.780><c> mapping</c><00:12:24.780><c> the</c><00:12:24.810><c> the</c>

00:12:25.430 --> 00:12:25.440 align:start position:0%
connecting to them mapping the the
 

00:12:25.440 --> 00:12:27.170 align:start position:0%
connecting to them mapping the the
amount<00:12:25.590><c> of</c><00:12:25.800><c> the</c><00:12:25.860><c> DHT</c><00:12:26.310><c> and</c><00:12:26.550><c> connected</c><00:12:26.910><c> them</c><00:12:27.030><c> is</c>

00:12:27.170 --> 00:12:27.180 align:start position:0%
amount of the DHT and connected them is
 

00:12:27.180 --> 00:12:30.170 align:start position:0%
amount of the DHT and connected them is
shut<00:12:27.360><c> them</c><00:12:27.540><c> down</c><00:12:27.780><c> iteratively</c><00:12:28.850><c> which</c><00:12:29.850><c> can</c><00:12:30.060><c> be</c>

00:12:30.170 --> 00:12:30.180 align:start position:0%
shut them down iteratively which can be
 

00:12:30.180 --> 00:12:34.520 align:start position:0%
shut them down iteratively which can be
really<00:12:30.510><c> really</c><00:12:30.660><c> bad</c><00:12:32.960><c> as</c><00:12:33.960><c> for</c><00:12:34.320><c> block</c>

00:12:34.520 --> 00:12:34.530 align:start position:0%
really really bad as for block
 

00:12:34.530 --> 00:12:39.140 align:start position:0%
really really bad as for block
processing<00:12:35.660><c> and</c><00:12:36.660><c> in</c><00:12:37.160><c> 2018</c><00:12:38.160><c> there</c><00:12:38.730><c> was</c><00:12:38.850><c> a</c><00:12:38.880><c> live</c>

00:12:39.140 --> 00:12:39.150 align:start position:0%
processing and in 2018 there was a live
 

00:12:39.150 --> 00:12:42.130 align:start position:0%
processing and in 2018 there was a live
consensus<00:12:39.780><c> floor</c><00:12:40.050><c> that</c><00:12:40.260><c> happened</c><00:12:40.620><c> on</c><00:12:40.710><c> Roxton</c>

00:12:42.130 --> 00:12:42.140 align:start position:0%
consensus floor that happened on Roxton
 

00:12:42.140 --> 00:12:45.950 align:start position:0%
consensus floor that happened on Roxton
Robson<00:12:43.140><c> is</c><00:12:43.230><c> one</c><00:12:43.350><c> of</c><00:12:43.440><c> the</c><00:12:43.500><c> test</c><00:12:43.710><c> nets</c><00:12:44.300><c> and</c><00:12:45.300><c> what</c>

00:12:45.950 --> 00:12:45.960 align:start position:0%
Robson is one of the test nets and what
 

00:12:45.960 --> 00:12:47.630 align:start position:0%
Robson is one of the test nets and what
happened<00:12:46.380><c> was</c><00:12:46.440><c> that</c><00:12:46.500><c> someone</c><00:12:46.950><c> had</c><00:12:47.070><c> sent</c><00:12:47.340><c> one</c>

00:12:47.630 --> 00:12:47.640 align:start position:0%
happened was that someone had sent one
 

00:12:47.640 --> 00:12:52.040 align:start position:0%
happened was that someone had sent one
of<00:12:47.670><c> these</c><00:12:47.850><c> EEP</c><00:12:48.750><c> 86</c><00:12:50.450><c> transactions</c><00:12:51.450><c> on</c><00:12:51.690><c> Rob</c>

00:12:52.040 --> 00:12:52.050 align:start position:0%
of these EEP 86 transactions on Rob
 

00:12:52.050 --> 00:12:52.840 align:start position:0%
of these EEP 86 transactions on Rob
stone

00:12:52.840 --> 00:12:52.850 align:start position:0%
stone
 

00:12:52.850 --> 00:12:56.600 align:start position:0%
stone
now<00:12:53.850><c> EP</c><00:12:54.300><c> 86</c><00:12:54.810><c> and</c><00:12:55.170><c> was</c><00:12:55.500><c> Anita</c><00:12:55.770><c> proposed</c><00:12:56.370><c> a</c><00:12:56.490><c> new</c>

00:12:56.600 --> 00:12:56.610 align:start position:0%
now EP 86 and was Anita proposed a new
 

00:12:56.610 --> 00:12:58.820 align:start position:0%
now EP 86 and was Anita proposed a new
transaction<00:12:56.940><c> format</c><00:12:57.590><c> for</c><00:12:58.590><c> account</c>

00:12:58.820 --> 00:12:58.830 align:start position:0%
transaction format for account
 

00:12:58.830 --> 00:13:00.740 align:start position:0%
transaction format for account
abstraction<00:12:59.490><c> and</c><00:12:59.730><c> it</c><00:13:00.000><c> was</c><00:13:00.180><c> never</c><00:13:00.450><c> actually</c>

00:13:00.740 --> 00:13:00.750 align:start position:0%
abstraction and it was never actually
 

00:13:00.750 --> 00:13:02.960 align:start position:0%
abstraction and it was never actually
roll<00:13:01.410><c> out</c><00:13:01.620><c> it</c><00:13:01.890><c> was</c><00:13:02.010><c> never</c><00:13:02.220><c> actually</c><00:13:02.400><c> included</c>

00:13:02.960 --> 00:13:02.970 align:start position:0%
roll out it was never actually included
 

00:13:02.970 --> 00:13:05.750 align:start position:0%
roll out it was never actually included
in<00:13:03.090><c> any</c><00:13:03.300><c> hard</c><00:13:03.540><c> work</c><00:13:03.980><c> but</c><00:13:04.980><c> parity</c><00:13:05.580><c> had</c>

00:13:05.750 --> 00:13:05.760 align:start position:0%
in any hard work but parity had
 

00:13:05.760 --> 00:13:07.760 align:start position:0%
in any hard work but parity had
implemented<00:13:06.270><c> it</c><00:13:06.570><c> and</c><00:13:06.870><c> they</c><00:13:07.020><c> mistakenly</c>

00:13:07.760 --> 00:13:07.770 align:start position:0%
implemented it and they mistakenly
 

00:13:07.770 --> 00:13:11.180 align:start position:0%
implemented it and they mistakenly
enabled<00:13:08.610><c> it</c><00:13:09.200><c> in</c><00:13:10.200><c> the</c><00:13:10.410><c> client</c><00:13:10.770><c> and</c><00:13:10.950><c> not</c><00:13:11.040><c> only</c>

00:13:11.180 --> 00:13:11.190 align:start position:0%
enabled it in the client and not only
 

00:13:11.190 --> 00:13:12.410 align:start position:0%
enabled it in the client and not only
for<00:13:11.400><c> test</c><00:13:11.610><c> nuts</c>

00:13:12.410 --> 00:13:12.420 align:start position:0%
for test nuts
 

00:13:12.420 --> 00:13:16.880 align:start position:0%
for test nuts
so<00:13:12.780><c> this</c><00:13:12.960><c> was</c><00:13:13.140><c> kind</c><00:13:13.530><c> of</c><00:13:13.680><c> a</c><00:13:13.890><c> real</c><00:13:15.890><c> critical</c>

00:13:16.880 --> 00:13:16.890 align:start position:0%
so this was kind of a real critical
 

00:13:16.890 --> 00:13:19.490 align:start position:0%
so this was kind of a real critical
issue<00:13:17.100><c> and</c><00:13:17.640><c> we</c><00:13:17.940><c> were</c><00:13:18.090><c> just</c><00:13:18.300><c> waiting</c><00:13:18.810><c> for</c>

00:13:19.490 --> 00:13:19.500 align:start position:0%
issue and we were just waiting for
 

00:13:19.500 --> 00:13:21.230 align:start position:0%
issue and we were just waiting for
someone<00:13:19.860><c> hacked</c><00:13:20.160><c> this</c><00:13:20.430><c> someone</c><00:13:20.790><c> did</c><00:13:21.030><c> this</c>

00:13:21.230 --> 00:13:21.240 align:start position:0%
someone hacked this someone did this
 

00:13:21.240 --> 00:13:23.930 align:start position:0%
someone hacked this someone did this
found<00:13:21.810><c> the</c><00:13:21.990><c> floor</c><00:13:22.340><c> exploited</c><00:13:23.340><c> the</c><00:13:23.460><c> test</c><00:13:23.700><c> net</c>

00:13:23.930 --> 00:13:23.940 align:start position:0%
found the floor exploited the test net
 

00:13:23.940 --> 00:13:25.310 align:start position:0%
found the floor exploited the test net
and<00:13:24.150><c> we</c><00:13:24.240><c> were</c><00:13:24.390><c> just</c><00:13:24.540><c> waiting</c><00:13:24.720><c> for</c><00:13:24.930><c> it</c><00:13:25.080><c> to</c><00:13:25.170><c> hit</c>

00:13:25.310 --> 00:13:25.320 align:start position:0%
and we were just waiting for it to hit
 

00:13:25.320 --> 00:13:28.610 align:start position:0%
and we were just waiting for it to hit
maintenance<00:13:27.050><c> fortunately</c><00:13:28.050><c> it</c><00:13:28.200><c> did</c><00:13:28.380><c> not</c>

00:13:28.610 --> 00:13:28.620 align:start position:0%
maintenance fortunately it did not
 

00:13:28.620 --> 00:13:32.570 align:start position:0%
maintenance fortunately it did not
apparently<00:13:29.010><c> quickly</c><00:13:29.670><c> released</c><00:13:29.970><c> a</c><00:13:30.540><c> fix</c><00:13:31.170><c> and</c><00:13:31.590><c> we</c>

00:13:32.570 --> 00:13:32.580 align:start position:0%
apparently quickly released a fix and we
 

00:13:32.580 --> 00:13:35.090 align:start position:0%
apparently quickly released a fix and we
could<00:13:32.760><c> see</c><00:13:33.000><c> eventually</c><00:13:33.540><c> that</c><00:13:34.020><c> actually</c><00:13:34.650><c> there</c>

00:13:35.090 --> 00:13:35.100 align:start position:0%
could see eventually that actually there
 

00:13:35.100 --> 00:13:37.010 align:start position:0%
could see eventually that actually there
was<00:13:35.250><c> no</c><00:13:35.430><c> attacker</c><00:13:36.090><c> per</c><00:13:36.540><c> se</c>

00:13:37.010 --> 00:13:37.020 align:start position:0%
was no attacker per se
 

00:13:37.020 --> 00:13:39.950 align:start position:0%
was no attacker per se
it<00:13:37.860><c> was</c><00:13:38.040><c> basically</c><00:13:38.430><c> the</c><00:13:38.670><c> researchers</c><00:13:39.570><c> who</c>

00:13:39.950 --> 00:13:39.960 align:start position:0%
it was basically the researchers who
 

00:13:39.960 --> 00:13:43.250 align:start position:0%
it was basically the researchers who
were<00:13:40.200><c> playing</c><00:13:41.070><c> about</c><00:13:41.370><c> a</c><00:13:41.400><c> bit</c><00:13:41.670><c> with</c><00:13:41.970><c> these</c><00:13:42.840><c> kind</c>

00:13:43.250 --> 00:13:43.260 align:start position:0%
were playing about a bit with these kind
 

00:13:43.260 --> 00:13:46.490 align:start position:0%
were playing about a bit with these kind
of<00:13:43.380><c> transactions</c><00:13:44.870><c> so</c><00:13:45.870><c> not</c><00:13:46.020><c> all</c><00:13:46.230><c> instances</c>

00:13:46.490 --> 00:13:46.500 align:start position:0%
of transactions so not all instances
 

00:13:46.500 --> 00:13:51.830 align:start position:0%
of transactions so not all instances
caused<00:13:46.890><c> by</c><00:13:47.070><c> malicious</c><00:13:47.460><c> intents</c><00:13:49.760><c> and</c><00:13:50.760><c> in</c><00:13:51.720><c> the</c>

00:13:51.830 --> 00:13:51.840 align:start position:0%
caused by malicious intents and in the
 

00:13:51.840 --> 00:13:55.490 align:start position:0%
caused by malicious intents and in the
block<00:13:52.020><c> processing</c><00:13:52.620><c> area</c><00:13:53.720><c> there</c><00:13:54.720><c> was</c><00:13:54.840><c> also</c><00:13:55.050><c> in</c>

00:13:55.490 --> 00:13:55.500 align:start position:0%
block processing area there was also in
 

00:13:55.500 --> 00:13:58.430 align:start position:0%
block processing area there was also in
March<00:13:55.860><c> a</c><00:13:56.280><c> very</c><00:13:56.580><c> long-lived</c><00:13:57.180><c> consensus</c><00:13:58.050><c> bug</c><00:13:58.320><c> I</c>

00:13:58.430 --> 00:13:58.440 align:start position:0%
March a very long-lived consensus bug I
 

00:13:58.440 --> 00:14:00.320 align:start position:0%
March a very long-lived consensus bug I
think<00:13:58.740><c> that</c><00:13:58.950><c> might</c><00:13:59.550><c> have</c><00:13:59.790><c> been</c><00:13:59.820><c> the</c><00:14:00.090><c> most</c>

00:14:00.320 --> 00:14:00.330 align:start position:0%
think that might have been the most
 

00:14:00.330 --> 00:14:04.880 align:start position:0%
think that might have been the most
long-lived<00:14:00.810><c> consensus</c><00:14:01.380><c> bug</c><00:14:01.970><c> we</c><00:14:02.970><c> had</c><00:14:03.530><c> found</c><00:14:04.530><c> in</c>

00:14:04.880 --> 00:14:04.890 align:start position:0%
long-lived consensus bug we had found in
 

00:14:04.890 --> 00:14:07.250 align:start position:0%
long-lived consensus bug we had found in
the<00:14:05.130><c> block</c><00:14:05.310><c> processing</c><00:14:05.880><c> engine</c><00:14:06.270><c> whereby</c><00:14:07.020><c> both</c>

00:14:07.250 --> 00:14:07.260 align:start position:0%
the block processing engine whereby both
 

00:14:07.260 --> 00:14:13.010 align:start position:0%
the block processing engine whereby both
gas<00:14:07.860><c> and</c><00:14:08.360><c> parity</c><00:14:09.360><c> and</c><00:14:09.650><c> did</c><00:14:10.650><c> it</c><00:14:10.800><c> erroneously</c><00:14:12.020><c> so</c>

00:14:13.010 --> 00:14:13.020 align:start position:0%
gas and parity and did it erroneously so
 

00:14:13.020 --> 00:14:15.770 align:start position:0%
gas and parity and did it erroneously so
blocks<00:14:13.260><c> have</c><00:14:13.440><c> time</c><00:14:13.680><c> stamps</c><00:14:13.830><c> a</c><00:14:14.390><c> normal</c><00:14:15.390><c> time</c><00:14:15.630><c> a</c>

00:14:15.770 --> 00:14:15.780 align:start position:0%
blocks have time stamps a normal time a
 

00:14:15.780 --> 00:14:18.290 align:start position:0%
blocks have time stamps a normal time a
normal<00:14:16.110><c> block</c><00:14:16.800><c> cannot</c><00:14:17.430><c> be</c><00:14:17.670><c> too</c><00:14:17.850><c> far</c><00:14:18.120><c> in</c><00:14:18.210><c> the</c>

00:14:18.290 --> 00:14:18.300 align:start position:0%
normal block cannot be too far in the
 

00:14:18.300 --> 00:14:19.940 align:start position:0%
normal block cannot be too far in the
future<00:14:18.480><c> because</c><00:14:18.960><c> the</c><00:14:19.080><c> client</c><00:14:19.350><c> won't</c><00:14:19.470><c> import</c>

00:14:19.940 --> 00:14:19.950 align:start position:0%
future because the client won't import
 

00:14:19.950 --> 00:14:23.930 align:start position:0%
future because the client won't import
it<00:14:20.360><c> however</c><00:14:21.380><c> an</c><00:14:22.380><c> orphan</c><00:14:22.860><c> block</c><00:14:23.070><c> or</c><00:14:23.310><c> an</c><00:14:23.580><c> Omer</c>

00:14:23.930 --> 00:14:23.940 align:start position:0%
it however an orphan block or an Omer
 

00:14:23.940 --> 00:14:26.990 align:start position:0%
it however an orphan block or an Omer
block<00:14:24.920><c> doesn't</c><00:14:25.920><c> have</c><00:14:26.070><c> any</c><00:14:26.250><c> restrictions</c><00:14:26.850><c> on</c>

00:14:26.990 --> 00:14:27.000 align:start position:0%
block doesn't have any restrictions on
 

00:14:27.000 --> 00:14:29.840 align:start position:0%
block doesn't have any restrictions on
the<00:14:27.180><c> time</c><00:14:27.390><c> stamp</c><00:14:27.540><c> they</c><00:14:27.840><c> can</c><00:14:28.020><c> be</c><00:14:28.250><c> how</c><00:14:29.250><c> far</c><00:14:29.550><c> much</c>

00:14:29.840 --> 00:14:29.850 align:start position:0%
the time stamp they can be how far much
 

00:14:29.850 --> 00:14:31.700 align:start position:0%
the time stamp they can be how far much
in<00:14:30.000><c> the</c><00:14:30.090><c> future</c><00:14:30.240><c> they</c><00:14:30.570><c> want</c><00:14:30.780><c> and</c><00:14:31.140><c> if</c><00:14:31.560><c> they</c>

00:14:31.700 --> 00:14:31.710 align:start position:0%
in the future they want and if they
 

00:14:31.710 --> 00:14:37.340 align:start position:0%
in the future they want and if they
exceeded<00:14:32.100><c> the</c><00:14:32.280><c> UN</c><00:14:32.550><c> 64</c><00:14:33.210><c> yes</c><00:14:33.780><c> would</c><00:14:34.140><c> just</c><00:14:36.320><c> yeah</c>

00:14:37.340 --> 00:14:37.350 align:start position:0%
exceeded the UN 64 yes would just yeah
 

00:14:37.350 --> 00:14:40.760 align:start position:0%
exceeded the UN 64 yes would just yeah
wrap<00:14:37.710><c> it</c><00:14:37.860><c> around</c><00:14:37.950><c> on</c><00:14:38.370><c> you</c><00:14:38.970><c> in</c><00:14:39.090><c> 64</c><00:14:39.630><c> and</c><00:14:39.810><c> parity</c>

00:14:40.760 --> 00:14:40.770 align:start position:0%
wrap it around on you in 64 and parity
 

00:14:40.770 --> 00:14:43.430 align:start position:0%
wrap it around on you in 64 and parity
would<00:14:40.920><c> cap</c><00:14:41.220><c> it</c><00:14:41.430><c> so</c><00:14:42.210><c> both</c><00:14:42.480><c> would</c><00:14:42.780><c> be</c><00:14:42.840><c> incorrect</c>

00:14:43.430 --> 00:14:43.440 align:start position:0%
would cap it so both would be incorrect
 

00:14:43.440 --> 00:14:48.190 align:start position:0%
would cap it so both would be incorrect
and<00:14:43.830><c> a</c><00:14:44.370><c> calculating</c><00:14:45.120><c> correct</c><00:14:45.420><c> block</c><00:14:46.140><c> cache</c>

00:14:48.190 --> 00:14:48.200 align:start position:0%
and a calculating correct block cache
 

00:14:48.200 --> 00:14:52.100 align:start position:0%
and a calculating correct block cache
and<00:14:49.200><c> it</c><00:14:49.980><c> would</c><00:14:50.160><c> cause</c><00:14:50.340><c> an</c><00:14:50.520><c> a</c><00:14:51.210><c> consensus</c>

00:14:52.100 --> 00:14:52.110 align:start position:0%
and it would cause an a consensus
 

00:14:52.110 --> 00:14:55.670 align:start position:0%
and it would cause an a consensus
failure<00:14:52.640><c> with</c><00:14:53.640><c> the</c><00:14:53.670><c> quirk</c><00:14:54.120><c> that</c><00:14:54.480><c> none</c><00:14:55.350><c> of</c><00:14:55.500><c> them</c>

00:14:55.670 --> 00:14:55.680 align:start position:0%
failure with the quirk that none of them
 

00:14:55.680 --> 00:14:57.280 align:start position:0%
failure with the quirk that none of them
would<00:14:56.070><c> be</c><00:14:56.100><c> correct</c>

00:14:57.280 --> 00:14:57.290 align:start position:0%
would be correct
 

00:14:57.290 --> 00:14:59.870 align:start position:0%
would be correct
this<00:14:58.290><c> would</c><00:14:58.530><c> be</c><00:14:58.650><c> kind</c><00:14:58.890><c> of</c><00:14:58.950><c> hard</c><00:14:59.250><c> to</c><00:14:59.340><c> exploit</c>

00:14:59.870 --> 00:14:59.880 align:start position:0%
this would be kind of hard to exploit
 

00:14:59.880 --> 00:15:01.970 align:start position:0%
this would be kind of hard to exploit
because<00:15:00.210><c> you</c><00:15:00.480><c> would</c><00:15:00.630><c> need</c><00:15:00.870><c> some</c><00:15:01.200><c> mind</c><00:15:01.680><c> both</c>

00:15:01.970 --> 00:15:01.980 align:start position:0%
because you would need some mind both
 

00:15:01.980 --> 00:15:06.110 align:start position:0%
because you would need some mind both
the<00:15:02.190><c> quark</c><00:15:02.520><c> uncle</c><00:15:03.120><c> and</c><00:15:03.330><c> a</c><00:15:03.660><c> block</c><00:15:04.640><c> within</c><00:15:05.640><c> a</c>

00:15:06.110 --> 00:15:06.120 align:start position:0%
the quark uncle and a block within a
 

00:15:06.120 --> 00:15:08.690 align:start position:0%
the quark uncle and a block within a
period<00:15:06.690><c> of</c><00:15:06.840><c> 7</c><00:15:07.290><c> blocks</c><00:15:07.530><c> and</c><00:15:07.980><c> then</c><00:15:08.190><c> roll</c><00:15:08.400><c> it</c><00:15:08.550><c> out</c>

00:15:08.690 --> 00:15:08.700 align:start position:0%
period of 7 blocks and then roll it out
 

00:15:08.700 --> 00:15:10.580 align:start position:0%
period of 7 blocks and then roll it out
to<00:15:08.880><c> maintenance</c><00:15:09.150><c> so</c><00:15:09.840><c> you'd</c><00:15:10.050><c> have</c><00:15:10.080><c> to</c><00:15:10.290><c> have</c>

00:15:10.580 --> 00:15:10.590 align:start position:0%
to maintenance so you'd have to have
 

00:15:10.590 --> 00:15:12.500 align:start position:0%
to maintenance so you'd have to have
quite<00:15:11.220><c> a</c><00:15:11.280><c> lot</c><00:15:11.490><c> of</c><00:15:11.610><c> mining</c><00:15:11.970><c> power</c><00:15:12.180><c> to</c><00:15:12.390><c> actually</c>

00:15:12.500 --> 00:15:12.510 align:start position:0%
quite a lot of mining power to actually
 

00:15:12.510 --> 00:15:17.150 align:start position:0%
quite a lot of mining power to actually
do<00:15:12.810><c> this</c><00:15:12.930><c> kind</c><00:15:13.170><c> of</c><00:15:13.260><c> attack</c><00:15:15.680><c> I'm</c><00:15:16.680><c> going</c><00:15:16.980><c> to</c><00:15:17.070><c> have</c>

00:15:17.150 --> 00:15:17.160 align:start position:0%
do this kind of attack I'm going to have
 

00:15:17.160 --> 00:15:20.360 align:start position:0%
do this kind of attack I'm going to have
to<00:15:17.250><c> skip</c><00:15:17.520><c> a</c><00:15:17.580><c> bit</c><00:15:17.850><c> in</c><00:15:18.030><c> the</c><00:15:18.150><c> EVM</c><00:15:18.420><c> portion</c><00:15:19.160><c> most</c><00:15:20.160><c> of</c>

00:15:20.360 --> 00:15:20.370 align:start position:0%
to skip a bit in the EVM portion most of
 

00:15:20.370 --> 00:15:24.950 align:start position:0%
to skip a bit in the EVM portion most of
you<00:15:21.710><c> might</c><00:15:22.710><c> know</c><00:15:22.950><c> some</c><00:15:23.220><c> of</c><00:15:23.340><c> these</c><00:15:23.460><c> so</c><00:15:24.270><c> Shanghai</c>

00:15:24.950 --> 00:15:24.960 align:start position:0%
you might know some of these so Shanghai
 

00:15:24.960 --> 00:15:26.060 align:start position:0%
you might know some of these so Shanghai
attacks<00:15:25.290><c> arrived</c><00:15:25.620><c> which</c>

00:15:26.060 --> 00:15:26.070 align:start position:0%
attacks arrived which
 

00:15:26.070 --> 00:15:29.150 align:start position:0%
attacks arrived which
mentioned<00:15:26.400><c> a</c><00:15:26.460><c> bit</c><00:15:26.610><c> caused</c><00:15:27.300><c> a</c><00:15:27.330><c> bit</c><00:15:27.660><c> of</c><00:15:28.160><c> problems</c>

00:15:29.150 --> 00:15:29.160 align:start position:0%
mentioned a bit caused a bit of problems
 

00:15:29.160 --> 00:15:34.340 align:start position:0%
mentioned a bit caused a bit of problems
for<00:15:29.310><c> us</c><00:15:30.260><c> during</c><00:15:31.260><c> the</c><00:15:31.560><c> about</c><00:15:31.890><c> the</c><00:15:32.070><c> month</c><00:15:33.350><c> there</c>

00:15:34.340 --> 00:15:34.350 align:start position:0%
for us during the about the month there
 

00:15:34.350 --> 00:15:36.550 align:start position:0%
for us during the about the month there
were<00:15:34.440><c> denial</c><00:15:34.770><c> of</c><00:15:34.860><c> service</c><00:15:35.160><c> attacks</c><00:15:35.520><c> because</c>

00:15:36.550 --> 00:15:36.560 align:start position:0%
were denial of service attacks because
 

00:15:36.560 --> 00:15:39.710 align:start position:0%
were denial of service attacks because
first<00:15:37.560><c> of</c><00:15:37.830><c> all</c><00:15:37.950><c> in</c><00:15:38.760><c> optimal</c><00:15:39.330><c> suboptimal</c>

00:15:39.710 --> 00:15:39.720 align:start position:0%
first of all in optimal suboptimal
 

00:15:39.720 --> 00:15:41.810 align:start position:0%
first of all in optimal suboptimal
client<00:15:40.290><c> with</c><00:15:40.380><c> limitations</c><00:15:40.710><c> and</c><00:15:41.070><c> secondly</c>

00:15:41.810 --> 00:15:41.820 align:start position:0%
client with limitations and secondly
 

00:15:41.820 --> 00:15:45.500 align:start position:0%
client with limitations and secondly
because<00:15:42.030><c> of</c><00:15:42.210><c> gas</c><00:15:43.110><c> miss</c><00:15:44.040><c> pricings</c><00:15:44.640><c> and</c><00:15:44.970><c> there</c>

00:15:45.500 --> 00:15:45.510 align:start position:0%
because of gas miss pricings and there
 

00:15:45.510 --> 00:15:47.090 align:start position:0%
because of gas miss pricings and there
were<00:15:45.600><c> two</c><00:15:45.810><c> hard</c><00:15:46.080><c> Forks</c><00:15:46.440><c> that</c><00:15:46.560><c> followed</c><00:15:46.950><c> on</c>

00:15:47.090 --> 00:15:47.100 align:start position:0%
were two hard Forks that followed on
 

00:15:47.100 --> 00:15:50.060 align:start position:0%
were two hard Forks that followed on
that<00:15:47.310><c> and</c><00:15:47.640><c> there</c><00:15:48.600><c> was</c><00:15:48.720><c> a</c><00:15:48.780><c> naina</c><00:15:49.080><c> chain</c><00:15:49.560><c> splits</c>

00:15:50.060 --> 00:15:50.070 align:start position:0%
that and there was a naina chain splits
 

00:15:50.070 --> 00:15:53.720 align:start position:0%
that and there was a naina chain splits
because<00:15:50.700><c> of</c><00:15:51.180><c> how</c><00:15:52.050><c> the</c><00:15:52.430><c> reversion</c><00:15:53.430><c> was</c>

00:15:53.720 --> 00:15:53.730 align:start position:0%
because of how the reversion was
 

00:15:53.730 --> 00:15:58.130 align:start position:0%
because of how the reversion was
implemented<00:15:55.670><c> and</c><00:15:56.670><c> how</c><00:15:56.730><c> that</c><00:15:57.570><c> whole</c><00:15:57.780><c> change</c>

00:15:58.130 --> 00:15:58.140 align:start position:0%
implemented and how that whole change
 

00:15:58.140 --> 00:16:01.280 align:start position:0%
implemented and how that whole change
that<00:15:58.440><c> happened</c><00:15:59.270><c> we</c><00:16:00.270><c> know</c><00:16:00.420><c> how</c><00:16:00.570><c> it</c><00:16:00.720><c> happened</c><00:16:01.170><c> we</c>

00:16:01.280 --> 00:16:01.290 align:start position:0%
that happened we know how it happened we
 

00:16:01.290 --> 00:16:03.320 align:start position:0%
that happened we know how it happened we
haven't<00:16:01.590><c> really</c><00:16:02.040><c> figured</c><00:16:02.370><c> out</c><00:16:02.580><c> a</c><00:16:02.640><c> good</c><00:16:03.000><c> rule</c>

00:16:03.320 --> 00:16:03.330 align:start position:0%
haven't really figured out a good rule
 

00:16:03.330 --> 00:16:05.090 align:start position:0%
haven't really figured out a good rule
to<00:16:03.570><c> explain</c><00:16:04.020><c> how</c><00:16:04.200><c> it</c><00:16:04.350><c> happened</c><00:16:04.380><c> and</c><00:16:04.800><c> put</c><00:16:04.980><c> it</c>

00:16:05.090 --> 00:16:05.100 align:start position:0%
to explain how it happened and put it
 

00:16:05.100 --> 00:16:07.760 align:start position:0%
to explain how it happened and put it
into<00:16:05.370><c> the</c><00:16:05.490><c> yellow</c><00:16:05.640><c> paper</c><00:16:06.440><c> right</c><00:16:07.440><c> now</c><00:16:07.470><c> the</c>

00:16:07.760 --> 00:16:07.770 align:start position:0%
into the yellow paper right now the
 

00:16:07.770 --> 00:16:10.070 align:start position:0%
into the yellow paper right now the
situation<00:16:08.430><c> is</c><00:16:09.000><c> that</c><00:16:09.030><c> all</c><00:16:09.330><c> the</c><00:16:09.450><c> clients</c><00:16:09.900><c> have</c>

00:16:10.070 --> 00:16:10.080 align:start position:0%
situation is that all the clients have
 

00:16:10.080 --> 00:16:14.480 align:start position:0%
situation is that all the clients have
particular<00:16:10.890><c> right</c><00:16:11.490><c> and</c><00:16:11.760><c> DS</c><00:16:12.090><c> special</c><00:16:12.810><c> rules</c><00:16:13.490><c> so</c>

00:16:14.480 --> 00:16:14.490 align:start position:0%
particular right and DS special rules so
 

00:16:14.490 --> 00:16:16.970 align:start position:0%
particular right and DS special rules so
you<00:16:14.940><c> can</c><00:16:15.120><c> see</c><00:16:15.300><c> here</c><00:16:15.540><c> a</c><00:16:15.570><c> bit</c><00:16:15.690><c> of</c><00:16:15.930><c> code</c><00:16:16.470><c> from</c><00:16:16.800><c> the</c>

00:16:16.970 --> 00:16:16.980 align:start position:0%
you can see here a bit of code from the
 

00:16:16.980 --> 00:16:19.040 align:start position:0%
you can see here a bit of code from the
Goethe<00:16:17.400><c> areum</c><00:16:17.790><c> codebase</c><00:16:18.240><c> and</c><00:16:18.270><c> get</c><00:16:18.750><c> up</c><00:16:18.870><c> code</c>

00:16:19.040 --> 00:16:19.050 align:start position:0%
Goethe areum codebase and get up code
 

00:16:19.050 --> 00:16:22.190 align:start position:0%
Goethe areum codebase and get up code
from<00:16:19.260><c> the</c><00:16:19.440><c> aleph</c><00:16:20.400><c> codebase</c><00:16:20.970><c> and</c><00:16:21.330><c> they</c>

00:16:22.190 --> 00:16:22.200 align:start position:0%
from the aleph codebase and they
 

00:16:22.200 --> 00:16:25.790 align:start position:0%
from the aleph codebase and they
basically<00:16:22.590><c> just</c><00:16:22.950><c> oh</c><00:16:23.840><c> we</c><00:16:24.840><c> fix</c><00:16:25.200><c> this</c><00:16:25.410><c> a</c><00:16:25.470><c> little</c>

00:16:25.790 --> 00:16:25.800 align:start position:0%
basically just oh we fix this a little
 

00:16:25.800 --> 00:16:27.560 align:start position:0%
basically just oh we fix this a little
bit<00:16:26.040><c> it's</c><00:16:26.220><c> not</c><00:16:26.340><c> it's</c><00:16:26.760><c> not</c><00:16:26.910><c> don't</c><00:16:27.210><c> look</c><00:16:27.360><c> at</c><00:16:27.480><c> it</c>

00:16:27.560 --> 00:16:27.570 align:start position:0%
bit it's not it's not don't look at it
 

00:16:27.570 --> 00:16:29.830 align:start position:0%
bit it's not it's not don't look at it
this<00:16:27.720><c> is</c><00:16:27.780><c> ugly</c><00:16:28.280><c> we</c><00:16:29.280><c> just</c><00:16:29.520><c> know</c><00:16:29.730><c> that</c>

00:16:29.830 --> 00:16:29.840 align:start position:0%
this is ugly we just know that
 

00:16:29.840 --> 00:16:32.150 align:start position:0%
this is ugly we just know that
fortunately<00:16:30.840><c> this</c><00:16:31.020><c> is</c><00:16:31.200><c> this</c><00:16:31.500><c> exact</c><00:16:31.950><c> situation</c>

00:16:32.150 --> 00:16:32.160 align:start position:0%
fortunately this is this exact situation
 

00:16:32.160 --> 00:16:35.380 align:start position:0%
fortunately this is this exact situation
will<00:16:32.760><c> never</c><00:16:32.970><c> again</c><00:16:33.240><c> arise</c><00:16:34.040><c> because</c><00:16:35.040><c> the</c>

00:16:35.380 --> 00:16:35.390 align:start position:0%
will never again arise because the
 

00:16:35.390 --> 00:16:37.760 align:start position:0%
will never again arise because the
conditions<00:16:36.390><c> that</c><00:16:36.630><c> would</c><00:16:36.900><c> enable</c><00:16:37.290><c> this</c><00:16:37.560><c> to</c>

00:16:37.760 --> 00:16:37.770 align:start position:0%
conditions that would enable this to
 

00:16:37.770 --> 00:16:39.590 align:start position:0%
conditions that would enable this to
rise<00:16:37.980><c> can</c><00:16:38.400><c> never</c><00:16:38.610><c> again</c><00:16:39.000><c> happen</c><00:16:39.390><c> on</c><00:16:39.480><c> the</c>

00:16:39.590 --> 00:16:39.600 align:start position:0%
rise can never again happen on the
 

00:16:39.600 --> 00:16:44.690 align:start position:0%
rise can never again happen on the
maintenance<00:16:42.170><c> in</c><00:16:43.170><c> January</c><00:16:43.710><c> I</c><00:16:44.010><c> had</c><00:16:44.160><c> to</c><00:16:44.400><c> actually</c>

00:16:44.690 --> 00:16:44.700 align:start position:0%
maintenance in January I had to actually
 

00:16:44.700 --> 00:16:46.430 align:start position:0%
maintenance in January I had to actually
remove<00:16:44.940><c> this</c><00:16:45.120><c> slide</c><00:16:45.360><c> because</c><00:16:45.570><c> each</c><00:16:45.990><c> see</c><00:16:46.260><c> was</c>

00:16:46.430 --> 00:16:46.440 align:start position:0%
remove this slide because each see was
 

00:16:46.440 --> 00:16:52.120 align:start position:0%
remove this slide because each see was
still<00:16:46.770><c> vulnerable</c><00:16:47.190><c> last</c><00:16:47.820><c> Friday</c><00:16:50.690><c> in</c><00:16:51.690><c> February</c>

00:16:52.120 --> 00:16:52.130 align:start position:0%
still vulnerable last Friday in February
 

00:16:52.130 --> 00:16:54.650 align:start position:0%
still vulnerable last Friday in February
2017<00:16:53.130><c> that</c><00:16:53.430><c> was</c><00:16:53.580><c> really</c><00:16:53.910><c> interesting</c><00:16:54.360><c> a</c>

00:16:54.650 --> 00:16:54.660 align:start position:0%
2017 that was really interesting a
 

00:16:54.660 --> 00:16:57.290 align:start position:0%
2017 that was really interesting a
consensus<00:16:55.200><c> bug</c><00:16:55.440><c> which</c><00:16:55.950><c> was</c><00:16:56.760><c> a</c><00:16:56.790><c> combo</c>

00:16:57.290 --> 00:16:57.300 align:start position:0%
consensus bug which was a combo
 

00:16:57.300 --> 00:16:59.030 align:start position:0%
consensus bug which was a combo
consensus<00:16:57.870><c> bug</c><00:16:58.080><c> that</c><00:16:58.260><c> could</c><00:16:58.410><c> either</c><00:16:58.620><c> be</c><00:16:58.770><c> used</c>

00:16:59.030 --> 00:16:59.040 align:start position:0%
consensus bug that could either be used
 

00:16:59.040 --> 00:17:02.150 align:start position:0%
consensus bug that could either be used
to<00:16:59.550><c> cause</c><00:16:59.820><c> an</c><00:17:00.030><c> instant</c><00:17:00.420><c> chain</c><00:17:00.630><c> split</c><00:17:00.960><c> or</c><00:17:01.650><c> it</c>

00:17:02.150 --> 00:17:02.160 align:start position:0%
to cause an instant chain split or it
 

00:17:02.160 --> 00:17:05.530 align:start position:0%
to cause an instant chain split or it
could<00:17:02.400><c> be</c><00:17:02.550><c> used</c><00:17:02.700><c> to</c><00:17:02.970><c> crash</c><00:17:03.450><c> all</c><00:17:03.750><c> the</c><00:17:03.990><c> gif</c><00:17:04.170><c> nodes</c>

00:17:05.530 --> 00:17:05.540 align:start position:0%
could be used to crash all the gif nodes
 

00:17:05.540 --> 00:17:07.880 align:start position:0%
could be used to crash all the gif nodes
so<00:17:06.540><c> the</c><00:17:06.720><c> stack</c><00:17:06.990><c> requirements</c><00:17:07.740><c> were</c>

00:17:07.880 --> 00:17:07.890 align:start position:0%
so the stack requirements were
 

00:17:07.890 --> 00:17:10.010 align:start position:0%
so the stack requirements were
misconfigured<00:17:08.640><c> for</c><00:17:08.970><c> the</c><00:17:09.060><c> swap</c><00:17:09.329><c> top</c><00:17:09.689><c> and</c>

00:17:10.010 --> 00:17:10.020 align:start position:0%
misconfigured for the swap top and
 

00:17:10.020 --> 00:17:13.429 align:start position:0%
misconfigured for the swap top and
balance<00:17:10.680><c> of</c><00:17:10.860><c> op</c><00:17:11.280><c> codes</c><00:17:11.839><c> and</c><00:17:12.839><c> the</c><00:17:12.959><c> thing</c><00:17:13.170><c> is</c><00:17:13.290><c> if</c>

00:17:13.429 --> 00:17:13.439 align:start position:0%
balance of op codes and the thing is if
 

00:17:13.439 --> 00:17:15.319 align:start position:0%
balance of op codes and the thing is if
the<00:17:13.560><c> stack</c><00:17:13.829><c> requirements</c><00:17:14.430><c> are</c><00:17:14.520><c> off</c><00:17:14.670><c> if</c><00:17:15.060><c> it</c>

00:17:15.319 --> 00:17:15.329 align:start position:0%
the stack requirements are off if it
 

00:17:15.329 --> 00:17:17.360 align:start position:0%
the stack requirements are off if it
leads<00:17:15.510><c> to</c><00:17:15.689><c> I'm</c><00:17:16.350><c> not</c><00:17:16.500><c> talking</c><00:17:16.709><c> about</c><00:17:16.740><c> the</c><00:17:16.949><c> EVM</c>

00:17:17.360 --> 00:17:17.370 align:start position:0%
leads to I'm not talking about the EVM
 

00:17:17.370 --> 00:17:20.510 align:start position:0%
leads to I'm not talking about the EVM
stack<00:17:17.730><c> not</c><00:17:17.970><c> like</c><00:17:18.270><c> an</c><00:17:18.420><c> ALICE</c><00:17:18.689><c> type</c><00:17:19.220><c> if</c><00:17:20.220><c> it's</c><00:17:20.430><c> an</c>

00:17:20.510 --> 00:17:20.520 align:start position:0%
stack not like an ALICE type if it's an
 

00:17:20.520 --> 00:17:23.390 align:start position:0%
stack not like an ALICE type if it's an
underflow<00:17:21.170><c> death</c><00:17:22.170><c> would</c><00:17:22.410><c> immediately</c><00:17:22.740><c> panic</c>

00:17:23.390 --> 00:17:23.400 align:start position:0%
underflow death would immediately panic
 

00:17:23.400 --> 00:17:25.040 align:start position:0%
underflow death would immediately panic
in<00:17:23.550><c> all</c><00:17:23.699><c> the</c><00:17:23.820><c> nodes</c><00:17:24.030><c> that</c><00:17:24.480><c> were</c><00:17:24.630><c> processing</c>

00:17:25.040 --> 00:17:25.050 align:start position:0%
in all the nodes that were processing
 

00:17:25.050 --> 00:17:26.540 align:start position:0%
in all the nodes that were processing
this<00:17:25.290><c> block</c><00:17:25.560><c> all</c><00:17:25.770><c> the</c><00:17:25.829><c> gift</c><00:17:26.040><c> notes</c><00:17:26.280><c> would</c>

00:17:26.540 --> 00:17:26.550 align:start position:0%
this block all the gift notes would
 

00:17:26.550 --> 00:17:28.010 align:start position:0%
this block all the gift notes would
immediately<00:17:27.060><c> drop</c><00:17:27.270><c> off</c><00:17:27.420><c> drop</c><00:17:27.780><c> off</c><00:17:27.900><c> the</c>

00:17:28.010 --> 00:17:28.020 align:start position:0%
immediately drop off drop off the
 

00:17:28.020 --> 00:17:30.350 align:start position:0%
immediately drop off drop off the
network<00:17:28.199><c> if</c><00:17:29.010><c> it</c><00:17:29.190><c> that</c><00:17:29.370><c> was</c><00:17:29.520><c> like</c><00:17:29.700><c> overflow</c>

00:17:30.350 --> 00:17:30.360 align:start position:0%
network if it that was like overflow
 

00:17:30.360 --> 00:17:32.210 align:start position:0%
network if it that was like overflow
that<00:17:30.870><c> will</c><00:17:31.110><c> lead</c><00:17:31.230><c> to</c><00:17:31.260><c> a</c><00:17:31.380><c> consensus</c><00:17:32.010><c> issue</c>

00:17:32.210 --> 00:17:32.220 align:start position:0%
that will lead to a consensus issue
 

00:17:32.220 --> 00:17:33.950 align:start position:0%
that will lead to a consensus issue
where<00:17:32.670><c> GAF</c><00:17:32.850><c> had</c><00:17:33.060><c> a</c><00:17:33.090><c> different</c><00:17:33.480><c> state</c><00:17:33.720><c> route</c>

00:17:33.950 --> 00:17:33.960 align:start position:0%
where GAF had a different state route
 

00:17:33.960 --> 00:17:34.700 align:start position:0%
where GAF had a different state route
and<00:17:34.170><c> parity</c>

00:17:34.700 --> 00:17:34.710 align:start position:0%
and parity
 

00:17:34.710 --> 00:17:39.169 align:start position:0%
and parity
and<00:17:35.480><c> you</c><00:17:36.480><c> would</c><00:17:36.600><c> split</c><00:17:36.840><c> the</c><00:17:36.870><c> chain</c><00:17:37.880><c> so</c><00:17:38.880><c> any</c>

00:17:39.169 --> 00:17:39.179 align:start position:0%
and you would split the chain so any
 

00:17:39.179 --> 00:17:40.669 align:start position:0%
and you would split the chain so any
attacker<00:17:39.539><c> which</c><00:17:39.809><c> found</c><00:17:40.080><c> this</c><00:17:40.289><c> could</c><00:17:40.529><c> just</c>

00:17:40.669 --> 00:17:40.679 align:start position:0%
attacker which found this could just
 

00:17:40.679 --> 00:17:43.279 align:start position:0%
attacker which found this could just
choose<00:17:41.159><c> which</c><00:17:41.909><c> route</c><00:17:42.149><c> to</c><00:17:42.360><c> go</c><00:17:42.510><c> and</c><00:17:42.750><c> it</c><00:17:43.110><c> would</c>

00:17:43.279 --> 00:17:43.289 align:start position:0%
choose which route to go and it would
 

00:17:43.289 --> 00:17:45.230 align:start position:0%
choose which route to go and it would
have<00:17:43.350><c> been</c><00:17:43.500><c> trivial</c><00:17:43.799><c> to</c><00:17:44.100><c> exploit</c><00:17:44.460><c> and</c><00:17:44.760><c> trivial</c>

00:17:45.230 --> 00:17:45.240 align:start position:0%
have been trivial to exploit and trivial
 

00:17:45.240 --> 00:17:48.190 align:start position:0%
have been trivial to exploit and trivial
to<00:17:45.390><c> detect</c><00:17:45.840><c> if</c><00:17:46.140><c> it'd</c><00:17:46.320><c> have</c><00:17:46.440><c> been</c><00:17:46.470><c> past</c><00:17:46.860><c> naively</c>

00:17:48.190 --> 00:17:48.200 align:start position:0%
to detect if it'd have been past naively
 

00:17:48.200 --> 00:17:53.029 align:start position:0%
to detect if it'd have been past naively
so<00:17:49.200><c> what</c><00:17:49.350><c> we</c><00:17:49.500><c> did</c><00:17:49.679><c> was</c><00:17:49.860><c> we</c><00:17:50.240><c> read</c><00:17:51.799><c> refactor</c><00:17:52.799><c> the</c>

00:17:53.029 --> 00:17:53.039 align:start position:0%
so what we did was we read refactor the
 

00:17:53.039 --> 00:17:56.240 align:start position:0%
so what we did was we read refactor the
entire<00:17:53.450><c> code</c><00:17:54.450><c> that</c><00:17:54.720><c> that's</c><00:17:55.200><c> configured</c><00:17:55.860><c> the</c>

00:17:56.240 --> 00:17:56.250 align:start position:0%
entire code that that's configured the
 

00:17:56.250 --> 00:17:59.810 align:start position:0%
entire code that that's configured the
EVM<00:17:56.669><c> of</c><00:17:56.970><c> codes</c><00:17:57.390><c> and</c><00:17:57.659><c> two</c><00:17:58.529><c> weeks</c><00:17:58.710><c> later</c><00:17:58.830><c> we</c>

00:17:59.810 --> 00:17:59.820 align:start position:0%
EVM of codes and two weeks later we
 

00:17:59.820 --> 00:18:03.019 align:start position:0%
EVM of codes and two weeks later we
reversed<00:18:00.240><c> the</c><00:18:00.630><c> fix</c><00:18:01.309><c> reversed</c><00:18:02.309><c> the</c><00:18:02.580><c> the</c><00:18:02.820><c> whole</c>

00:18:03.019 --> 00:18:03.029 align:start position:0%
reversed the fix reversed the the whole
 

00:18:03.029 --> 00:18:12.049 align:start position:0%
reversed the fix reversed the the whole
refactoring<00:18:03.720><c> but</c><00:18:03.960><c> left</c><00:18:04.140><c> the</c><00:18:04.320><c> fix</c><00:18:04.559><c> in</c><00:18:09.950><c> in</c><00:18:11.059><c> 2017</c>

00:18:12.049 --> 00:18:12.059 align:start position:0%
refactoring but left the fix in in 2017
 

00:18:12.059 --> 00:18:14.840 align:start position:0%
refactoring but left the fix in in 2017
some<00:18:13.020><c> attackers</c><00:18:13.440><c> were</c><00:18:13.559><c> hitting</c><00:18:13.860><c> the</c><00:18:14.010><c> gas</c><00:18:14.340><c> jump</c>

00:18:14.840 --> 00:18:14.850 align:start position:0%
some attackers were hitting the gas jump
 

00:18:14.850 --> 00:18:17.210 align:start position:0%
some attackers were hitting the gas jump
test<00:18:15.090><c> analysis</c><00:18:15.809><c> so</c><00:18:16.440><c> we</c><00:18:16.590><c> saw</c><00:18:16.770><c> on</c><00:18:16.919><c> our</c><00:18:17.039><c> live</c>

00:18:17.210 --> 00:18:17.220 align:start position:0%
test analysis so we saw on our live
 

00:18:17.220 --> 00:18:19.399 align:start position:0%
test analysis so we saw on our live
monitoring<00:18:17.669><c> system</c><00:18:18.000><c> that</c><00:18:18.029><c> some</c><00:18:18.960><c> blocks</c><00:18:19.200><c> took</c>

00:18:19.399 --> 00:18:19.409 align:start position:0%
monitoring system that some blocks took
 

00:18:19.409 --> 00:18:28.310 align:start position:0%
monitoring system that some blocks took
like<00:18:19.590><c> 24</c><00:18:20.100><c> seconds</c><00:18:21.080><c> to</c><00:18:22.080><c> go</c><00:18:22.260><c> through</c><00:18:24.950><c> and</c><00:18:27.320><c> yeah</c>

00:18:28.310 --> 00:18:28.320 align:start position:0%
like 24 seconds to go through and yeah
 

00:18:28.320 --> 00:18:31.220 align:start position:0%
like 24 seconds to go through and yeah
so<00:18:28.830><c> we</c><00:18:29.309><c> had</c><00:18:29.429><c> to</c><00:18:29.549><c> rework</c><00:18:29.880><c> the</c><00:18:30.059><c> whole</c><00:18:30.179><c> jump</c><00:18:31.049><c> test</c>

00:18:31.220 --> 00:18:31.230 align:start position:0%
so we had to rework the whole jump test
 

00:18:31.230 --> 00:18:33.440 align:start position:0%
so we had to rework the whole jump test
analysis<00:18:31.799><c> very</c><00:18:32.010><c> quickly</c><00:18:32.399><c> bring</c><00:18:33.149><c> it</c><00:18:33.270><c> down</c><00:18:33.419><c> a</c>

00:18:33.440 --> 00:18:33.450 align:start position:0%
analysis very quickly bring it down a
 

00:18:33.450 --> 00:18:34.970 align:start position:0%
analysis very quickly bring it down a
couple<00:18:33.809><c> of</c><00:18:33.870><c> orders</c><00:18:34.169><c> of</c><00:18:34.320><c> magnitude</c><00:18:34.830><c> in</c>

00:18:34.970 --> 00:18:34.980 align:start position:0%
couple of orders of magnitude in
 

00:18:34.980 --> 00:18:37.639 align:start position:0%
couple of orders of magnitude in
processing<00:18:35.490><c> time</c><00:18:35.730><c> and</c><00:18:36.169><c> there</c><00:18:37.169><c> were</c><00:18:37.289><c> some</c>

00:18:37.639 --> 00:18:37.649 align:start position:0%
processing time and there were some
 

00:18:37.649 --> 00:18:40.159 align:start position:0%
processing time and there were some
ideas<00:18:38.520><c> that</c><00:18:39.090><c> this</c><00:18:39.210><c> was</c><00:18:39.450><c> possibly</c><00:18:40.049><c> the</c>

00:18:40.159 --> 00:18:40.169 align:start position:0%
ideas that this was possibly the
 

00:18:40.169 --> 00:18:42.769 align:start position:0%
ideas that this was possibly the
Shanghai<00:18:40.679><c> attacker</c><00:18:41.070><c> doing</c><00:18:41.730><c> this</c><00:18:41.909><c> we</c><00:18:42.600><c> don't</c>

00:18:42.769 --> 00:18:42.779 align:start position:0%
Shanghai attacker doing this we don't
 

00:18:42.779 --> 00:18:47.180 align:start position:0%
Shanghai attacker doing this we don't
know<00:18:43.020><c> I</c><00:18:44.750><c> don't</c><00:18:45.750><c> have</c><00:18:45.960><c> to</c><00:18:46.140><c> have</c><00:18:46.649><c> time</c><00:18:46.890><c> to</c><00:18:47.070><c> go</c>

00:18:47.180 --> 00:18:47.190 align:start position:0%
know I don't have to have time to go
 

00:18:47.190 --> 00:18:48.769 align:start position:0%
know I don't have to have time to go
through<00:18:47.220><c> the</c><00:18:47.580><c> whole</c><00:18:47.700><c> byzantium</c><00:18:48.390><c> but</c><00:18:48.570><c> in</c>

00:18:48.769 --> 00:18:48.779 align:start position:0%
through the whole byzantium but in
 

00:18:48.779 --> 00:18:50.930 align:start position:0%
through the whole byzantium but in
bicenthium<00:18:49.260><c> when</c><00:18:50.159><c> we</c><00:18:50.309><c> were</c><00:18:50.429><c> approaching</c><00:18:50.760><c> that</c>

00:18:50.930 --> 00:18:50.940 align:start position:0%
bicenthium when we were approaching that
 

00:18:50.940 --> 00:18:53.779 align:start position:0%
bicenthium when we were approaching that
we<00:18:51.539><c> really</c><00:18:51.990><c> started</c><00:18:52.440><c> getting</c><00:18:53.010><c> payoff</c><00:18:53.549><c> from</c>

00:18:53.779 --> 00:18:53.789 align:start position:0%
we really started getting payoff from
 

00:18:53.789 --> 00:18:56.720 align:start position:0%
we really started getting payoff from
passing<00:18:54.510><c> and</c><00:18:54.750><c> it</c><00:18:55.409><c> found</c><00:18:55.679><c> all</c><00:18:56.100><c> these</c><00:18:56.370><c> issues</c>

00:18:56.720 --> 00:18:56.730 align:start position:0%
passing and it found all these issues
 

00:18:56.730 --> 00:18:59.000 align:start position:0%
passing and it found all these issues
and<00:18:57.270><c> you</c><00:18:57.360><c> can</c><00:18:57.990><c> see</c><00:18:58.110><c> the</c><00:18:58.260><c> last</c><00:18:58.500><c> one</c><00:18:58.649><c> here</c>

00:18:59.000 --> 00:18:59.010 align:start position:0%
and you can see the last one here
 

00:18:59.010 --> 00:19:01.909 align:start position:0%
and you can see the last one here
happened<00:18:59.789><c> on</c><00:18:59.850><c> October</c><00:18:59.970><c> 25</c><00:19:00.870><c> that's</c><00:19:01.289><c> actually</c>

00:19:01.909 --> 00:19:01.919 align:start position:0%
happened on October 25 that's actually
 

00:19:01.919 --> 00:19:04.360 align:start position:0%
happened on October 25 that's actually
nine<00:19:02.159><c> days</c><00:19:02.370><c> after</c><00:19:02.580><c> buy</c><00:19:03.149><c> something</c><00:19:03.570><c> for</c><00:19:03.750><c> kids</c>

00:19:04.360 --> 00:19:04.370 align:start position:0%
nine days after buy something for kids
 

00:19:04.370 --> 00:19:08.450 align:start position:0%
nine days after buy something for kids
and<00:19:05.370><c> not</c><00:19:05.700><c> only</c><00:19:05.880><c> that</c><00:19:06.059><c> not</c><00:19:06.899><c> until</c><00:19:07.200><c> February</c><00:19:07.799><c> did</c>

00:19:08.450 --> 00:19:08.460 align:start position:0%
and not only that not until February did
 

00:19:08.460 --> 00:19:10.370 align:start position:0%
and not only that not until February did
we<00:19:08.610><c> uncover</c><00:19:08.940><c> the</c><00:19:09.179><c> hopefully</c><00:19:09.659><c> last</c><00:19:09.870><c> bicenthium</c>

00:19:10.370 --> 00:19:10.380 align:start position:0%
we uncover the hopefully last bicenthium
 

00:19:10.380 --> 00:19:11.000 align:start position:0%
we uncover the hopefully last bicenthium
bug

00:19:11.000 --> 00:19:11.010 align:start position:0%
bug
 

00:19:11.010 --> 00:19:12.769 align:start position:0%
bug
it<00:19:11.100><c> was</c><00:19:11.250><c> Cassidy</c><00:19:11.760><c> drew</c><00:19:11.940><c> found</c><00:19:12.240><c> an</c><00:19:12.390><c> issue</c><00:19:12.510><c> with</c>

00:19:12.769 --> 00:19:12.779 align:start position:0%
it was Cassidy drew found an issue with
 

00:19:12.779 --> 00:19:17.990 align:start position:0%
it was Cassidy drew found an issue with
our<00:19:13.520><c> biometric</c><00:19:14.520><c> pairing</c><00:19:16.520><c> which</c><00:19:17.520><c> was</c><00:19:17.730><c> we</c>

00:19:17.990 --> 00:19:18.000 align:start position:0%
our biometric pairing which was we
 

00:19:18.000 --> 00:19:19.909 align:start position:0%
our biometric pairing which was we
couldn't<00:19:18.240><c> actually</c><00:19:18.690><c> fix</c><00:19:19.200><c> it</c><00:19:19.409><c> until</c><00:19:19.590><c> a</c><00:19:19.799><c> couple</c>

00:19:19.909 --> 00:19:19.919 align:start position:0%
couldn't actually fix it until a couple
 

00:19:19.919 --> 00:19:21.409 align:start position:0%
couldn't actually fix it until a couple
of<00:19:20.039><c> months</c><00:19:20.220><c> later</c><00:19:20.460><c> when</c><00:19:20.760><c> we</c><00:19:20.850><c> swapped</c><00:19:21.149><c> out</c><00:19:21.390><c> the</c>

00:19:21.409 --> 00:19:21.419 align:start position:0%
of months later when we swapped out the
 

00:19:21.419 --> 00:19:24.620 align:start position:0%
of months later when we swapped out the
whole<00:19:21.779><c> VM</c><00:19:22.710><c> library</c><00:19:23.370><c> for</c><00:19:23.640><c> an</c><00:19:23.850><c> assembly</c><00:19:24.179><c> version</c>

00:19:24.620 --> 00:19:24.630 align:start position:0%
whole VM library for an assembly version
 

00:19:24.630 --> 00:19:29.210 align:start position:0%
whole VM library for an assembly version
written<00:19:24.809><c> by</c><00:19:25.110><c> CloudFlare</c><00:19:27.710><c> some</c><00:19:28.710><c> takeaways</c>

00:19:29.210 --> 00:19:29.220 align:start position:0%
written by CloudFlare some takeaways
 

00:19:29.220 --> 00:19:32.659 align:start position:0%
written by CloudFlare some takeaways
from<00:19:29.429><c> this</c><00:19:29.669><c> is</c><00:19:30.000><c> that</c><00:19:30.860><c> monitoring</c><00:19:31.860><c> and</c><00:19:32.100><c> metrics</c>

00:19:32.659 --> 00:19:32.669 align:start position:0%
from this is that monitoring and metrics
 

00:19:32.669 --> 00:19:35.690 align:start position:0%
from this is that monitoring and metrics
and<00:19:32.909><c> graphing</c><00:19:33.390><c> up</c><00:19:33.539><c> things</c><00:19:33.990><c> really</c><00:19:34.710><c> helps</c><00:19:35.460><c> to</c>

00:19:35.690 --> 00:19:35.700 align:start position:0%
and graphing up things really helps to
 

00:19:35.700 --> 00:19:38.120 align:start position:0%
and graphing up things really helps to
see<00:19:35.940><c> the</c><00:19:36.120><c> overall</c><00:19:36.419><c> network</c><00:19:36.840><c> health</c><00:19:37.140><c> and</c><00:19:37.409><c> see</c>

00:19:38.120 --> 00:19:38.130 align:start position:0%
see the overall network health and see
 

00:19:38.130 --> 00:19:39.680 align:start position:0%
see the overall network health and see
what<00:19:38.370><c> problems</c><00:19:38.700><c> there</c><00:19:39.210><c> are</c><00:19:39.390><c> and</c><00:19:39.570><c> what</c>

00:19:39.680 --> 00:19:39.690 align:start position:0%
what problems there are and what
 

00:19:39.690 --> 00:19:41.600 align:start position:0%
what problems there are and what
problems<00:19:40.140><c> there</c><00:19:40.289><c> might</c><00:19:40.470><c> be</c><00:19:40.500><c> in</c><00:19:40.860><c> PTC</c><00:19:41.309><c> loggers</c>

00:19:41.600 --> 00:19:41.610 align:start position:0%
problems there might be in PTC loggers
 

00:19:41.610 --> 00:19:44.240 align:start position:0%
problems there might be in PTC loggers
giving<00:19:41.909><c> a</c><00:19:41.970><c> talk</c><00:19:42.179><c> later</c><00:19:42.450><c> about</c><00:19:43.100><c> monitoring</c><00:19:44.100><c> in</c>

00:19:44.240 --> 00:19:44.250 align:start position:0%
giving a talk later about monitoring in
 

00:19:44.250 --> 00:19:45.370 align:start position:0%
giving a talk later about monitoring in
live<00:19:44.399><c> with</c><00:19:44.549><c> her</c>

00:19:45.370 --> 00:19:45.380 align:start position:0%
live with her
 

00:19:45.380 --> 00:19:47.950 align:start position:0%
live with her
here's<00:19:45.740><c> a</c><00:19:45.860><c> chart</c><00:19:46.190><c> that</c><00:19:46.340><c> can</c><00:19:46.730><c> display</c><00:19:47.450><c> very</c>

00:19:47.950 --> 00:19:47.960 align:start position:0%
here's a chart that can display very
 

00:19:47.960 --> 00:19:50.470 align:start position:0%
here's a chart that can display very
detailed<00:19:48.620><c> what</c><00:19:48.950><c> happens</c><00:19:49.490><c> when</c><00:19:49.880><c> we</c><00:19:50.000><c> process</c>

00:19:50.470 --> 00:19:50.480 align:start position:0%
detailed what happens when we process
 

00:19:50.480 --> 00:19:52.930 align:start position:0%
detailed what happens when we process
the<00:19:50.690><c> blocks</c><00:19:50.990><c> and</c><00:19:51.350><c> exactly</c><00:19:52.190><c> where</c><00:19:52.460><c> the</c><00:19:52.640><c> time</c><00:19:52.910><c> is</c>

00:19:52.930 --> 00:19:52.940 align:start position:0%
the blocks and exactly where the time is
 

00:19:52.940 --> 00:19:54.760 align:start position:0%
the blocks and exactly where the time is
spent<00:19:53.150><c> and</c><00:19:53.690><c> these</c><00:19:53.810><c> kind</c><00:19:54.080><c> of</c><00:19:54.170><c> things</c><00:19:54.410><c> really</c>

00:19:54.760 --> 00:19:54.770 align:start position:0%
spent and these kind of things really
 

00:19:54.770 --> 00:19:57.990 align:start position:0%
spent and these kind of things really
help<00:19:55.160><c> us</c><00:19:55.370><c> to</c><00:19:55.880><c> find</c><00:19:56.330><c> what's</c><00:19:56.960><c> going</c><00:19:57.290><c> on</c>

00:19:57.990 --> 00:19:58.000 align:start position:0%
help us to find what's going on
 

00:19:58.000 --> 00:20:00.250 align:start position:0%
help us to find what's going on
similarly<00:19:59.000><c> for</c><00:19:59.210><c> the</c><00:19:59.300><c> network</c><00:19:59.630><c> traffic's</c><00:20:00.140><c> you</c>

00:20:00.250 --> 00:20:00.260 align:start position:0%
similarly for the network traffic's you
 

00:20:00.260 --> 00:20:02.830 align:start position:0%
similarly for the network traffic's you
can<00:20:00.740><c> pair</c><00:20:00.980><c> with</c><00:20:01.130><c> a</c><00:20:01.160><c> naive</c><00:20:01.910><c> one</c><00:20:02.120><c> which</c><00:20:02.330><c> I</c><00:20:02.600><c> showed</c>

00:20:02.830 --> 00:20:02.840 align:start position:0%
can pair with a naive one which I showed
 

00:20:02.840 --> 00:20:06.660 align:start position:0%
can pair with a naive one which I showed
earlier<00:20:02.960><c> here's</c><00:20:03.350><c> a</c><00:20:03.410><c> much</c><00:20:03.590><c> more</c><00:20:03.740><c> detailed</c><00:20:03.950><c> one</c>

00:20:06.660 --> 00:20:06.670 align:start position:0%
 
 

00:20:06.670 --> 00:20:09.010 align:start position:0%
 
yeah<00:20:07.670><c> I</c><00:20:07.700><c> mean</c><00:20:07.880><c> of</c><00:20:08.120><c> course</c><00:20:08.300><c> it's</c><00:20:08.540><c> really</c><00:20:08.870><c> good</c>

00:20:09.010 --> 00:20:09.020 align:start position:0%
yeah I mean of course it's really good
 

00:20:09.020 --> 00:20:12.910 align:start position:0%
yeah I mean of course it's really good
tooling<00:20:09.470><c> to</c><00:20:10.010><c> to</c><00:20:10.580><c> find</c><00:20:11.150><c> out</c><00:20:11.410><c> what</c><00:20:12.410><c> happened</c>

00:20:12.910 --> 00:20:12.920 align:start position:0%
tooling to to find out what happened
 

00:20:12.920 --> 00:20:14.650 align:start position:0%
tooling to to find out what happened
when<00:20:13.160><c> something</c><00:20:13.610><c> happened</c><00:20:14.030><c> and</c><00:20:14.240><c> why</c><00:20:14.630><c> it</c>

00:20:14.650 --> 00:20:14.660 align:start position:0%
when something happened and why it
 

00:20:14.660 --> 00:20:18.240 align:start position:0%
when something happened and why it
happened<00:20:14.810><c> and</c><00:20:16.630><c> we</c><00:20:17.630><c> need</c><00:20:17.780><c> good</c><00:20:17.810><c> communication</c>

00:20:18.240 --> 00:20:18.250 align:start position:0%
happened and we need good communication
 

00:20:18.250 --> 00:20:20.890 align:start position:0%
happened and we need good communication
clients<00:20:19.250><c> between</c><00:20:19.400><c> teams</c><00:20:19.970><c> to</c><00:20:20.600><c> quickly</c>

00:20:20.890 --> 00:20:20.900 align:start position:0%
clients between teams to quickly
 

00:20:20.900 --> 00:20:23.320 align:start position:0%
clients between teams to quickly
coordinate<00:20:21.560><c> to</c><00:20:21.980><c> fix</c><00:20:22.220><c> stuff</c><00:20:22.520><c> when</c><00:20:22.760><c> when</c>

00:20:23.320 --> 00:20:23.330 align:start position:0%
coordinate to fix stuff when when
 

00:20:23.330 --> 00:20:26.860 align:start position:0%
coordinate to fix stuff when when
goes<00:20:23.510><c> down</c><00:20:23.570><c> on</c><00:20:23.870><c> the</c><00:20:23.960><c> minute</c><00:20:24.260><c> and</c><00:20:25.660><c> one</c><00:20:26.660><c> thing</c>

00:20:26.860 --> 00:20:26.870 align:start position:0%
goes down on the minute and one thing
 

00:20:26.870 --> 00:20:28.210 align:start position:0%
goes down on the minute and one thing
that's<00:20:27.140><c> been</c><00:20:27.290><c> really</c><00:20:27.470><c> important</c><00:20:27.920><c> from</c><00:20:28.040><c> day</c>

00:20:28.210 --> 00:20:28.220 align:start position:0%
that's been really important from day
 

00:20:28.220 --> 00:20:29.920 align:start position:0%
that's been really important from day
one<00:20:28.430><c> and</c><00:20:28.640><c> I</c><00:20:28.730><c> think</c><00:20:28.940><c> it</c><00:20:29.030><c> really</c><00:20:29.210><c> has</c><00:20:29.630><c> been</c><00:20:29.870><c> great</c>

00:20:29.920 --> 00:20:29.930 align:start position:0%
one and I think it really has been great
 

00:20:29.930 --> 00:20:32.050 align:start position:0%
one and I think it really has been great
is<00:20:30.380><c> that</c><00:20:30.650><c> we</c><00:20:30.770><c> have</c><00:20:30.950><c> there's</c><00:20:31.160><c> no</c><00:20:31.190><c> multi</c><00:20:31.730><c> culture</c>

00:20:32.050 --> 00:20:32.060 align:start position:0%
is that we have there's no multi culture
 

00:20:32.060 --> 00:20:33.640 align:start position:0%
is that we have there's no multi culture
where<00:20:32.240><c> we</c><00:20:32.330><c> don't</c><00:20:32.540><c> just</c><00:20:32.780><c> rely</c><00:20:33.050><c> on</c><00:20:33.080><c> one</c><00:20:33.380><c> client</c>

00:20:33.640 --> 00:20:33.650 align:start position:0%
where we don't just rely on one client
 

00:20:33.650 --> 00:20:36.400 align:start position:0%
where we don't just rely on one client
to<00:20:34.010><c> hold</c><00:20:34.310><c> up</c><00:20:34.430><c> the</c><00:20:34.550><c> network</c><00:20:34.730><c> and</c><00:20:35.090><c> I</c><00:20:35.150><c> hope</c><00:20:35.870><c> that</c>

00:20:36.400 --> 00:20:36.410 align:start position:0%
to hold up the network and I hope that
 

00:20:36.410 --> 00:20:39.910 align:start position:0%
to hold up the network and I hope that
that<00:20:36.770><c> node</c><00:20:37.490><c> multi-culture</c><00:20:38.330><c> will</c><00:20:38.630><c> continue</c><00:20:39.320><c> on</c>

00:20:39.910 --> 00:20:39.920 align:start position:0%
that node multi-culture will continue on
 

00:20:39.920 --> 00:20:44.310 align:start position:0%
that node multi-culture will continue on
ethereum<00:20:40.570><c> that's</c><00:20:41.570><c> it</c><00:20:41.750><c> for</c><00:20:41.930><c> me</c><00:20:42.020><c> thank</c><00:20:42.200><c> you</c>

00:20:44.310 --> 00:20:44.320 align:start position:0%
ethereum that's it for me thank you
 

00:20:44.320 --> 00:20:45.580 align:start position:0%
ethereum that's it for me thank you
[Applause]

00:20:45.580 --> 00:20:45.590 align:start position:0%
[Applause]
 

00:20:45.590 --> 00:20:54.159 align:start position:0%
[Applause]
[Music]

00:20:54.159 --> 00:20:54.169 align:start position:0%
 
 

00:20:54.169 --> 00:20:56.230 align:start position:0%
 
you

