WEBVTT
Kind: captions
Language: en

00:00:09.510 --> 00:00:15.680 align:start position:0%
 
[Music]

00:00:15.680 --> 00:00:15.690 align:start position:0%
[Music]
 

00:00:15.690 --> 00:00:19.410 align:start position:0%
[Music]
I'm<00:00:16.690><c> Greg</c><00:00:16.990><c> Colvin</c><00:00:17.560><c> I</c><00:00:17.949><c> spend</c><00:00:18.460><c> my</c><00:00:18.640><c> time</c><00:00:18.670><c> for</c>

00:00:19.410 --> 00:00:19.420 align:start position:0%
I'm Greg Colvin I spend my time for
 

00:00:19.420 --> 00:00:23.749 align:start position:0%
I'm Greg Colvin I spend my time for
aetherium<00:00:20.130><c> working</c><00:00:21.130><c> on</c><00:00:21.279><c> the</c><00:00:21.430><c> virtual</c><00:00:21.820><c> machine</c>

00:00:23.749 --> 00:00:23.759 align:start position:0%
aetherium working on the virtual machine
 

00:00:23.759 --> 00:00:26.909 align:start position:0%
aetherium working on the virtual machine
working<00:00:24.759><c> on</c><00:00:24.910><c> improving</c><00:00:25.329><c> its</c><00:00:25.630><c> performance</c><00:00:26.529><c> and</c>

00:00:26.909 --> 00:00:26.919 align:start position:0%
working on improving its performance and
 

00:00:26.919 --> 00:00:30.890 align:start position:0%
working on improving its performance and
working<00:00:27.550><c> on</c><00:00:27.699><c> designs</c><00:00:28.269><c> for</c><00:00:29.880><c> possible</c>

00:00:30.890 --> 00:00:30.900 align:start position:0%
working on designs for possible
 

00:00:30.900 --> 00:00:34.350 align:start position:0%
working on designs for possible
successors<00:00:31.900><c> to</c><00:00:32.200><c> what</c><00:00:32.380><c> we</c><00:00:32.560><c> have</c><00:00:32.829><c> in</c><00:00:33.730><c> order</c><00:00:34.120><c> to</c>

00:00:34.350 --> 00:00:34.360 align:start position:0%
successors to what we have in order to
 

00:00:34.360 --> 00:00:37.319 align:start position:0%
successors to what we have in order to
solve<00:00:34.890><c> some</c><00:00:35.890><c> of</c><00:00:36.040><c> the</c><00:00:36.160><c> performance</c><00:00:36.760><c> problems</c>

00:00:37.319 --> 00:00:37.329 align:start position:0%
solve some of the performance problems
 

00:00:37.329 --> 00:00:41.280 align:start position:0%
solve some of the performance problems
that<00:00:37.540><c> were</c><00:00:37.660><c> running</c><00:00:37.899><c> into</c><00:00:39.600><c> if</c><00:00:40.600><c> this</c><00:00:40.960><c> works</c>

00:00:41.280 --> 00:00:41.290 align:start position:0%
that were running into if this works
 

00:00:41.290 --> 00:00:45.360 align:start position:0%
that were running into if this works
there<00:00:41.650><c> will</c><00:00:41.800><c> be</c><00:00:41.830><c> another</c><00:00:42.220><c> slide</c><00:00:44.040><c> how</c><00:00:45.040><c> about</c>

00:00:45.360 --> 00:00:45.370 align:start position:0%
there will be another slide how about
 

00:00:45.370 --> 00:00:49.380 align:start position:0%
there will be another slide how about
that<00:00:46.500><c> the</c><00:00:47.500><c> first</c><00:00:47.770><c> problem</c><00:00:48.220><c> you</c><00:00:48.250><c> run</c><00:00:48.580><c> into</c><00:00:48.640><c> an</c>

00:00:49.380 --> 00:00:49.390 align:start position:0%
that the first problem you run into an
 

00:00:49.390 --> 00:00:53.400 align:start position:0%
that the first problem you run into an
any<00:00:49.630><c> sort</c><00:00:49.990><c> of</c><00:00:50.080><c> optimization</c><00:00:50.680><c> work</c><00:00:52.410><c> according</c>

00:00:53.400 --> 00:00:53.410 align:start position:0%
any sort of optimization work according
 

00:00:53.410 --> 00:00:55.830 align:start position:0%
any sort of optimization work according
to<00:00:53.440><c> my</c><00:00:53.620><c> old</c><00:00:53.830><c> friend</c><00:00:54.160><c> Jerry</c><00:00:54.430><c> Schwartz</c><00:00:54.940><c> is</c><00:00:55.240><c> one</c>

00:00:55.830 --> 00:00:55.840 align:start position:0%
to my old friend Jerry Schwartz is one
 

00:00:55.840 --> 00:00:58.800 align:start position:0%
to my old friend Jerry Schwartz is one
all<00:00:56.290><c> benchmarks</c><00:00:57.100><c> are</c><00:00:57.370><c> bogus</c><00:00:57.700><c> you'll</c><00:00:58.570><c> never</c>

00:00:58.800 --> 00:00:58.810 align:start position:0%
all benchmarks are bogus you'll never
 

00:00:58.810 --> 00:01:01.230 align:start position:0%
all benchmarks are bogus you'll never
have<00:00:59.020><c> a</c><00:00:59.080><c> set</c><00:00:59.380><c> of</c><00:00:59.530><c> benchmarks</c><00:00:59.710><c> it</c><00:01:00.430><c> actually</c>

00:01:01.230 --> 00:01:01.240 align:start position:0%
have a set of benchmarks it actually
 

00:01:01.240 --> 00:01:04.350 align:start position:0%
have a set of benchmarks it actually
represents<00:01:01.450><c> the</c><00:01:02.200><c> real</c><00:01:02.380><c> world</c><00:01:02.680><c> but</c><00:01:03.640><c> if</c><00:01:04.299><c> you</c>

00:01:04.350 --> 00:01:04.360 align:start position:0%
represents the real world but if you
 

00:01:04.360 --> 00:01:06.270 align:start position:0%
represents the real world but if you
don't<00:01:04.479><c> have</c><00:01:04.869><c> benchmarks</c><00:01:05.470><c> you</c><00:01:05.650><c> will</c><00:01:05.829><c> just</c><00:01:06.070><c> go</c>

00:01:06.270 --> 00:01:06.280 align:start position:0%
don't have benchmarks you will just go
 

00:01:06.280 --> 00:01:08.219 align:start position:0%
don't have benchmarks you will just go
in<00:01:06.430><c> circles</c><00:01:06.700><c> you'll</c><00:01:07.240><c> you'll</c><00:01:07.570><c> never</c><00:01:07.930><c> make</c>

00:01:08.219 --> 00:01:08.229 align:start position:0%
in circles you'll you'll never make
 

00:01:08.229 --> 00:01:09.050 align:start position:0%
in circles you'll you'll never make
progress

00:01:09.050 --> 00:01:09.060 align:start position:0%
progress
 

00:01:09.060 --> 00:01:12.540 align:start position:0%
progress
so<00:01:10.060><c> the</c><00:01:10.270><c> benchmarks</c><00:01:10.840><c> I'm</c><00:01:11.140><c> working</c><00:01:11.680><c> with</c><00:01:11.950><c> are</c><00:01:12.490><c> a</c>

00:01:12.540 --> 00:01:12.550 align:start position:0%
so the benchmarks I'm working with are a
 

00:01:12.550 --> 00:01:17.250 align:start position:0%
so the benchmarks I'm working with are a
few<00:01:13.030><c> algorithm</c><00:01:14.020><c> kernels</c><00:01:14.560><c> that</c><00:01:15.490><c> are</c><00:01:16.260><c> relevant</c>

00:01:17.250 --> 00:01:17.260 align:start position:0%
few algorithm kernels that are relevant
 

00:01:17.260 --> 00:01:18.620 align:start position:0%
few algorithm kernels that are relevant
to<00:01:17.470><c> what</c><00:01:17.560><c> we're</c><00:01:17.860><c> doing</c>

00:01:18.620 --> 00:01:18.630 align:start position:0%
to what we're doing
 

00:01:18.630 --> 00:01:22.649 align:start position:0%
to what we're doing
RC<00:01:19.630><c> 5s</c><00:01:20.290><c> and</c><00:01:20.440><c> old</c><00:01:20.590><c> and</c><00:01:21.100><c> useless</c><00:01:21.310><c> cipher</c><00:01:22.240><c> but</c>

00:01:22.649 --> 00:01:22.659 align:start position:0%
RC 5s and old and useless cipher but
 

00:01:22.659 --> 00:01:27.000 align:start position:0%
RC 5s and old and useless cipher but
it's<00:01:23.200><c> a</c><00:01:23.380><c> good</c><00:01:23.590><c> example</c><00:01:23.770><c> of</c><00:01:25.020><c> a</c><00:01:26.020><c> cipher</c><00:01:26.979><c> that</c>

00:01:27.000 --> 00:01:27.010 align:start position:0%
it's a good example of a cipher that
 

00:01:27.010 --> 00:01:30.840 align:start position:0%
it's a good example of a cipher that
uses<00:01:27.640><c> a</c><00:01:27.670><c> lot</c><00:01:27.970><c> of</c><00:01:28.000><c> 32</c><00:01:28.659><c> and</c><00:01:28.900><c> 64-bit</c><00:01:29.560><c> arithmetic</c><00:01:30.550><c> a</c>

00:01:30.840 --> 00:01:30.850 align:start position:0%
uses a lot of 32 and 64-bit arithmetic a
 

00:01:30.850 --> 00:01:36.539 align:start position:0%
uses a lot of 32 and 64-bit arithmetic a
lot<00:01:31.630><c> of</c><00:01:31.780><c> complex</c><00:01:32.290><c> logic</c><00:01:33.210><c> and</c><00:01:34.680><c> Blake</c><00:01:35.680><c> to</c><00:01:35.979><c> be</c><00:01:36.250><c> is</c>

00:01:36.539 --> 00:01:36.549 align:start position:0%
lot of complex logic and Blake to be is
 

00:01:36.549 --> 00:01:39.000 align:start position:0%
lot of complex logic and Blake to be is
still<00:01:36.700><c> an</c><00:01:36.940><c> important</c><00:01:37.570><c> hash</c><00:01:37.780><c> function</c><00:01:38.470><c> it's</c>

00:01:39.000 --> 00:01:39.010 align:start position:0%
still an important hash function it's
 

00:01:39.010 --> 00:01:44.460 align:start position:0%
still an important hash function it's
also<00:01:39.310><c> a</c><00:01:39.610><c> lot</c><00:01:39.940><c> of</c><00:01:40.650><c> 64-bit</c><00:01:41.650><c> logic</c><00:01:43.229><c> blum</c><00:01:44.229><c> blum</c>

00:01:44.460 --> 00:01:44.470 align:start position:0%
also a lot of 64-bit logic blum blum
 

00:01:44.470 --> 00:01:48.180 align:start position:0%
also a lot of 64-bit logic blum blum
Schaub<00:01:44.950><c> is</c><00:01:45.460><c> a</c><00:01:45.880><c> cryptographic</c><00:01:46.630><c> rant</c><00:01:47.620><c> random</c>

00:01:48.180 --> 00:01:48.190 align:start position:0%
Schaub is a cryptographic rant random
 

00:01:48.190 --> 00:01:50.700 align:start position:0%
Schaub is a cryptographic rant random
number<00:01:48.520><c> generator</c><00:01:49.120><c> I</c><00:01:49.540><c> think</c><00:01:50.140><c> it's</c><00:01:50.290><c> one</c><00:01:50.440><c> of</c><00:01:50.470><c> the</c>

00:01:50.700 --> 00:01:50.710 align:start position:0%
number generator I think it's one of the
 

00:01:50.710 --> 00:01:55.140 align:start position:0%
number generator I think it's one of the
slowest<00:01:51.280><c> in</c><00:01:51.460><c> the</c><00:01:51.580><c> world</c><00:01:52.470><c> it</c><00:01:53.470><c> operates</c><00:01:54.100><c> on</c><00:01:54.490><c> big</c>

00:01:55.140 --> 00:01:55.150 align:start position:0%
slowest in the world it operates on big
 

00:01:55.150 --> 00:01:59.520 align:start position:0%
slowest in the world it operates on big
registers<00:01:56.400><c> so</c><00:01:57.400><c> we</c><00:01:57.549><c> could</c><00:01:57.760><c> use</c><00:01:57.970><c> the</c><00:01:58.240><c> 256</c><00:01:59.200><c> bit</c>

00:01:59.520 --> 00:01:59.530 align:start position:0%
registers so we could use the 256 bit
 

00:01:59.530 --> 00:02:03.660 align:start position:0%
registers so we could use the 256 bit
registers<00:02:00.190><c> of</c><00:02:00.220><c> the</c><00:02:00.549><c> VM</c><00:02:01.060><c> effectively</c><00:02:01.990><c> an</c><00:02:02.670><c> DC</c>

00:02:03.660 --> 00:02:03.670 align:start position:0%
registers of the VM effectively an DC
 

00:02:03.670 --> 00:02:06.810 align:start position:0%
registers of the VM effectively an DC
mall<00:02:03.990><c> also</c><00:02:04.990><c> can</c><00:02:05.650><c> use</c><00:02:05.860><c> big</c><00:02:06.220><c> registers</c>

00:02:06.810 --> 00:02:06.820 align:start position:0%
mall also can use big registers
 

00:02:06.820 --> 00:02:10.229 align:start position:0%
mall also can use big registers
effectively<00:02:07.720><c> and</c><00:02:08.080><c> then</c><00:02:08.920><c> I</c><00:02:08.979><c> have</c><00:02:09.340><c> a</c><00:02:09.369><c> few</c><00:02:09.700><c> tests</c>

00:02:10.229 --> 00:02:10.239 align:start position:0%
effectively and then I have a few tests
 

00:02:10.239 --> 00:02:14.640 align:start position:0%
effectively and then I have a few tests
of<00:02:10.420><c> act</c><00:02:11.549><c> individual</c><00:02:12.549><c> EVM</c><00:02:13.080><c> operations</c><00:02:14.080><c> and</c>

00:02:14.640 --> 00:02:14.650 align:start position:0%
of act individual EVM operations and
 

00:02:14.650 --> 00:02:18.990 align:start position:0%
of act individual EVM operations and
those<00:02:14.950><c> are</c><00:02:15.220><c> small</c><00:02:15.900><c> EVM</c><00:02:16.900><c> assembly</c><00:02:17.560><c> programs</c><00:02:18.220><c> to</c>

00:02:18.990 --> 00:02:19.000 align:start position:0%
those are small EVM assembly programs to
 

00:02:19.000 --> 00:02:21.420 align:start position:0%
those are small EVM assembly programs to
try<00:02:19.240><c> to</c><00:02:19.300><c> isolate</c><00:02:19.980><c> individual</c><00:02:20.980><c> opera</c>

00:02:21.420 --> 00:02:21.430 align:start position:0%
try to isolate individual opera
 

00:02:21.430 --> 00:02:27.270 align:start position:0%
try to isolate individual opera
ratios<00:02:23.400><c> and</c><00:02:24.400><c> this</c><00:02:25.359><c> is</c><00:02:25.540><c> a</c><00:02:25.569><c> graph</c><00:02:25.930><c> of</c><00:02:26.290><c> what</c><00:02:26.890><c> I</c><00:02:26.920><c> got</c>

00:02:27.270 --> 00:02:27.280 align:start position:0%
ratios and this is a graph of what I got
 

00:02:27.280 --> 00:02:34.140 align:start position:0%
ratios and this is a graph of what I got
with<00:02:27.909><c> the</c><00:02:28.090><c> whole</c><00:02:28.299><c> thing</c><00:02:30.000><c> and</c><00:02:32.730><c> it's</c><00:02:33.730><c> a</c><00:02:33.939><c> bit</c>

00:02:34.140 --> 00:02:34.150 align:start position:0%
with the whole thing and it's a bit
 

00:02:34.150 --> 00:02:38.520 align:start position:0%
with the whole thing and it's a bit
complex<00:02:35.129><c> but</c><00:02:36.129><c> what</c><00:02:36.879><c> you</c><00:02:37.060><c> can</c><00:02:37.299><c> see</c><00:02:37.629><c> down</c><00:02:38.109><c> along</c>

00:02:38.520 --> 00:02:38.530 align:start position:0%
complex but what you can see down along
 

00:02:38.530 --> 00:02:40.830 align:start position:0%
complex but what you can see down along
the<00:02:38.709><c> bottom</c><00:02:38.920><c> is</c><00:02:39.400><c> the</c><00:02:39.730><c> different</c><00:02:40.120><c> benchmarks</c>

00:02:40.830 --> 00:02:40.840 align:start position:0%
the bottom is the different benchmarks
 

00:02:40.840 --> 00:02:44.910 align:start position:0%
the bottom is the different benchmarks
and<00:02:41.379><c> along</c><00:02:42.099><c> the</c><00:02:42.370><c> right</c><00:02:42.670><c> are</c><00:02:43.269><c> the</c><00:02:44.230><c> first</c><00:02:44.530><c> three</c>

00:02:44.910 --> 00:02:44.920 align:start position:0%
and along the right are the first three
 

00:02:44.920 --> 00:02:48.629 align:start position:0%
and along the right are the first three
are<00:02:45.400><c> some</c><00:02:45.790><c> major</c><00:02:46.030><c> clients</c><00:02:47.010><c> EVM</c><00:02:48.010><c> is</c><00:02:48.280><c> our</c><00:02:48.459><c> go</c>

00:02:48.629 --> 00:02:48.639 align:start position:0%
are some major clients EVM is our go
 

00:02:48.639 --> 00:02:53.909 align:start position:0%
are some major clients EVM is our go
client<00:02:49.359><c> parity</c><00:02:50.349><c> is</c><00:02:50.500><c> Russ</c><00:02:51.280><c> client</c><00:02:52.379><c> EVM</c><00:02:53.379><c> is</c><00:02:53.709><c> the</c>

00:02:53.909 --> 00:02:53.919 align:start position:0%
client parity is Russ client EVM is the
 

00:02:53.919 --> 00:02:59.280 align:start position:0%
client parity is Russ client EVM is the
C++<00:02:54.450><c> client</c><00:02:56.700><c> the</c><00:02:57.700><c> rest</c><00:02:57.939><c> aren't</c><00:02:58.239><c> clients</c><00:02:58.959><c> yet</c>

00:02:59.280 --> 00:02:59.290 align:start position:0%
C++ client the rest aren't clients yet
 

00:02:59.290 --> 00:03:03.140 align:start position:0%
C++ client the rest aren't clients yet
but<00:02:59.739><c> EVM</c><00:03:00.489><c> to</c><00:03:00.790><c> wasm</c><00:03:01.389><c> is</c><00:03:01.720><c> part</c><00:03:02.109><c> of</c><00:03:02.290><c> the</c><00:03:02.530><c> Azzam</c>

00:03:03.140 --> 00:03:03.150 align:start position:0%
but EVM to wasm is part of the Azzam
 

00:03:03.150 --> 00:03:06.809 align:start position:0%
but EVM to wasm is part of the Azzam
research<00:03:04.150><c> it's</c><00:03:04.959><c> a</c><00:03:05.139><c> program</c><00:03:05.680><c> that</c><00:03:05.709><c> takes</c><00:03:06.250><c> EVM</c>

00:03:06.809 --> 00:03:06.819 align:start position:0%
research it's a program that takes EVM
 

00:03:06.819 --> 00:03:10.459 align:start position:0%
research it's a program that takes EVM
code<00:03:07.590><c> translates</c><00:03:08.590><c> it</c><00:03:08.829><c> into</c><00:03:08.950><c> Azzam</c><00:03:09.669><c> code</c><00:03:10.030><c> and</c>

00:03:10.459 --> 00:03:10.469 align:start position:0%
code translates it into Azzam code and
 

00:03:10.469 --> 00:03:14.729 align:start position:0%
code translates it into Azzam code and
then<00:03:11.469><c> I</c><00:03:11.500><c> fed</c><00:03:12.099><c> that</c><00:03:12.459><c> to</c><00:03:13.209><c> Google's</c><00:03:13.629><c> v8</c><00:03:14.049><c> engine</c>

00:03:14.729 --> 00:03:14.739 align:start position:0%
then I fed that to Google's v8 engine
 

00:03:14.739 --> 00:03:19.800 align:start position:0%
then I fed that to Google's v8 engine
which<00:03:15.010><c> generates</c><00:03:15.599><c> assembly</c><00:03:16.599><c> code</c><00:03:18.329><c> EVM</c><00:03:19.329><c> JIT</c>

00:03:19.800 --> 00:03:19.810 align:start position:0%
which generates assembly code EVM JIT
 

00:03:19.810 --> 00:03:22.080 align:start position:0%
which generates assembly code EVM JIT
Pavel<00:03:20.409><c> was</c><00:03:20.530><c> just</c><00:03:20.889><c> talking</c><00:03:21.400><c> about</c><00:03:21.549><c> it</c>

00:03:22.080 --> 00:03:22.090 align:start position:0%
Pavel was just talking about it
 

00:03:22.090 --> 00:03:24.479 align:start position:0%
Pavel was just talking about it
generates<00:03:22.659><c> assembly</c><00:03:23.290><c> code</c><00:03:23.530><c> directly</c><00:03:24.280><c> from</c>

00:03:24.479 --> 00:03:24.489 align:start position:0%
generates assembly code directly from
 

00:03:24.489 --> 00:03:30.059 align:start position:0%
generates assembly code directly from
EVM<00:03:25.000><c> code</c><00:03:25.389><c> and</c><00:03:26.099><c> then</c><00:03:27.099><c> the</c><00:03:27.370><c> native</c><00:03:27.729><c> C++</c><00:03:28.470><c> is</c><00:03:29.470><c> I</c>

00:03:30.059 --> 00:03:30.069 align:start position:0%
EVM code and then the native C++ is I
 

00:03:30.069 --> 00:03:34.229 align:start position:0%
EVM code and then the native C++ is I
rewrote<00:03:30.479><c> the</c><00:03:31.479><c> benchmark</c><00:03:32.319><c> programs</c><00:03:32.949><c> in</c><00:03:33.370><c> C++</c>

00:03:34.229 --> 00:03:34.239 align:start position:0%
rewrote the benchmark programs in C++
 

00:03:34.239 --> 00:03:38.429 align:start position:0%
rewrote the benchmark programs in C++
instead<00:03:34.900><c> of</c><00:03:35.079><c> solidity</c><00:03:35.650><c> or</c><00:03:36.340><c> EVM</c><00:03:36.879><c> assembly</c><00:03:37.870><c> and</c>

00:03:38.429 --> 00:03:38.439 align:start position:0%
instead of solidity or EVM assembly and
 

00:03:38.439 --> 00:03:42.149 align:start position:0%
instead of solidity or EVM assembly and
compile<00:03:38.979><c> those</c><00:03:39.400><c> to</c><00:03:40.090><c> assembly</c><00:03:40.720><c> so</c><00:03:41.680><c> pretty</c>

00:03:42.149 --> 00:03:42.159 align:start position:0%
compile those to assembly so pretty
 

00:03:42.159 --> 00:03:48.420 align:start position:0%
compile those to assembly so pretty
clearly<00:03:42.609><c> the</c><00:03:43.500><c> C++</c><00:03:44.500><c> wins</c><00:03:44.859><c> the</c><00:03:45.220><c> race</c><00:03:46.919><c> and</c><00:03:47.919><c> pretty</c>

00:03:48.420 --> 00:03:48.430 align:start position:0%
clearly the C++ wins the race and pretty
 

00:03:48.430 --> 00:03:51.960 align:start position:0%
clearly the C++ wins the race and pretty
clearly<00:03:49.799><c> exponentiation</c><00:03:50.799><c> is</c><00:03:51.310><c> pretty</c><00:03:51.609><c> hard</c>

00:03:51.960 --> 00:03:51.970 align:start position:0%
clearly exponentiation is pretty hard
 

00:03:51.970 --> 00:03:57.179 align:start position:0%
clearly exponentiation is pretty hard
for<00:03:52.750><c> everybody</c><00:03:53.319><c> which</c><00:03:53.829><c> isn't</c><00:03:54.040><c> surprising</c><00:03:56.189><c> but</c>

00:03:57.179 --> 00:03:57.189 align:start position:0%
for everybody which isn't surprising but
 

00:03:57.189 --> 00:03:59.129 align:start position:0%
for everybody which isn't surprising but
it's<00:03:57.459><c> a</c><00:03:57.579><c> little</c><00:03:57.849><c> concerning</c><00:03:58.329><c> there</c><00:03:58.900><c> there</c>

00:03:59.129 --> 00:03:59.139 align:start position:0%
it's a little concerning there there
 

00:03:59.139 --> 00:04:03.059 align:start position:0%
it's a little concerning there there
might<00:03:59.379><c> actually</c><00:03:59.650><c> be</c><00:04:00.299><c> possible</c><00:04:01.319><c> exploits</c><00:04:02.319><c> by</c>

00:04:03.059 --> 00:04:03.069 align:start position:0%
might actually be possible exploits by
 

00:04:03.069 --> 00:04:05.449 align:start position:0%
might actually be possible exploits by
writing<00:04:03.489><c> contracts</c><00:04:04.120><c> that</c><00:04:04.329><c> do</c><00:04:04.479><c> exponentiation</c>

00:04:05.449 --> 00:04:05.459 align:start position:0%
writing contracts that do exponentiation
 

00:04:05.459 --> 00:04:08.999 align:start position:0%
writing contracts that do exponentiation
and<00:04:06.459><c> get</c><00:04:06.790><c> charged</c><00:04:07.180><c> only</c><00:04:07.419><c> a</c><00:04:07.629><c> few</c><00:04:07.959><c> gasps</c><00:04:08.259><c> but</c>

00:04:08.999 --> 00:04:09.009 align:start position:0%
and get charged only a few gasps but
 

00:04:09.009 --> 00:04:14.009 align:start position:0%
and get charged only a few gasps but
take<00:04:09.220><c> a</c><00:04:09.250><c> whole</c><00:04:09.489><c> lot</c><00:04:09.699><c> of</c><00:04:09.729><c> time</c><00:04:10.979><c> and</c><00:04:12.479><c> rc5</c><00:04:13.479><c> looks</c>

00:04:14.009 --> 00:04:14.019 align:start position:0%
take a whole lot of time and rc5 looks
 

00:04:14.019 --> 00:04:18.740 align:start position:0%
take a whole lot of time and rc5 looks
pretty<00:04:14.349><c> hard</c><00:04:14.829><c> because</c><00:04:15.780><c> rc5</c><00:04:16.780><c> works</c><00:04:17.739><c> on</c><00:04:18.039><c> dynamic</c>

00:04:18.740 --> 00:04:18.750 align:start position:0%
pretty hard because rc5 works on dynamic
 

00:04:18.750 --> 00:04:22.499 align:start position:0%
pretty hard because rc5 works on dynamic
shifting<00:04:19.750><c> and</c><00:04:20.400><c> EVM</c><00:04:21.400><c> does</c><00:04:21.729><c> not</c><00:04:21.970><c> yet</c><00:04:22.240><c> have</c><00:04:22.300><c> a</c>

00:04:22.499 --> 00:04:22.509 align:start position:0%
shifting and EVM does not yet have a
 

00:04:22.509 --> 00:04:25.860 align:start position:0%
shifting and EVM does not yet have a
shift<00:04:22.870><c> operator</c><00:04:23.530><c> and</c><00:04:23.919><c> so</c><00:04:24.610><c> it</c><00:04:24.820><c> gets</c><00:04:25.120><c> imitated</c>

00:04:25.860 --> 00:04:25.870 align:start position:0%
shift operator and so it gets imitated
 

00:04:25.870 --> 00:04:31.190 align:start position:0%
shift operator and so it gets imitated
with<00:04:26.849><c> exponentiation</c><00:04:28.289><c> and</c><00:04:29.520><c> in</c><00:04:30.520><c> between</c>

00:04:31.190 --> 00:04:31.200 align:start position:0%
with exponentiation and in between
 

00:04:31.200 --> 00:04:34.379 align:start position:0%
with exponentiation and in between
things<00:04:32.200><c> are</c><00:04:32.469><c> relatively</c><00:04:32.979><c> regular</c>

00:04:34.379 --> 00:04:34.389 align:start position:0%
things are relatively regular
 

00:04:34.389 --> 00:04:37.230 align:start position:0%
things are relatively regular
and<00:04:34.479><c> the</c><00:04:35.199><c> speed</c><00:04:35.590><c> you</c><00:04:36.129><c> could</c><00:04:36.280><c> actually</c><00:04:36.520><c> predict</c>

00:04:37.230 --> 00:04:37.240 align:start position:0%
and the speed you could actually predict
 

00:04:37.240 --> 00:04:40.619 align:start position:0%
and the speed you could actually predict
by<00:04:37.539><c> the</c><00:04:37.599><c> language</c><00:04:38.939><c> that</c><00:04:39.939><c> the</c><00:04:40.150><c> client</c><00:04:40.539><c> is</c>

00:04:40.619 --> 00:04:40.629 align:start position:0%
by the language that the client is
 

00:04:40.629 --> 00:04:46.010 align:start position:0%
by the language that the client is
written<00:04:41.020><c> in</c><00:04:41.199><c> oh</c><00:04:42.090><c> where</c><00:04:43.090><c> did</c><00:04:43.180><c> that</c><00:04:43.330><c> come</c><00:04:43.539><c> from</c>

00:04:46.010 --> 00:04:46.020 align:start position:0%
 
 

00:04:46.020 --> 00:04:53.309 align:start position:0%
 
the<00:04:47.020><c> next</c><00:04:47.289><c> slide</c><00:04:47.530><c> I</c><00:04:51.419><c> can't</c><00:04:52.419><c> see</c><00:04:52.689><c> the</c><00:04:52.840><c> screen</c>

00:04:53.309 --> 00:04:53.319 align:start position:0%
the next slide I can't see the screen
 

00:04:53.319 --> 00:04:57.390 align:start position:0%
the next slide I can't see the screen
these<00:04:53.800><c> glasses</c><00:04:54.159><c> on</c><00:04:55.020><c> so</c><00:04:56.020><c> to</c><00:04:56.080><c> simplify</c><00:04:56.830><c> it</c><00:04:56.889><c> this</c>

00:04:57.390 --> 00:04:57.400 align:start position:0%
these glasses on so to simplify it this
 

00:04:57.400 --> 00:04:59.369 align:start position:0%
these glasses on so to simplify it this
is<00:04:57.639><c> looking</c><00:04:58.030><c> at</c><00:04:58.150><c> one</c><00:04:58.360><c> angle</c>

00:04:59.369 --> 00:04:59.379 align:start position:0%
is looking at one angle
 

00:04:59.379 --> 00:05:02.909 align:start position:0%
is looking at one angle
it's<00:04:59.889><c> a</c><00:05:00.039><c> harmonic</c><00:05:00.610><c> being</c><00:05:00.969><c> of</c><00:05:01.360><c> the</c><00:05:02.199><c> performance</c>

00:05:02.909 --> 00:05:02.919 align:start position:0%
it's a harmonic being of the performance
 

00:05:02.919 --> 00:05:06.240 align:start position:0%
it's a harmonic being of the performance
of<00:05:03.129><c> each</c><00:05:03.280><c> client</c><00:05:03.939><c> yeah</c><00:05:04.689><c> and</c><00:05:05.469><c> it</c><00:05:05.650><c> shows</c><00:05:05.860><c> pretty</c>

00:05:06.240 --> 00:05:06.250 align:start position:0%
of each client yeah and it shows pretty
 

00:05:06.250 --> 00:05:08.969 align:start position:0%
of each client yeah and it shows pretty
much<00:05:06.520><c> the</c><00:05:07.000><c> same</c><00:05:07.240><c> thing</c>

00:05:08.969 --> 00:05:08.979 align:start position:0%
much the same thing
 

00:05:08.979 --> 00:05:13.559 align:start position:0%
much the same thing
so<00:05:09.789><c> clearly</c><00:05:10.210><c> the</c><00:05:10.509><c> interpreters</c><00:05:11.729><c> are</c><00:05:12.729><c> not</c><00:05:13.270><c> as</c>

00:05:13.559 --> 00:05:13.569 align:start position:0%
so clearly the interpreters are not as
 

00:05:13.569 --> 00:05:16.230 align:start position:0%
so clearly the interpreters are not as
fast<00:05:13.870><c> as</c><00:05:14.349><c> as</c><00:05:14.650><c> going</c><00:05:15.189><c> straight</c><00:05:15.520><c> to</c><00:05:15.819><c> machine</c>

00:05:16.230 --> 00:05:16.240 align:start position:0%
fast as as going straight to machine
 

00:05:16.240 --> 00:05:20.580 align:start position:0%
fast as as going straight to machine
code<00:05:16.509><c> by</c><00:05:16.870><c> any</c><00:05:17.110><c> route</c><00:05:17.500><c> yeah</c><00:05:18.370><c> and</c><00:05:18.819><c> clearly</c><00:05:19.590><c> some</c>

00:05:20.580 --> 00:05:20.590 align:start position:0%
code by any route yeah and clearly some
 

00:05:20.590 --> 00:05:22.610 align:start position:0%
code by any route yeah and clearly some
interpreters<00:05:21.250><c> are</c><00:05:21.490><c> better</c><00:05:21.699><c> than</c><00:05:21.939><c> others</c><00:05:22.300><c> but</c>

00:05:22.610 --> 00:05:22.620 align:start position:0%
interpreters are better than others but
 

00:05:22.620 --> 00:05:25.709 align:start position:0%
interpreters are better than others but
they've<00:05:23.620><c> all</c><00:05:23.770><c> been</c><00:05:24.009><c> good</c><00:05:24.189><c> enough</c><00:05:24.370><c> so</c><00:05:24.909><c> far</c><00:05:24.939><c> for</c>

00:05:25.709 --> 00:05:25.719 align:start position:0%
they've all been good enough so far for
 

00:05:25.719 --> 00:05:29.790 align:start position:0%
they've all been good enough so far for
our<00:05:25.810><c> purposes</c><00:05:27.479><c> and</c><00:05:28.479><c> of</c><00:05:28.810><c> course</c><00:05:29.050><c> I</c><00:05:29.259><c> love</c><00:05:29.469><c> car</c>

00:05:29.790 --> 00:05:29.800 align:start position:0%
our purposes and of course I love car
 

00:05:29.800 --> 00:05:33.450 align:start position:0%
our purposes and of course I love car
races<00:05:30.310><c> as</c><00:05:30.520><c> examples</c><00:05:31.210><c> last</c><00:05:32.139><c> year</c><00:05:32.650><c> somebody</c><00:05:33.099><c> in</c>

00:05:33.450 --> 00:05:33.460 align:start position:0%
races as examples last year somebody in
 

00:05:33.460 --> 00:05:35.820 align:start position:0%
races as examples last year somebody in
the<00:05:33.550><c> audience</c><00:05:33.699><c> shouted</c><00:05:34.539><c> out</c><00:05:34.659><c> that</c><00:05:35.110><c> instead</c><00:05:35.560><c> of</c>

00:05:35.820 --> 00:05:35.830 align:start position:0%
the audience shouted out that instead of
 

00:05:35.830 --> 00:05:38.159 align:start position:0%
the audience shouted out that instead of
used<00:05:36.129><c> in</c><00:05:36.310><c> classic</c><00:05:36.849><c> cars</c><00:05:37.150><c> burning</c><00:05:37.629><c> tons</c><00:05:37.990><c> of</c>

00:05:38.159 --> 00:05:38.169 align:start position:0%
used in classic cars burning tons of
 

00:05:38.169 --> 00:05:42.409 align:start position:0%
used in classic cars burning tons of
gasoline<00:05:38.800><c> I</c><00:05:39.129><c> should</c><00:05:39.879><c> be</c><00:05:40.089><c> using</c><00:05:40.330><c> Tesla</c><00:05:41.259><c> and</c>

00:05:42.409 --> 00:05:42.419 align:start position:0%
gasoline I should be using Tesla and
 

00:05:42.419 --> 00:05:46.260 align:start position:0%
gasoline I should be using Tesla and
Tesla's<00:05:43.419><c> are</c><00:05:43.569><c> nice</c><00:05:44.129><c> it's</c><00:05:45.129><c> George</c><00:05:45.400><c> Hallam</c><00:05:45.879><c> here</c>

00:05:46.260 --> 00:05:46.270 align:start position:0%
Tesla's are nice it's George Hallam here
 

00:05:46.270 --> 00:05:49.680 align:start position:0%
Tesla's are nice it's George Hallam here
are<00:05:46.930><c> you</c><00:05:47.050><c> here</c><00:05:47.229><c> George</c><00:05:48.089><c> George</c><00:05:49.089><c> would</c><00:05:49.360><c> agree</c>

00:05:49.680 --> 00:05:49.690 align:start position:0%
are you here George George would agree
 

00:05:49.690 --> 00:05:51.899 align:start position:0%
are you here George George would agree
that<00:05:49.719><c> rather</c><00:05:50.289><c> than</c><00:05:50.560><c> a</c><00:05:50.589><c> Tesla</c><00:05:51.250><c> this</c><00:05:51.550><c> would</c><00:05:51.789><c> be</c>

00:05:51.899 --> 00:05:51.909 align:start position:0%
that rather than a Tesla this would be
 

00:05:51.909 --> 00:05:53.749 align:start position:0%
that rather than a Tesla this would be
much<00:05:52.089><c> cooler</c><00:05:52.360><c> this</c><00:05:52.750><c> is</c><00:05:52.930><c> a</c><00:05:52.960><c> 68</c><00:05:53.589><c> Mustang</c>

00:05:53.749 --> 00:05:53.759 align:start position:0%
much cooler this is a 68 Mustang
 

00:05:53.759 --> 00:05:57.959 align:start position:0%
much cooler this is a 68 Mustang
hatchback<00:05:55.770><c> under</c><00:05:56.770><c> the</c><00:05:56.889><c> hood</c><00:05:57.129><c> is</c><00:05:57.339><c> actually</c>

00:05:57.959 --> 00:05:57.969 align:start position:0%
hatchback under the hood is actually
 

00:05:57.969 --> 00:06:01.019 align:start position:0%
hatchback under the hood is actually
some<00:05:58.479><c> powerful</c><00:05:58.810><c> electric</c><00:05:59.469><c> motors</c><00:05:59.919><c> and</c><00:06:00.190><c> the</c>

00:06:01.019 --> 00:06:01.029 align:start position:0%
some powerful electric motors and the
 

00:06:01.029 --> 00:06:03.890 align:start position:0%
some powerful electric motors and the
trunk<00:06:01.300><c> is</c><00:06:01.449><c> full</c><00:06:01.659><c> of</c><00:06:01.870><c> lithium-ion</c><00:06:02.409><c> batteries</c>

00:06:03.890 --> 00:06:03.900 align:start position:0%
trunk is full of lithium-ion batteries
 

00:06:03.900 --> 00:06:13.800 align:start position:0%
trunk is full of lithium-ion batteries
and<00:06:07.500><c> if</c><00:06:08.500><c> this</c><00:06:08.830><c> works</c><00:06:10.650><c> where's</c><00:06:11.650><c> the</c><00:06:11.949><c> button</c><00:06:12.810><c> we</c>

00:06:13.800 --> 00:06:13.810 align:start position:0%
and if this works where's the button we
 

00:06:13.810 --> 00:06:16.700 align:start position:0%
and if this works where's the button we
will<00:06:14.020><c> see</c><00:06:14.229><c> how</c><00:06:14.439><c> this</c><00:06:14.650><c> does</c><00:06:14.889><c> against</c><00:06:15.370><c> the</c><00:06:15.460><c> Tesla</c>

00:06:16.700 --> 00:06:16.710 align:start position:0%
will see how this does against the Tesla
 

00:06:16.710 --> 00:06:21.900 align:start position:0%
will see how this does against the Tesla
is<00:06:17.710><c> ready</c><00:06:18.069><c> sound</c><00:06:18.370><c> just</c><00:06:18.819><c> no</c><00:06:18.969><c> such</c><00:06:19.180><c> luck</c>

00:06:21.900 --> 00:06:21.910 align:start position:0%
 
 

00:06:21.910 --> 00:06:28.450 align:start position:0%
 
but<00:06:22.910><c> there</c><00:06:23.630><c> goes</c><00:06:23.660><c> the</c><00:06:24.020><c> Mustang</c><00:06:27.250><c> Tesla</c><00:06:28.250><c> doesn't</c>

00:06:28.450 --> 00:06:28.460 align:start position:0%
but there goes the Mustang Tesla doesn't
 

00:06:28.460 --> 00:06:37.450 align:start position:0%
but there goes the Mustang Tesla doesn't
have<00:06:28.729><c> a</c><00:06:28.759><c> chance</c>

00:06:37.450 --> 00:06:37.460 align:start position:0%
 
 

00:06:37.460 --> 00:06:40.629 align:start position:0%
 
it<00:06:38.030><c> did</c><00:06:38.240><c> just</c><00:06:38.479><c> missing</c><00:06:39.080><c> but</c><00:06:40.070><c> after</c><00:06:40.610><c> a</c>

00:06:40.629 --> 00:06:40.639 align:start position:0%
it did just missing but after a
 

00:06:40.639 --> 00:06:43.480 align:start position:0%
it did just missing but after a
quarter-mile<00:06:41.449><c> it</c><00:06:41.750><c> had</c><00:06:41.930><c> gotten</c><00:06:42.139><c> to</c><00:06:42.500><c> 140</c><00:06:43.280><c> miles</c>

00:06:43.480 --> 00:06:43.490 align:start position:0%
quarter-mile it had gotten to 140 miles
 

00:06:43.490 --> 00:06:45.510 align:start position:0%
quarter-mile it had gotten to 140 miles
an<00:06:43.729><c> hour</c>

00:06:45.510 --> 00:06:45.520 align:start position:0%
an hour
 

00:06:45.520 --> 00:06:51.820 align:start position:0%
an hour
that's<00:06:46.520><c> a</c><00:06:46.699><c> lot</c><00:06:49.449><c> so</c><00:06:50.449><c> what</c><00:06:50.810><c> what</c><00:06:51.139><c> keeps</c><00:06:51.500><c> those</c>

00:06:51.820 --> 00:06:51.830 align:start position:0%
that's a lot so what what keeps those
 

00:06:51.830 --> 00:06:54.790 align:start position:0%
that's a lot so what what keeps those
interpreters<00:06:52.759><c> from</c><00:06:53.060><c> reaching</c><00:06:53.690><c> native</c><00:06:54.289><c> speed</c>

00:06:54.790 --> 00:06:54.800 align:start position:0%
interpreters from reaching native speed
 

00:06:54.800 --> 00:06:57.820 align:start position:0%
interpreters from reaching native speed
and<00:06:55.270><c> the</c><00:06:56.270><c> first</c><00:06:56.479><c> answer</c><00:06:56.990><c> is</c><00:06:57.020><c> their</c>

00:06:57.820 --> 00:06:57.830 align:start position:0%
and the first answer is their
 

00:06:57.830 --> 00:06:59.560 align:start position:0%
and the first answer is their
interpreters<00:06:58.580><c> so</c><00:06:59.030><c> they've</c><00:06:59.180><c> got</c><00:06:59.330><c> that</c>

00:06:59.560 --> 00:06:59.570 align:start position:0%
interpreters so they've got that
 

00:06:59.570 --> 00:07:02.170 align:start position:0%
interpreters so they've got that
overhead<00:07:00.199><c> you</c><00:07:01.039><c> can</c><00:07:01.070><c> work</c><00:07:01.490><c> hard</c><00:07:01.849><c> you</c><00:07:02.150><c> can</c>

00:07:02.170 --> 00:07:02.180 align:start position:0%
overhead you can work hard you can
 

00:07:02.180 --> 00:07:06.040 align:start position:0%
overhead you can work hard you can
reduce<00:07:02.720><c> the</c><00:07:02.990><c> overhead</c><00:07:03.699><c> but</c><00:07:04.699><c> generally</c><00:07:05.509><c> you</c>

00:07:06.040 --> 00:07:06.050 align:start position:0%
reduce the overhead but generally you
 

00:07:06.050 --> 00:07:09.189 align:start position:0%
reduce the overhead but generally you
can't<00:07:06.349><c> do</c><00:07:06.560><c> better</c><00:07:06.770><c> than</c><00:07:06.979><c> about</c><00:07:07.690><c> three</c><00:07:08.690><c> three</c>

00:07:09.189 --> 00:07:09.199 align:start position:0%
can't do better than about three three
 

00:07:09.199 --> 00:07:11.860 align:start position:0%
can't do better than about three three
or<00:07:09.320><c> four</c><00:07:09.620><c> to</c><00:07:09.800><c> one</c><00:07:10.070><c> compared</c><00:07:11.060><c> to</c><00:07:11.240><c> native</c><00:07:11.419><c> code</c>

00:07:11.860 --> 00:07:11.870 align:start position:0%
or four to one compared to native code
 

00:07:11.870 --> 00:07:16.499 align:start position:0%
or four to one compared to native code
um<00:07:12.940><c> for</c><00:07:13.940><c> our</c><00:07:14.270><c> particular</c><00:07:14.949><c> interpreter</c><00:07:15.949><c> the</c>

00:07:16.499 --> 00:07:16.509 align:start position:0%
um for our particular interpreter the
 

00:07:16.509 --> 00:07:20.320 align:start position:0%
um for our particular interpreter the
256<00:07:17.509><c> bit</c><00:07:17.810><c> registers</c><00:07:18.500><c> slowed</c><00:07:18.800><c> us</c><00:07:19.009><c> down</c><00:07:19.330><c> because</c>

00:07:20.320 --> 00:07:20.330 align:start position:0%
256 bit registers slowed us down because
 

00:07:20.330 --> 00:07:25.300 align:start position:0%
256 bit registers slowed us down because
real<00:07:20.900><c> hardware</c><00:07:21.560><c> has</c><00:07:22.240><c> you</c><00:07:23.240><c> know</c><00:07:23.360><c> 32</c><00:07:24.139><c> 64</c><00:07:24.800><c> bit</c>

00:07:25.300 --> 00:07:25.310 align:start position:0%
real hardware has you know 32 64 bit
 

00:07:25.310 --> 00:07:28.659 align:start position:0%
real hardware has you know 32 64 bit
registers<00:07:25.970><c> and</c><00:07:26.360><c> the</c><00:07:27.260><c> unconstrained</c><00:07:28.039><c> control</c>

00:07:28.659 --> 00:07:28.669 align:start position:0%
registers and the unconstrained control
 

00:07:28.669 --> 00:07:34.529 align:start position:0%
registers and the unconstrained control
flow<00:07:29.060><c> hurts</c><00:07:29.720><c> us</c><00:07:29.930><c> a</c><00:07:30.110><c> lot</c><00:07:30.349><c> and</c><00:07:30.680><c> I'll</c><00:07:30.800><c> get</c><00:07:31.039><c> to</c><00:07:31.070><c> that</c>

00:07:34.529 --> 00:07:34.539 align:start position:0%
 
 

00:07:34.539 --> 00:07:38.860 align:start position:0%
 
the<00:07:35.539><c> 256</c><00:07:36.470><c> Hertz</c><00:07:36.770><c> if</c><00:07:37.430><c> you</c><00:07:37.580><c> remember</c><00:07:38.240><c> you</c><00:07:38.750><c> know</c>

00:07:38.860 --> 00:07:38.870 align:start position:0%
the 256 Hertz if you remember you know
 

00:07:38.870 --> 00:07:44.830 align:start position:0%
the 256 Hertz if you remember you know
grade<00:07:39.229><c> school</c><00:07:39.530><c> math</c><00:07:41.440><c> adding</c><00:07:42.639><c> multiplying</c><00:07:43.840><c> you</c>

00:07:44.830 --> 00:07:44.840 align:start position:0%
grade school math adding multiplying you
 

00:07:44.840 --> 00:07:47.140 align:start position:0%
grade school math adding multiplying you
know<00:07:44.960><c> two</c><00:07:45.260><c> numbers</c><00:07:45.710><c> is</c><00:07:45.949><c> pretty</c><00:07:46.220><c> easy</c><00:07:46.520><c> you</c><00:07:46.970><c> can</c>

00:07:47.140 --> 00:07:47.150 align:start position:0%
know two numbers is pretty easy you can
 

00:07:47.150 --> 00:07:51.640 align:start position:0%
know two numbers is pretty easy you can
do<00:07:47.270><c> it</c><00:07:47.300><c> in</c><00:07:47.539><c> your</c><00:07:47.659><c> head</c><00:07:48.729><c> if</c><00:07:49.729><c> you</c><00:07:50.330><c> have</c><00:07:50.590><c> you</c><00:07:51.590><c> know</c>

00:07:51.640 --> 00:07:51.650 align:start position:0%
do it in your head if you have you know
 

00:07:51.650 --> 00:07:54.159 align:start position:0%
do it in your head if you have you know
four<00:07:52.190><c> numbers</c><00:07:52.639><c> suddenly</c><00:07:53.539><c> it</c><00:07:53.659><c> gets</c><00:07:53.810><c> a</c><00:07:54.020><c> lot</c>

00:07:54.159 --> 00:07:54.169 align:start position:0%
four numbers suddenly it gets a lot
 

00:07:54.169 --> 00:07:57.580 align:start position:0%
four numbers suddenly it gets a lot
harder<00:07:54.229><c> and</c><00:07:54.889><c> it's</c><00:07:55.729><c> quadratic</c><00:07:56.599><c> so</c><00:07:57.139><c> it</c><00:07:57.349><c> gets</c>

00:07:57.580 --> 00:07:57.590 align:start position:0%
harder and it's quadratic so it gets
 

00:07:57.590 --> 00:08:02.589 align:start position:0%
harder and it's quadratic so it gets
worse<00:07:57.800><c> and</c><00:07:58.009><c> worse</c><00:07:59.620><c> 256</c><00:08:00.620><c> squared</c><00:08:01.479><c> there's</c><00:08:02.479><c> a</c>

00:08:02.589 --> 00:08:02.599 align:start position:0%
worse and worse 256 squared there's a
 

00:08:02.599 --> 00:08:09.550 align:start position:0%
worse and worse 256 squared there's a
lot<00:08:05.110><c> control</c><00:08:06.110><c> flow</c><00:08:07.090><c> the</c><00:08:08.090><c> jump</c><00:08:08.419><c> operator</c><00:08:08.630><c> an</c>

00:08:09.550 --> 00:08:09.560 align:start position:0%
lot control flow the jump operator an
 

00:08:09.560 --> 00:08:13.749 align:start position:0%
lot control flow the jump operator an
EVM<00:08:10.130><c> I</c><00:08:10.639><c> mean</c><00:08:11.860><c> you</c><00:08:12.860><c> know</c><00:08:12.949><c> go</c><00:08:13.190><c> twos</c><00:08:13.490><c> are</c>

00:08:13.749 --> 00:08:13.759 align:start position:0%
EVM I mean you know go twos are
 

00:08:13.759 --> 00:08:16.300 align:start position:0%
EVM I mean you know go twos are
considered<00:08:14.240><c> harmful</c><00:08:14.659><c> but</c><00:08:15.110><c> at</c><00:08:15.229><c> least</c><00:08:15.349><c> you</c><00:08:16.190><c> know</c>

00:08:16.300 --> 00:08:16.310 align:start position:0%
considered harmful but at least you know
 

00:08:16.310 --> 00:08:20.020 align:start position:0%
considered harmful but at least you know
if<00:08:16.580><c> you</c><00:08:16.759><c> say</c><00:08:17.000><c> go</c><00:08:17.270><c> to</c><00:08:17.380><c> label</c><00:08:18.380><c> it</c><00:08:18.620><c> will</c><00:08:19.159><c> go</c><00:08:19.340><c> to</c><00:08:19.400><c> one</c>

00:08:20.020 --> 00:08:20.030 align:start position:0%
if you say go to label it will go to one
 

00:08:20.030 --> 00:08:24.850 align:start position:0%
if you say go to label it will go to one
in<00:08:20.270><c> exactly</c><00:08:20.810><c> one</c><00:08:21.139><c> label</c><00:08:21.919><c> in</c><00:08:22.130><c> the</c><00:08:23.060><c> EVM</c><00:08:23.590><c> you</c><00:08:24.590><c> say</c>

00:08:24.850 --> 00:08:24.860 align:start position:0%
in exactly one label in the EVM you say
 

00:08:24.860 --> 00:08:29.529 align:start position:0%
in exactly one label in the EVM you say
go<00:08:25.130><c> to</c><00:08:26.169><c> whatever's</c><00:08:27.169><c> on</c><00:08:27.380><c> the</c><00:08:27.560><c> stack</c>

00:08:29.529 --> 00:08:29.539 align:start position:0%
go to whatever's on the stack
 

00:08:29.539 --> 00:08:32.079 align:start position:0%
go to whatever's on the stack
so<00:08:30.169><c> there's</c><00:08:30.380><c> no</c><00:08:30.590><c> way</c><00:08:30.770><c> of</c><00:08:30.979><c> knowing</c><00:08:31.430><c> often</c>

00:08:32.079 --> 00:08:32.089 align:start position:0%
so there's no way of knowing often
 

00:08:32.089 --> 00:08:36.300 align:start position:0%
so there's no way of knowing often
statically<00:08:33.130><c> where</c><00:08:34.130><c> it's</c><00:08:34.339><c> going</c><00:08:34.640><c> to</c><00:08:34.789><c> go</c>

00:08:36.300 --> 00:08:36.310 align:start position:0%
statically where it's going to go
 

00:08:36.310 --> 00:08:38.949 align:start position:0%
statically where it's going to go
so<00:08:37.310><c> you</c><00:08:37.399><c> could</c><00:08:37.699><c> have</c><00:08:37.729><c> a</c><00:08:37.880><c> nice</c><00:08:38.149><c> little</c><00:08:38.389><c> program</c>

00:08:38.949 --> 00:08:38.959 align:start position:0%
so you could have a nice little program
 

00:08:38.959 --> 00:08:42.250 align:start position:0%
so you could have a nice little program
like<00:08:39.260><c> this</c><00:08:39.589><c> and</c><00:08:40.099><c> F</c><00:08:40.459><c> calls</c><00:08:40.969><c> G</c><00:08:41.419><c> and</c><00:08:41.719><c> H</c><00:08:41.899><c> and</c>

00:08:42.250 --> 00:08:42.260 align:start position:0%
like this and F calls G and H and
 

00:08:42.260 --> 00:08:45.340 align:start position:0%
like this and F calls G and H and
returns<00:08:42.649><c> and</c><00:08:43.159><c> it</c><00:08:43.250><c> calls</c><00:08:43.459><c> AI</c><00:08:43.729><c> and</c><00:08:44.000><c> returns</c><00:08:44.420><c> etc</c>

00:08:45.340 --> 00:08:45.350 align:start position:0%
returns and it calls AI and returns etc
 

00:08:45.350 --> 00:08:48.460 align:start position:0%
returns and it calls AI and returns etc
nice<00:08:46.339><c> clean</c><00:08:46.730><c> structure</c><00:08:47.360><c> no</c><00:08:47.660><c> trouble</c><00:08:48.139><c> no</c>

00:08:48.460 --> 00:08:48.470 align:start position:0%
nice clean structure no trouble no
 

00:08:48.470 --> 00:08:52.470 align:start position:0%
nice clean structure no trouble no
trouble<00:08:48.500><c> to</c><00:08:49.100><c> understand</c><00:08:50.230><c> static</c><00:08:51.230><c> analysis</c>

00:08:52.470 --> 00:08:52.480 align:start position:0%
trouble to understand static analysis
 

00:08:52.480 --> 00:08:55.600 align:start position:0%
trouble to understand static analysis
anything<00:08:53.480><c> no</c><00:08:53.720><c> trouble</c><00:08:54.310><c> what's</c><00:08:55.310><c> it</c><00:08:55.459><c> actually</c>

00:08:55.600 --> 00:08:55.610 align:start position:0%
anything no trouble what's it actually
 

00:08:55.610 --> 00:08:58.329 align:start position:0%
anything no trouble what's it actually
looked<00:08:56.120><c> like</c><00:08:56.209><c> to</c><00:08:56.510><c> the</c><00:08:56.660><c> EVM</c><00:08:57.050><c> that's</c><00:08:58.040><c> what</c><00:08:58.250><c> it</c>

00:08:58.329 --> 00:08:58.339 align:start position:0%
looked like to the EVM that's what it
 

00:08:58.339 --> 00:09:01.780 align:start position:0%
looked like to the EVM that's what it
looks<00:08:58.550><c> like</c><00:08:58.730><c> to</c><00:08:58.940><c> the</c><00:08:59.120><c> EVM</c><00:09:00.490><c> so</c><00:09:01.490><c> if</c><00:09:01.639><c> you're</c>

00:09:01.780 --> 00:09:01.790 align:start position:0%
looks like to the EVM so if you're
 

00:09:01.790 --> 00:09:03.699 align:start position:0%
looks like to the EVM so if you're
trying<00:09:02.029><c> to</c><00:09:02.180><c> do</c><00:09:02.300><c> formal</c><00:09:02.750><c> analysis</c><00:09:03.350><c> if</c><00:09:03.560><c> you're</c>

00:09:03.699 --> 00:09:03.709 align:start position:0%
trying to do formal analysis if you're
 

00:09:03.709 --> 00:09:05.590 align:start position:0%
trying to do formal analysis if you're
trying<00:09:03.949><c> to</c><00:09:04.040><c> write</c><00:09:04.190><c> a</c><00:09:04.220><c> compiler</c><00:09:05.060><c> if</c><00:09:05.480><c> you're</c>

00:09:05.590 --> 00:09:05.600 align:start position:0%
trying to write a compiler if you're
 

00:09:05.600 --> 00:09:09.579 align:start position:0%
trying to write a compiler if you're
trying<00:09:05.839><c> to</c><00:09:05.959><c> do</c><00:09:06.079><c> anything</c><00:09:06.320><c> with</c><00:09:06.709><c> it</c><00:09:07.690><c> again</c><00:09:08.690><c> the</c>

00:09:09.579 --> 00:09:09.589 align:start position:0%
trying to do anything with it again the
 

00:09:09.589 --> 00:09:12.009 align:start position:0%
trying to do anything with it again the
number<00:09:09.920><c> of</c><00:09:09.980><c> paths</c><00:09:10.339><c> goes</c><00:09:10.730><c> up</c><00:09:11.019><c> quadratically</c>

00:09:12.009 --> 00:09:12.019 align:start position:0%
number of paths goes up quadratically
 

00:09:12.019 --> 00:09:16.300 align:start position:0%
number of paths goes up quadratically
and<00:09:12.589><c> you're</c><00:09:12.800><c> in</c><00:09:12.949><c> trouble</c><00:09:14.529><c> because</c><00:09:15.529><c> pretty</c>

00:09:16.300 --> 00:09:16.310 align:start position:0%
and you're in trouble because pretty
 

00:09:16.310 --> 00:09:18.689 align:start position:0%
and you're in trouble because pretty
much<00:09:16.430><c> if</c><00:09:17.060><c> you</c><00:09:17.269><c> can't</c><00:09:17.540><c> do</c><00:09:17.720><c> it</c><00:09:17.870><c> in</c><00:09:17.990><c> linear</c><00:09:18.199><c> time</c>

00:09:18.689 --> 00:09:18.699 align:start position:0%
much if you can't do it in linear time
 

00:09:18.699 --> 00:09:22.449 align:start position:0%
much if you can't do it in linear time
or<00:09:19.699><c> at</c><00:09:19.910><c> least</c><00:09:20.089><c> n</c><00:09:20.329><c> log</c><00:09:20.570><c> n</c><00:09:20.839><c> time</c><00:09:21.079><c> on</c><00:09:21.769><c> the</c>

00:09:22.449 --> 00:09:22.459 align:start position:0%
or at least n log n time on the
 

00:09:22.459 --> 00:09:25.300 align:start position:0%
or at least n log n time on the
blockchain<00:09:22.810><c> you</c><00:09:23.810><c> know</c><00:09:23.899><c> that</c><00:09:24.260><c> deployment</c><00:09:25.040><c> time</c>

00:09:25.300 --> 00:09:25.310 align:start position:0%
blockchain you know that deployment time
 

00:09:25.310 --> 00:09:30.759 align:start position:0%
blockchain you know that deployment time
or<00:09:25.639><c> at</c><00:09:25.880><c> runtime</c><00:09:27.100><c> you</c><00:09:28.100><c> can't</c><00:09:28.370><c> do</c><00:09:28.670><c> it</c><00:09:29.380><c> so</c><00:09:30.380><c> how</c><00:09:30.709><c> do</c>

00:09:30.759 --> 00:09:30.769 align:start position:0%
or at runtime you can't do it so how do
 

00:09:30.769 --> 00:09:33.189 align:start position:0%
or at runtime you can't do it so how do
we<00:09:30.920><c> do</c><00:09:31.070><c> better</c>

00:09:33.189 --> 00:09:33.199 align:start position:0%
we do better
 

00:09:33.199 --> 00:09:38.050 align:start position:0%
we do better
well<00:09:34.160><c> EVM</c><00:09:34.850><c> JIT</c><00:09:35.300><c> is</c><00:09:36.050><c> already</c><00:09:36.560><c> doing</c><00:09:36.829><c> better</c><00:09:37.639><c> I</c>

00:09:38.050 --> 00:09:38.060 align:start position:0%
well EVM JIT is already doing better I
 

00:09:38.060 --> 00:09:40.269 align:start position:0%
well EVM JIT is already doing better I
won't<00:09:38.389><c> back</c><00:09:38.630><c> up</c><00:09:38.990><c> but</c><00:09:39.440><c> if</c><00:09:39.649><c> you</c><00:09:39.800><c> look</c><00:09:40.010><c> at</c><00:09:40.160><c> the</c>

00:09:40.269 --> 00:09:40.279 align:start position:0%
won't back up but if you look at the
 

00:09:40.279 --> 00:09:43.870 align:start position:0%
won't back up but if you look at the
slide<00:09:41.199><c> the</c><00:09:42.199><c> EVM</c><00:09:42.529><c> JIT</c><00:09:42.829><c> is</c><00:09:43.100><c> actually</c><00:09:43.610><c> pretty</c>

00:09:43.870 --> 00:09:43.880 align:start position:0%
slide the EVM JIT is actually pretty
 

00:09:43.880 --> 00:09:46.840 align:start position:0%
slide the EVM JIT is actually pretty
close<00:09:44.269><c> to</c><00:09:44.660><c> the</c><00:09:44.779><c> native</c><00:09:45.139><c> speed</c><00:09:45.589><c> you</c><00:09:46.399><c> know</c><00:09:46.519><c> it</c>

00:09:46.840 --> 00:09:46.850 align:start position:0%
close to the native speed you know it
 

00:09:46.850 --> 00:09:50.379 align:start position:0%
close to the native speed you know it
does<00:09:47.319><c> very</c><00:09:48.319><c> well</c><00:09:48.649><c> on</c><00:09:49.040><c> the</c><00:09:49.310><c> wide</c><00:09:49.519><c> arithmetic</c>

00:09:50.379 --> 00:09:50.389 align:start position:0%
does very well on the wide arithmetic
 

00:09:50.389 --> 00:09:54.309 align:start position:0%
does very well on the wide arithmetic
and<00:09:50.690><c> not</c><00:09:51.230><c> so</c><00:09:51.589><c> well</c><00:09:51.860><c> uh</c><00:09:52.250><c> narrow</c><00:09:52.699><c> arithmetic</c><00:09:53.600><c> and</c>

00:09:54.309 --> 00:09:54.319 align:start position:0%
and not so well uh narrow arithmetic and
 

00:09:54.319 --> 00:09:59.910 align:start position:0%
and not so well uh narrow arithmetic and
complex<00:09:55.100><c> logic</c><00:09:56.620><c> but</c><00:09:57.620><c> it's</c><00:09:57.769><c> a</c><00:09:57.889><c> very</c><00:09:58.100><c> good</c><00:09:58.339><c> chip</c>

00:09:59.910 --> 00:09:59.920 align:start position:0%
complex logic but it's a very good chip
 

00:09:59.920 --> 00:10:02.620 align:start position:0%
complex logic but it's a very good chip
I've<00:10:00.920><c> told</c><00:10:01.279><c> Pavel</c><00:10:01.790><c> he</c><00:10:01.970><c> gets</c><00:10:02.180><c> to</c><00:10:02.360><c> be</c><00:10:02.389><c> the</c>

00:10:02.620 --> 00:10:02.630 align:start position:0%
I've told Pavel he gets to be the
 

00:10:02.630 --> 00:10:04.960 align:start position:0%
I've told Pavel he gets to be the
electric<00:10:03.110><c> Fox</c><00:10:03.410><c> he's</c><00:10:03.889><c> tired</c><00:10:04.190><c> of</c><00:10:04.459><c> these</c><00:10:04.579><c> little</c>

00:10:04.960 --> 00:10:04.970 align:start position:0%
electric Fox he's tired of these little
 

00:10:04.970 --> 00:10:07.420 align:start position:0%
electric Fox he's tired of these little
you<00:10:05.899><c> know</c><00:10:05.990><c> three</c><00:10:06.319><c> and</c><00:10:06.350><c> four</c><00:10:06.709><c> letter</c><00:10:07.040><c> names</c>

00:10:07.420 --> 00:10:07.430 align:start position:0%
you know three and four letter names
 

00:10:07.430 --> 00:10:09.939 align:start position:0%
you know three and four letter names
that<00:10:07.790><c> don't</c><00:10:07.970><c> mean</c><00:10:08.149><c> anything</c><00:10:08.709><c> this</c><00:10:09.709><c> is</c><00:10:09.769><c> a</c>

00:10:09.939 --> 00:10:09.949 align:start position:0%
that don't mean anything this is a
 

00:10:09.949 --> 00:10:13.030 align:start position:0%
that don't mean anything this is a
racing<00:10:10.880><c> team</c><00:10:11.120><c> out</c><00:10:11.329><c> of</c><00:10:11.360><c> Latvia</c><00:10:12.019><c> that's</c><00:10:12.769><c> a</c>

00:10:13.030 --> 00:10:13.040 align:start position:0%
racing team out of Latvia that's a
 

00:10:13.040 --> 00:10:17.800 align:start position:0%
racing team out of Latvia that's a
completely<00:10:13.490><c> electric</c><00:10:14.560><c> dragster</c><00:10:16.000><c> and</c><00:10:17.000><c> here</c><00:10:17.660><c> it</c>

00:10:17.800 --> 00:10:17.810 align:start position:0%
completely electric dragster and here it
 

00:10:17.810 --> 00:10:25.079 align:start position:0%
completely electric dragster and here it
is<00:10:18.310><c> winning</c><00:10:19.310><c> the</c><00:10:20.410><c> European</c><00:10:21.410><c> world</c><00:10:22.399><c> record</c>

00:10:25.079 --> 00:10:25.089 align:start position:0%
 
 

00:10:25.089 --> 00:10:29.500 align:start position:0%
 
there<00:10:26.089><c> it</c><00:10:26.300><c> goes</c>

00:10:29.500 --> 00:10:29.510 align:start position:0%
 
 

00:10:29.510 --> 00:10:34.430 align:start position:0%
 
drag<00:10:30.510><c> races</c><00:10:30.960><c> are</c><00:10:31.110><c> fast</c><00:10:32.690><c> it's</c><00:10:33.690><c> not</c><00:10:33.720><c> impressive</c>

00:10:34.430 --> 00:10:34.440 align:start position:0%
drag races are fast it's not impressive
 

00:10:34.440 --> 00:10:38.590 align:start position:0%
drag races are fast it's not impressive
is<00:10:34.620><c> it</c><00:10:35.030><c> it's</c><00:10:36.030><c> over</c>

00:10:38.590 --> 00:10:38.600 align:start position:0%
 
 

00:10:38.600 --> 00:10:44.960 align:start position:0%
 
hello<00:10:40.670><c> 275</c><00:10:41.670><c> miles</c><00:10:41.970><c> an</c><00:10:42.240><c> hour</c><00:10:42.420><c> just</c><00:10:43.790><c> a</c><00:10:44.790><c> few</c>

00:10:44.960 --> 00:10:44.970 align:start position:0%
hello 275 miles an hour just a few
 

00:10:44.970 --> 00:10:52.060 align:start position:0%
hello 275 miles an hour just a few
seconds<00:10:46.190><c> love</c><00:10:47.190><c> these</c><00:10:47.400><c> things</c><00:10:50.210><c> so</c><00:10:51.210><c> we've</c><00:10:51.450><c> got</c>

00:10:52.060 --> 00:10:52.070 align:start position:0%
seconds love these things so we've got
 

00:10:52.070 --> 00:10:55.040 align:start position:0%
seconds love these things so we've got
we've<00:10:53.070><c> got</c><00:10:53.130><c> two</c><00:10:53.490><c> research</c><00:10:53.970><c> programs</c><00:10:54.660><c> who'd</c>

00:10:55.040 --> 00:10:55.050 align:start position:0%
we've got two research programs who'd
 

00:10:55.050 --> 00:10:59.660 align:start position:0%
we've got two research programs who'd
have<00:10:55.560><c> been</c><00:10:55.680><c> going</c><00:10:56.630><c> on</c><00:10:57.630><c> how</c><00:10:58.560><c> to</c><00:10:58.620><c> improve</c><00:10:59.160><c> things</c>

00:10:59.660 --> 00:10:59.670 align:start position:0%
have been going on how to improve things
 

00:10:59.670 --> 00:11:04.670 align:start position:0%
have been going on how to improve things
they've<00:11:00.570><c> been</c><00:11:00.660><c> nicknamed</c><00:11:01.410><c> EVM</c><00:11:02.280><c> 1.5</c><00:11:03.180><c> and</c><00:11:03.810><c> EVM</c>

00:11:04.670 --> 00:11:04.680 align:start position:0%
they've been nicknamed EVM 1.5 and EVM
 

00:11:04.680 --> 00:11:08.390 align:start position:0%
they've been nicknamed EVM 1.5 and EVM
2.0<00:11:06.530><c> which</c><00:11:07.530><c> doesn't</c><00:11:07.950><c> really</c><00:11:08.070><c> mean</c><00:11:08.370><c> anything</c>

00:11:08.390 --> 00:11:08.400 align:start position:0%
2.0 which doesn't really mean anything
 

00:11:08.400 --> 00:11:12.310 align:start position:0%
2.0 which doesn't really mean anything
except<00:11:09.390><c> those</c><00:11:09.570><c> are</c><00:11:09.780><c> the</c><00:11:09.900><c> nicknames</c><00:11:10.350><c> yeah</c>

00:11:12.310 --> 00:11:12.320 align:start position:0%
except those are the nicknames yeah
 

00:11:12.320 --> 00:11:19.790 align:start position:0%
except those are the nicknames yeah
and<00:11:14.300><c> for</c><00:11:15.300><c> 1.5</c><00:11:17.270><c> that's</c><00:11:18.270><c> that's</c><00:11:19.050><c> a</c><00:11:19.260><c> suggestion</c>

00:11:19.790 --> 00:11:19.800 align:start position:0%
and for 1.5 that's that's a suggestion
 

00:11:19.800 --> 00:11:24.410 align:start position:0%
and for 1.5 that's that's a suggestion
to<00:11:20.370><c> extend</c><00:11:21.080><c> the</c><00:11:22.080><c> current</c><00:11:22.380><c> EVM</c><00:11:23.130><c> by</c><00:11:23.940><c> adding</c>

00:11:24.410 --> 00:11:24.420 align:start position:0%
to extend the current EVM by adding
 

00:11:24.420 --> 00:11:30.140 align:start position:0%
to extend the current EVM by adding
adding<00:11:25.140><c> new</c><00:11:25.320><c> op</c><00:11:25.530><c> codes</c><00:11:25.950><c> and</c><00:11:27.020><c> requirements</c><00:11:29.150><c> so</c>

00:11:30.140 --> 00:11:30.150 align:start position:0%
adding new op codes and requirements so
 

00:11:30.150 --> 00:11:33.830 align:start position:0%
adding new op codes and requirements so
we<00:11:30.540><c> forbid</c><00:11:31.290><c> those</c><00:11:32.220><c> unconstrained</c><00:11:33.120><c> jumps</c><00:11:33.690><c> you</c>

00:11:33.830 --> 00:11:33.840 align:start position:0%
we forbid those unconstrained jumps you
 

00:11:33.840 --> 00:11:36.610 align:start position:0%
we forbid those unconstrained jumps you
just<00:11:34.110><c> we</c><00:11:34.620><c> will</c><00:11:34.830><c> not</c><00:11:35.010><c> allow</c><00:11:35.130><c> you</c><00:11:35.250><c> to</c><00:11:35.460><c> do</c><00:11:35.760><c> that</c>

00:11:36.610 --> 00:11:36.620 align:start position:0%
just we will not allow you to do that
 

00:11:36.620 --> 00:11:41.870 align:start position:0%
just we will not allow you to do that
and<00:11:37.880><c> we</c><00:11:38.990><c> we</c><00:11:39.990><c> then</c><00:11:40.230><c> have</c><00:11:40.500><c> to</c><00:11:40.830><c> provide</c><00:11:41.550><c> a</c><00:11:41.580><c> way</c><00:11:41.850><c> to</c>

00:11:41.870 --> 00:11:41.880 align:start position:0%
and we we then have to provide a way to
 

00:11:41.880 --> 00:11:44.210 align:start position:0%
and we we then have to provide a way to
do<00:11:42.300><c> the</c><00:11:42.510><c> things</c><00:11:42.780><c> that</c><00:11:42.960><c> you</c><00:11:43.260><c> otherwise</c><00:11:43.560><c> do</c><00:11:44.040><c> with</c>

00:11:44.210 --> 00:11:44.220 align:start position:0%
do the things that you otherwise do with
 

00:11:44.220 --> 00:11:47.660 align:start position:0%
do the things that you otherwise do with
those<00:11:44.370><c> jumps</c><00:11:45.090><c> so</c><00:11:45.810><c> there's</c><00:11:46.140><c> up</c><00:11:46.410><c> there's</c><00:11:47.100><c> up</c>

00:11:47.660 --> 00:11:47.670 align:start position:0%
those jumps so there's up there's up
 

00:11:47.670 --> 00:11:52.700 align:start position:0%
those jumps so there's up there's up
codes<00:11:48.090><c> for</c><00:11:48.330><c> subroutines</c><00:11:49.730><c> and</c><00:11:50.730><c> then</c><00:11:51.510><c> we've</c><00:11:52.500><c> got</c>

00:11:52.700 --> 00:11:52.710 align:start position:0%
codes for subroutines and then we've got
 

00:11:52.710 --> 00:11:55.370 align:start position:0%
codes for subroutines and then we've got
to<00:11:52.860><c> get</c><00:11:52.980><c> away</c><00:11:53.100><c> from</c><00:11:53.310><c> having</c><00:11:53.970><c> nothing</c><00:11:54.150><c> but</c><00:11:54.390><c> 256</c>

00:11:55.370 --> 00:11:55.380 align:start position:0%
to get away from having nothing but 256
 

00:11:55.380 --> 00:11:59.000 align:start position:0%
to get away from having nothing but 256
bit<00:11:55.620><c> registers</c><00:11:56.330><c> so</c><00:11:57.330><c> we've</c><00:11:57.570><c> got</c><00:11:57.870><c> up</c><00:11:58.170><c> codes</c><00:11:58.650><c> for</c>

00:11:59.000 --> 00:11:59.010 align:start position:0%
bit registers so we've got up codes for
 

00:11:59.010 --> 00:12:02.510 align:start position:0%
bit registers so we've got up codes for
native<00:11:59.370><c> scalars</c><00:11:59.970><c> and</c><00:12:00.540><c> op</c><00:12:01.020><c> codes</c><00:12:01.410><c> for</c><00:12:01.860><c> sim</c><00:12:02.280><c> D</c>

00:12:02.510 --> 00:12:02.520 align:start position:0%
native scalars and op codes for sim D
 

00:12:02.520 --> 00:12:05.420 align:start position:0%
native scalars and op codes for sim D
because<00:12:03.300><c> real</c><00:12:04.140><c> hardware</c><00:12:04.740><c> has</c><00:12:04.980><c> all</c><00:12:05.190><c> this</c>

00:12:05.420 --> 00:12:05.430 align:start position:0%
because real hardware has all this
 

00:12:05.430 --> 00:12:09.350 align:start position:0%
because real hardware has all this
silicon<00:12:06.000><c> devoted</c><00:12:06.720><c> to</c><00:12:07.410><c> sim</c><00:12:07.770><c> d</c><00:12:07.980><c> registers</c><00:12:08.610><c> and</c>

00:12:09.350 --> 00:12:09.360 align:start position:0%
silicon devoted to sim d registers and
 

00:12:09.360 --> 00:12:12.290 align:start position:0%
silicon devoted to sim d registers and
if<00:12:09.750><c> you</c><00:12:09.900><c> go</c><00:12:10.080><c> to</c><00:12:10.140><c> google</c><00:12:10.620><c> and</c><00:12:10.890><c> type</c><00:12:11.060><c> sim</c><00:12:12.060><c> D</c>

00:12:12.290 --> 00:12:12.300 align:start position:0%
if you go to google and type sim D
 

00:12:12.300 --> 00:12:16.970 align:start position:0%
if you go to google and type sim D
crypto<00:12:13.070><c> you</c><00:12:14.070><c> get</c><00:12:14.400><c> a</c><00:12:14.430><c> lot</c><00:12:14.610><c> of</c><00:12:14.730><c> results</c><00:12:15.770><c> so</c><00:12:16.770><c> it</c>

00:12:16.970 --> 00:12:16.980 align:start position:0%
crypto you get a lot of results so it
 

00:12:16.980 --> 00:12:18.830 align:start position:0%
crypto you get a lot of results so it
would<00:12:17.130><c> be</c><00:12:17.250><c> useful</c><00:12:17.460><c> to</c><00:12:17.760><c> make</c><00:12:18.090><c> that</c><00:12:18.360><c> hardware</c>

00:12:18.830 --> 00:12:18.840 align:start position:0%
would be useful to make that hardware
 

00:12:18.840 --> 00:12:23.450 align:start position:0%
would be useful to make that hardware
available<00:12:19.940><c> and</c><00:12:20.940><c> at</c><00:12:21.690><c> deployment</c><00:12:22.320><c> time</c><00:12:22.680><c> there's</c>

00:12:23.450 --> 00:12:23.460 align:start position:0%
available and at deployment time there's
 

00:12:23.460 --> 00:12:26.210 align:start position:0%
available and at deployment time there's
a<00:12:23.520><c> validation</c><00:12:24.360><c> phase</c><00:12:24.750><c> that</c><00:12:25.560><c> goes</c><00:12:25.770><c> through</c><00:12:26.100><c> the</c>

00:12:26.210 --> 00:12:26.220 align:start position:0%
a validation phase that goes through the
 

00:12:26.220 --> 00:12:28.580 align:start position:0%
a validation phase that goes through the
code<00:12:26.460><c> and</c><00:12:26.490><c> make</c><00:12:27.030><c> sure</c><00:12:27.360><c> that</c><00:12:27.660><c> it</c><00:12:27.780><c> actually</c><00:12:28.260><c> does</c>

00:12:28.580 --> 00:12:28.590 align:start position:0%
code and make sure that it actually does
 

00:12:28.590 --> 00:12:33.610 align:start position:0%
code and make sure that it actually does
follow<00:12:29.460><c> the</c><00:12:29.760><c> rules</c><00:12:31.250><c> what</c><00:12:32.250><c> a</c><00:12:32.280><c> concept</c>

00:12:33.610 --> 00:12:33.620 align:start position:0%
follow the rules what a concept
 

00:12:33.620 --> 00:12:36.340 align:start position:0%
follow the rules what a concept
and<00:12:34.620><c> then</c><00:12:35.490><c> 2.0</c>

00:12:36.340 --> 00:12:36.350 align:start position:0%
and then 2.0
 

00:12:36.350 --> 00:12:39.740 align:start position:0%
and then 2.0
[Music]

00:12:39.740 --> 00:12:39.750 align:start position:0%
 
 

00:12:39.750 --> 00:12:43.220 align:start position:0%
 
well<00:12:40.589><c> gee</c><00:12:41.009><c> it</c><00:12:41.459><c> provides</c><00:12:41.879><c> opcodes</c><00:12:42.449><c> first</c><00:12:42.930><c> got</c>

00:12:43.220 --> 00:12:43.230 align:start position:0%
well gee it provides opcodes first got
 

00:12:43.230 --> 00:12:46.280 align:start position:0%
well gee it provides opcodes first got
your<00:12:43.470><c> control</c><00:12:43.740><c> flow</c><00:12:44.129><c> you</c><00:12:44.910><c> know</c><00:12:45.029><c> it's</c><00:12:45.629><c> stricter</c>

00:12:46.280 --> 00:12:46.290 align:start position:0%
your control flow you know it's stricter
 

00:12:46.290 --> 00:12:49.400 align:start position:0%
your control flow you know it's stricter
than<00:12:46.680><c> 1.5</c><00:12:47.579><c> it</c><00:12:48.089><c> actually</c><00:12:48.899><c> looks</c><00:12:49.139><c> like</c><00:12:49.230><c> a</c>

00:12:49.400 --> 00:12:49.410 align:start position:0%
than 1.5 it actually looks like a
 

00:12:49.410 --> 00:12:52.340 align:start position:0%
than 1.5 it actually looks like a
high-level<00:12:49.949><c> language</c><00:12:50.310><c> with</c><00:12:51.000><c> if-else</c><00:12:51.480><c> and</c>

00:12:52.340 --> 00:12:52.350 align:start position:0%
high-level language with if-else and
 

00:12:52.350 --> 00:12:56.600 align:start position:0%
high-level language with if-else and
such<00:12:53.420><c> and</c><00:12:54.420><c> it</c><00:12:54.660><c> provides</c><00:12:55.139><c> opcodes</c><00:12:55.800><c> for</c><00:12:56.250><c> native</c>

00:12:56.600 --> 00:12:56.610 align:start position:0%
such and it provides opcodes for native
 

00:12:56.610 --> 00:13:00.379 align:start position:0%
such and it provides opcodes for native
scalars<00:12:57.319><c> it's</c><00:12:58.319><c> Cindy</c><00:12:58.829><c> provoke</c><00:12:59.310><c> the</c><00:12:59.970><c> Cindy's</c>

00:13:00.379 --> 00:13:00.389 align:start position:0%
scalars it's Cindy provoke the Cindy's
 

00:13:00.389 --> 00:13:02.240 align:start position:0%
scalars it's Cindy provoke the Cindy's
coming<00:13:00.629><c> later</c><00:13:01.139><c> but</c><00:13:01.560><c> there's</c><00:13:01.769><c> a</c><00:13:01.829><c> Cindy</c>

00:13:02.240 --> 00:13:02.250 align:start position:0%
coming later but there's a Cindy
 

00:13:02.250 --> 00:13:05.389 align:start position:0%
coming later but there's a Cindy
proposal<00:13:02.970><c> and</c><00:13:03.300><c> it</c><00:13:03.839><c> also</c><00:13:04.050><c> has</c><00:13:04.439><c> a</c><00:13:04.470><c> validation</c>

00:13:05.389 --> 00:13:05.399 align:start position:0%
proposal and it also has a validation
 

00:13:05.399 --> 00:13:08.210 align:start position:0%
proposal and it also has a validation
phase<00:13:05.730><c> where</c><00:13:06.209><c> it</c><00:13:06.329><c> validates</c><00:13:06.930><c> control</c><00:13:07.889><c> flow</c>

00:13:08.210 --> 00:13:08.220 align:start position:0%
phase where it validates control flow
 

00:13:08.220 --> 00:13:12.679 align:start position:0%
phase where it validates control flow
and<00:13:08.550><c> stack</c><00:13:08.819><c> discipline</c><00:13:09.480><c> and</c><00:13:09.750><c> type</c><00:13:10.290><c> safety</c><00:13:11.689><c> so</c>

00:13:12.679 --> 00:13:12.689 align:start position:0%
and stack discipline and type safety so
 

00:13:12.689 --> 00:13:14.929 align:start position:0%
and stack discipline and type safety so
they're<00:13:12.930><c> they're</c><00:13:13.199><c> very</c><00:13:13.410><c> similar</c><00:13:13.800><c> at</c><00:13:14.310><c> that</c><00:13:14.699><c> at</c>

00:13:14.929 --> 00:13:14.939 align:start position:0%
they're they're very similar at that at
 

00:13:14.939 --> 00:13:20.540 align:start position:0%
they're they're very similar at that at
that<00:13:15.180><c> level</c><00:13:18.290><c> so</c><00:13:19.290><c> we've</c><00:13:19.500><c> got</c><00:13:19.709><c> some</c><00:13:19.980><c> technically</c>

00:13:20.540 --> 00:13:20.550 align:start position:0%
that level so we've got some technically
 

00:13:20.550 --> 00:13:24.559 align:start position:0%
that level so we've got some technically
very<00:13:20.850><c> very</c><00:13:21.269><c> similar</c><00:13:21.540><c> proposals</c><00:13:22.350><c> um</c><00:13:23.360><c> they</c><00:13:24.360><c> both</c>

00:13:24.559 --> 00:13:24.569 align:start position:0%
very very similar proposals um they both
 

00:13:24.569 --> 00:13:28.819 align:start position:0%
very very similar proposals um they both
provide<00:13:25.699><c> for</c><00:13:26.699><c> for</c><00:13:27.089><c> very</c><00:13:27.269><c> fast</c><00:13:27.680><c> compilations</c><00:13:28.680><c> a</c>

00:13:28.819 --> 00:13:28.829 align:start position:0%
provide for for very fast compilations a
 

00:13:28.829 --> 00:13:33.590 align:start position:0%
provide for for very fast compilations a
native<00:13:29.160><c> code</c><00:13:30.920><c> it</c><00:13:31.920><c> could</c><00:13:32.339><c> be</c><00:13:32.579><c> done</c><00:13:32.819><c> as</c><00:13:33.029><c> the</c><00:13:33.209><c> JIT</c>

00:13:33.590 --> 00:13:33.600 align:start position:0%
native code it could be done as the JIT
 

00:13:33.600 --> 00:13:39.590 align:start position:0%
native code it could be done as the JIT
yeah<00:13:34.529><c> we've</c><00:13:35.310><c> come</c><00:13:35.339><c> to</c><00:13:35.850><c> realize</c><00:13:38.600><c> etherium</c>

00:13:39.590 --> 00:13:39.600 align:start position:0%
yeah we've come to realize etherium
 

00:13:39.600 --> 00:13:43.869 align:start position:0%
yeah we've come to realize etherium
cannot<00:13:40.290><c> do</c><00:13:40.529><c> jets</c><00:13:40.889><c> there</c><00:13:41.819><c> they</c><00:13:42.300><c> are</c><00:13:42.449><c> actually</c>

00:13:43.869 --> 00:13:43.879 align:start position:0%
cannot do jets there they are actually
 

00:13:43.879 --> 00:13:49.189 align:start position:0%
cannot do jets there they are actually
exploitable<00:13:44.879><c> that</c><00:13:45.750><c> is</c><00:13:46.850><c> if</c><00:13:47.850><c> you</c><00:13:48.059><c> find</c><00:13:48.389><c> or</c><00:13:48.839><c> write</c>

00:13:49.189 --> 00:13:49.199 align:start position:0%
exploitable that is if you find or write
 

00:13:49.199 --> 00:13:54.889 align:start position:0%
exploitable that is if you find or write
a<00:13:49.559><c> contract</c><00:13:51.589><c> which</c><00:13:52.589><c> takes</c><00:13:53.189><c> a</c><00:13:53.430><c> long</c><00:13:53.670><c> time</c><00:13:53.899><c> to</c>

00:13:54.889 --> 00:13:54.899 align:start position:0%
a contract which takes a long time to
 

00:13:54.899 --> 00:13:59.509 align:start position:0%
a contract which takes a long time to
compile<00:13:55.559><c> with</c><00:13:56.129><c> the</c><00:13:56.309><c> JIT</c><00:13:57.110><c> but</c><00:13:58.110><c> requires</c><00:13:59.069><c> very</c>

00:13:59.509 --> 00:13:59.519 align:start position:0%
compile with the JIT but requires very
 

00:13:59.519 --> 00:14:04.340 align:start position:0%
compile with the JIT but requires very
little<00:13:59.819><c> gas</c><00:14:00.089><c> to</c><00:14:00.600><c> run</c><00:14:02.329><c> and</c><00:14:03.329><c> you</c><00:14:04.050><c> start</c>

00:14:04.340 --> 00:14:04.350 align:start position:0%
little gas to run and you start
 

00:14:04.350 --> 00:14:09.350 align:start position:0%
little gas to run and you start
hammering<00:14:05.120><c> those</c><00:14:06.139><c> contracts</c><00:14:07.519><c> you</c><00:14:08.519><c> can</c><00:14:08.910><c> you</c>

00:14:09.350 --> 00:14:09.360 align:start position:0%
hammering those contracts you can you
 

00:14:09.360 --> 00:14:11.749 align:start position:0%
hammering those contracts you can you
can<00:14:09.569><c> do</c><00:14:09.720><c> a</c><00:14:09.750><c> really</c><00:14:10.139><c> nice</c><00:14:10.319><c> you</c><00:14:11.040><c> know</c><00:14:11.160><c> do</c><00:14:11.459><c> s</c>

00:14:11.749 --> 00:14:11.759 align:start position:0%
can do a really nice you know do s
 

00:14:11.759 --> 00:14:14.809 align:start position:0%
can do a really nice you know do s
attack<00:14:12.410><c> so</c><00:14:13.410><c> if</c><00:14:13.740><c> you're</c><00:14:13.889><c> going</c><00:14:14.069><c> to</c><00:14:14.370><c> do</c><00:14:14.579><c> any</c>

00:14:14.809 --> 00:14:14.819 align:start position:0%
attack so if you're going to do any
 

00:14:14.819 --> 00:14:17.629 align:start position:0%
attack so if you're going to do any
compiling<00:14:15.389><c> you've</c><00:14:15.839><c> got</c><00:14:16.050><c> to</c><00:14:16.230><c> do</c><00:14:16.410><c> it</c><00:14:16.620><c> up</c><00:14:16.829><c> front</c>

00:14:17.629 --> 00:14:17.639 align:start position:0%
compiling you've got to do it up front
 

00:14:17.639 --> 00:14:27.470 align:start position:0%
compiling you've got to do it up front
at<00:14:17.970><c> deployment</c><00:14:18.509><c> time</c><00:14:20.509><c> and</c><00:14:25.699><c> Marvin's</c><00:14:26.699><c> notion</c>

00:14:27.470 --> 00:14:27.480 align:start position:0%
at deployment time and Marvin's notion
 

00:14:27.480 --> 00:14:33.049 align:start position:0%
at deployment time and Marvin's notion
of<00:14:28.009><c> transpilers</c><00:14:29.809><c> I</c><00:14:30.809><c> think</c><00:14:31.589><c> is</c><00:14:31.769><c> very</c><00:14:32.189><c> important</c>

00:14:33.049 --> 00:14:33.059 align:start position:0%
of transpilers I think is very important
 

00:14:33.059 --> 00:14:35.889 align:start position:0%
of transpilers I think is very important
here<00:14:33.480><c> um</c>

00:14:35.889 --> 00:14:35.899 align:start position:0%
here um
 

00:14:35.899 --> 00:14:41.509 align:start position:0%
here um
1.5<00:14:36.899><c> could</c><00:14:37.559><c> be</c><00:14:37.680><c> transpiled</c><00:14:38.309><c> to</c><00:14:38.610><c> 2.0</c><00:14:39.410><c> yeah</c><00:14:40.519><c> 2.0</c>

00:14:41.509 --> 00:14:41.519 align:start position:0%
1.5 could be transpiled to 2.0 yeah 2.0
 

00:14:41.519 --> 00:14:46.369 align:start position:0%
1.5 could be transpiled to 2.0 yeah 2.0
can<00:14:41.759><c> be</c><00:14:41.879><c> transpiled</c><00:14:42.509><c> to</c><00:14:42.779><c> 1.5</c><00:14:43.819><c> 1.5</c><00:14:44.819><c> or</c><00:14:45.389><c> 2.0</c><00:14:46.079><c> can</c>

00:14:46.369 --> 00:14:46.379 align:start position:0%
can be transpiled to 1.5 1.5 or 2.0 can
 

00:14:46.379 --> 00:14:49.370 align:start position:0%
can be transpiled to 1.5 1.5 or 2.0 can
be<00:14:46.529><c> transpiled</c><00:14:47.100><c> to</c><00:14:47.399><c> 1.0</c><00:14:48.089><c> either</c><00:14:48.809><c> of</c><00:14:49.079><c> them</c><00:14:49.259><c> can</c>

00:14:49.370 --> 00:14:49.380 align:start position:0%
be transpiled to 1.0 either of them can
 

00:14:49.380 --> 00:14:51.689 align:start position:0%
be transpiled to 1.0 either of them can
be<00:14:49.559><c> transferred</c><00:14:50.100><c> to</c><00:14:50.130><c> the</c><00:14:50.279><c> JVM</c>

00:14:51.689 --> 00:14:51.699 align:start position:0%
be transferred to the JVM
 

00:14:51.699 --> 00:14:55.949 align:start position:0%
be transferred to the JVM
you<00:14:52.269><c> can</c><00:14:52.480><c> make</c><00:14:52.629><c> up</c><00:14:52.839><c> new</c><00:14:53.079><c> ones</c><00:14:53.290><c> pretty</c><00:14:54.220><c> much</c><00:14:54.959><c> you</c>

00:14:55.949 --> 00:14:55.959 align:start position:0%
you can make up new ones pretty much you
 

00:14:55.959 --> 00:14:58.409 align:start position:0%
you can make up new ones pretty much you
know<00:14:56.019><c> you</c><00:14:56.259><c> can</c><00:14:56.529><c> compile</c><00:14:56.949><c> any</c><00:14:57.429><c> VM</c><00:14:57.730><c> you</c><00:14:57.759><c> wanted</c>

00:14:58.409 --> 00:14:58.419 align:start position:0%
know you can compile any VM you wanted
 

00:14:58.419 --> 00:15:03.299 align:start position:0%
know you can compile any VM you wanted
to<00:14:58.899><c> some</c><00:14:59.139><c> other</c><00:14:59.410><c> VM</c><00:15:00.449><c> and</c><00:15:01.739><c> he</c><00:15:02.739><c> also</c><00:15:02.889><c> has</c><00:15:03.279><c> a</c>

00:15:03.299 --> 00:15:03.309 align:start position:0%
to some other VM and he also has a
 

00:15:03.309 --> 00:15:06.239 align:start position:0%
to some other VM and he also has a
notion<00:15:03.669><c> of</c><00:15:03.999><c> gas</c><00:15:04.239><c> injection</c><00:15:04.839><c> so</c><00:15:05.829><c> you</c><00:15:05.889><c> put</c>

00:15:06.239 --> 00:15:06.249 align:start position:0%
notion of gas injection so you put
 

00:15:06.249 --> 00:15:08.099 align:start position:0%
notion of gas injection so you put
little<00:15:06.279><c> pieces</c><00:15:06.639><c> of</c><00:15:07.059><c> code</c><00:15:07.329><c> into</c><00:15:07.660><c> the</c><00:15:07.929><c> right</c>

00:15:08.099 --> 00:15:08.109 align:start position:0%
little pieces of code into the right
 

00:15:08.109 --> 00:15:13.289 align:start position:0%
little pieces of code into the right
places<00:15:08.470><c> to</c><00:15:09.009><c> count</c><00:15:09.249><c> the</c><00:15:09.429><c> gas</c><00:15:10.679><c> and</c><00:15:12.119><c> what</c><00:15:13.119><c> this</c>

00:15:13.289 --> 00:15:13.299 align:start position:0%
places to count the gas and what this
 

00:15:13.299 --> 00:15:17.329 align:start position:0%
places to count the gas and what this
means<00:15:13.600><c> to</c><00:15:14.079><c> me</c><00:15:14.410><c> is</c><00:15:14.850><c> it</c><00:15:15.850><c> doesn't</c><00:15:16.269><c> matter</c><00:15:16.689><c> what</c>

00:15:17.329 --> 00:15:17.339 align:start position:0%
means to me is it doesn't matter what
 

00:15:17.339 --> 00:15:22.369 align:start position:0%
means to me is it doesn't matter what
execution<00:15:18.339><c> engine</c><00:15:19.059><c> a</c><00:15:19.329><c> client</c><00:15:19.989><c> chooses</c>

00:15:22.369 --> 00:15:22.379 align:start position:0%
execution engine a client chooses
 

00:15:22.379 --> 00:15:27.210 align:start position:0%
execution engine a client chooses
because<00:15:23.639><c> on</c><00:15:24.639><c> the</c><00:15:25.179><c> blockchain</c><00:15:25.470><c> you</c><00:15:26.470><c> can</c><00:15:26.679><c> put</c><00:15:26.980><c> a</c>

00:15:27.210 --> 00:15:27.220 align:start position:0%
because on the blockchain you can put a
 

00:15:27.220 --> 00:15:35.039 align:start position:0%
because on the blockchain you can put a
contract<00:15:27.989><c> that</c><00:15:28.989><c> translates</c><00:15:32.819><c> into</c><00:15:34.049><c> that</c>

00:15:35.039 --> 00:15:35.049 align:start position:0%
contract that translates into that
 

00:15:35.049 --> 00:15:38.159 align:start position:0%
contract that translates into that
execution<00:15:35.679><c> engine</c><00:15:36.249><c> so</c><00:15:36.999><c> these</c><00:15:37.149><c> are</c><00:15:37.419><c> these</c><00:15:37.899><c> can</c>

00:15:38.159 --> 00:15:38.169 align:start position:0%
execution engine so these are these can
 

00:15:38.169 --> 00:15:41.220 align:start position:0%
execution engine so these are these can
be<00:15:38.319><c> completely</c><00:15:38.799><c> independent</c><00:15:39.220><c> choices</c><00:15:39.939><c> and</c><00:15:40.779><c> we</c>

00:15:41.220 --> 00:15:41.230 align:start position:0%
be completely independent choices and we
 

00:15:41.230 --> 00:15:43.439 align:start position:0%
be completely independent choices and we
could<00:15:41.470><c> actually</c><00:15:41.679><c> choose</c><00:15:42.279><c> to</c><00:15:42.309><c> support</c><00:15:42.850><c> a</c>

00:15:43.439 --> 00:15:43.449 align:start position:0%
could actually choose to support a
 

00:15:43.449 --> 00:15:47.720 align:start position:0%
could actually choose to support a
number<00:15:44.019><c> of</c><00:15:44.259><c> VMS</c><00:15:45.100><c> if</c><00:15:45.369><c> we</c><00:15:45.669><c> wanted</c><00:15:46.059><c> to</c><00:15:46.119><c> and</c>

00:15:47.720 --> 00:15:47.730 align:start position:0%
number of VMS if we wanted to and
 

00:15:47.730 --> 00:15:49.889 align:start position:0%
number of VMS if we wanted to and
independent<00:15:48.730><c> parties</c><00:15:49.149><c> could</c><00:15:49.480><c> decide</c><00:15:49.869><c> to</c>

00:15:49.889 --> 00:15:49.899 align:start position:0%
independent parties could decide to
 

00:15:49.899 --> 00:15:53.220 align:start position:0%
independent parties could decide to
support<00:15:50.799><c> a</c><00:15:50.949><c> different</c><00:15:51.129><c> VM</c><00:15:51.699><c> but</c><00:15:52.600><c> a</c><00:15:52.629><c> transpiler</c>

00:15:53.220 --> 00:15:53.230 align:start position:0%
support a different VM but a transpiler
 

00:15:53.230 --> 00:16:03.869 align:start position:0%
support a different VM but a transpiler
on<00:15:53.619><c> the</c><00:15:53.769><c> blockchain</c><00:15:54.040><c> and</c><00:15:54.929><c> away</c><00:15:55.929><c> they</c><00:15:56.139><c> go</c><00:16:02.879><c> gee</c>

00:16:03.869 --> 00:16:03.879 align:start position:0%
on the blockchain and away they go gee
 

00:16:03.879 --> 00:16:08.729 align:start position:0%
on the blockchain and away they go gee
I'm<00:16:04.059><c> almost</c><00:16:04.389><c> out</c><00:16:04.569><c> of</c><00:16:04.629><c> slides</c><00:16:07.410><c> and</c><00:16:08.410><c> there's</c><00:16:08.589><c> no</c>

00:16:08.729 --> 00:16:08.739 align:start position:0%
I'm almost out of slides and there's no
 

00:16:08.739 --> 00:16:13.499 align:start position:0%
I'm almost out of slides and there's no
sound<00:16:09.039><c> that's</c><00:16:09.669><c> really</c><00:16:10.029><c> too</c><00:16:10.209><c> bad</c><00:16:11.850><c> so</c><00:16:12.850><c> what</c><00:16:13.239><c> what</c>

00:16:13.499 --> 00:16:13.509 align:start position:0%
sound that's really too bad so what what
 

00:16:13.509 --> 00:16:15.840 align:start position:0%
sound that's really too bad so what what
is<00:16:13.720><c> the</c><00:16:13.989><c> big</c><00:16:14.199><c> deal</c><00:16:14.379><c> about</c><00:16:14.439><c> native</c><00:16:15.129><c> performance</c>

00:16:15.840 --> 00:16:15.850 align:start position:0%
is the big deal about native performance
 

00:16:15.850 --> 00:16:19.109 align:start position:0%
is the big deal about native performance
and<00:16:16.410><c> what's</c><00:16:17.410><c> the</c><00:16:17.589><c> big</c><00:16:17.769><c> deal</c><00:16:17.980><c> about</c><00:16:18.009><c> being</c><00:16:18.399><c> lean</c>

00:16:19.109 --> 00:16:19.119 align:start position:0%
and what's the big deal about being lean
 

00:16:19.119 --> 00:16:22.949 align:start position:0%
and what's the big deal about being lean
and<00:16:19.359><c> mean</c><00:16:19.539><c> and</c><00:16:19.839><c> close</c><00:16:20.259><c> to</c><00:16:20.529><c> the</c><00:16:20.649><c> metal</c><00:16:21.089><c> well</c><00:16:22.089><c> we</c>

00:16:22.949 --> 00:16:22.959 align:start position:0%
and mean and close to the metal well we
 

00:16:22.959 --> 00:16:25.529 align:start position:0%
and mean and close to the metal well we
saw<00:16:23.199><c> the</c><00:16:23.259><c> electric</c><00:16:23.859><c> dragsters</c><00:16:24.489><c> here's</c><00:16:25.149><c> like</c><00:16:25.480><c> a</c>

00:16:25.529 --> 00:16:25.539 align:start position:0%
saw the electric dragsters here's like a
 

00:16:25.539 --> 00:16:28.889 align:start position:0%
saw the electric dragsters here's like a
real<00:16:26.079><c> top</c><00:16:26.679><c> fuel</c><00:16:27.100><c> dragster</c><00:16:27.449><c> they</c><00:16:28.449><c> run</c><00:16:28.720><c> on</c><00:16:28.869><c> a</c>

00:16:28.889 --> 00:16:28.899 align:start position:0%
real top fuel dragster they run on a
 

00:16:28.899 --> 00:16:35.659 align:start position:0%
real top fuel dragster they run on a
mixture<00:16:29.410><c> of</c><00:16:29.589><c> diesel</c><00:16:30.189><c> fuel</c><00:16:30.459><c> and</c><00:16:32.009><c> nitro</c><00:16:33.009><c> methane</c>

00:16:35.659 --> 00:16:35.669 align:start position:0%
 
 

00:16:35.669 --> 00:16:42.210 align:start position:0%
 
and<00:16:39.629><c> just</c><00:16:40.629><c> about</c><00:16:40.929><c> a</c><00:16:40.989><c> month</c><00:16:41.259><c> and</c><00:16:41.529><c> a</c><00:16:41.649><c> half</c><00:16:41.679><c> ago</c>

00:16:42.210 --> 00:16:42.220 align:start position:0%
and just about a month and a half ago
 

00:16:42.220 --> 00:16:45.210 align:start position:0%
and just about a month and a half ago
not<00:16:43.059><c> too</c><00:16:43.419><c> far</c><00:16:43.720><c> from</c><00:16:44.049><c> Ming's</c><00:16:44.379><c> place</c><00:16:44.859><c> in</c>

00:16:45.210 --> 00:16:45.220 align:start position:0%
not too far from Ming's place in
 

00:16:45.220 --> 00:16:54.150 align:start position:0%
not too far from Ming's place in
Michigan<00:16:46.139><c> this</c><00:16:47.139><c> guy</c><00:16:48.809><c> got</c><00:16:49.809><c> the</c><00:16:49.839><c> world</c><00:16:50.019><c> record</c>

00:16:54.150 --> 00:16:54.160 align:start position:0%
 
 

00:16:54.160 --> 00:17:00.130 align:start position:0%
 
and<00:16:55.160><c> it's</c><00:16:55.460><c> over</c><00:16:57.640><c> 338</c><00:16:58.640><c> miles</c><00:16:58.970><c> per</c><00:16:59.390><c> hour</c><00:16:59.600><c> and</c><00:17:00.080><c> a</c>

00:17:00.130 --> 00:17:00.140 align:start position:0%
and it's over 338 miles per hour and a
 

00:17:00.140 --> 00:17:04.600 align:start position:0%
and it's over 338 miles per hour and a
quarter<00:17:00.350><c> mile</c><00:17:01.180><c> these</c><00:17:02.180><c> guys</c><00:17:02.480><c> pull</c><00:17:03.020><c> about</c><00:17:03.890><c> 5</c><00:17:04.550><c> or</c>

00:17:04.600 --> 00:17:04.610 align:start position:0%
quarter mile these guys pull about 5 or
 

00:17:04.610 --> 00:17:08.050 align:start position:0%
quarter mile these guys pull about 5 or
6<00:17:04.880><c> G's</c><00:17:05.600><c> which</c><00:17:06.560><c> is</c><00:17:06.770><c> about</c><00:17:07.069><c> the</c><00:17:07.339><c> same</c><00:17:07.640><c> as</c><00:17:07.910><c> an</c>

00:17:08.050 --> 00:17:08.060 align:start position:0%
6 G's which is about the same as an
 

00:17:08.060 --> 00:17:10.449 align:start position:0%
6 G's which is about the same as an
astronaut<00:17:08.780><c> taking</c><00:17:09.589><c> off</c><00:17:09.800><c> in</c><00:17:10.069><c> the</c><00:17:10.100><c> space</c>

00:17:10.449 --> 00:17:10.459 align:start position:0%
astronaut taking off in the space
 

00:17:10.459 --> 00:17:20.319 align:start position:0%
astronaut taking off in the space
shuttle<00:17:16.870><c> but</c><00:17:18.189><c> there's</c><00:17:19.189><c> a</c><00:17:19.310><c> problem</c><00:17:19.550><c> with</c><00:17:19.819><c> going</c>

00:17:20.319 --> 00:17:20.329 align:start position:0%
shuttle but there's a problem with going
 

00:17:20.329 --> 00:17:23.980 align:start position:0%
shuttle but there's a problem with going
fully<00:17:20.600><c> native</c><00:17:21.069><c> in</c><00:17:22.069><c> the</c><00:17:22.610><c> save</c><00:17:23.030><c> world</c><00:17:23.360><c> we</c><00:17:23.720><c> call</c>

00:17:23.980 --> 00:17:23.990 align:start position:0%
fully native in the save world we call
 

00:17:23.990 --> 00:17:34.680 align:start position:0%
fully native in the save world we call
it<00:17:24.400><c> undefined</c><00:17:25.400><c> behavior</c><00:17:29.560><c> hello</c>

00:17:34.680 --> 00:17:34.690 align:start position:0%
 
 

00:17:34.690 --> 00:17:43.530 align:start position:0%
 
no<00:17:35.690><c> that's</c><00:17:36.290><c> the</c><00:17:36.530><c> less</c><00:17:37.600><c> come</c><00:17:38.600><c> here</c><00:17:40.630><c> okay</c>

00:17:43.530 --> 00:17:43.540 align:start position:0%
no that's the less come here okay
 

00:17:43.540 --> 00:17:50.530 align:start position:0%
no that's the less come here okay
play<00:17:44.620><c> play</c><00:17:46.060><c> there</c><00:17:47.060><c> it</c><00:17:47.180><c> goes</c><00:17:49.120><c> what's</c><00:17:50.120><c> going</c><00:17:50.420><c> on</c>

00:17:50.530 --> 00:17:50.540 align:start position:0%
play play there it goes what's going on
 

00:17:50.540 --> 00:17:55.169 align:start position:0%
play play there it goes what's going on
my<00:17:50.750><c> screen</c>

00:17:55.169 --> 00:17:55.179 align:start position:0%
 
 

00:17:55.179 --> 00:18:03.269 align:start position:0%
 
we'll<00:17:56.109><c> try</c><00:17:56.409><c> it</c><00:17:56.440><c> again</c><00:18:00.960><c> dudu</c><00:18:01.960><c> the</c><00:18:02.950><c> driver</c>

00:18:03.269 --> 00:18:03.279 align:start position:0%
we'll try it again dudu the driver
 

00:18:03.279 --> 00:18:09.599 align:start position:0%
we'll try it again dudu the driver
actually<00:18:04.089><c> walked</c><00:18:04.330><c> away</c><00:18:04.919><c> unscratched</c><00:18:05.919><c> I</c><00:18:08.609><c> love</c>

00:18:09.599 --> 00:18:09.609 align:start position:0%
actually walked away unscratched I love
 

00:18:09.609 --> 00:18:24.419 align:start position:0%
actually walked away unscratched I love
this<00:18:09.759><c> guy</c><00:18:10.029><c> we'll</c><00:18:10.629><c> give</c><00:18:10.779><c> you</c><00:18:10.899><c> one</c><00:18:11.080><c> more</c><00:18:22.259><c> and</c><00:18:23.429><c> it</c>

00:18:24.419 --> 00:18:24.429 align:start position:0%
this guy we'll give you one more and it
 

00:18:24.429 --> 00:18:36.709 align:start position:0%
this guy we'll give you one more and it
turns<00:18:24.669><c> out</c><00:18:24.820><c> I'm</c><00:18:24.999><c> done</c><00:18:25.210><c> so</c><00:18:26.080><c> I</c><00:18:33.119><c> knew</c><00:18:34.119><c> it</c>

00:18:36.709 --> 00:18:36.719 align:start position:0%
 
 

00:18:36.719 --> 00:18:46.820 align:start position:0%
 
audiences<00:18:37.719><c> love</c><00:18:37.979><c> explosions</c>

00:18:46.820 --> 00:18:46.830 align:start position:0%
 
 

00:18:46.830 --> 00:18:54.410 align:start position:0%
 
[Music]

