WEBVTT
Kind: captions
Language: en

00:00:14.259 --> 00:00:15.909 align:start position:0%
 
thank<00:00:15.259><c> you</c>

00:00:15.909 --> 00:00:15.919 align:start position:0%
thank you
 

00:00:15.919 --> 00:00:17.770 align:start position:0%
thank you
corrupted<00:00:16.460><c> good</c><00:00:17.060><c> afternoon</c><00:00:17.270><c> everyone</c><00:00:17.660><c> and</c>

00:00:17.770 --> 00:00:17.780 align:start position:0%
corrupted good afternoon everyone and
 

00:00:17.780 --> 00:00:20.560 align:start position:0%
corrupted good afternoon everyone and
welcome<00:00:18.020><c> to</c><00:00:18.620><c> this</c><00:00:18.740><c> talk</c><00:00:19.010><c> about</c><00:00:19.820><c> sacrify</c>

00:00:20.560 --> 00:00:20.570 align:start position:0%
welcome to this talk about sacrify
 

00:00:20.570 --> 00:00:23.110 align:start position:0%
welcome to this talk about sacrify
Sakura<00:00:21.530><c> is</c><00:00:21.770><c> a</c><00:00:21.800><c> smart</c><00:00:22.190><c> contract</c><00:00:22.310><c> verification</c>

00:00:23.110 --> 00:00:23.120 align:start position:0%
Sakura is a smart contract verification
 

00:00:23.120 --> 00:00:25.540 align:start position:0%
Sakura is a smart contract verification
tool<00:00:23.500><c> which</c><00:00:24.500><c> was</c><00:00:24.710><c> developed</c><00:00:25.070><c> by</c><00:00:25.130><c> the</c><00:00:25.220><c> people</c>

00:00:25.540 --> 00:00:25.550 align:start position:0%
tool which was developed by the people
 

00:00:25.550 --> 00:00:26.890 align:start position:0%
tool which was developed by the people
that<00:00:25.670><c> you</c><00:00:25.760><c> can</c><00:00:25.880><c> see</c><00:00:26.090><c> on</c><00:00:26.210><c> this</c><00:00:26.360><c> slide</c>

00:00:26.890 --> 00:00:26.900 align:start position:0%
that you can see on this slide
 

00:00:26.900 --> 00:00:29.140 align:start position:0%
that you can see on this slide
it<00:00:27.320><c> was</c><00:00:27.440><c> developed</c><00:00:27.860><c> at</c><00:00:27.950><c> ETH</c><00:00:28.430><c> Zurich</c><00:00:28.730><c> which</c><00:00:28.940><c> is</c>

00:00:29.140 --> 00:00:29.150 align:start position:0%
it was developed at ETH Zurich which is
 

00:00:29.150 --> 00:00:30.730 align:start position:0%
it was developed at ETH Zurich which is
leading<00:00:29.750><c> Technical</c><00:00:30.230><c> University</c><00:00:30.260><c> in</c>

00:00:30.730 --> 00:00:30.740 align:start position:0%
leading Technical University in
 

00:00:30.740 --> 00:00:33.250 align:start position:0%
leading Technical University in
Switzerland<00:00:31.340><c> and</c><00:00:31.880><c> you</c><00:00:32.719><c> can</c><00:00:32.840><c> learn</c><00:00:33.020><c> more</c><00:00:33.200><c> about</c>

00:00:33.250 --> 00:00:33.260 align:start position:0%
Switzerland and you can learn more about
 

00:00:33.260 --> 00:00:36.250 align:start position:0%
Switzerland and you can learn more about
sacrified<00:00:34.250><c> by</c><00:00:34.490><c> visiting</c><00:00:35.329><c> the</c><00:00:35.480><c> various</c><00:00:36.020><c> links</c>

00:00:36.250 --> 00:00:36.260 align:start position:0%
sacrified by visiting the various links
 

00:00:36.260 --> 00:00:37.810 align:start position:0%
sacrified by visiting the various links
that<00:00:36.440><c> will</c><00:00:36.560><c> appear</c><00:00:36.829><c> in</c><00:00:36.920><c> these</c><00:00:37.010><c> slides</c><00:00:37.220><c> and</c><00:00:37.579><c> I</c>

00:00:37.810 --> 00:00:37.820 align:start position:0%
that will appear in these slides and I
 

00:00:37.820 --> 00:00:39.400 align:start position:0%
that will appear in these slides and I
will<00:00:38.000><c> make</c><00:00:38.810><c> the</c><00:00:38.990><c> slides</c><00:00:39.230><c> available</c>

00:00:39.400 --> 00:00:39.410 align:start position:0%
will make the slides available
 

00:00:39.410 --> 00:00:43.120 align:start position:0%
will make the slides available
afterwards<00:00:40.280><c> after</c><00:00:40.790><c> this</c><00:00:40.940><c> talk</c><00:00:41.620><c> so</c><00:00:42.620><c> first</c><00:00:42.920><c> let</c>

00:00:43.120 --> 00:00:43.130 align:start position:0%
afterwards after this talk so first let
 

00:00:43.130 --> 00:00:47.200 align:start position:0%
afterwards after this talk so first let
me<00:00:43.160><c> let</c><00:00:43.970><c> me</c><00:00:45.190><c> tell</c><00:00:46.190><c> you</c><00:00:46.310><c> the</c><00:00:46.460><c> reasoning</c><00:00:46.850><c> behind</c>

00:00:47.200 --> 00:00:47.210 align:start position:0%
me let me tell you the reasoning behind
 

00:00:47.210 --> 00:00:49.750 align:start position:0%
me let me tell you the reasoning behind
Sakura<00:00:47.989><c> Phi</c><00:00:48.200><c> and</c><00:00:48.440><c> motivate</c><00:00:49.160><c> the</c><00:00:49.310><c> creation</c><00:00:49.670><c> of</c>

00:00:49.750 --> 00:00:49.760 align:start position:0%
Sakura Phi and motivate the creation of
 

00:00:49.760 --> 00:00:53.250 align:start position:0%
Sakura Phi and motivate the creation of
Sakura<00:00:50.120><c> Phi</c><00:00:50.440><c> so</c><00:00:51.610><c> most</c><00:00:52.610><c> of</c><00:00:52.700><c> you</c><00:00:52.850><c> are</c><00:00:53.090><c> aware</c>

00:00:53.250 --> 00:00:53.260 align:start position:0%
Sakura Phi so most of you are aware
 

00:00:53.260 --> 00:00:56.049 align:start position:0%
Sakura Phi so most of you are aware
assume<00:00:54.260><c> in</c><00:00:54.500><c> this</c><00:00:54.680><c> room</c><00:00:54.890><c> of</c><00:00:55.130><c> the</c><00:00:55.430><c> various</c>

00:00:56.049 --> 00:00:56.059 align:start position:0%
assume in this room of the various
 

00:00:56.059 --> 00:00:57.940 align:start position:0%
assume in this room of the various
security<00:00:57.020><c> flaws</c><00:00:57.320><c> that</c><00:00:57.350><c> have</c><00:00:57.590><c> plagued</c><00:00:57.920><c> the</c>

00:00:57.940 --> 00:00:57.950 align:start position:0%
security flaws that have plagued the
 

00:00:57.950 --> 00:00:59.590 align:start position:0%
security flaws that have plagued the
theorems<00:00:58.430><c> in</c><00:00:58.579><c> the</c><00:00:58.700><c> beginning</c><00:00:59.090><c> so</c><00:00:59.270><c> the</c><00:00:59.420><c> most</c>

00:00:59.590 --> 00:00:59.600 align:start position:0%
theorems in the beginning so the most
 

00:00:59.600 --> 00:01:02.110 align:start position:0%
theorems in the beginning so the most
famous<00:00:59.809><c> one</c><00:01:00.079><c> remains</c><00:01:00.440><c> the</c><00:01:00.890><c> dowel</c><00:01:01.250><c> bug</c><00:01:01.489><c> which</c>

00:01:02.110 --> 00:01:02.120 align:start position:0%
famous one remains the dowel bug which
 

00:01:02.120 --> 00:01:04.450 align:start position:0%
famous one remains the dowel bug which
eventually<00:01:02.480><c> led</c><00:01:02.809><c> the</c><00:01:03.020><c> developers</c><00:01:03.500><c> to</c><00:01:03.920><c> do</c><00:01:04.430><c> a</c>

00:01:04.450 --> 00:01:04.460 align:start position:0%
eventually led the developers to do a
 

00:01:04.460 --> 00:01:06.760 align:start position:0%
eventually led the developers to do a
hard<00:01:04.790><c> fork</c><00:01:05.089><c> of</c><00:01:05.299><c> the</c><00:01:05.329><c> chain</c><00:01:05.659><c> so</c><00:01:06.260><c> as</c><00:01:06.380><c> to</c><00:01:06.500><c> river</c>

00:01:06.760 --> 00:01:06.770 align:start position:0%
hard fork of the chain so as to river
 

00:01:06.770 --> 00:01:08.740 align:start position:0%
hard fork of the chain so as to river
the<00:01:06.950><c> state</c><00:01:07.310><c> the</c><00:01:07.520><c> state</c><00:01:07.760><c> change</c><00:01:08.000><c> is</c><00:01:08.150><c> created</c><00:01:08.600><c> by</c>

00:01:08.740 --> 00:01:08.750 align:start position:0%
the state the state change is created by
 

00:01:08.750 --> 00:01:12.000 align:start position:0%
the state the state change is created by
the<00:01:08.810><c> attackers</c><00:01:10.330><c> another</c><00:01:11.330><c> more</c><00:01:11.840><c> recent</c>

00:01:12.000 --> 00:01:12.010 align:start position:0%
the attackers another more recent
 

00:01:12.010 --> 00:01:14.830 align:start position:0%
the attackers another more recent
security<00:01:13.010><c> flaw</c><00:01:13.490><c> was</c><00:01:13.700><c> a</c><00:01:13.760><c> multi</c><00:01:14.150><c> security</c><00:01:14.659><c> bug</c>

00:01:14.830 --> 00:01:14.840 align:start position:0%
security flaw was a multi security bug
 

00:01:14.840 --> 00:01:16.780 align:start position:0%
security flaw was a multi security bug
which<00:01:15.409><c> resulted</c><00:01:15.890><c> in</c><00:01:15.979><c> 30</c><00:01:16.310><c> Millions</c>

00:01:16.780 --> 00:01:16.790 align:start position:0%
which resulted in 30 Millions
 

00:01:16.790 --> 00:01:21.430 align:start position:0%
which resulted in 30 Millions
in<00:01:17.360><c> a</c><00:01:17.510><c> theorem</c><00:01:18.250><c> robbed</c><00:01:19.250><c> by</c><00:01:19.520><c> by</c><00:01:20.060><c> attackers</c><00:01:20.510><c> so</c>

00:01:21.430 --> 00:01:21.440 align:start position:0%
in a theorem robbed by by attackers so
 

00:01:21.440 --> 00:01:23.890 align:start position:0%
in a theorem robbed by by attackers so
let<00:01:22.070><c> me</c><00:01:22.220><c> go</c><00:01:22.310><c> into</c><00:01:22.580><c> details</c><00:01:22.880><c> of</c><00:01:23.090><c> this</c><00:01:23.150><c> second</c>

00:01:23.890 --> 00:01:23.900 align:start position:0%
let me go into details of this second
 

00:01:23.900 --> 00:01:27.219 align:start position:0%
let me go into details of this second
floss<00:01:24.140><c> more</c><00:01:24.560><c> more</c><00:01:25.040><c> precisely</c><00:01:26.030><c> so</c><00:01:26.810><c> it</c><00:01:27.020><c> was</c><00:01:27.200><c> a</c>

00:01:27.219 --> 00:01:27.229 align:start position:0%
floss more more precisely so it was a
 

00:01:27.229 --> 00:01:30.070 align:start position:0%
floss more more precisely so it was a
case<00:01:27.440><c> of</c><00:01:27.500><c> in</c><00:01:27.950><c> privileged</c><00:01:28.340><c> right</c><00:01:28.549><c> storage</c><00:01:29.090><c> here</c>

00:01:30.070 --> 00:01:30.080 align:start position:0%
case of in privileged right storage here
 

00:01:30.080 --> 00:01:32.440 align:start position:0%
case of in privileged right storage here
I<00:01:30.140><c> have</c><00:01:30.409><c> a</c><00:01:30.439><c> really</c><00:01:30.799><c> simple</c><00:01:31.130><c> example</c><00:01:31.790><c> of</c><00:01:31.909><c> this</c>

00:01:32.440 --> 00:01:32.450 align:start position:0%
I have a really simple example of this
 

00:01:32.450 --> 00:01:34.690 align:start position:0%
I have a really simple example of this
kind<00:01:32.630><c> of</c><00:01:32.720><c> flaw</c><00:01:32.990><c> so</c><00:01:33.380><c> just</c><00:01:33.770><c> keep</c><00:01:33.950><c> in</c><00:01:34.070><c> mind</c><00:01:34.310><c> for</c>

00:01:34.690 --> 00:01:34.700 align:start position:0%
kind of flaw so just keep in mind for
 

00:01:34.700 --> 00:01:36.550 align:start position:0%
kind of flaw so just keep in mind for
all<00:01:34.850><c> the</c><00:01:35.000><c> examples</c><00:01:35.270><c> that</c><00:01:35.450><c> are</c><00:01:35.630><c> going</c><00:01:35.840><c> to</c><00:01:36.140><c> come</c>

00:01:36.550 --> 00:01:36.560 align:start position:0%
all the examples that are going to come
 

00:01:36.560 --> 00:01:38.770 align:start position:0%
all the examples that are going to come
that<00:01:37.100><c> these</c><00:01:37.820><c> are</c><00:01:38.030><c> meant</c><00:01:38.270><c> only</c><00:01:38.450><c> to</c><00:01:38.600><c> illustrate</c>

00:01:38.770 --> 00:01:38.780 align:start position:0%
that these are meant only to illustrate
 

00:01:38.780 --> 00:01:41.469 align:start position:0%
that these are meant only to illustrate
the<00:01:39.590><c> flaws</c><00:01:39.860><c> and</c><00:01:40.070><c> not</c><00:01:40.280><c> are</c><00:01:40.670><c> not</c><00:01:40.729><c> meant</c><00:01:41.119><c> to</c><00:01:41.210><c> to</c>

00:01:41.469 --> 00:01:41.479 align:start position:0%
the flaws and not are not meant to to
 

00:01:41.479 --> 00:01:43.030 align:start position:0%
the flaws and not are not meant to to
have<00:01:41.600><c> a</c><00:01:41.630><c> real</c><00:01:41.900><c> logic</c><00:01:42.290><c> in</c><00:01:42.409><c> themselves</c><00:01:42.770><c> so</c><00:01:42.890><c> as</c>

00:01:43.030 --> 00:01:43.040 align:start position:0%
have a real logic in themselves so as
 

00:01:43.040 --> 00:01:44.679 align:start position:0%
have a real logic in themselves so as
you<00:01:43.159><c> see</c><00:01:43.340><c> here</c><00:01:43.580><c> it's</c><00:01:43.970><c> really</c><00:01:44.210><c> a</c><00:01:44.240><c> toy</c><00:01:44.479><c> example</c>

00:01:44.679 --> 00:01:44.689 align:start position:0%
you see here it's really a toy example
 

00:01:44.689 --> 00:01:47.170 align:start position:0%
you see here it's really a toy example
so<00:01:45.259><c> this</c><00:01:46.009><c> is</c><00:01:46.159><c> a</c><00:01:46.189><c> wallet</c><00:01:46.580><c> contract</c><00:01:47.030><c> which</c>

00:01:47.170 --> 00:01:47.180 align:start position:0%
so this is a wallet contract which
 

00:01:47.180 --> 00:01:49.719 align:start position:0%
so this is a wallet contract which
contains<00:01:47.600><c> the</c><00:01:47.780><c> storage</c><00:01:48.140><c> viable</c><00:01:48.619><c> honor</c><00:01:48.890><c> which</c>

00:01:49.719 --> 00:01:49.729 align:start position:0%
contains the storage viable honor which
 

00:01:49.729 --> 00:01:52.390 align:start position:0%
contains the storage viable honor which
specify<00:01:50.720><c> the</c><00:01:50.780><c> owner</c><00:01:51.080><c> of</c><00:01:51.350><c> this</c><00:01:51.530><c> wallet</c><00:01:51.770><c> and</c>

00:01:52.390 --> 00:01:52.400 align:start position:0%
specify the owner of this wallet and
 

00:01:52.400 --> 00:01:54.179 align:start position:0%
specify the owner of this wallet and
there<00:01:52.790><c> are</c><00:01:52.880><c> two</c><00:01:53.090><c> functions</c><00:01:53.540><c> this</c>

00:01:54.179 --> 00:01:54.189 align:start position:0%
there are two functions this
 

00:01:54.189 --> 00:01:56.620 align:start position:0%
there are two functions this
initialization<00:01:55.189><c> function</c><00:01:55.400><c> init</c><00:01:56.270><c> wallet</c>

00:01:56.620 --> 00:01:56.630 align:start position:0%
initialization function init wallet
 

00:01:56.630 --> 00:01:59.020 align:start position:0%
initialization function init wallet
which<00:01:57.140><c> can</c><00:01:57.380><c> change</c><00:01:57.409><c> the</c><00:01:57.950><c> honor</c><00:01:58.100><c> and</c><00:01:58.369><c> this</c>

00:01:59.020 --> 00:01:59.030 align:start position:0%
which can change the honor and this
 

00:01:59.030 --> 00:02:00.999 align:start position:0%
which can change the honor and this
withdraw<00:01:59.659><c> function</c><00:02:00.170><c> through</c><00:02:00.619><c> which</c><00:02:00.799><c> the</c>

00:02:00.999 --> 00:02:01.009 align:start position:0%
withdraw function through which the
 

00:02:01.009 --> 00:02:04.120 align:start position:0%
withdraw function through which the
owner<00:02:01.250><c> can</c><00:02:01.900><c> actually</c><00:02:02.900><c> withdraw</c><00:02:03.380><c> money</c><00:02:03.710><c> so</c><00:02:04.070><c> you</c>

00:02:04.120 --> 00:02:04.130 align:start position:0%
owner can actually withdraw money so you
 

00:02:04.130 --> 00:02:07.899 align:start position:0%
owner can actually withdraw money so you
can<00:02:04.460><c> see</c><00:02:04.700><c> here</c><00:02:05.470><c> this</c><00:02:06.470><c> works</c><00:02:06.710><c> so</c><00:02:07.579><c> you</c><00:02:07.640><c> can</c><00:02:07.759><c> see</c>

00:02:07.899 --> 00:02:07.909 align:start position:0%
can see here this works so you can see
 

00:02:07.909 --> 00:02:10.059 align:start position:0%
can see here this works so you can see
here<00:02:08.090><c> that</c><00:02:08.119><c> there</c><00:02:08.689><c> is</c><00:02:08.780><c> actually</c><00:02:09.170><c> a</c><00:02:09.200><c> check</c><00:02:09.530><c> to</c>

00:02:10.059 --> 00:02:10.069 align:start position:0%
here that there is actually a check to
 

00:02:10.069 --> 00:02:12.520 align:start position:0%
here that there is actually a check to
prevent<00:02:10.429><c> anybody</c><00:02:10.640><c> else</c><00:02:10.940><c> from</c><00:02:11.200><c> from</c><00:02:12.200><c> from</c>

00:02:12.520 --> 00:02:12.530 align:start position:0%
prevent anybody else from from from
 

00:02:12.530 --> 00:02:15.040 align:start position:0%
prevent anybody else from from from
withdrawing<00:02:13.160><c> money</c><00:02:13.400><c> but</c><00:02:14.270><c> the</c><00:02:14.360><c> problem</c><00:02:14.690><c> in</c>

00:02:15.040 --> 00:02:15.050 align:start position:0%
withdrawing money but the problem in
 

00:02:15.050 --> 00:02:18.010 align:start position:0%
withdrawing money but the problem in
case<00:02:15.260><c> is</c><00:02:15.530><c> that</c><00:02:15.710><c> anybody</c><00:02:16.100><c> can</c><00:02:16.460><c> actually</c><00:02:17.020><c> change</c>

00:02:18.010 --> 00:02:18.020 align:start position:0%
case is that anybody can actually change
 

00:02:18.020 --> 00:02:21.130 align:start position:0%
case is that anybody can actually change
the<00:02:18.140><c> the</c><00:02:19.040><c> owner</c><00:02:19.190><c> viable</c><00:02:19.790><c> which</c><00:02:20.360><c> is</c><00:02:20.540><c> a</c><00:02:20.570><c> problem</c>

00:02:21.130 --> 00:02:21.140 align:start position:0%
the the owner viable which is a problem
 

00:02:21.140 --> 00:02:24.870 align:start position:0%
the the owner viable which is a problem
since<00:02:21.500><c> because</c><00:02:22.430><c> it</c><00:02:22.580><c> makes</c><00:02:22.820><c> the</c><00:02:23.000><c> check</c><00:02:23.600><c> useless</c>

00:02:24.870 --> 00:02:24.880 align:start position:0%
since because it makes the check useless
 

00:02:24.880 --> 00:02:28.800 align:start position:0%
since because it makes the check useless
so<00:02:25.880><c> this</c><00:02:26.240><c> is</c><00:02:26.560><c> this</c><00:02:27.560><c> is</c><00:02:27.620><c> in</c><00:02:27.950><c> a</c><00:02:28.070><c> sense</c><00:02:28.280><c> the</c><00:02:28.730><c> the</c>

00:02:28.800 --> 00:02:28.810 align:start position:0%
so this is this is in a sense the the
 

00:02:28.810 --> 00:02:31.600 align:start position:0%
so this is this is in a sense the the
mystic<00:02:29.810><c> peyote</c><00:02:30.020><c> bug</c><00:02:30.320><c> that</c><00:02:30.830><c> is</c><00:02:31.040><c> you</c><00:02:31.370><c> allow</c>

00:02:31.600 --> 00:02:31.610 align:start position:0%
mystic peyote bug that is you allow
 

00:02:31.610 --> 00:02:34.150 align:start position:0%
mystic peyote bug that is you allow
anybody<00:02:31.910><c> to</c><00:02:32.150><c> write</c><00:02:32.450><c> to</c><00:02:33.020><c> your</c><00:02:33.380><c> storage</c><00:02:33.680><c> even</c>

00:02:34.150 --> 00:02:34.160 align:start position:0%
anybody to write to your storage even
 

00:02:34.160 --> 00:02:36.090 align:start position:0%
anybody to write to your storage even
though<00:02:34.430><c> you</c><00:02:34.490><c> rely</c><00:02:34.850><c> on</c><00:02:34.880><c> it</c><00:02:35.150><c> for</c><00:02:35.180><c> crucial</c>

00:02:36.090 --> 00:02:36.100 align:start position:0%
though you rely on it for crucial
 

00:02:36.100 --> 00:02:39.070 align:start position:0%
though you rely on it for crucial
operations<00:02:37.100><c> so</c><00:02:37.790><c> of</c><00:02:37.970><c> course</c><00:02:38.180><c> the</c><00:02:38.450><c> exploit</c><00:02:38.930><c> in</c>

00:02:39.070 --> 00:02:39.080 align:start position:0%
operations so of course the exploit in
 

00:02:39.080 --> 00:02:41.290 align:start position:0%
operations so of course the exploit in
the<00:02:39.170><c> multi</c><00:02:39.410><c> sick</c><00:02:39.590><c> party</c><00:02:39.950><c> bug</c><00:02:40.160><c> was</c><00:02:40.670><c> much</c><00:02:41.000><c> more</c>

00:02:41.290 --> 00:02:41.300 align:start position:0%
the multi sick party bug was much more
 

00:02:41.300 --> 00:02:43.330 align:start position:0%
the multi sick party bug was much more
complicated<00:02:41.690><c> because</c><00:02:42.410><c> the</c><00:02:42.650><c> contract</c><00:02:43.070><c> itself</c>

00:02:43.330 --> 00:02:43.340 align:start position:0%
complicated because the contract itself
 

00:02:43.340 --> 00:02:46.080 align:start position:0%
complicated because the contract itself
was<00:02:43.580><c> more</c><00:02:43.790><c> sophisticated</c><00:02:44.420><c> but</c><00:02:44.990><c> the</c><00:02:45.560><c> basic</c>

00:02:46.080 --> 00:02:46.090 align:start position:0%
was more sophisticated but the basic
 

00:02:46.090 --> 00:02:50.800 align:start position:0%
was more sophisticated but the basic
vulnerability<00:02:47.090><c> is</c><00:02:47.270><c> the</c><00:02:47.360><c> same</c><00:02:49.270><c> so</c><00:02:50.270><c> there</c><00:02:50.720><c> are</c>

00:02:50.800 --> 00:02:50.810 align:start position:0%
vulnerability is the same so there are
 

00:02:50.810 --> 00:02:52.270 align:start position:0%
vulnerability is the same so there are
many<00:02:51.140><c> more</c><00:02:51.350><c> security</c><00:02:51.890><c> bugs</c><00:02:52.100><c> that</c><00:02:52.190><c> are</c>

00:02:52.270 --> 00:02:52.280 align:start position:0%
many more security bugs that are
 

00:02:52.280 --> 00:02:54.580 align:start position:0%
many more security bugs that are
possible<00:02:52.670><c> with</c><00:02:52.850><c> the</c><00:02:52.970><c> etherium</c><00:02:53.390><c> platform</c><00:02:53.930><c> one</c>

00:02:54.580 --> 00:02:54.590 align:start position:0%
possible with the etherium platform one
 

00:02:54.590 --> 00:02:57.100 align:start position:0%
possible with the etherium platform one
of<00:02:54.680><c> them</c><00:02:54.860><c> is</c><00:02:55.010><c> the</c><00:02:55.520><c> category</c><00:02:56.330><c> of</c><00:02:56.420><c> unexpected</c>

00:02:57.100 --> 00:02:57.110 align:start position:0%
of them is the category of unexpected
 

00:02:57.110 --> 00:02:59.170 align:start position:0%
of them is the category of unexpected
ether<00:02:57.440><c> flows</c><00:02:57.680><c> for</c><00:02:58.220><c> instance</c><00:02:58.490><c> when</c><00:02:58.610><c> you</c><00:02:58.700><c> expect</c>

00:02:59.170 --> 00:02:59.180 align:start position:0%
ether flows for instance when you expect
 

00:02:59.180 --> 00:03:00.730 align:start position:0%
ether flows for instance when you expect
ether<00:02:59.480><c> to</c><00:02:59.630><c> go</c><00:02:59.780><c> to</c><00:02:59.840><c> your</c><00:03:00.020><c> contract</c><00:03:00.410><c> but</c><00:03:00.530><c> don't</c>

00:03:00.730 --> 00:03:00.740 align:start position:0%
ether to go to your contract but don't
 

00:03:00.740 --> 00:03:02.860 align:start position:0%
ether to go to your contract but don't
provide<00:03:01.040><c> any</c><00:03:01.310><c> means</c><00:03:01.610><c> to</c><00:03:01.850><c> withdraw</c><00:03:02.240><c> it</c><00:03:02.300><c> so</c><00:03:02.810><c> you</c>

00:03:02.860 --> 00:03:02.870 align:start position:0%
provide any means to withdraw it so you
 

00:03:02.870 --> 00:03:05.200 align:start position:0%
provide any means to withdraw it so you
end<00:03:03.290><c> up</c><00:03:03.380><c> with</c><00:03:03.440><c> locked</c><00:03:03.830><c> it</c><00:03:04.100><c> ether</c><00:03:04.550><c> in</c><00:03:04.760><c> your</c><00:03:04.970><c> in</c>

00:03:05.200 --> 00:03:05.210 align:start position:0%
end up with locked it ether in your in
 

00:03:05.210 --> 00:03:09.160 align:start position:0%
end up with locked it ether in your in
your<00:03:05.330><c> contract</c><00:03:06.970><c> in</c><00:03:07.970><c> secure</c><00:03:08.390><c> coding</c><00:03:08.750><c> such</c><00:03:09.020><c> as</c>

00:03:09.160 --> 00:03:09.170 align:start position:0%
your contract in secure coding such as
 

00:03:09.170 --> 00:03:11.530 align:start position:0%
your contract in secure coding such as
the<00:03:09.290><c> mystic</c><00:03:09.710><c> party</c><00:03:10.070><c> bug</c><00:03:10.250><c> so</c><00:03:10.520><c> providing</c><00:03:11.150><c> ways</c>

00:03:11.530 --> 00:03:11.540 align:start position:0%
the mystic party bug so providing ways
 

00:03:11.540 --> 00:03:13.630 align:start position:0%
the mystic party bug so providing ways
to<00:03:11.930><c> write</c><00:03:12.110><c> your</c><00:03:12.380><c> storage</c><00:03:12.680><c> without</c><00:03:13.190><c> checking</c>

00:03:13.630 --> 00:03:13.640 align:start position:0%
to write your storage without checking
 

00:03:13.640 --> 00:03:15.700 align:start position:0%
to write your storage without checking
whether<00:03:14.180><c> the</c><00:03:14.510><c> user</c><00:03:14.780><c> should</c><00:03:15.140><c> be</c><00:03:15.170><c> able</c><00:03:15.290><c> to</c><00:03:15.500><c> do</c>

00:03:15.700 --> 00:03:15.710 align:start position:0%
whether the user should be able to do
 

00:03:15.710 --> 00:03:18.970 align:start position:0%
whether the user should be able to do
that<00:03:15.860><c> or</c><00:03:15.980><c> not</c><00:03:16.780><c> the</c><00:03:17.780><c> use</c><00:03:17.930><c> of</c><00:03:18.110><c> and</c><00:03:18.290><c> safe</c><00:03:18.440><c> input</c>

00:03:18.970 --> 00:03:18.980 align:start position:0%
that or not the use of and safe input
 

00:03:18.980 --> 00:03:21.010 align:start position:0%
that or not the use of and safe input
whenever<00:03:19.280><c> you</c><00:03:19.550><c> use</c><00:03:19.580><c> for</c><00:03:20.030><c> instance</c><00:03:20.209><c> timestamp</c>

00:03:21.010 --> 00:03:21.020 align:start position:0%
whenever you use for instance timestamp
 

00:03:21.020 --> 00:03:23.470 align:start position:0%
whenever you use for instance timestamp
or<00:03:21.140><c> block</c><00:03:21.380><c> numbers</c><00:03:21.770><c> and</c><00:03:22.010><c> pretend</c><00:03:23.000><c> that</c><00:03:23.030><c> these</c>

00:03:23.470 --> 00:03:23.480 align:start position:0%
or block numbers and pretend that these
 

00:03:23.480 --> 00:03:26.890 align:start position:0%
or block numbers and pretend that these
are<00:03:23.720><c> random</c><00:03:24.250><c> variables</c><00:03:25.250><c> and</c><00:03:25.459><c> even</c><00:03:26.300><c> feed</c><00:03:26.660><c> them</c>

00:03:26.890 --> 00:03:26.900 align:start position:0%
are random variables and even feed them
 

00:03:26.900 --> 00:03:29.050 align:start position:0%
are random variables and even feed them
into<00:03:27.080><c> cryptographic</c><00:03:27.560><c> functions</c><00:03:28.060><c> for</c>

00:03:29.050 --> 00:03:29.060 align:start position:0%
into cryptographic functions for
 

00:03:29.060 --> 00:03:30.280 align:start position:0%
into cryptographic functions for
instance<00:03:29.120><c> to</c><00:03:29.420><c> create</c><00:03:29.540><c> a</c><00:03:29.690><c> pseudo-random</c>

00:03:30.280 --> 00:03:30.290 align:start position:0%
instance to create a pseudo-random
 

00:03:30.290 --> 00:03:32.590 align:start position:0%
instance to create a pseudo-random
generator<00:03:31.040><c> then</c><00:03:31.430><c> this</c><00:03:31.760><c> is</c><00:03:31.910><c> bound</c><00:03:32.120><c> to</c><00:03:32.240><c> failure</c>

00:03:32.590 --> 00:03:32.600 align:start position:0%
generator then this is bound to failure
 

00:03:32.600 --> 00:03:36.730 align:start position:0%
generator then this is bound to failure
because<00:03:32.990><c> these</c><00:03:33.470><c> variables</c><00:03:33.980><c> can</c><00:03:34.160><c> be</c><00:03:34.240><c> biased</c><00:03:35.740><c> by</c>

00:03:36.730 --> 00:03:36.740 align:start position:0%
because these variables can be biased by
 

00:03:36.740 --> 00:03:39.250 align:start position:0%
because these variables can be biased by
miners<00:03:37.370><c> so</c><00:03:37.910><c> for</c><00:03:38.120><c> instance</c><00:03:38.390><c> a</c><00:03:38.630><c> miner</c><00:03:38.900><c> can</c>

00:03:39.250 --> 00:03:39.260 align:start position:0%
miners so for instance a miner can
 

00:03:39.260 --> 00:03:41.140 align:start position:0%
miners so for instance a miner can
decide<00:03:39.620><c> to</c><00:03:40.160><c> not</c><00:03:40.459><c> to</c><00:03:40.640><c> process</c><00:03:41.000><c> your</c>

00:03:41.140 --> 00:03:41.150 align:start position:0%
decide to not to process your
 

00:03:41.150 --> 00:03:43.180 align:start position:0%
decide to not to process your
transaction<00:03:41.630><c> right</c><00:03:41.810><c> away</c><00:03:42.110><c> and</c><00:03:42.320><c> this</c><00:03:42.709><c> is</c><00:03:42.770><c> going</c>

00:03:43.180 --> 00:03:43.190 align:start position:0%
transaction right away and this is going
 

00:03:43.190 --> 00:03:44.560 align:start position:0%
transaction right away and this is going
to<00:03:43.250><c> be</c><00:03:43.370><c> delayed</c><00:03:43.610><c> by</c><00:03:43.790><c> at</c><00:03:43.850><c> least</c><00:03:44.030><c> one</c><00:03:44.330><c> block</c>

00:03:44.560 --> 00:03:44.570 align:start position:0%
to be delayed by at least one block
 

00:03:44.570 --> 00:03:48.270 align:start position:0%
to be delayed by at least one block
which<00:03:44.870><c> gonna</c><00:03:45.110><c> result</c><00:03:45.680><c> in</c><00:03:45.830><c> a</c><00:03:45.980><c> higher</c><00:03:46.190><c> timestamp</c>

00:03:48.270 --> 00:03:48.280 align:start position:0%
which gonna result in a higher timestamp
 

00:03:48.280 --> 00:03:50.290 align:start position:0%
which gonna result in a higher timestamp
reinsured<00:03:49.280><c> method</c><00:03:49.640><c> call</c><00:03:49.850><c> so</c><00:03:49.970><c> this</c><00:03:50.120><c> is</c>

00:03:50.290 --> 00:03:50.300 align:start position:0%
reinsured method call so this is
 

00:03:50.300 --> 00:03:54.640 align:start position:0%
reinsured method call so this is
basically<00:03:50.630><c> the</c><00:03:50.840><c> DAO</c><00:03:51.230><c> bug</c><00:03:51.650><c> and</c><00:03:53.650><c> manipulating</c>

00:03:54.640 --> 00:03:54.650 align:start position:0%
basically the DAO bug and manipulating
 

00:03:54.650 --> 00:03:56.949 align:start position:0%
basically the DAO bug and manipulating
ether<00:03:54.980><c> flows</c><00:03:55.250><c> by</c><00:03:55.580><c> a</c><00:03:55.610><c> transaction</c><00:03:56.240><c> reordering</c>

00:03:56.949 --> 00:03:56.959 align:start position:0%
ether flows by a transaction reordering
 

00:03:56.959 --> 00:03:58.690 align:start position:0%
ether flows by a transaction reordering
so<00:03:57.080><c> this</c><00:03:57.230><c> is</c><00:03:57.380><c> a</c><00:03:57.560><c> bit</c><00:03:57.740><c> specific</c><00:03:58.220><c> to</c><00:03:58.340><c> the</c><00:03:58.490><c> a</c>

00:03:58.690 --> 00:03:58.700 align:start position:0%
so this is a bit specific to the a
 

00:03:58.700 --> 00:04:01.120 align:start position:0%
so this is a bit specific to the a
theorem<00:03:59.030><c> platform</c><00:03:59.510><c> where</c><00:04:00.350><c> all</c><00:04:00.590><c> the</c>

00:04:01.120 --> 00:04:01.130 align:start position:0%
theorem platform where all the
 

00:04:01.130 --> 00:04:05.260 align:start position:0%
theorem platform where all the
transaction<00:04:01.610><c> can</c><00:04:01.790><c> African</c><00:04:03.970><c> where</c><00:04:04.970><c> all</c><00:04:05.150><c> the</c>

00:04:05.260 --> 00:04:05.270 align:start position:0%
transaction can African where all the
 

00:04:05.270 --> 00:04:07.060 align:start position:0%
transaction can African where all the
transaction<00:04:05.750><c> can</c><00:04:05.959><c> can</c><00:04:06.500><c> be</c><00:04:06.620><c> processed</c>

00:04:07.060 --> 00:04:07.070 align:start position:0%
transaction can can be processed
 

00:04:07.070 --> 00:04:10.330 align:start position:0%
transaction can can be processed
concurrently<00:04:08.000><c> so</c><00:04:08.709><c> for</c><00:04:09.709><c> the</c><00:04:09.800><c> details</c><00:04:10.100><c> of</c><00:04:10.250><c> this</c>

00:04:10.330 --> 00:04:10.340 align:start position:0%
concurrently so for the details of this
 

00:04:10.340 --> 00:04:12.699 align:start position:0%
concurrently so for the details of this
one<00:04:10.550><c> I</c><00:04:10.580><c> have</c><00:04:10.790><c> another</c><00:04:11.209><c> toy</c><00:04:11.690><c> example</c><00:04:12.230><c> this</c>

00:04:12.699 --> 00:04:12.709 align:start position:0%
one I have another toy example this
 

00:04:12.709 --> 00:04:14.320 align:start position:0%
one I have another toy example this
token<00:04:13.160><c> contract</c><00:04:13.550><c> where</c><00:04:13.730><c> you</c><00:04:13.820><c> have</c><00:04:14.000><c> two</c>

00:04:14.320 --> 00:04:14.330 align:start position:0%
token contract where you have two
 

00:04:14.330 --> 00:04:17.590 align:start position:0%
token contract where you have two
storage<00:04:14.660><c> variables</c><00:04:15.489><c> one</c><00:04:16.489><c> is</c><00:04:16.520><c> the</c><00:04:17.060><c> price</c><00:04:17.299><c> of</c>

00:04:17.590 --> 00:04:17.600 align:start position:0%
storage variables one is the price of
 

00:04:17.600 --> 00:04:19.840 align:start position:0%
storage variables one is the price of
this<00:04:17.810><c> token</c><00:04:18.200><c> and</c><00:04:18.410><c> the</c><00:04:18.620><c> other</c><00:04:18.709><c> is</c><00:04:18.980><c> the</c><00:04:19.160><c> the</c>

00:04:19.840 --> 00:04:19.850 align:start position:0%
this token and the other is the the
 

00:04:19.850 --> 00:04:23.200 align:start position:0%
this token and the other is the the
owner<00:04:20.060><c> of</c><00:04:20.419><c> this</c><00:04:21.200><c> contract</c><00:04:21.680><c> and</c><00:04:21.910><c> so</c><00:04:22.910><c> you</c><00:04:22.970><c> can</c>

00:04:23.200 --> 00:04:23.210 align:start position:0%
owner of this contract and so you can
 

00:04:23.210 --> 00:04:25.320 align:start position:0%
owner of this contract and so you can
set<00:04:23.450><c> the</c><00:04:23.570><c> price</c><00:04:23.810><c> where</c><00:04:24.350><c> only</c><00:04:24.650><c> the</c><00:04:24.860><c> owner</c><00:04:25.010><c> can</c>

00:04:25.320 --> 00:04:25.330 align:start position:0%
set the price where only the owner can
 

00:04:25.330 --> 00:04:28.959 align:start position:0%
set the price where only the owner can
can<00:04:26.330><c> can</c><00:04:26.990><c> change</c><00:04:27.350><c> this</c><00:04:27.979><c> price</c><00:04:28.280><c> and</c>

00:04:28.959 --> 00:04:28.969 align:start position:0%
can can change this price and
 

00:04:28.969 --> 00:04:30.609 align:start position:0%
can can change this price and
the<00:04:29.059><c> second</c><00:04:29.329><c> one</c><00:04:29.479><c> is</c><00:04:29.659><c> a</c><00:04:29.689><c> cell</c><00:04:30.049><c> token</c><00:04:30.409><c> where</c>

00:04:30.609 --> 00:04:30.619 align:start position:0%
the second one is a cell token where
 

00:04:30.619 --> 00:04:34.479 align:start position:0%
the second one is a cell token where
some<00:04:31.159><c> ether</c><00:04:31.309><c> is</c><00:04:31.939><c> transferred</c><00:04:33.039><c> as</c><00:04:34.039><c> you</c><00:04:34.189><c> can</c><00:04:34.339><c> as</c>

00:04:34.479 --> 00:04:34.489 align:start position:0%
some ether is transferred as you can as
 

00:04:34.489 --> 00:04:37.029 align:start position:0%
some ether is transferred as you can as
you<00:04:34.519><c> can</c><00:04:34.729><c> see</c><00:04:34.909><c> here</c><00:04:35.119><c> a</c><00:04:35.329><c> user</c><00:04:35.689><c> can</c><00:04:35.929><c> can</c><00:04:36.649><c> call</c>

00:04:37.029 --> 00:04:37.039 align:start position:0%
you can see here a user can can call
 

00:04:37.039 --> 00:04:39.039 align:start position:0%
you can see here a user can can call
this<00:04:37.159><c> function</c><00:04:37.269><c> according</c><00:04:38.269><c> to</c><00:04:38.509><c> a</c><00:04:38.629><c> given</c><00:04:38.839><c> price</c>

00:04:39.039 --> 00:04:39.049 align:start position:0%
this function according to a given price
 

00:04:39.049 --> 00:04:41.289 align:start position:0%
this function according to a given price
so<00:04:39.229><c> what</c><00:04:39.379><c> happens</c><00:04:39.799><c> in</c><00:04:39.949><c> practice</c><00:04:40.129><c> that</c><00:04:40.519><c> a</c><00:04:40.759><c> user</c>

00:04:41.289 --> 00:04:41.299 align:start position:0%
so what happens in practice that a user
 

00:04:41.299 --> 00:04:43.119 align:start position:0%
so what happens in practice that a user
can<00:04:41.479><c> read</c><00:04:41.659><c> the</c><00:04:41.839><c> price</c><00:04:42.349><c> variable</c><00:04:42.829><c> on</c><00:04:43.069><c> the</c>

00:04:43.119 --> 00:04:43.129 align:start position:0%
can read the price variable on the
 

00:04:43.129 --> 00:04:45.339 align:start position:0%
can read the price variable on the
blockchain<00:04:43.429><c> everything</c><00:04:44.329><c> is</c><00:04:44.479><c> public</c><00:04:44.959><c> and</c><00:04:45.289><c> you</c>

00:04:45.339 --> 00:04:45.349 align:start position:0%
blockchain everything is public and you
 

00:04:45.349 --> 00:04:47.439 align:start position:0%
blockchain everything is public and you
don't<00:04:45.559><c> even</c><00:04:45.649><c> you</c><00:04:46.069><c> don't</c><00:04:46.189><c> even</c><00:04:46.339><c> need</c><00:04:46.819><c> to</c><00:04:46.879><c> create</c>

00:04:47.439 --> 00:04:47.449 align:start position:0%
don't even you don't even need to create
 

00:04:47.449 --> 00:04:49.899 align:start position:0%
don't even you don't even need to create
a<00:04:47.479><c> transaction</c><00:04:47.899><c> to</c><00:04:48.619><c> read</c><00:04:48.799><c> the</c><00:04:49.429><c> value</c><00:04:49.669><c> of</c><00:04:49.759><c> this</c>

00:04:49.899 --> 00:04:49.909 align:start position:0%
a transaction to read the value of this
 

00:04:49.909 --> 00:04:52.629 align:start position:0%
a transaction to read the value of this
variable<00:04:50.439><c> but</c><00:04:51.439><c> what</c><00:04:51.799><c> happens</c><00:04:52.099><c> here</c><00:04:52.429><c> is</c><00:04:52.579><c> that</c>

00:04:52.629 --> 00:04:52.639 align:start position:0%
variable but what happens here is that
 

00:04:52.639 --> 00:04:55.350 align:start position:0%
variable but what happens here is that
once<00:04:53.360><c> a</c><00:04:53.479><c> user</c><00:04:53.689><c> decide</c><00:04:54.169><c> to</c><00:04:54.349><c> call</c><00:04:54.949><c> this</c><00:04:55.129><c> function</c>

00:04:55.350 --> 00:04:55.360 align:start position:0%
once a user decide to call this function
 

00:04:55.360 --> 00:04:58.029 align:start position:0%
once a user decide to call this function
the<00:04:56.360><c> owner</c><00:04:56.509><c> can</c><00:04:56.839><c> still</c><00:04:57.110><c> call</c><00:04:57.799><c> another</c>

00:04:58.029 --> 00:04:58.039 align:start position:0%
the owner can still call another
 

00:04:58.039 --> 00:04:59.889 align:start position:0%
the owner can still call another
function<00:04:58.129><c> so</c><00:04:58.579><c> what</c><00:04:59.179><c> would</c><00:04:59.329><c> happen</c><00:04:59.569><c> is</c><00:04:59.869><c> that</c>

00:04:59.889 --> 00:04:59.899 align:start position:0%
function so what would happen is that
 

00:04:59.899 --> 00:05:01.959 align:start position:0%
function so what would happen is that
the<00:05:00.649><c> owner</c><00:05:00.829><c> would</c><00:05:01.219><c> realize</c><00:05:01.579><c> that</c><00:05:01.729><c> there</c><00:05:01.849><c> is</c><00:05:01.879><c> a</c>

00:05:01.959 --> 00:05:01.969 align:start position:0%
the owner would realize that there is a
 

00:05:01.969 --> 00:05:04.839 align:start position:0%
the owner would realize that there is a
transaction<00:05:02.360><c> pending</c><00:05:02.929><c> with</c><00:05:03.169><c> this</c><00:05:03.849><c> this</c>

00:05:04.839 --> 00:05:04.849 align:start position:0%
transaction pending with this this
 

00:05:04.849 --> 00:05:06.819 align:start position:0%
transaction pending with this this
function<00:05:05.059><c> and</c><00:05:05.629><c> then</c><00:05:05.929><c> this</c><00:05:06.139><c> side</c><00:05:06.319><c> okay</c><00:05:06.559><c> maybe</c><00:05:06.739><c> I</c>

00:05:06.819 --> 00:05:06.829 align:start position:0%
function and then this side okay maybe I
 

00:05:06.829 --> 00:05:09.399 align:start position:0%
function and then this side okay maybe I
want<00:05:07.009><c> to</c><00:05:07.039><c> increase</c><00:05:07.309><c> the</c><00:05:07.399><c> price</c><00:05:07.639><c> or</c><00:05:08.199><c> lower</c><00:05:09.199><c> the</c>

00:05:09.399 --> 00:05:09.409 align:start position:0%
want to increase the price or lower the
 

00:05:09.409 --> 00:05:11.049 align:start position:0%
want to increase the price or lower the
price<00:05:09.619><c> depending</c><00:05:10.129><c> on</c><00:05:10.279><c> what</c><00:05:10.519><c> he</c><00:05:10.610><c> wants</c><00:05:10.819><c> to</c><00:05:10.939><c> do</c>

00:05:11.049 --> 00:05:11.059 align:start position:0%
price depending on what he wants to do
 

00:05:11.059 --> 00:05:13.119 align:start position:0%
price depending on what he wants to do
so<00:05:11.659><c> the</c><00:05:12.139><c> thing</c><00:05:12.349><c> is</c><00:05:12.379><c> when</c><00:05:12.860><c> you</c><00:05:12.979><c> have</c><00:05:13.099><c> a</c>

00:05:13.119 --> 00:05:13.129 align:start position:0%
so the thing is when you have a
 

00:05:13.129 --> 00:05:14.259 align:start position:0%
so the thing is when you have a
transaction<00:05:13.489><c> pending</c><00:05:13.939><c> you</c><00:05:14.029><c> have</c><00:05:14.119><c> no</c>

00:05:14.259 --> 00:05:14.269 align:start position:0%
transaction pending you have no
 

00:05:14.269 --> 00:05:16.449 align:start position:0%
transaction pending you have no
guarantee<00:05:14.779><c> that</c><00:05:15.019><c> it's</c><00:05:15.559><c> going</c><00:05:15.739><c> to</c><00:05:15.799><c> be</c><00:05:15.919><c> executed</c>

00:05:16.449 --> 00:05:16.459 align:start position:0%
guarantee that it's going to be executed
 

00:05:16.459 --> 00:05:19.089 align:start position:0%
guarantee that it's going to be executed
within<00:05:16.699><c> the</c><00:05:17.029><c> context</c><00:05:17.599><c> that</c><00:05:18.409><c> you</c><00:05:18.649><c> that</c><00:05:18.979><c> you</c>

00:05:19.089 --> 00:05:19.099 align:start position:0%
within the context that you that you
 

00:05:19.099 --> 00:05:22.600 align:start position:0%
within the context that you that you
just<00:05:19.309><c> read</c><00:05:19.549><c> and</c><00:05:21.009><c> so</c><00:05:22.009><c> in</c><00:05:22.129><c> a</c><00:05:22.219><c> sense</c><00:05:22.369><c> the</c><00:05:22.579><c> two</c>

00:05:22.600 --> 00:05:22.610 align:start position:0%
just read and so in a sense the two
 

00:05:22.610 --> 00:05:24.069 align:start position:0%
just read and so in a sense the two
operations<00:05:23.179><c> do</c><00:05:23.360><c> not</c><00:05:23.389><c> commit</c><00:05:23.839><c> and</c><00:05:23.959><c> you</c>

00:05:24.069 --> 00:05:24.079 align:start position:0%
operations do not commit and you
 

00:05:24.079 --> 00:05:26.189 align:start position:0%
operations do not commit and you
shouldn't<00:05:24.349><c> expect</c><00:05:24.649><c> them</c><00:05:24.949><c> to</c><00:05:25.099><c> commit</c><00:05:25.279><c> either</c>

00:05:26.189 --> 00:05:26.199 align:start position:0%
shouldn't expect them to commit either
 

00:05:26.199 --> 00:05:30.579 align:start position:0%
shouldn't expect them to commit either
so<00:05:27.199><c> how</c><00:05:27.589><c> to</c><00:05:27.789><c> detect</c><00:05:28.789><c> this</c><00:05:28.969><c> kind</c><00:05:29.269><c> of</c><00:05:29.389><c> bugs</c><00:05:29.689><c> I'm</c>

00:05:30.579 --> 00:05:30.589 align:start position:0%
so how to detect this kind of bugs I'm
 

00:05:30.589 --> 00:05:31.989 align:start position:0%
so how to detect this kind of bugs I'm
going<00:05:30.799><c> to</c><00:05:30.860><c> talk</c><00:05:31.009><c> about</c><00:05:31.129><c> automated</c><00:05:31.819><c> security</c>

00:05:31.989 --> 00:05:31.999 align:start position:0%
going to talk about automated security
 

00:05:31.999 --> 00:05:34.299 align:start position:0%
going to talk about automated security
analysis<00:05:32.659><c> as</c><00:05:32.839><c> a</c><00:05:32.869><c> way</c><00:05:33.169><c> to</c><00:05:33.229><c> make</c><00:05:33.919><c> sure</c><00:05:34.099><c> that</c>

00:05:34.299 --> 00:05:34.309 align:start position:0%
analysis as a way to make sure that
 

00:05:34.309 --> 00:05:37.389 align:start position:0%
analysis as a way to make sure that
these<00:05:34.789><c> bugs</c><00:05:35.269><c> are</c><00:05:35.989><c> not</c><00:05:36.559><c> implemented</c><00:05:37.159><c> in</c><00:05:37.279><c> your</c>

00:05:37.389 --> 00:05:37.399 align:start position:0%
these bugs are not implemented in your
 

00:05:37.399 --> 00:05:40.749 align:start position:0%
these bugs are not implemented in your
contracts<00:05:37.839><c> so</c><00:05:38.839><c> if</c><00:05:39.079><c> I</c><00:05:39.229><c> were</c><00:05:39.319><c> to</c><00:05:39.469><c> draw</c><00:05:39.709><c> a</c><00:05:40.339><c> big</c>

00:05:40.749 --> 00:05:40.759 align:start position:0%
contracts so if I were to draw a big
 

00:05:40.759 --> 00:05:42.519 align:start position:0%
contracts so if I were to draw a big
drawing<00:05:40.999><c> of</c><00:05:41.209><c> all</c><00:05:41.389><c> the</c><00:05:41.539><c> possible</c><00:05:41.929><c> behaviors</c>

00:05:42.519 --> 00:05:42.529 align:start position:0%
drawing of all the possible behaviors
 

00:05:42.529 --> 00:05:45.609 align:start position:0%
drawing of all the possible behaviors
and<00:05:42.769><c> I</c><00:05:43.459><c> would</c><00:05:44.209><c> I</c><00:05:44.389><c> would</c><00:05:44.599><c> have</c><00:05:44.779><c> some</c><00:05:45.139><c> something</c>

00:05:45.609 --> 00:05:45.619 align:start position:0%
and I would I would have some something
 

00:05:45.619 --> 00:05:47.079 align:start position:0%
and I would I would have some something
with<00:05:45.739><c> all</c><00:05:45.919><c> the</c><00:05:46.069><c> possible</c><00:05:46.429><c> behaviors</c><00:05:46.579><c> and</c>

00:05:47.079 --> 00:05:47.089 align:start position:0%
with all the possible behaviors and
 

00:05:47.089 --> 00:05:49.479 align:start position:0%
with all the possible behaviors and
within<00:05:47.300><c> them</c><00:05:47.629><c> a</c><00:05:47.869><c> lot</c><00:05:48.499><c> of</c><00:05:48.679><c> security</c><00:05:48.979><c> bugs</c><00:05:49.369><c> that</c>

00:05:49.479 --> 00:05:49.489 align:start position:0%
within them a lot of security bugs that
 

00:05:49.489 --> 00:05:51.339 align:start position:0%
within them a lot of security bugs that
you<00:05:49.639><c> want</c><00:05:49.819><c> to</c><00:05:49.909><c> avoid</c><00:05:50.149><c> when</c><00:05:50.719><c> implementing</c>

00:05:51.339 --> 00:05:51.349 align:start position:0%
you want to avoid when implementing
 

00:05:51.349 --> 00:05:55.059 align:start position:0%
you want to avoid when implementing
smart<00:05:51.499><c> contracts</c><00:05:53.139><c> the</c><00:05:54.139><c> problem</c><00:05:54.499><c> is</c><00:05:54.649><c> that</c><00:05:54.860><c> you</c>

00:05:55.059 --> 00:05:55.069 align:start position:0%
smart contracts the problem is that you
 

00:05:55.069 --> 00:05:56.979 align:start position:0%
smart contracts the problem is that you
cannot<00:05:55.279><c> enumerate</c><00:05:55.789><c> all</c><00:05:56.029><c> possible</c><00:05:56.059><c> behaviors</c>

00:05:56.979 --> 00:05:56.989 align:start position:0%
cannot enumerate all possible behaviors
 

00:05:56.989 --> 00:05:59.079 align:start position:0%
cannot enumerate all possible behaviors
for<00:05:57.349><c> instance</c><00:05:57.649><c> if</c><00:05:57.829><c> you</c><00:05:57.979><c> have</c><00:05:58.099><c> an</c><00:05:58.309><c> earning</c><00:05:58.909><c> an</c>

00:05:59.079 --> 00:05:59.089 align:start position:0%
for instance if you have an earning an
 

00:05:59.089 --> 00:06:01.239 align:start position:0%
for instance if you have an earning an
integer<00:05:59.419><c> argument</c><00:06:00.349><c> in</c><00:06:00.469><c> your</c><00:06:00.619><c> function</c><00:06:00.889><c> it's</c>

00:06:01.239 --> 00:06:01.249 align:start position:0%
integer argument in your function it's
 

00:06:01.249 --> 00:06:03.669 align:start position:0%
integer argument in your function it's
going<00:06:01.339><c> to</c><00:06:01.489><c> be</c><00:06:01.579><c> you</c><00:06:02.239><c> cannot</c><00:06:02.559><c> call</c><00:06:03.559><c> this</c>

00:06:03.669 --> 00:06:03.679 align:start position:0%
going to be you cannot call this
 

00:06:03.679 --> 00:06:05.679 align:start position:0%
going to be you cannot call this
function<00:06:04.129><c> with</c><00:06:04.309><c> all</c><00:06:04.459><c> possible</c><00:06:04.729><c> integers</c><00:06:05.479><c> and</c>

00:06:05.679 --> 00:06:05.689 align:start position:0%
function with all possible integers and
 

00:06:05.689 --> 00:06:08.889 align:start position:0%
function with all possible integers and
just<00:06:06.199><c> say</c><00:06:06.439><c> ok</c><00:06:06.739><c> this</c><00:06:06.860><c> this</c><00:06:07.189><c> trace</c><00:06:07.639><c> is</c><00:06:07.909><c> faulty</c><00:06:08.329><c> so</c>

00:06:08.889 --> 00:06:08.899 align:start position:0%
just say ok this this trace is faulty so
 

00:06:08.899 --> 00:06:10.600 align:start position:0%
just say ok this this trace is faulty so
at<00:06:09.259><c> one</c><00:06:09.439><c> point</c><00:06:09.469><c> you</c><00:06:09.679><c> have</c><00:06:09.799><c> to</c><00:06:10.009><c> make</c><00:06:10.309><c> a</c><00:06:10.339><c> trade</c>

00:06:10.600 --> 00:06:10.610 align:start position:0%
at one point you have to make a trade
 

00:06:10.610 --> 00:06:15.069 align:start position:0%
at one point you have to make a trade
off<00:06:10.759><c> and</c><00:06:10.969><c> decide</c><00:06:11.269><c> how</c><00:06:12.019><c> to</c><00:06:12.549><c> to</c><00:06:13.549><c> find</c><00:06:14.029><c> the</c><00:06:14.179><c> bad</c>

00:06:15.069 --> 00:06:15.079 align:start position:0%
off and decide how to to find the bad
 

00:06:15.079 --> 00:06:19.209 align:start position:0%
off and decide how to to find the bad
behaviors<00:06:16.299><c> so</c><00:06:17.299><c> the</c><00:06:17.539><c> different</c><00:06:18.219><c> security</c>

00:06:19.209 --> 00:06:19.219 align:start position:0%
behaviors so the different security
 

00:06:19.219 --> 00:06:21.429 align:start position:0%
behaviors so the different security
analysis<00:06:20.089><c> approaches</c><00:06:20.599><c> that</c><00:06:20.959><c> you</c><00:06:21.110><c> can</c><00:06:21.229><c> have</c>

00:06:21.429 --> 00:06:21.439 align:start position:0%
analysis approaches that you can have
 

00:06:21.439 --> 00:06:25.149 align:start position:0%
analysis approaches that you can have
are<00:06:22.369><c> here</c><00:06:23.469><c> represented</c><00:06:24.469><c> so</c><00:06:24.619><c> the</c><00:06:24.739><c> first</c><00:06:24.949><c> one</c>

00:06:25.149 --> 00:06:25.159 align:start position:0%
are here represented so the first one
 

00:06:25.159 --> 00:06:29.109 align:start position:0%
are here represented so the first one
would<00:06:25.339><c> be</c><00:06:25.689><c> testing</c><00:06:26.769><c> where</c><00:06:27.769><c> you</c><00:06:28.249><c> actually</c><00:06:28.399><c> try</c>

00:06:29.109 --> 00:06:29.119 align:start position:0%
would be testing where you actually try
 

00:06:29.119 --> 00:06:32.229 align:start position:0%
would be testing where you actually try
to<00:06:29.229><c> cover</c><00:06:30.229><c> one</c><00:06:30.529><c> path</c><00:06:30.829><c> and</c><00:06:31.069><c> from</c><00:06:31.519><c> this</c><00:06:31.759><c> one</c><00:06:32.029><c> path</c>

00:06:32.229 --> 00:06:32.239 align:start position:0%
to cover one path and from this one path
 

00:06:32.239 --> 00:06:36.729 align:start position:0%
to cover one path and from this one path
you<00:06:32.329><c> can</c><00:06:32.479><c> extract</c><00:06:32.869><c> one</c><00:06:33.679><c> trace</c><00:06:33.949><c> and</c><00:06:34.489><c> try</c><00:06:35.209><c> to</c><00:06:35.269><c> -</c><00:06:35.839><c> -</c>

00:06:36.729 --> 00:06:36.739 align:start position:0%
you can extract one trace and try to - -
 

00:06:36.739 --> 00:06:39.519 align:start position:0%
you can extract one trace and try to - -
to<00:06:37.519><c> check</c><00:06:37.759><c> whether</c><00:06:37.999><c> or</c><00:06:38.419><c> not</c><00:06:38.629><c> it's</c><00:06:38.869><c> faulty</c><00:06:39.289><c> and</c>

00:06:39.519 --> 00:06:39.529 align:start position:0%
to check whether or not it's faulty and
 

00:06:39.529 --> 00:06:41.589 align:start position:0%
to check whether or not it's faulty and
whether<00:06:39.949><c> or</c><00:06:40.099><c> not</c><00:06:40.159><c> it</c><00:06:40.759><c> corresponds</c><00:06:41.300><c> to</c><00:06:41.389><c> what</c>

00:06:41.589 --> 00:06:41.599 align:start position:0%
whether or not it corresponds to what
 

00:06:41.599 --> 00:06:42.820 align:start position:0%
whether or not it corresponds to what
you<00:06:41.719><c> expected</c>

00:06:42.820 --> 00:06:42.830 align:start position:0%
you expected
 

00:06:42.830 --> 00:06:46.659 align:start position:0%
you expected
dynamic<00:06:43.430><c> symbolic</c><00:06:43.789><c> analysis</c><00:06:44.419><c> which</c><00:06:45.349><c> is</c><00:06:45.889><c> an</c>

00:06:46.659 --> 00:06:46.669 align:start position:0%
dynamic symbolic analysis which is an
 

00:06:46.669 --> 00:06:50.230 align:start position:0%
dynamic symbolic analysis which is an
improvement<00:06:47.060><c> on</c><00:06:48.340><c> basic</c><00:06:49.340><c> tasting</c><00:06:49.729><c> because</c>

00:06:50.230 --> 00:06:50.240 align:start position:0%
improvement on basic tasting because
 

00:06:50.240 --> 00:06:52.540 align:start position:0%
improvement on basic tasting because
you're<00:06:50.419><c> not</c><00:06:50.569><c> able</c><00:06:50.780><c> to</c><00:06:51.110><c> cover</c><00:06:51.319><c> way</c><00:06:52.039><c> many</c><00:06:52.460><c> more</c>

00:06:52.540 --> 00:06:52.550 align:start position:0%
you're not able to cover way many more
 

00:06:52.550 --> 00:06:56.379 align:start position:0%
you're not able to cover way many more
paths<00:06:52.940><c> so</c><00:06:53.659><c> this</c><00:06:54.110><c> is</c><00:06:54.289><c> a</c><00:06:54.530><c> bit</c><00:06:55.030><c> testing</c><00:06:56.030><c> plus</c>

00:06:56.379 --> 00:06:56.389 align:start position:0%
paths so this is a bit testing plus
 

00:06:56.389 --> 00:06:58.659 align:start position:0%
paths so this is a bit testing plus
purse<00:06:56.599><c> if</c><00:06:56.780><c> you</c><00:06:56.900><c> want</c><00:06:57.080><c> and</c><00:06:57.319><c> so</c><00:06:58.310><c> you</c><00:06:58.370><c> have</c><00:06:58.580><c> the</c>

00:06:58.659 --> 00:06:58.669 align:start position:0%
purse if you want and so you have the
 

00:06:58.669 --> 00:07:01.330 align:start position:0%
purse if you want and so you have the
same<00:06:58.849><c> kind</c><00:06:59.030><c> of</c><00:06:59.090><c> guarantees</c><00:06:59.539><c> that</c><00:06:59.960><c> is</c><00:07:00.500><c> testing</c>

00:07:01.330 --> 00:07:01.340 align:start position:0%
same kind of guarantees that is testing
 

00:07:01.340 --> 00:07:03.730 align:start position:0%
same kind of guarantees that is testing
and<00:07:01.550><c> dynamic</c><00:07:01.970><c> analysis</c><00:07:02.479><c> report</c><00:07:03.199><c> through</c><00:07:03.500><c> bugs</c>

00:07:03.730 --> 00:07:03.740 align:start position:0%
and dynamic analysis report through bugs
 

00:07:03.740 --> 00:07:04.960 align:start position:0%
and dynamic analysis report through bugs
that<00:07:03.889><c> actually</c><00:07:04.220><c> exist</c><00:07:04.460><c> in</c><00:07:04.550><c> your</c><00:07:04.759><c> in</c><00:07:04.940><c> your</c>

00:07:04.960 --> 00:07:04.970 align:start position:0%
that actually exist in your in your
 

00:07:04.970 --> 00:07:06.760 align:start position:0%
that actually exist in your in your
codes<00:07:05.300><c> and</c><00:07:05.539><c> say</c><00:07:05.750><c> they</c><00:07:06.229><c> provide</c><00:07:06.500><c> you</c><00:07:06.620><c> with</c>

00:07:06.760 --> 00:07:06.770 align:start position:0%
codes and say they provide you with
 

00:07:06.770 --> 00:07:10.240 align:start position:0%
codes and say they provide you with
traces<00:07:07.340><c> of</c><00:07:07.520><c> what</c><00:07:08.060><c> happened</c><00:07:08.599><c> and</c><00:07:08.949><c> put</c><00:07:09.949><c> the</c><00:07:10.069><c> can</c>

00:07:10.240 --> 00:07:10.250 align:start position:0%
traces of what happened and put the can
 

00:07:10.250 --> 00:07:11.740 align:start position:0%
traces of what happened and put the can
still<00:07:10.490><c> miss</c><00:07:10.669><c> bugs</c><00:07:10.940><c> because</c><00:07:11.210><c> your</c><00:07:11.330><c> evolution</c>

00:07:11.740 --> 00:07:11.750 align:start position:0%
still miss bugs because your evolution
 

00:07:11.750 --> 00:07:13.990 align:start position:0%
still miss bugs because your evolution
of<00:07:11.990><c> code</c><00:07:12.289><c> coverage</c><00:07:12.650><c> which</c><00:07:13.220><c> is</c><00:07:13.400><c> not</c><00:07:13.580><c> equal</c><00:07:13.699><c> to</c>

00:07:13.990 --> 00:07:14.000 align:start position:0%
of code coverage which is not equal to
 

00:07:14.000 --> 00:07:17.050 align:start position:0%
of code coverage which is not equal to
100%<00:07:14.419><c> so</c><00:07:14.990><c> this</c><00:07:15.889><c> is</c><00:07:16.069><c> a</c><00:07:16.250><c> problem</c><00:07:16.729><c> because</c><00:07:16.819><c> you</c>

00:07:17.050 --> 00:07:17.060 align:start position:0%
100% so this is a problem because you
 

00:07:17.060 --> 00:07:19.719 align:start position:0%
100% so this is a problem because you
can<00:07:17.569><c> never</c><00:07:17.750><c> be</c><00:07:17.900><c> sure</c><00:07:18.159><c> unless</c><00:07:19.159><c> you</c><00:07:19.430><c> have</c><00:07:19.520><c> caught</c>

00:07:19.719 --> 00:07:19.729 align:start position:0%
can never be sure unless you have caught
 

00:07:19.729 --> 00:07:22.420 align:start position:0%
can never be sure unless you have caught
you<00:07:20.210><c> have</c><00:07:20.330><c> covered</c><00:07:20.629><c> all</c><00:07:20.780><c> your</c><00:07:21.050><c> on</c><00:07:22.039><c> your</c><00:07:22.190><c> codes</c>

00:07:22.420 --> 00:07:22.430 align:start position:0%
you have covered all your on your codes
 

00:07:22.430 --> 00:07:24.670 align:start position:0%
you have covered all your on your codes
and<00:07:22.669><c> that</c><00:07:22.759><c> is</c><00:07:22.909><c> 100%</c><00:07:23.389><c> coverage</c><00:07:23.870><c> you</c><00:07:24.289><c> can</c><00:07:24.440><c> never</c>

00:07:24.670 --> 00:07:24.680 align:start position:0%
and that is 100% coverage you can never
 

00:07:24.680 --> 00:07:27.010 align:start position:0%
and that is 100% coverage you can never
be<00:07:24.860><c> sure</c><00:07:25.009><c> that</c><00:07:25.250><c> your</c><00:07:26.150><c> code</c><00:07:26.449><c> doesn't</c><00:07:26.629><c> contain</c>

00:07:27.010 --> 00:07:27.020 align:start position:0%
be sure that your code doesn't contain
 

00:07:27.020 --> 00:07:29.469 align:start position:0%
be sure that your code doesn't contain
any<00:07:27.289><c> of</c><00:07:27.409><c> these</c><00:07:27.590><c> bugs</c><00:07:27.860><c> and</c><00:07:28.340><c> the</c><00:07:29.030><c> last</c><00:07:29.180><c> one</c><00:07:29.360><c> in</c>

00:07:29.469 --> 00:07:29.479 align:start position:0%
any of these bugs and the last one in
 

00:07:29.479 --> 00:07:31.779 align:start position:0%
any of these bugs and the last one in
the<00:07:29.569><c> focus</c><00:07:29.870><c> of</c><00:07:29.990><c> my</c><00:07:30.139><c> talk</c><00:07:30.169><c> today</c><00:07:30.500><c> is</c><00:07:30.889><c> automated</c>

00:07:31.779 --> 00:07:31.789 align:start position:0%
the focus of my talk today is automated
 

00:07:31.789 --> 00:07:34.330 align:start position:0%
the focus of my talk today is automated
verification<00:07:32.509><c> which</c><00:07:33.349><c> makes</c><00:07:33.830><c> a</c><00:07:33.979><c> different</c>

00:07:34.330 --> 00:07:34.340 align:start position:0%
verification which makes a different
 

00:07:34.340 --> 00:07:36.550 align:start position:0%
verification which makes a different
trait<00:07:34.520><c> of</c><00:07:34.550><c> that</c><00:07:35.060><c> is</c><00:07:35.210><c> it</c><00:07:35.629><c> can</c><00:07:35.840><c> report</c><00:07:36.199><c> false</c>

00:07:36.550 --> 00:07:36.560 align:start position:0%
trait of that is it can report false
 

00:07:36.560 --> 00:07:41.320 align:start position:0%
trait of that is it can report false
alarms<00:07:37.039><c> but</c><00:07:37.610><c> it</c><00:07:37.729><c> has</c><00:07:37.849><c> no</c><00:07:38.060><c> missed</c><00:07:38.300><c> bugs</c><00:07:40.180><c> so</c><00:07:41.180><c> it</c>

00:07:41.320 --> 00:07:41.330 align:start position:0%
alarms but it has no missed bugs so it
 

00:07:41.330 --> 00:07:43.899 align:start position:0%
alarms but it has no missed bugs so it
is<00:07:41.419><c> a</c><00:07:41.449><c> current</c><00:07:42.020><c> state</c><00:07:42.139><c> of</c><00:07:42.199><c> the</c><00:07:42.440><c> art</c><00:07:42.789><c> for</c><00:07:43.789><c> the</c>

00:07:43.899 --> 00:07:43.909 align:start position:0%
is a current state of the art for the
 

00:07:43.909 --> 00:07:45.820 align:start position:0%
is a current state of the art for the
Ihram<00:07:44.449><c> platform</c><00:07:45.020><c> what</c><00:07:45.199><c> do</c><00:07:45.259><c> we</c><00:07:45.349><c> have</c><00:07:45.560><c> what</c>

00:07:45.820 --> 00:07:45.830 align:start position:0%
Ihram platform what do we have what
 

00:07:45.830 --> 00:07:47.950 align:start position:0%
Ihram platform what do we have what
tools<00:07:46.009><c> do</c><00:07:46.099><c> we</c><00:07:46.159><c> have</c><00:07:46.400><c> and</c><00:07:46.669><c> why</c><00:07:47.330><c> do</c><00:07:47.389><c> i</c><00:07:47.479><c> suggest</c>

00:07:47.950 --> 00:07:47.960 align:start position:0%
tools do we have and why do i suggest
 

00:07:47.960 --> 00:07:50.920 align:start position:0%
tools do we have and why do i suggest
today<00:07:48.699><c> so</c><00:07:49.699><c> on</c><00:07:49.940><c> the</c><00:07:50.060><c> testing</c><00:07:50.419><c> side</c><00:07:50.449><c> we</c><00:07:50.810><c> have</c>

00:07:50.920 --> 00:07:50.930 align:start position:0%
today so on the testing side we have
 

00:07:50.930 --> 00:07:52.330 align:start position:0%
today so on the testing side we have
truffle<00:07:51.259><c> in</c><00:07:51.560><c> populous</c><00:07:51.889><c> which</c><00:07:52.099><c> are</c>

00:07:52.330 --> 00:07:52.340 align:start position:0%
truffle in populous which are
 

00:07:52.340 --> 00:07:54.100 align:start position:0%
truffle in populous which are
respectively<00:07:52.840><c> JavaScript</c><00:07:53.840><c> and</c><00:07:53.990><c> Python</c>

00:07:54.100 --> 00:07:54.110 align:start position:0%
respectively JavaScript and Python
 

00:07:54.110 --> 00:07:56.830 align:start position:0%
respectively JavaScript and Python
frameworks<00:07:54.710><c> and</c><00:07:54.889><c> help</c><00:07:55.520><c> the</c><00:07:55.639><c> developer</c><00:07:56.060><c> to</c><00:07:56.270><c> to</c>

00:07:56.830 --> 00:07:56.840 align:start position:0%
frameworks and help the developer to to
 

00:07:56.840 --> 00:07:59.050 align:start position:0%
frameworks and help the developer to to
implement<00:07:57.349><c> that</c><00:07:57.560><c> constructs</c><00:07:57.949><c> and</c><00:07:58.219><c> associated</c>

00:07:59.050 --> 00:07:59.060 align:start position:0%
implement that constructs and associated
 

00:07:59.060 --> 00:08:02.200 align:start position:0%
implement that constructs and associated
test<00:07:59.449><c> and</c><00:07:59.719><c> deploy</c><00:08:00.710><c> them</c><00:08:01.099><c> efficiently</c><00:08:01.969><c> on</c><00:08:02.120><c> the</c>

00:08:02.200 --> 00:08:02.210 align:start position:0%
test and deploy them efficiently on the
 

00:08:02.210 --> 00:08:04.629 align:start position:0%
test and deploy them efficiently on the
local<00:08:02.479><c> dead</c><00:08:02.690><c> chain</c><00:08:02.930><c> and</c><00:08:03.139><c> this</c><00:08:03.860><c> way</c><00:08:04.099><c> that</c>

00:08:04.629 --> 00:08:04.639 align:start position:0%
local dead chain and this way that
 

00:08:04.639 --> 00:08:07.420 align:start position:0%
local dead chain and this way that
developer<00:08:05.150><c> can</c><00:08:05.330><c> run</c><00:08:05.630><c> these</c><00:08:06.110><c> traces</c><00:08:06.529><c> and</c><00:08:06.919><c> check</c>

00:08:07.420 --> 00:08:07.430 align:start position:0%
developer can run these traces and check
 

00:08:07.430 --> 00:08:09.360 align:start position:0%
developer can run these traces and check
their<00:08:07.639><c> assertions</c><00:08:08.150><c> in</c><00:08:08.659><c> an</c><00:08:08.810><c> efficient</c><00:08:09.229><c> manner</c>

00:08:09.360 --> 00:08:09.370 align:start position:0%
their assertions in an efficient manner
 

00:08:09.370 --> 00:08:14.619 align:start position:0%
their assertions in an efficient manner
on<00:08:11.080><c> dynamic</c><00:08:12.080><c> analysis</c><00:08:12.560><c> sad</c><00:08:13.190><c> you</c><00:08:14.090><c> have</c><00:08:14.210><c> a</c><00:08:14.360><c> Yenta</c>

00:08:14.619 --> 00:08:14.629 align:start position:0%
on dynamic analysis sad you have a Yenta
 

00:08:14.629 --> 00:08:17.709 align:start position:0%
on dynamic analysis sad you have a Yenta
which<00:08:14.930><c> was</c><00:08:15.080><c> just</c><00:08:15.289><c> presented</c><00:08:15.590><c> in</c><00:08:16.069><c> which</c><00:08:16.719><c> allows</c>

00:08:17.709 --> 00:08:17.719 align:start position:0%
which was just presented in which allows
 

00:08:17.719 --> 00:08:20.399 align:start position:0%
which was just presented in which allows
the<00:08:17.930><c> developer</c><00:08:18.319><c> to</c><00:08:18.349><c> cover</c><00:08:18.650><c> when</c><00:08:19.279><c> many</c><00:08:20.060><c> more</c>

00:08:20.399 --> 00:08:20.409 align:start position:0%
the developer to cover when many more
 

00:08:20.409 --> 00:08:23.230 align:start position:0%
the developer to cover when many more
many<00:08:21.409><c> more</c><00:08:21.500><c> paths</c><00:08:21.830><c> in</c><00:08:22.099><c> his</c><00:08:22.490><c> code</c><00:08:22.819><c> execution</c>

00:08:23.230 --> 00:08:23.240 align:start position:0%
many more paths in his code execution
 

00:08:23.240 --> 00:08:25.719 align:start position:0%
many more paths in his code execution
and<00:08:24.169><c> on</c><00:08:24.349><c> the</c><00:08:24.469><c> automate</c><00:08:24.830><c> automated</c>

00:08:25.719 --> 00:08:25.729 align:start position:0%
and on the automate automated
 

00:08:25.729 --> 00:08:27.879 align:start position:0%
and on the automate automated
verification<00:08:26.330><c> side</c><00:08:26.569><c> we</c><00:08:27.229><c> now</c><00:08:27.349><c> have</c><00:08:27.500><c> sakura</c>

00:08:27.879 --> 00:08:27.889 align:start position:0%
verification side we now have sakura
 

00:08:27.889 --> 00:08:30.339 align:start position:0%
verification side we now have sakura
Fida<00:08:28.159><c> i'm</c><00:08:28.310><c> presenting</c><00:08:28.729><c> today</c><00:08:29.000><c> and</c><00:08:29.180><c> which</c><00:08:29.569><c> as</c><00:08:30.199><c> i</c>

00:08:30.339 --> 00:08:30.349 align:start position:0%
Fida i'm presenting today and which as i
 

00:08:30.349 --> 00:08:31.930 align:start position:0%
Fida i'm presenting today and which as i
said<00:08:30.379><c> makes</c><00:08:30.800><c> a</c><00:08:30.919><c> different</c><00:08:31.279><c> trade-off</c><00:08:31.610><c> that</c><00:08:31.639><c> is</c>

00:08:31.930 --> 00:08:31.940 align:start position:0%
said makes a different trade-off that is
 

00:08:31.940 --> 00:08:33.850 align:start position:0%
said makes a different trade-off that is
it<00:08:32.360><c> provides</c><00:08:32.750><c> you</c><00:08:32.899><c> with</c><00:08:33.020><c> strong</c><00:08:33.320><c> guarantees</c>

00:08:33.850 --> 00:08:33.860 align:start position:0%
it provides you with strong guarantees
 

00:08:33.860 --> 00:08:36.490 align:start position:0%
it provides you with strong guarantees
at<00:08:34.010><c> the</c><00:08:34.159><c> bug</c><00:08:34.820><c> that</c><00:08:35.690><c> you</c><00:08:35.839><c> are</c><00:08:35.899><c> trying</c><00:08:36.169><c> to</c><00:08:36.289><c> find</c>

00:08:36.490 --> 00:08:36.500 align:start position:0%
at the bug that you are trying to find
 

00:08:36.500 --> 00:08:38.409 align:start position:0%
at the bug that you are trying to find
doesn't<00:08:36.890><c> exist</c><00:08:37.159><c> in</c><00:08:37.279><c> your</c><00:08:37.310><c> code</c><00:08:37.610><c> on</c><00:08:38.089><c> the</c><00:08:38.270><c> other</c>

00:08:38.409 --> 00:08:38.419 align:start position:0%
doesn't exist in your code on the other
 

00:08:38.419 --> 00:08:40.600 align:start position:0%
doesn't exist in your code on the other
hand<00:08:38.599><c> it</c><00:08:38.690><c> can</c><00:08:38.810><c> also</c><00:08:38.990><c> report</c><00:08:39.409><c> that</c><00:08:39.620><c> the</c><00:08:40.130><c> by</c><00:08:40.310><c> the</c>

00:08:40.600 --> 00:08:40.610 align:start position:0%
hand it can also report that the by the
 

00:08:40.610 --> 00:08:42.159 align:start position:0%
hand it can also report that the by the
bug<00:08:40.760><c> might</c><00:08:41.149><c> exist</c><00:08:41.599><c> in</c><00:08:41.750><c> your</c><00:08:41.839><c> code</c><00:08:41.990><c> and</c><00:08:42.110><c> then</c>

00:08:42.159 --> 00:08:42.169 align:start position:0%
bug might exist in your code and then
 

00:08:42.169 --> 00:08:44.500 align:start position:0%
bug might exist in your code and then
you<00:08:42.349><c> have</c><00:08:42.469><c> to</c><00:08:42.589><c> look</c><00:08:42.709><c> at</c><00:08:43.130><c> it</c><00:08:43.310><c> on</c><00:08:43.909><c> your</c><00:08:43.969><c> own</c><00:08:44.300><c> and</c>

00:08:44.500 --> 00:08:44.510 align:start position:0%
you have to look at it on your own and
 

00:08:44.510 --> 00:08:47.860 align:start position:0%
you have to look at it on your own and
tell<00:08:44.990><c> whether</c><00:08:45.230><c> or</c><00:08:45.380><c> not</c><00:08:45.560><c> it's</c><00:08:45.860><c> it's</c><00:08:46.490><c> here</c><00:08:46.870><c> so</c>

00:08:47.860 --> 00:08:47.870 align:start position:0%
tell whether or not it's it's here so
 

00:08:47.870 --> 00:08:49.569 align:start position:0%
tell whether or not it's it's here so
this<00:08:47.990><c> is</c><00:08:48.260><c> really</c><00:08:48.649><c> a</c><00:08:48.680><c> different</c><00:08:49.070><c> trade-off</c>

00:08:49.569 --> 00:08:49.579 align:start position:0%
this is really a different trade-off
 

00:08:49.579 --> 00:08:53.920 align:start position:0%
this is really a different trade-off
from<00:08:50.209><c> the</c><00:08:50.420><c> two</c><00:08:50.779><c> previous</c><00:08:51.079><c> categories</c><00:08:52.570><c> so</c><00:08:53.570><c> if</c><00:08:53.810><c> I</c>

00:08:53.920 --> 00:08:53.930 align:start position:0%
from the two previous categories so if I
 

00:08:53.930 --> 00:08:56.590 align:start position:0%
from the two previous categories so if I
were<00:08:54.050><c> to</c><00:08:54.290><c> summarize</c><00:08:54.740><c> sakura</c><00:08:55.459><c> in</c><00:08:55.699><c> a</c><00:08:55.790><c> few</c><00:08:56.000><c> words</c>

00:08:56.590 --> 00:08:56.600 align:start position:0%
were to summarize sakura in a few words
 

00:08:56.600 --> 00:08:58.870 align:start position:0%
were to summarize sakura in a few words
I<00:08:56.630><c> would</c><00:08:57.110><c> say</c><00:08:57.260><c> that</c><00:08:57.440><c> Sakura</c><00:08:58.160><c> is</c><00:08:58.490><c> fully</c>

00:08:58.870 --> 00:08:58.880 align:start position:0%
I would say that Sakura is fully
 

00:08:58.880 --> 00:09:01.000 align:start position:0%
I would say that Sakura is fully
automated<00:08:59.330><c> one</c><00:09:00.050><c> click</c><00:09:00.350><c> for</c><00:09:00.860><c> more</c>

00:09:01.000 --> 00:09:01.010 align:start position:0%
automated one click for more
 

00:09:01.010 --> 00:09:02.860 align:start position:0%
automated one click for more
verification<00:09:01.280><c> system</c><00:09:01.970><c> for</c><00:09:02.180><c> a</c><00:09:02.210><c> 3m</c><00:09:02.540><c> smart</c>

00:09:02.860 --> 00:09:02.870 align:start position:0%
verification system for a 3m smart
 

00:09:02.870 --> 00:09:06.960 align:start position:0%
verification system for a 3m smart
contract<00:09:04.240><c> so</c><00:09:05.240><c> I</c><00:09:05.270><c> prepared</c><00:09:05.600><c> a</c><00:09:05.720><c> short</c><00:09:05.930><c> demo</c><00:09:06.290><c> and</c>

00:09:06.960 --> 00:09:06.970 align:start position:0%
contract so I prepared a short demo and
 

00:09:06.970 --> 00:09:17.320 align:start position:0%
contract so I prepared a short demo and
so<00:09:07.970><c> I</c><00:09:08.000><c> hope</c><00:09:08.360><c> it's</c><00:09:08.660><c> gonna</c><00:09:08.930><c> work</c><00:09:16.000><c> so</c><00:09:17.000><c> this</c><00:09:17.120><c> is</c>

00:09:17.320 --> 00:09:17.330 align:start position:0%
so I hope it's gonna work so this is
 

00:09:17.330 --> 00:09:27.040 align:start position:0%
so I hope it's gonna work so this is
recorded<00:09:18.820><c> so</c><00:09:25.270><c> here</c><00:09:26.270><c> you</c><00:09:26.390><c> have</c><00:09:26.510><c> the</c><00:09:26.690><c> interface</c>

00:09:27.040 --> 00:09:27.050 align:start position:0%
recorded so here you have the interface
 

00:09:27.050 --> 00:09:29.650 align:start position:0%
recorded so here you have the interface
of<00:09:27.260><c> Sakura</c><00:09:28.190><c> Phi</c><00:09:28.400><c> you</c><00:09:29.030><c> can</c><00:09:29.090><c> see</c><00:09:29.330><c> that</c><00:09:29.510><c> by</c>

00:09:29.650 --> 00:09:29.660 align:start position:0%
of Sakura Phi you can see that by
 

00:09:29.660 --> 00:09:31.090 align:start position:0%
of Sakura Phi you can see that by
default<00:09:29.720><c> there</c><00:09:30.110><c> is</c><00:09:30.200><c> some</c><00:09:30.380><c> example</c><00:09:30.710><c> of</c>

00:09:31.090 --> 00:09:31.100 align:start position:0%
default there is some example of
 

00:09:31.100 --> 00:09:33.010 align:start position:0%
default there is some example of
solidity<00:09:31.490><c> code</c><00:09:31.760><c> so</c><00:09:32.060><c> this</c><00:09:32.120><c> is</c><00:09:32.330><c> the</c><00:09:32.660><c> website</c>

00:09:33.010 --> 00:09:33.020 align:start position:0%
solidity code so this is the website
 

00:09:33.020 --> 00:09:39.100 align:start position:0%
solidity code so this is the website
itself<00:09:36.820><c> so</c><00:09:37.820><c> here</c><00:09:38.030><c> you</c><00:09:38.120><c> have</c><00:09:38.240><c> a</c><00:09:38.300><c> some</c><00:09:38.540><c> solidity</c>

00:09:39.100 --> 00:09:39.110 align:start position:0%
itself so here you have a some solidity
 

00:09:39.110 --> 00:09:41.410 align:start position:0%
itself so here you have a some solidity
code<00:09:39.470><c> that</c><00:09:39.800><c> you</c><00:09:39.890><c> can</c><00:09:40.010><c> input</c><00:09:40.280><c> tech</c><00:09:40.580><c> so</c><00:09:41.180><c> that</c><00:09:41.300><c> you</c>

00:09:41.410 --> 00:09:41.420 align:start position:0%
code that you can input tech so that you
 

00:09:41.420 --> 00:09:43.090 align:start position:0%
code that you can input tech so that you
can<00:09:41.540><c> verify</c><00:09:41.720><c> it</c><00:09:41.990><c> afterwards</c><00:09:42.500><c> you</c><00:09:42.830><c> can</c><00:09:42.950><c> also</c>

00:09:43.090 --> 00:09:43.100 align:start position:0%
can verify it afterwards you can also
 

00:09:43.100 --> 00:09:45.430 align:start position:0%
can verify it afterwards you can also
feed<00:09:43.490><c> some</c><00:09:43.850><c> byte</c><00:09:44.120><c> code</c><00:09:44.390><c> or</c><00:09:44.870><c> you</c><00:09:45.140><c> can</c><00:09:45.290><c> also</c>

00:09:45.430 --> 00:09:45.440 align:start position:0%
feed some byte code or you can also
 

00:09:45.440 --> 00:09:48.160 align:start position:0%
feed some byte code or you can also
input<00:09:46.070><c> the</c><00:09:46.580><c> address</c><00:09:46.730><c> of</c><00:09:47.090><c> a</c><00:09:47.120><c> contract</c><00:09:47.990><c> already</c>

00:09:48.160 --> 00:09:48.170 align:start position:0%
input the address of a contract already
 

00:09:48.170 --> 00:09:51.070 align:start position:0%
input the address of a contract already
deployed<00:09:48.710><c> on</c><00:09:48.860><c> a</c><00:09:48.890><c> main</c><00:09:49.490><c> chain</c><00:09:49.730><c> so</c><00:09:50.240><c> the</c><00:09:50.780><c> thing</c><00:09:50.960><c> to</c>

00:09:51.070 --> 00:09:51.080 align:start position:0%
deployed on a main chain so the thing to
 

00:09:51.080 --> 00:09:52.870 align:start position:0%
deployed on a main chain so the thing to
keep<00:09:51.380><c> in</c><00:09:51.500><c> mind</c><00:09:51.560><c> here</c><00:09:52.010><c> is</c><00:09:52.040><c> that</c><00:09:52.190><c> Sakura</c>

00:09:52.870 --> 00:09:52.880 align:start position:0%
keep in mind here is that Sakura
 

00:09:52.880 --> 00:09:54.940 align:start position:0%
keep in mind here is that Sakura
actually<00:09:53.450><c> works</c><00:09:53.690><c> on</c><00:09:53.810><c> byte</c><00:09:54.050><c> code</c><00:09:54.260><c> so</c><00:09:54.410><c> even</c><00:09:54.830><c> if</c>

00:09:54.940 --> 00:09:54.950 align:start position:0%
actually works on byte code so even if
 

00:09:54.950 --> 00:09:56.800 align:start position:0%
actually works on byte code so even if
you<00:09:55.070><c> give</c><00:09:55.370><c> solid</c><00:09:55.730><c> it</c><00:09:55.850><c> could</c><00:09:56.060><c> what</c><00:09:56.510><c> is</c><00:09:56.660><c> this</c>

00:09:56.800 --> 00:09:56.810 align:start position:0%
you give solid it could what is this
 

00:09:56.810 --> 00:09:58.990 align:start position:0%
you give solid it could what is this
gonna<00:09:56.960><c> do</c><00:09:57.260><c> under</c><00:09:58.130><c> the</c><00:09:58.220><c> hood</c><00:09:58.400><c> is</c><00:09:58.580><c> this</c><00:09:58.820><c> gonna</c>

00:09:58.990 --> 00:09:59.000 align:start position:0%
gonna do under the hood is this gonna
 

00:09:59.000 --> 00:10:01.630 align:start position:0%
gonna do under the hood is this gonna
compile<00:09:59.390><c> this</c><00:09:59.570><c> code</c><00:09:59.630><c> and</c><00:10:00.050><c> work</c><00:10:00.800><c> on</c><00:10:01.040><c> the</c><00:10:01.220><c> EVM</c>

00:10:01.630 --> 00:10:01.640 align:start position:0%
compile this code and work on the EVM
 

00:10:01.640 --> 00:10:07.690 align:start position:0%
compile this code and work on the EVM
code<00:10:05.650><c> so</c><00:10:06.650><c> now</c><00:10:06.800><c> if</c><00:10:06.920><c> we</c><00:10:06.950><c> look</c><00:10:07.100><c> at</c><00:10:07.250><c> this</c><00:10:07.430><c> simple</c>

00:10:07.690 --> 00:10:07.700 align:start position:0%
code so now if we look at this simple
 

00:10:07.700 --> 00:10:10.060 align:start position:0%
code so now if we look at this simple
example<00:10:07.850><c> of</c><00:10:08.300><c> a</c><00:10:08.330><c> simple</c><00:10:08.810><c> bank</c><00:10:09.170><c> you</c><00:10:09.740><c> can</c><00:10:09.890><c> see</c>

00:10:10.060 --> 00:10:10.070 align:start position:0%
example of a simple bank you can see
 

00:10:10.070 --> 00:10:12.540 align:start position:0%
example of a simple bank you can see
here<00:10:10.250><c> that</c><00:10:10.430><c> you</c><00:10:10.580><c> have</c><00:10:10.640><c> a</c><00:10:10.730><c> storage</c><00:10:11.450><c> variable</c>

00:10:12.540 --> 00:10:12.550 align:start position:0%
here that you have a storage variable
 

00:10:12.550 --> 00:10:15.250 align:start position:0%
here that you have a storage variable
balances<00:10:13.550><c> which</c><00:10:13.760><c> contains</c><00:10:14.120><c> the</c><00:10:14.750><c> balances</c><00:10:15.230><c> of</c>

00:10:15.250 --> 00:10:15.260 align:start position:0%
balances which contains the balances of
 

00:10:15.260 --> 00:10:18.370 align:start position:0%
balances which contains the balances of
the<00:10:15.380><c> users</c><00:10:15.950><c> you</c><00:10:16.520><c> have</c><00:10:16.550><c> a</c><00:10:16.730><c> deposit</c><00:10:17.380><c> function</c>

00:10:18.370 --> 00:10:18.380 align:start position:0%
the users you have a deposit function
 

00:10:18.380 --> 00:10:20.950 align:start position:0%
the users you have a deposit function
which<00:10:18.560><c> allows</c><00:10:18.740><c> a</c><00:10:18.890><c> user</c><00:10:19.130><c> to</c><00:10:19.480><c> the</c><00:10:20.480><c> pose</c><00:10:20.690><c> to</c>

00:10:20.950 --> 00:10:20.960 align:start position:0%
which allows a user to the pose to
 

00:10:20.960 --> 00:10:24.700 align:start position:0%
which allows a user to the pose to
deposit<00:10:21.910><c> some</c><00:10:22.910><c> money</c><00:10:22.940><c> and</c><00:10:23.450><c> you</c><00:10:23.750><c> also</c><00:10:23.930><c> withdraw</c>

00:10:24.700 --> 00:10:24.710 align:start position:0%
deposit some money and you also withdraw
 

00:10:24.710 --> 00:10:29.560 align:start position:0%
deposit some money and you also withdraw
function<00:10:27.760><c> so</c><00:10:28.760><c> there</c><00:10:28.910><c> are</c><00:10:29.000><c> many</c><00:10:29.180><c> things</c><00:10:29.390><c> that</c>

00:10:29.560 --> 00:10:29.570 align:start position:0%
function so there are many things that
 

00:10:29.570 --> 00:10:31.450 align:start position:0%
function so there are many things that
are<00:10:29.690><c> wrong</c><00:10:29.810><c> with</c><00:10:29.990><c> this</c><00:10:30.110><c> code</c><00:10:30.380><c> and</c><00:10:30.860><c> I</c><00:10:31.100><c> just</c><00:10:31.310><c> want</c>

00:10:31.450 --> 00:10:31.460 align:start position:0%
are wrong with this code and I just want
 

00:10:31.460 --> 00:10:33.250 align:start position:0%
are wrong with this code and I just want
to<00:10:31.580><c> show</c><00:10:32.120><c> one</c><00:10:32.300><c> of</c><00:10:32.330><c> the</c><00:10:32.510><c> code</c><00:10:32.660><c> so</c><00:10:32.810><c> here</c><00:10:33.020><c> you</c><00:10:33.110><c> can</c>

00:10:33.250 --> 00:10:33.260 align:start position:0%
to show one of the code so here you can
 

00:10:33.260 --> 00:10:35.680 align:start position:0%
to show one of the code so here you can
click<00:10:33.500><c> formally</c><00:10:33.890><c> verify</c><00:10:34.310><c> and</c><00:10:34.550><c> your</c><00:10:35.120><c> you</c><00:10:35.660><c> know</c>

00:10:35.680 --> 00:10:35.690 align:start position:0%
click formally verify and your you know
 

00:10:35.690 --> 00:10:38.020 align:start position:0%
click formally verify and your you know
have<00:10:35.990><c> a</c><00:10:36.020><c> security</c><00:10:36.770><c> report</c><00:10:37.190><c> with</c><00:10:37.460><c> various</c>

00:10:38.020 --> 00:10:38.030 align:start position:0%
have a security report with various
 

00:10:38.030 --> 00:10:40.540 align:start position:0%
have a security report with various
patterns<00:10:38.330><c> that</c><00:10:38.690><c> are</c><00:10:38.870><c> checked</c><00:10:39.470><c> or</c><00:10:39.710><c> not</c><00:10:39.980><c> so</c><00:10:40.430><c> the</c>

00:10:40.540 --> 00:10:40.550 align:start position:0%
patterns that are checked or not so the
 

00:10:40.550 --> 00:10:42.250 align:start position:0%
patterns that are checked or not so the
ones<00:10:40.730><c> that</c><00:10:40.850><c> I'm</c><00:10:40.940><c> interested</c><00:10:41.450><c> in</c><00:10:41.540><c> right</c><00:10:41.900><c> now</c><00:10:41.930><c> is</c>

00:10:42.250 --> 00:10:42.260 align:start position:0%
ones that I'm interested in right now is
 

00:10:42.260 --> 00:10:44.050 align:start position:0%
ones that I'm interested in right now is
gas<00:10:42.530><c> dependent</c><00:10:42.980><c> reinsurance</c><00:10:43.430><c> II</c><00:10:43.580><c> so</c>

00:10:44.050 --> 00:10:44.060 align:start position:0%
gas dependent reinsurance II so
 

00:10:44.060 --> 00:10:47.080 align:start position:0%
gas dependent reinsurance II so
basically<00:10:44.480><c> basically</c><00:10:44.870><c> the</c><00:10:45.230><c> DAO</c><00:10:45.590><c> bug</c><00:10:45.950><c> so</c><00:10:46.400><c> if</c><00:10:46.880><c> we</c>

00:10:47.080 --> 00:10:47.090 align:start position:0%
basically basically the DAO bug so if we
 

00:10:47.090 --> 00:10:49.390 align:start position:0%
basically basically the DAO bug so if we
click<00:10:47.300><c> on</c><00:10:47.450><c> the</c><00:10:48.140><c> the</c><00:10:48.410><c> matched</c><00:10:48.620><c> line</c><00:10:48.860><c> to</c><00:10:49.190><c> find</c>

00:10:49.390 --> 00:10:49.400 align:start position:0%
click on the the matched line to find
 

00:10:49.400 --> 00:10:53.800 align:start position:0%
click on the the matched line to find
out<00:10:49.550><c> where</c><00:10:49.880><c> the</c><00:10:50.120><c> the</c><00:10:50.870><c> faulty</c><00:10:51.200><c> code</c><00:10:51.920><c> is</c><00:10:52.810><c> we're</c>

00:10:53.800 --> 00:10:53.810 align:start position:0%
out where the the faulty code is we're
 

00:10:53.810 --> 00:10:56.460 align:start position:0%
out where the the faulty code is we're
gonna<00:10:53.900><c> see</c><00:10:54.140><c> that</c><00:10:54.230><c> here</c><00:10:54.620><c> there</c><00:10:55.130><c> is</c><00:10:55.280><c> actually</c>

00:10:56.460 --> 00:10:56.470 align:start position:0%
gonna see that here there is actually
 

00:10:56.470 --> 00:10:59.560 align:start position:0%
gonna see that here there is actually
some<00:10:57.470><c> ether</c><00:10:57.680><c> which</c><00:10:57.980><c> is</c><00:10:58.160><c> sent</c><00:10:58.430><c> and</c><00:10:58.640><c> some</c>

00:10:59.560 --> 00:10:59.570 align:start position:0%
some ether which is sent and some
 

00:10:59.570 --> 00:11:02.410 align:start position:0%
some ether which is sent and some
storage<00:11:00.410><c> value</c><00:11:00.800><c> which</c><00:11:00.980><c> is</c><00:11:01.250><c> which</c><00:11:01.940><c> is</c><00:11:02.150><c> set</c><00:11:02.390><c> to</c>

00:11:02.410 --> 00:11:02.420 align:start position:0%
storage value which is which is set to
 

00:11:02.420 --> 00:11:05.530 align:start position:0%
storage value which is which is set to
another<00:11:02.810><c> value</c><00:11:03.620><c> at</c><00:11:03.980><c> after</c><00:11:04.790><c> the</c><00:11:05.060><c> course</c><00:11:05.300><c> so</c>

00:11:05.530 --> 00:11:05.540 align:start position:0%
another value at after the course so
 

00:11:05.540 --> 00:11:08.110 align:start position:0%
another value at after the course so
this<00:11:06.200><c> means</c><00:11:06.500><c> that</c><00:11:06.590><c> the</c><00:11:06.800><c> attacker</c><00:11:06.980><c> through</c><00:11:07.940><c> is</c>

00:11:08.110 --> 00:11:08.120 align:start position:0%
this means that the attacker through is
 

00:11:08.120 --> 00:11:10.710 align:start position:0%
this means that the attacker through is
fallback<00:11:08.420><c> function</c><00:11:09.020><c> can</c><00:11:09.350><c> call</c><00:11:09.950><c> this</c><00:11:10.100><c> function</c>

00:11:10.710 --> 00:11:10.720 align:start position:0%
fallback function can call this function
 

00:11:10.720 --> 00:11:12.900 align:start position:0%
fallback function can call this function
and<00:11:10.980><c> this</c><00:11:11.980><c> dysfunction</c><00:11:12.519><c> is</c><00:11:12.610><c> gonna</c><00:11:12.790><c> be</c>

00:11:12.900 --> 00:11:12.910 align:start position:0%
and this dysfunction is gonna be
 

00:11:12.910 --> 00:11:14.730 align:start position:0%
and this dysfunction is gonna be
executed<00:11:13.329><c> within</c><00:11:13.600><c> the</c><00:11:13.810><c> same</c><00:11:14.019><c> state</c><00:11:14.199><c> which</c><00:11:14.529><c> is</c>

00:11:14.730 --> 00:11:14.740 align:start position:0%
executed within the same state which is
 

00:11:14.740 --> 00:11:21.059 align:start position:0%
executed within the same state which is
the<00:11:15.519><c> DAO</c><00:11:15.790><c> bug</c><00:11:16.769><c> so</c><00:11:17.769><c> one</c><00:11:18.310><c> one</c><00:11:18.990><c> solution</c><00:11:19.990><c> for</c><00:11:20.560><c> this</c>

00:11:21.059 --> 00:11:21.069 align:start position:0%
the DAO bug so one one solution for this
 

00:11:21.069 --> 00:11:23.879 align:start position:0%
the DAO bug so one one solution for this
Posey's<00:11:21.850><c> bug</c><00:11:22.029><c> in</c><00:11:22.180><c> this</c><00:11:22.329><c> particular</c><00:11:23.319><c> example</c>

00:11:23.879 --> 00:11:23.889 align:start position:0%
Posey's bug in this particular example
 

00:11:23.889 --> 00:11:25.769 align:start position:0%
Posey's bug in this particular example
is<00:11:24.009><c> just</c><00:11:24.160><c> to</c><00:11:24.399><c> remove</c><00:11:24.850><c> this</c><00:11:25.029><c> line</c><00:11:25.300><c> and</c><00:11:25.480><c> put</c><00:11:25.690><c> it</c>

00:11:25.769 --> 00:11:25.779 align:start position:0%
is just to remove this line and put it
 

00:11:25.779 --> 00:11:28.170 align:start position:0%
is just to remove this line and put it
before<00:11:26.250><c> which</c><00:11:27.250><c> is</c><00:11:27.279><c> a</c><00:11:27.430><c> quick</c><00:11:27.819><c> and</c><00:11:28.000><c> dirty</c>

00:11:28.170 --> 00:11:28.180 align:start position:0%
before which is a quick and dirty
 

00:11:28.180 --> 00:11:32.249 align:start position:0%
before which is a quick and dirty
solution<00:11:28.990><c> let's</c><00:11:29.500><c> say</c><00:11:30.899><c> so</c><00:11:31.899><c> if</c><00:11:31.990><c> we</c><00:11:32.139><c> click</c>

00:11:32.249 --> 00:11:32.259 align:start position:0%
solution let's say so if we click
 

00:11:32.259 --> 00:11:36.179 align:start position:0%
solution let's say so if we click
formerly<00:11:32.889><c> verify</c><00:11:33.310><c> again</c><00:11:34.470><c> we're</c><00:11:35.470><c> going</c><00:11:35.560><c> to</c><00:11:35.620><c> get</c>

00:11:36.179 --> 00:11:36.189 align:start position:0%
formerly verify again we're going to get
 

00:11:36.189 --> 00:11:38.790 align:start position:0%
formerly verify again we're going to get
another<00:11:36.790><c> security</c><00:11:37.449><c> report</c><00:11:37.870><c> and</c><00:11:38.350><c> in</c><00:11:38.470><c> that</c><00:11:38.589><c> case</c>

00:11:38.790 --> 00:11:38.800 align:start position:0%
another security report and in that case
 

00:11:38.800 --> 00:11:40.350 align:start position:0%
another security report and in that case
you<00:11:38.949><c> can</c><00:11:39.100><c> see</c><00:11:39.279><c> that</c><00:11:39.430><c> the</c><00:11:39.579><c> pattern</c><00:11:39.790><c> is</c><00:11:40.120><c> not</c><00:11:40.149><c> a</c>

00:11:40.350 --> 00:11:40.360 align:start position:0%
you can see that the pattern is not a
 

00:11:40.360 --> 00:11:42.179 align:start position:0%
you can see that the pattern is not a
gun<00:11:40.540><c> check</c><00:11:40.750><c> so</c><00:11:40.990><c> you</c><00:11:41.470><c> have</c><00:11:41.560><c> made</c><00:11:41.800><c> sure</c><00:11:42.009><c> that</c>

00:11:42.179 --> 00:11:42.189 align:start position:0%
gun check so you have made sure that
 

00:11:42.189 --> 00:11:47.090 align:start position:0%
gun check so you have made sure that
your<00:11:42.430><c> contract</c><00:11:42.970><c> is</c><00:11:43.720><c> no</c><00:11:43.990><c> longer</c><00:11:44.170><c> a</c><00:11:45.720><c> victim</c><00:11:46.720><c> of</c>

00:11:47.090 --> 00:11:47.100 align:start position:0%
your contract is no longer a victim of
 

00:11:47.100 --> 00:11:50.639 align:start position:0%
your contract is no longer a victim of
gas<00:11:48.100><c> dependent</c><00:11:48.610><c> s</c><00:11:49.089><c> dependent</c><00:11:49.509><c> reenter</c><00:11:49.839><c> NC</c><00:11:50.079><c> and</c>

00:11:50.639 --> 00:11:50.649 align:start position:0%
gas dependent s dependent reenter NC and
 

00:11:50.649 --> 00:11:52.439 align:start position:0%
gas dependent s dependent reenter NC and
this<00:11:51.310><c> is</c><00:11:51.459><c> a</c><00:11:51.490><c> strong</c><00:11:51.759><c> guarantee</c><00:11:51.910><c> that</c><00:11:52.300><c> is</c>

00:11:52.439 --> 00:11:52.449 align:start position:0%
this is a strong guarantee that is
 

00:11:52.449 --> 00:11:54.720 align:start position:0%
this is a strong guarantee that is
you're<00:11:52.839><c> 100%</c><00:11:53.350><c> sure</c><00:11:53.889><c> of</c><00:11:53.920><c> that</c><00:11:54.250><c> there</c><00:11:54.459><c> is</c><00:11:54.579><c> no</c>

00:11:54.720 --> 00:11:54.730 align:start position:0%
you're 100% sure of that there is no
 

00:11:54.730 --> 00:11:57.900 align:start position:0%
you're 100% sure of that there is no
national<00:11:54.970><c> code</c><00:11:55.389><c> coverage</c><00:11:55.750><c> here</c><00:11:56.079><c> or</c><00:11:56.920><c> they</c><00:11:57.699><c> said</c>

00:11:57.900 --> 00:11:57.910 align:start position:0%
national code coverage here or they said
 

00:11:57.910 --> 00:12:06.030 align:start position:0%
national code coverage here or they said
that<00:11:58.029><c> the</c><00:11:58.120><c> code</c><00:11:58.269><c> coverage</c><00:11:58.600><c> is</c><00:11:58.779><c> 100%</c><00:12:05.040><c> so</c>

00:12:06.030 --> 00:12:06.040 align:start position:0%
that the code coverage is 100% so
 

00:12:06.040 --> 00:12:12.269 align:start position:0%
that the code coverage is 100% so
another<00:12:06.550><c> example</c><00:12:07.120><c> now</c><00:12:08.040><c> is</c><00:12:09.040><c> this</c><00:12:11.220><c> flow</c><00:12:12.220><c> the</c>

00:12:12.269 --> 00:12:12.279 align:start position:0%
another example now is this flow the
 

00:12:12.279 --> 00:12:14.369 align:start position:0%
another example now is this flow the
wallet<00:12:12.639><c> contract</c><00:12:13.600><c> so</c><00:12:13.810><c> here</c><00:12:14.079><c> you</c><00:12:14.230><c> have</c><00:12:14.350><c> a</c>

00:12:14.369 --> 00:12:14.379 align:start position:0%
wallet contract so here you have a
 

00:12:14.379 --> 00:12:16.410 align:start position:0%
wallet contract so here you have a
storage<00:12:15.189><c> Bible</c><00:12:15.490><c> which</c><00:12:15.670><c> is</c><00:12:15.699><c> owner</c><00:12:16.000><c> which</c><00:12:16.269><c> is</c>

00:12:16.410 --> 00:12:16.420 align:start position:0%
storage Bible which is owner which is
 

00:12:16.420 --> 00:12:18.240 align:start position:0%
storage Bible which is owner which is
the<00:12:16.540><c> owner</c><00:12:16.660><c> of</c><00:12:16.810><c> the</c><00:12:17.139><c> contract</c><00:12:17.620><c> so</c><00:12:17.920><c> this</c><00:12:18.069><c> is</c>

00:12:18.240 --> 00:12:18.250 align:start position:0%
the owner of the contract so this is
 

00:12:18.250 --> 00:12:20.160 align:start position:0%
the owner of the contract so this is
example<00:12:18.550><c> I</c><00:12:19.000><c> showed</c><00:12:19.209><c> earlier</c><00:12:19.240><c> you</c><00:12:19.689><c> you</c><00:12:20.019><c> can</c>

00:12:20.160 --> 00:12:20.170 align:start position:0%
example I showed earlier you you can
 

00:12:20.170 --> 00:12:22.050 align:start position:0%
example I showed earlier you you can
initialize<00:12:20.709><c> the</c><00:12:21.250><c> owner</c><00:12:21.399><c> of</c><00:12:21.579><c> the</c><00:12:21.670><c> contract</c>

00:12:22.050 --> 00:12:22.060 align:start position:0%
initialize the owner of the contract
 

00:12:22.060 --> 00:12:23.879 align:start position:0%
initialize the owner of the contract
through<00:12:22.329><c> the</c><00:12:22.509><c> first</c><00:12:22.810><c> function</c><00:12:23.259><c> in</c><00:12:23.439><c> it</c><00:12:23.589><c> wallet</c>

00:12:23.879 --> 00:12:23.889 align:start position:0%
through the first function in it wallet
 

00:12:23.889 --> 00:12:26.730 align:start position:0%
through the first function in it wallet
and<00:12:24.009><c> the</c><00:12:24.490><c> second</c><00:12:24.790><c> function</c><00:12:25.000><c> allows</c><00:12:25.959><c> some</c>

00:12:26.730 --> 00:12:26.740 align:start position:0%
and the second function allows some
 

00:12:26.740 --> 00:12:28.920 align:start position:0%
and the second function allows some
transfer<00:12:27.160><c> of</c><00:12:27.399><c> ether</c><00:12:27.670><c> if</c><00:12:27.970><c> the</c><00:12:28.180><c> message</c><00:12:28.630><c> sender</c>

00:12:28.920 --> 00:12:28.930 align:start position:0%
transfer of ether if the message sender
 

00:12:28.930 --> 00:12:33.689 align:start position:0%
transfer of ether if the message sender
is<00:12:29.230><c> the</c><00:12:29.410><c> owner</c><00:12:29.529><c> so</c><00:12:32.130><c> we're</c><00:12:33.130><c> not</c><00:12:33.250><c> going</c><00:12:33.430><c> to</c><00:12:33.519><c> try</c>

00:12:33.689 --> 00:12:33.699 align:start position:0%
is the owner so we're not going to try
 

00:12:33.699 --> 00:12:35.939 align:start position:0%
is the owner so we're not going to try
to<00:12:33.759><c> to</c><00:12:34.149><c> get</c><00:12:34.300><c> the</c><00:12:34.420><c> security</c><00:12:34.990><c> report</c><00:12:35.199><c> out</c><00:12:35.769><c> of</c>

00:12:35.939 --> 00:12:35.949 align:start position:0%
to to get the security report out of
 

00:12:35.949 --> 00:12:43.710 align:start position:0%
to to get the security report out of
this<00:12:36.130><c> contract</c><00:12:42.149><c> so</c><00:12:43.149><c> if</c><00:12:43.240><c> you</c><00:12:43.329><c> remember</c><00:12:43.540><c> it's</c>

00:12:43.710 --> 00:12:43.720 align:start position:0%
this contract so if you remember it's
 

00:12:43.720 --> 00:12:47.730 align:start position:0%
this contract so if you remember it's
the<00:12:43.810><c> multi</c><00:12:44.079><c> sick</c><00:12:44.230><c> party</c><00:12:44.589><c> bug</c><00:12:46.350><c> so</c><00:12:47.350><c> you</c><00:12:47.410><c> see</c>

00:12:47.730 --> 00:12:47.740 align:start position:0%
the multi sick party bug so you see
 

00:12:47.740 --> 00:12:49.650 align:start position:0%
the multi sick party bug so you see
different<00:12:47.889><c> patterns</c><00:12:48.250><c> and</c><00:12:48.639><c> here</c><00:12:48.910><c> the</c><00:12:49.060><c> one</c><00:12:49.240><c> that</c>

00:12:49.650 --> 00:12:49.660 align:start position:0%
different patterns and here the one that
 

00:12:49.660 --> 00:12:51.300 align:start position:0%
different patterns and here the one that
I<00:12:49.689><c> want</c><00:12:49.899><c> to</c><00:12:49.959><c> focus</c><00:12:50.110><c> on</c><00:12:50.410><c> is</c><00:12:50.560><c> I'm</c><00:12:50.860><c> privileged</c>

00:12:51.300 --> 00:12:51.310 align:start position:0%
I want to focus on is I'm privileged
 

00:12:51.310 --> 00:12:53.309 align:start position:0%
I want to focus on is I'm privileged
right<00:12:51.490><c> to</c><00:12:51.699><c> storage</c><00:12:52.060><c> so</c><00:12:52.630><c> I</c><00:12:52.660><c> explained</c><00:12:53.170><c> it</c>

00:12:53.309 --> 00:12:53.319 align:start position:0%
right to storage so I explained it
 

00:12:53.319 --> 00:12:55.049 align:start position:0%
right to storage so I explained it
earlier<00:12:53.439><c> this</c><00:12:53.860><c> that</c><00:12:54.069><c> you</c><00:12:54.220><c> allow</c><00:12:54.490><c> anybody</c><00:12:54.850><c> to</c>

00:12:55.049 --> 00:12:55.059 align:start position:0%
earlier this that you allow anybody to
 

00:12:55.059 --> 00:12:57.720 align:start position:0%
earlier this that you allow anybody to
write<00:12:55.360><c> to</c><00:12:55.480><c> your</c><00:12:55.600><c> storage</c><00:12:55.990><c> without</c><00:12:56.649><c> any</c><00:12:56.920><c> check</c>

00:12:57.720 --> 00:12:57.730 align:start position:0%
write to your storage without any check
 

00:12:57.730 --> 00:13:01.319 align:start position:0%
write to your storage without any check
so<00:12:58.449><c> if</c><00:12:58.569><c> we</c><00:12:58.689><c> click</c><00:12:58.899><c> on</c><00:12:59.079><c> a</c><00:12:59.139><c> match</c><00:12:59.500><c> line</c><00:13:00.329><c> we're</c>

00:13:01.319 --> 00:13:01.329 align:start position:0%
so if we click on a match line we're
 

00:13:01.329 --> 00:13:03.240 align:start position:0%
so if we click on a match line we're
gonna<00:13:01.449><c> see</c><00:13:01.689><c> that</c><00:13:01.809><c> the</c><00:13:02.019><c> faulty</c><00:13:02.470><c> line</c><00:13:02.620><c> is</c><00:13:02.889><c> where</c>

00:13:03.240 --> 00:13:03.250 align:start position:0%
gonna see that the faulty line is where
 

00:13:03.250 --> 00:13:05.220 align:start position:0%
gonna see that the faulty line is where
you<00:13:03.430><c> assign</c><00:13:03.730><c> the</c><00:13:04.000><c> owner</c><00:13:04.149><c> to</c><00:13:04.569><c> another</c><00:13:04.870><c> viable</c>

00:13:05.220 --> 00:13:05.230 align:start position:0%
you assign the owner to another viable
 

00:13:05.230 --> 00:13:08.579 align:start position:0%
you assign the owner to another viable
without<00:13:05.709><c> any</c><00:13:05.949><c> any</c><00:13:06.370><c> check</c><00:13:07.230><c> so</c><00:13:08.230><c> here's</c><00:13:08.470><c> a</c>

00:13:08.579 --> 00:13:08.589 align:start position:0%
without any any check so here's a
 

00:13:08.589 --> 00:13:12.240 align:start position:0%
without any any check so here's a
solution<00:13:09.069><c> that</c><00:13:09.220><c> we</c><00:13:09.399><c> can</c><00:13:10.199><c> that</c><00:13:11.199><c> we</c><00:13:11.230><c> can</c><00:13:11.290><c> use</c><00:13:11.949><c> and</c>

00:13:12.240 --> 00:13:12.250 align:start position:0%
solution that we can that we can use and
 

00:13:12.250 --> 00:13:13.999 align:start position:0%
solution that we can that we can use and
that<00:13:12.339><c> work</c><00:13:12.519><c> that</c><00:13:12.819><c> was</c><00:13:13.029><c> actually</c><00:13:13.240><c> used</c><00:13:13.629><c> in</c><00:13:13.750><c> a</c>

00:13:13.999 --> 00:13:14.009 align:start position:0%
that work that was actually used in a
 

00:13:14.009 --> 00:13:17.100 align:start position:0%
that work that was actually used in a
multi-state<00:13:15.009><c> party</c><00:13:15.370><c> bug</c><00:13:15.550><c> was</c><00:13:16.149><c> to</c><00:13:16.360><c> have</c><00:13:16.990><c> a</c>

00:13:17.100 --> 00:13:17.110 align:start position:0%
multi-state party bug was to have a
 

00:13:17.110 --> 00:13:20.699 align:start position:0%
multi-state party bug was to have a
modifier<00:13:17.559><c> only</c><00:13:18.129><c> honor</c><00:13:18.309><c> which</c><00:13:18.939><c> is</c><00:13:19.559><c> gonna</c><00:13:20.559><c> make</c>

00:13:20.699 --> 00:13:20.709 align:start position:0%
modifier only honor which is gonna make
 

00:13:20.709 --> 00:13:22.650 align:start position:0%
modifier only honor which is gonna make
sure<00:13:20.889><c> that</c><00:13:21.130><c> the</c><00:13:21.399><c> function</c><00:13:21.939><c> will</c><00:13:22.180><c> be</c><00:13:22.240><c> actually</c>

00:13:22.650 --> 00:13:22.660 align:start position:0%
sure that the function will be actually
 

00:13:22.660 --> 00:13:24.480 align:start position:0%
sure that the function will be actually
executed<00:13:23.319><c> only</c><00:13:23.500><c> if</c><00:13:23.740><c> the</c>

00:13:24.480 --> 00:13:24.490 align:start position:0%
executed only if the
 

00:13:24.490 --> 00:13:26.580 align:start position:0%
executed only if the
if<00:13:24.910><c> the</c><00:13:25.180><c> message</c><00:13:25.450><c> sender</c><00:13:25.660><c> is</c><00:13:25.930><c> the</c><00:13:26.080><c> owner</c><00:13:26.200><c> so</c>

00:13:26.580 --> 00:13:26.590 align:start position:0%
if the message sender is the owner so
 

00:13:26.590 --> 00:13:29.010 align:start position:0%
if the message sender is the owner so
basically<00:13:26.890><c> having</c><00:13:27.700><c> the</c><00:13:27.820><c> same</c><00:13:28.180><c> check</c><00:13:28.510><c> as</c><00:13:28.750><c> you</c>

00:13:29.010 --> 00:13:29.020 align:start position:0%
basically having the same check as you
 

00:13:29.020 --> 00:13:31.050 align:start position:0%
basically having the same check as you
had<00:13:29.200><c> in</c><00:13:29.230><c> this</c><00:13:29.590><c> function</c><00:13:30.010><c> but</c><00:13:30.520><c> for</c><00:13:30.730><c> the</c>

00:13:31.050 --> 00:13:31.060 align:start position:0%
had in this function but for the
 

00:13:31.060 --> 00:13:35.250 align:start position:0%
had in this function but for the
initialization<00:13:31.600><c> function</c><00:13:33.840><c> so</c><00:13:34.840><c> here</c><00:13:35.110><c> you</c>

00:13:35.250 --> 00:13:35.260 align:start position:0%
initialization function so here you
 

00:13:35.260 --> 00:13:38.640 align:start position:0%
initialization function so here you
click<00:13:35.380><c> formally</c><00:13:35.800><c> verify</c><00:13:36.190><c> again</c><00:13:36.430><c> and</c><00:13:37.380><c> if</c><00:13:38.380><c> you</c>

00:13:38.640 --> 00:13:38.650 align:start position:0%
click formally verify again and if you
 

00:13:38.650 --> 00:13:40.500 align:start position:0%
click formally verify again and if you
look<00:13:38.800><c> at</c><00:13:38.920><c> the</c><00:13:39.040><c> patterns</c><00:13:39.370><c> nights</c><00:13:39.820><c> it's</c><00:13:40.240><c> safe</c>

00:13:40.500 --> 00:13:40.510 align:start position:0%
look at the patterns nights it's safe
 

00:13:40.510 --> 00:13:42.690 align:start position:0%
look at the patterns nights it's safe
and<00:13:40.810><c> so</c><00:13:41.350><c> now</c><00:13:41.650><c> your</c><00:13:41.800><c> contract</c><00:13:42.130><c> is</c><00:13:42.280><c> guaranteed</c>

00:13:42.690 --> 00:13:42.700 align:start position:0%
and so now your contract is guaranteed
 

00:13:42.700 --> 00:13:45.510 align:start position:0%
and so now your contract is guaranteed
to<00:13:42.730><c> be</c><00:13:42.850><c> to</c><00:13:43.450><c> be</c><00:13:43.600><c> deprived</c><00:13:44.440><c> of</c><00:13:44.590><c> any</c><00:13:45.220><c> and</c>

00:13:45.510 --> 00:13:45.520 align:start position:0%
to be to be deprived of any and
 

00:13:45.520 --> 00:13:55.200 align:start position:0%
to be to be deprived of any and
privilege<00:13:45.880><c> destroyed</c><00:13:46.150><c> to</c><00:13:46.330><c> storage</c><00:13:54.030><c> one</c><00:13:55.030><c> last</c>

00:13:55.200 --> 00:13:55.210 align:start position:0%
privilege destroyed to storage one last
 

00:13:55.210 --> 00:14:00.150 align:start position:0%
privilege destroyed to storage one last
example<00:13:55.750><c> quickly</c><00:13:56.740><c> is</c><00:13:57.960><c> that</c><00:13:58.960><c> of</c><00:13:59.140><c> the</c><00:13:59.380><c> token</c>

00:14:00.150 --> 00:14:00.160 align:start position:0%
example quickly is that of the token
 

00:14:00.160 --> 00:14:03.120 align:start position:0%
example quickly is that of the token
with<00:14:00.340><c> the</c><00:14:00.490><c> changing</c><00:14:00.880><c> price</c><00:14:01.150><c> so</c><00:14:02.080><c> this</c><00:14:02.260><c> is</c><00:14:02.440><c> a</c><00:14:02.470><c> the</c>

00:14:03.120 --> 00:14:03.130 align:start position:0%
with the changing price so this is a the
 

00:14:03.130 --> 00:14:04.890 align:start position:0%
with the changing price so this is a the
other<00:14:03.310><c> transaction</c><00:14:03.850><c> reordering</c><00:14:04.450><c> example</c>

00:14:04.890 --> 00:14:04.900 align:start position:0%
other transaction reordering example
 

00:14:04.900 --> 00:14:06.900 align:start position:0%
other transaction reordering example
that<00:14:05.050><c> I</c><00:14:05.080><c> showed</c><00:14:05.500><c> earlier</c><00:14:06.040><c> where</c><00:14:06.730><c> you</c><00:14:06.760><c> have</c>

00:14:06.900 --> 00:14:06.910 align:start position:0%
that I showed earlier where you have
 

00:14:06.910 --> 00:14:08.700 align:start position:0%
that I showed earlier where you have
this<00:14:07.030><c> set</c><00:14:07.240><c> price</c><00:14:07.450><c> function</c><00:14:07.930><c> through</c><00:14:08.560><c> which</c>

00:14:08.700 --> 00:14:08.710 align:start position:0%
this set price function through which
 

00:14:08.710 --> 00:14:10.980 align:start position:0%
this set price function through which
the<00:14:08.980><c> owner</c><00:14:09.160><c> can</c><00:14:09.520><c> change</c><00:14:09.760><c> the</c><00:14:09.910><c> price</c><00:14:10.120><c> and</c><00:14:10.480><c> you</c>

00:14:10.980 --> 00:14:10.990 align:start position:0%
the owner can change the price and you
 

00:14:10.990 --> 00:14:13.110 align:start position:0%
the owner can change the price and you
also<00:14:11.110><c> have</c><00:14:11.380><c> this</c><00:14:11.560><c> sell</c><00:14:11.830><c> token</c><00:14:12.190><c> which</c><00:14:12.670><c> is</c><00:14:12.880><c> meant</c>

00:14:13.110 --> 00:14:13.120 align:start position:0%
also have this sell token which is meant
 

00:14:13.120 --> 00:14:16.320 align:start position:0%
also have this sell token which is meant
to<00:14:13.180><c> be</c><00:14:13.330><c> used</c><00:14:13.480><c> by</c><00:14:13.660><c> the</c><00:14:13.720><c> by</c><00:14:14.140><c> the</c><00:14:14.200><c> user</c><00:14:15.090><c> so</c><00:14:16.090><c> if</c><00:14:16.210><c> you</c>

00:14:16.320 --> 00:14:16.330 align:start position:0%
to be used by the by the user so if you
 

00:14:16.330 --> 00:14:18.870 align:start position:0%
to be used by the by the user so if you
click<00:14:16.480><c> formally</c><00:14:16.840><c> verify</c><00:14:17.260><c> you</c><00:14:18.250><c> can</c><00:14:18.400><c> see</c><00:14:18.640><c> here</c>

00:14:18.870 --> 00:14:18.880 align:start position:0%
click formally verify you can see here
 

00:14:18.880 --> 00:14:22.110 align:start position:0%
click formally verify you can see here
that<00:14:18.910><c> the</c><00:14:19.800><c> that</c><00:14:20.800><c> that</c><00:14:21.070><c> transaction</c><00:14:21.970><c> may</c>

00:14:22.110 --> 00:14:22.120 align:start position:0%
that the that that transaction may
 

00:14:22.120 --> 00:14:24.330 align:start position:0%
that the that that transaction may
affect<00:14:22.510><c> either</c><00:14:22.720><c> amount</c><00:14:23.260><c> so</c><00:14:23.740><c> this</c><00:14:23.920><c> is</c><00:14:24.100><c> a</c><00:14:24.130><c> case</c>

00:14:24.330 --> 00:14:24.340 align:start position:0%
affect either amount so this is a case
 

00:14:24.340 --> 00:14:26.550 align:start position:0%
affect either amount so this is a case
of<00:14:24.370><c> transaction</c><00:14:25.240><c> reordering</c><00:14:25.720><c> because</c><00:14:26.020><c> the</c>

00:14:26.550 --> 00:14:26.560 align:start position:0%
of transaction reordering because the
 

00:14:26.560 --> 00:14:28.620 align:start position:0%
of transaction reordering because the
unknown<00:14:26.980><c> that</c><00:14:27.100><c> can</c><00:14:27.280><c> be</c><00:14:27.400><c> sent</c><00:14:27.670><c> depends</c><00:14:28.180><c> on</c><00:14:28.270><c> on</c>

00:14:28.620 --> 00:14:28.630 align:start position:0%
unknown that can be sent depends on on
 

00:14:28.630 --> 00:14:31.580 align:start position:0%
unknown that can be sent depends on on
the<00:14:28.750><c> variable</c><00:14:29.170><c> which</c><00:14:29.770><c> is</c><00:14:29.950><c> not</c><00:14:30.100><c> constant</c><00:14:30.550><c> so</c>

00:14:31.580 --> 00:14:31.590 align:start position:0%
the variable which is not constant so
 

00:14:31.590 --> 00:14:34.680 align:start position:0%
the variable which is not constant so
here<00:14:32.590><c> a</c><00:14:32.620><c> quick</c><00:14:33.430><c> fix</c><00:14:33.670><c> would</c><00:14:33.910><c> be</c><00:14:33.970><c> to</c><00:14:34.090><c> just</c><00:14:34.420><c> decide</c>

00:14:34.680 --> 00:14:34.690 align:start position:0%
here a quick fix would be to just decide
 

00:14:34.690 --> 00:14:36.510 align:start position:0%
here a quick fix would be to just decide
that<00:14:34.870><c> the</c><00:14:34.960><c> price</c><00:14:35.140><c> is</c><00:14:35.350><c> constant</c><00:14:35.770><c> and</c><00:14:35.920><c> remove</c>

00:14:36.510 --> 00:14:36.520 align:start position:0%
that the price is constant and remove
 

00:14:36.520 --> 00:14:39.660 align:start position:0%
that the price is constant and remove
any<00:14:36.730><c> ability</c><00:14:37.210><c> to</c><00:14:37.860><c> to</c><00:14:38.860><c> change</c><00:14:39.040><c> the</c><00:14:39.250><c> price</c><00:14:39.460><c> in</c>

00:14:39.660 --> 00:14:39.670 align:start position:0%
any ability to to change the price in
 

00:14:39.670 --> 00:14:44.580 align:start position:0%
any ability to to change the price in
the<00:14:39.760><c> future</c><00:14:42.810><c> so</c><00:14:43.810><c> if</c><00:14:43.930><c> we</c><00:14:44.050><c> click</c><00:14:44.170><c> formally</c>

00:14:44.580 --> 00:14:44.590 align:start position:0%
the future so if we click formally
 

00:14:44.590 --> 00:14:46.830 align:start position:0%
the future so if we click formally
verify<00:14:44.980><c> again</c><00:14:45.280><c> we</c><00:14:45.760><c> can</c><00:14:45.910><c> make</c><00:14:46.300><c> sure</c><00:14:46.480><c> that</c><00:14:46.510><c> this</c>

00:14:46.830 --> 00:14:46.840 align:start position:0%
verify again we can make sure that this
 

00:14:46.840 --> 00:14:49.950 align:start position:0%
verify again we can make sure that this
pattern<00:14:47.080><c> is</c><00:14:47.470><c> checked</c><00:14:48.250><c> so</c><00:14:48.640><c> of</c><00:14:49.180><c> course</c><00:14:49.420><c> in</c><00:14:49.660><c> that</c>

00:14:49.950 --> 00:14:49.960 align:start position:0%
pattern is checked so of course in that
 

00:14:49.960 --> 00:14:52.770 align:start position:0%
pattern is checked so of course in that
precise<00:14:50.380><c> case</c><00:14:50.620><c> it</c><00:14:51.250><c> it</c><00:14:51.850><c> removes</c><00:14:52.240><c> one</c><00:14:52.540><c> feature</c>

00:14:52.770 --> 00:14:52.780 align:start position:0%
precise case it it removes one feature
 

00:14:52.780 --> 00:14:55.560 align:start position:0%
precise case it it removes one feature
of<00:14:53.050><c> the</c><00:14:53.260><c> of</c><00:14:53.650><c> the</c><00:14:54.610><c> of</c><00:14:54.820><c> the</c><00:14:54.910><c> contract</c><00:14:55.330><c> that</c><00:14:55.390><c> is</c>

00:14:55.560 --> 00:14:55.570 align:start position:0%
of the of the of the contract that is
 

00:14:55.570 --> 00:14:56.850 align:start position:0%
of the of the of the contract that is
changing<00:14:55.930><c> the</c><00:14:56.050><c> price</c><00:14:56.260><c> so</c><00:14:56.440><c> you</c><00:14:56.560><c> will</c><00:14:56.710><c> need</c><00:14:56.800><c> to</c>

00:14:56.850 --> 00:14:56.860 align:start position:0%
changing the price so you will need to
 

00:14:56.860 --> 00:15:04.400 align:start position:0%
changing the price so you will need to
do<00:14:57.340><c> a</c><00:14:57.370><c> bit</c><00:14:57.610><c> more</c><00:14:57.640><c> to</c><00:14:58.330><c> keep</c><00:14:58.870><c> this</c><00:14:58.990><c> feature</c>

00:15:04.400 --> 00:15:04.410 align:start position:0%
 
 

00:15:04.410 --> 00:15:33.350 align:start position:0%
 
that's<00:15:05.410><c> it</c><00:15:05.590><c> for</c><00:15:05.770><c> the</c><00:15:05.860><c> demo</c>

00:15:33.350 --> 00:15:33.360 align:start position:0%
 
 

00:15:33.360 --> 00:15:35.300 align:start position:0%
 
so<00:15:33.750><c> now</c><00:15:33.870><c> let's</c><00:15:34.170><c> talk</c><00:15:34.290><c> a</c><00:15:34.350><c> bit</c><00:15:34.589><c> about</c><00:15:34.709><c> what's</c>

00:15:35.300 --> 00:15:35.310 align:start position:0%
so now let's talk a bit about what's
 

00:15:35.310 --> 00:15:38.840 align:start position:0%
so now let's talk a bit about what's
under<00:15:35.550><c> the</c><00:15:35.670><c> hood</c><00:15:35.699><c> of</c><00:15:35.970><c> sakura</c><00:15:36.389><c> phi</c><00:15:36.980><c> so</c><00:15:37.980><c> first</c><00:15:38.490><c> as</c>

00:15:38.840 --> 00:15:38.850 align:start position:0%
under the hood of sakura phi so first as
 

00:15:38.850 --> 00:15:40.579 align:start position:0%
under the hood of sakura phi so first as
I<00:15:39.029><c> said</c><00:15:39.209><c> earlier</c><00:15:39.540><c> Sakura</c><00:15:39.959><c> fireworks</c><00:15:40.350><c> on</c><00:15:40.560><c> the</c>

00:15:40.579 --> 00:15:40.589 align:start position:0%
I said earlier Sakura fireworks on the
 

00:15:40.589 --> 00:15:42.769 align:start position:0%
I said earlier Sakura fireworks on the
EVM<00:15:41.100><c> code</c><00:15:41.399><c> so</c><00:15:41.610><c> you</c><00:15:41.639><c> can</c><00:15:41.820><c> exit</c><00:15:42.180><c> the</c><00:15:42.300><c> idiom</c>

00:15:42.769 --> 00:15:42.779 align:start position:0%
EVM code so you can exit the idiom
 

00:15:42.779 --> 00:15:45.290 align:start position:0%
EVM code so you can exit the idiom
binary<00:15:43.259><c> that</c><00:15:43.920><c> you</c><00:15:44.100><c> obtained</c><00:15:44.370><c> for</c><00:15:44.940><c> instance</c><00:15:45.209><c> by</c>

00:15:45.290 --> 00:15:45.300 align:start position:0%
binary that you obtained for instance by
 

00:15:45.300 --> 00:15:47.060 align:start position:0%
binary that you obtained for instance by
combination<00:15:45.570><c> of</c><00:15:45.959><c> the</c><00:15:46.050><c> obvious</c><00:15:46.470><c> solidity</c><00:15:46.769><c> code</c>

00:15:47.060 --> 00:15:47.070 align:start position:0%
combination of the obvious solidity code
 

00:15:47.070 --> 00:15:49.519 align:start position:0%
combination of the obvious solidity code
and<00:15:47.310><c> using</c><00:15:48.180><c> this</c><00:15:48.329><c> Sakura</c><00:15:48.839><c> is</c><00:15:49.050><c> going</c><00:15:49.199><c> to</c><00:15:49.259><c> obtain</c>

00:15:49.519 --> 00:15:49.529 align:start position:0%
and using this Sakura is going to obtain
 

00:15:49.529 --> 00:15:51.139 align:start position:0%
and using this Sakura is going to obtain
an<00:15:49.709><c> intermediate</c><00:15:50.220><c> representation</c><00:15:50.610><c> this</c>

00:15:51.139 --> 00:15:51.149 align:start position:0%
an intermediate representation this
 

00:15:51.149 --> 00:15:53.059 align:start position:0%
an intermediate representation this
intermediate<00:15:52.079><c> representation</c><00:15:52.740><c> is</c><00:15:52.889><c> only</c>

00:15:53.059 --> 00:15:53.069 align:start position:0%
intermediate representation is only
 

00:15:53.069 --> 00:15:55.850 align:start position:0%
intermediate representation is only
meant<00:15:53.310><c> to</c><00:15:53.430><c> be</c><00:15:53.579><c> easier</c><00:15:54.000><c> to</c><00:15:54.839><c> process</c><00:15:55.079><c> by</c><00:15:55.410><c> static</c>

00:15:55.850 --> 00:15:55.860 align:start position:0%
meant to be easier to process by static
 

00:15:55.860 --> 00:15:58.579 align:start position:0%
meant to be easier to process by static
analysis<00:15:56.459><c> the</c><00:15:57.120><c> static</c><00:15:57.449><c> analysis</c><00:15:57.959><c> provides</c>

00:15:58.579 --> 00:15:58.589 align:start position:0%
analysis the static analysis provides
 

00:15:58.589 --> 00:16:01.460 align:start position:0%
analysis the static analysis provides
you<00:15:58.709><c> with</c><00:15:58.860><c> a</c><00:15:59.190><c> set</c><00:15:59.639><c> of</c><00:15:59.790><c> basic</c><00:16:00.690><c> facts</c><00:16:01.079><c> about</c><00:16:01.319><c> your</c>

00:16:01.460 --> 00:16:01.470 align:start position:0%
you with a set of basic facts about your
 

00:16:01.470 --> 00:16:03.829 align:start position:0%
you with a set of basic facts about your
code<00:16:01.680><c> for</c><00:16:01.920><c> instance</c><00:16:02.250><c> you</c><00:16:02.759><c> have</c><00:16:02.880><c> you</c><00:16:03.240><c> you</c><00:16:03.690><c> know</c>

00:16:03.829 --> 00:16:03.839 align:start position:0%
code for instance you have you you know
 

00:16:03.839 --> 00:16:05.629 align:start position:0%
code for instance you have you you know
that<00:16:03.990><c> this</c><00:16:04.259><c> variable</c><00:16:04.620><c> is</c><00:16:04.769><c> a</c><00:16:04.800><c> constant</c><00:16:05.310><c> or</c><00:16:05.490><c> you</c>

00:16:05.629 --> 00:16:05.639 align:start position:0%
that this variable is a constant or you
 

00:16:05.639 --> 00:16:07.280 align:start position:0%
that this variable is a constant or you
know<00:16:05.730><c> that</c><00:16:05.910><c> this</c><00:16:06.000><c> variable</c><00:16:06.540><c> is</c><00:16:06.630><c> a</c><00:16:06.660><c> balance</c><00:16:07.050><c> and</c>

00:16:07.280 --> 00:16:07.290 align:start position:0%
know that this variable is a balance and
 

00:16:07.290 --> 00:16:11.990 align:start position:0%
know that this variable is a balance and
so<00:16:07.889><c> all</c><00:16:08.250><c> these</c><00:16:08.850><c> basic</c><00:16:09.420><c> facts</c><00:16:09.899><c> are</c><00:16:10.170><c> the</c><00:16:11.000><c> number</c>

00:16:11.990 --> 00:16:12.000 align:start position:0%
so all these basic facts are the number
 

00:16:12.000 --> 00:16:15.069 align:start position:0%
so all these basic facts are the number
0<00:16:12.300><c> of</c><00:16:12.389><c> your</c><00:16:12.750><c> iterations</c><00:16:13.319><c> that</c><00:16:13.440><c> you</c><00:16:13.589><c> can</c><00:16:13.819><c> run</c><00:16:14.819><c> to</c>

00:16:15.069 --> 00:16:15.079 align:start position:0%
0 of your iterations that you can run to
 

00:16:15.079 --> 00:16:18.199 align:start position:0%
0 of your iterations that you can run to
have<00:16:16.079><c> more</c><00:16:16.589><c> and</c><00:16:16.800><c> more</c><00:16:16.829><c> facts</c><00:16:17.310><c> so</c><00:16:17.819><c> basically</c>

00:16:18.199 --> 00:16:18.209 align:start position:0%
have more and more facts so basically
 

00:16:18.209 --> 00:16:20.660 align:start position:0%
have more and more facts so basically
you<00:16:18.360><c> have</c><00:16:18.449><c> a</c><00:16:18.509><c> set</c><00:16:18.930><c> of</c><00:16:18.990><c> inference</c><00:16:19.709><c> rules</c><00:16:20.040><c> that</c>

00:16:20.660 --> 00:16:20.670 align:start position:0%
you have a set of inference rules that
 

00:16:20.670 --> 00:16:23.720 align:start position:0%
you have a set of inference rules that
is<00:16:20.819><c> for</c><00:16:21.480><c> instance</c><00:16:21.750><c> if</c><00:16:21.899><c> a</c><00:16:22.170><c> is</c><00:16:22.649><c> a</c><00:16:22.680><c> constant</c><00:16:22.829><c> B</c><00:16:23.670><c> is</c>

00:16:23.720 --> 00:16:23.730 align:start position:0%
is for instance if a is a constant B is
 

00:16:23.730 --> 00:16:27.199 align:start position:0%
is for instance if a is a constant B is
a<00:16:23.819><c> constant</c><00:16:24.300><c> and</c><00:16:24.480><c> C</c><00:16:24.990><c> depends</c><00:16:25.829><c> only</c><00:16:25.980><c> on</c><00:16:26.130><c> a</c><00:16:26.459><c> and</c><00:16:26.850><c> B</c>

00:16:27.199 --> 00:16:27.209 align:start position:0%
a constant and C depends only on a and B
 

00:16:27.209 --> 00:16:29.389 align:start position:0%
a constant and C depends only on a and B
you<00:16:27.660><c> will</c><00:16:27.810><c> know</c><00:16:27.990><c> that</c><00:16:28.019><c> that</c><00:16:28.769><c> C</c><00:16:28.980><c> is</c><00:16:29.100><c> a</c><00:16:29.130><c> constant</c>

00:16:29.389 --> 00:16:29.399 align:start position:0%
you will know that that C is a constant
 

00:16:29.399 --> 00:16:31.850 align:start position:0%
you will know that that C is a constant
as<00:16:29.730><c> well</c><00:16:29.880><c> so</c><00:16:30.120><c> you</c><00:16:30.540><c> can</c><00:16:30.660><c> imagine</c><00:16:30.899><c> this</c><00:16:31.470><c> sort</c><00:16:31.709><c> of</c>

00:16:31.850 --> 00:16:31.860 align:start position:0%
as well so you can imagine this sort of
 

00:16:31.860 --> 00:16:33.860 align:start position:0%
as well so you can imagine this sort of
infants<00:16:32.370><c> rules</c><00:16:32.610><c> that</c><00:16:32.850><c> we</c><00:16:33.000><c> have</c><00:16:33.180><c> in</c><00:16:33.209><c> Sakura</c><00:16:33.690><c> Phi</c>

00:16:33.860 --> 00:16:33.870 align:start position:0%
infants rules that we have in Sakura Phi
 

00:16:33.870 --> 00:16:36.319 align:start position:0%
infants rules that we have in Sakura Phi
to<00:16:34.350><c> obtain</c><00:16:34.620><c> more</c><00:16:34.920><c> and</c><00:16:35.130><c> more</c><00:16:35.339><c> useful</c><00:16:35.970><c> facts</c>

00:16:36.319 --> 00:16:36.329 align:start position:0%
to obtain more and more useful facts
 

00:16:36.329 --> 00:16:40.100 align:start position:0%
to obtain more and more useful facts
about<00:16:36.569><c> the</c><00:16:36.690><c> code</c><00:16:37.519><c> so</c><00:16:38.750><c> iterating</c><00:16:39.750><c> over</c><00:16:39.870><c> this</c>

00:16:40.100 --> 00:16:40.110 align:start position:0%
about the code so iterating over this
 

00:16:40.110 --> 00:16:42.500 align:start position:0%
about the code so iterating over this
you<00:16:40.529><c> finally</c><00:16:41.250><c> obtain</c><00:16:41.519><c> a</c><00:16:41.699><c> set</c><00:16:41.940><c> of</c><00:16:42.089><c> facts</c><00:16:42.329><c> which</c>

00:16:42.500 --> 00:16:42.510 align:start position:0%
you finally obtain a set of facts which
 

00:16:42.510 --> 00:16:44.300 align:start position:0%
you finally obtain a set of facts which
is<00:16:42.660><c> a</c><00:16:42.690><c> fixed</c><00:16:43.139><c> point</c><00:16:43.410><c> with</c><00:16:43.680><c> respect</c><00:16:43.889><c> to</c><00:16:44.220><c> these</c>

00:16:44.300 --> 00:16:44.310 align:start position:0%
is a fixed point with respect to these
 

00:16:44.310 --> 00:16:47.449 align:start position:0%
is a fixed point with respect to these
inference<00:16:44.910><c> rules</c><00:16:45.149><c> and</c><00:16:45.420><c> so</c><00:16:46.230><c> from</c><00:16:46.920><c> from</c><00:16:47.279><c> all</c>

00:16:47.449 --> 00:16:47.459 align:start position:0%
inference rules and so from from all
 

00:16:47.459 --> 00:16:49.519 align:start position:0%
inference rules and so from from all
these<00:16:47.670><c> facts</c><00:16:47.940><c> you</c><00:16:48.060><c> can</c><00:16:48.149><c> infer</c><00:16:48.630><c> the</c><00:16:49.050><c> security</c>

00:16:49.519 --> 00:16:49.529 align:start position:0%
these facts you can infer the security
 

00:16:49.529 --> 00:16:51.819 align:start position:0%
these facts you can infer the security
report<00:16:49.920><c> that</c><00:16:50.250><c> I</c><00:16:50.279><c> showed</c><00:16:50.550><c> to</c><00:16:50.699><c> you</c><00:16:50.730><c> earlier</c><00:16:51.240><c> and</c>

00:16:51.819 --> 00:16:51.829 align:start position:0%
report that I showed to you earlier and
 

00:16:51.829 --> 00:16:54.949 align:start position:0%
report that I showed to you earlier and
which<00:16:52.829><c> so</c><00:16:53.459><c> basically</c><00:16:53.730><c> you</c><00:16:53.940><c> match</c><00:16:54.149><c> the</c><00:16:54.690><c> facts</c>

00:16:54.949 --> 00:16:54.959 align:start position:0%
which so basically you match the facts
 

00:16:54.959 --> 00:16:57.829 align:start position:0%
which so basically you match the facts
against<00:16:55.470><c> patterns</c><00:16:55.949><c> security</c><00:16:56.760><c> patterns</c><00:16:57.209><c> so</c><00:16:57.660><c> we</c>

00:16:57.829 --> 00:16:57.839 align:start position:0%
against patterns security patterns so we
 

00:16:57.839 --> 00:16:59.960 align:start position:0%
against patterns security patterns so we
have<00:16:57.959><c> a</c><00:16:57.990><c> few</c><00:16:58.290><c> now</c><00:16:58.529><c> and</c><00:16:58.740><c> we</c><00:16:58.860><c> hope</c><00:16:59.279><c> to</c><00:16:59.490><c> increase</c>

00:16:59.960 --> 00:16:59.970 align:start position:0%
have a few now and we hope to increase
 

00:16:59.970 --> 00:17:02.600 align:start position:0%
have a few now and we hope to increase
the<00:17:00.149><c> number</c><00:17:00.449><c> in</c><00:17:00.779><c> a</c><00:17:00.990><c> coming</c><00:17:01.319><c> in</c><00:17:02.250><c> the</c><00:17:02.339><c> coming</c>

00:17:02.600 --> 00:17:02.610 align:start position:0%
the number in a coming in the coming
 

00:17:02.610 --> 00:17:05.870 align:start position:0%
the number in a coming in the coming
months<00:17:03.169><c> so</c><00:17:04.169><c> what</c><00:17:04.620><c> is</c><00:17:04.770><c> what</c><00:17:05.370><c> is</c><00:17:05.459><c> important</c><00:17:05.819><c> to</c>

00:17:05.870 --> 00:17:05.880 align:start position:0%
months so what is what is important to
 

00:17:05.880 --> 00:17:08.480 align:start position:0%
months so what is what is important to
remember<00:17:06.000><c> here</c><00:17:06.480><c> is</c><00:17:06.600><c> that</c><00:17:06.630><c> you</c><00:17:07.350><c> this</c><00:17:08.130><c> is</c><00:17:08.309><c> fully</c>

00:17:08.480 --> 00:17:08.490 align:start position:0%
remember here is that you this is fully
 

00:17:08.490 --> 00:17:10.280 align:start position:0%
remember here is that you this is fully
automated<00:17:08.819><c> that</c><00:17:09.120><c> is</c><00:17:09.299><c> the</c><00:17:09.659><c> only</c><00:17:09.780><c> thing</c><00:17:09.959><c> you</c><00:17:10.020><c> do</c>

00:17:10.280 --> 00:17:10.290 align:start position:0%
automated that is the only thing you do
 

00:17:10.290 --> 00:17:11.929 align:start position:0%
automated that is the only thing you do
is<00:17:10.470><c> at</c><00:17:10.709><c> the</c><00:17:10.799><c> beginning</c><00:17:10.890><c> providing</c><00:17:11.579><c> the</c><00:17:11.730><c> source</c>

00:17:11.929 --> 00:17:11.939 align:start position:0%
is at the beginning providing the source
 

00:17:11.939 --> 00:17:14.240 align:start position:0%
is at the beginning providing the source
code<00:17:12.179><c> of</c><00:17:12.360><c> of</c><00:17:13.020><c> your</c><00:17:13.230><c> contract</c><00:17:13.620><c> and</c><00:17:13.949><c> then</c>

00:17:14.240 --> 00:17:14.250 align:start position:0%
code of of your contract and then
 

00:17:14.250 --> 00:17:16.579 align:start position:0%
code of of your contract and then
sacrifice<00:17:15.120><c> is</c><00:17:15.240><c> gonna</c><00:17:15.390><c> do</c><00:17:15.569><c> all</c><00:17:15.809><c> this</c><00:17:16.049><c> part</c><00:17:16.409><c> and</c>

00:17:16.579 --> 00:17:16.589 align:start position:0%
sacrifice is gonna do all this part and
 

00:17:16.589 --> 00:17:18.319 align:start position:0%
sacrifice is gonna do all this part and
provides<00:17:16.949><c> provide</c><00:17:17.400><c> you</c><00:17:17.490><c> with</c><00:17:17.669><c> the</c><00:17:17.850><c> security</c>

00:17:18.319 --> 00:17:18.329 align:start position:0%
provides provide you with the security
 

00:17:18.329 --> 00:17:20.659 align:start position:0%
provides provide you with the security
report<00:17:19.079><c> and</c><00:17:19.260><c> this</c><00:17:19.740><c> is</c><00:17:19.919><c> easily</c><00:17:20.370><c> extensible</c>

00:17:20.659 --> 00:17:20.669 align:start position:0%
report and this is easily extensible
 

00:17:20.669 --> 00:17:23.689 align:start position:0%
report and this is easily extensible
because<00:17:21.510><c> you</c><00:17:21.600><c> can</c><00:17:21.750><c> add</c><00:17:21.900><c> new</c><00:17:22.350><c> patterns</c><00:17:22.770><c> along</c>

00:17:23.689 --> 00:17:23.699 align:start position:0%
because you can add new patterns along
 

00:17:23.699 --> 00:17:25.939 align:start position:0%
because you can add new patterns along
the<00:17:23.880><c> way</c><00:17:24.059><c> so</c><00:17:24.120><c> in</c><00:17:24.839><c> our</c><00:17:24.990><c> experience</c><00:17:25.439><c> so</c><00:17:25.559><c> far</c><00:17:25.589><c> it</c>

00:17:25.939 --> 00:17:25.949 align:start position:0%
the way so in our experience so far it
 

00:17:25.949 --> 00:17:29.780 align:start position:0%
the way so in our experience so far it
was<00:17:26.130><c> easy</c><00:17:26.880><c> and</c><00:17:27.319><c> quite</c><00:17:28.319><c> quite</c><00:17:29.070><c> quick</c><00:17:29.400><c> to</c><00:17:29.580><c> add</c>

00:17:29.780 --> 00:17:29.790 align:start position:0%
was easy and quite quite quick to add
 

00:17:29.790 --> 00:17:32.060 align:start position:0%
was easy and quite quite quick to add
new<00:17:29.970><c> patterns</c><00:17:30.360><c> because</c><00:17:30.750><c> the</c><00:17:30.780><c> the</c><00:17:31.620><c> platform</c>

00:17:32.060 --> 00:17:32.070 align:start position:0%
new patterns because the the platform
 

00:17:32.070 --> 00:17:35.330 align:start position:0%
new patterns because the the platform
provides<00:17:32.400><c> any</c><00:17:33.049><c> sufficient</c><00:17:34.049><c> primitives</c><00:17:34.830><c> so</c>

00:17:35.330 --> 00:17:35.340 align:start position:0%
provides any sufficient primitives so
 

00:17:35.340 --> 00:17:37.850 align:start position:0%
provides any sufficient primitives so
our<00:17:35.700><c> hope</c><00:17:35.909><c> is</c><00:17:36.059><c> that</c><00:17:36.299><c> we</c><00:17:36.809><c> won't</c><00:17:37.140><c> have</c><00:17:37.290><c> to</c><00:17:37.440><c> modify</c>

00:17:37.850 --> 00:17:37.860 align:start position:0%
our hope is that we won't have to modify
 

00:17:37.860 --> 00:17:39.770 align:start position:0%
our hope is that we won't have to modify
sacrified<00:17:38.669><c> that</c><00:17:38.820><c> much</c><00:17:39.000><c> in</c><00:17:39.179><c> the</c><00:17:39.270><c> future</c><00:17:39.419><c> to</c>

00:17:39.770 --> 00:17:39.780 align:start position:0%
sacrified that much in the future to
 

00:17:39.780 --> 00:17:45.799 align:start position:0%
sacrified that much in the future to
provide<00:17:40.280><c> to</c><00:17:41.280><c> provide</c><00:17:41.610><c> a</c><00:17:41.790><c> new</c><00:17:42.210><c> new</c><00:17:42.809><c> patterns</c>

00:17:45.799 --> 00:17:45.809 align:start position:0%
 
 

00:17:45.809 --> 00:17:48.660 align:start position:0%
 
so<00:17:46.809><c> following</c><00:17:47.260><c> this</c><00:17:47.559><c> experience</c><00:17:48.190><c> we</c><00:17:48.309><c> Sakura</c>

00:17:48.660 --> 00:17:48.670 align:start position:0%
so following this experience we Sakura
 

00:17:48.670 --> 00:17:51.510 align:start position:0%
so following this experience we Sakura
fine<00:17:48.850><c> automated</c><00:17:49.750><c> tools</c><00:17:50.020><c> to</c><00:17:50.650><c> analyze</c><00:17:51.070><c> smart</c>

00:17:51.510 --> 00:17:51.520 align:start position:0%
fine automated tools to analyze smart
 

00:17:51.520 --> 00:17:53.010 align:start position:0%
fine automated tools to analyze smart
contracts<00:17:51.880><c> a</c><00:17:52.030><c> story</c><00:17:52.270><c> was</c><00:17:52.480><c> created</c><00:17:52.900><c> in</c>

00:17:53.010 --> 00:17:53.020 align:start position:0%
contracts a story was created in
 

00:17:53.020 --> 00:17:56.400 align:start position:0%
contracts a story was created in
Switzerland<00:17:53.730><c> to</c><00:17:54.730><c> audit</c><00:17:55.420><c> block</c><00:17:55.809><c> chains</c><00:17:56.110><c> and</c>

00:17:56.400 --> 00:17:56.410 align:start position:0%
Switzerland to audit block chains and
 

00:17:56.410 --> 00:17:58.680 align:start position:0%
Switzerland to audit block chains and
and<00:17:56.830><c> smart</c><00:17:57.250><c> contracts</c><00:17:57.670><c> and</c><00:17:57.910><c> the</c><00:17:58.390><c> loop</c><00:17:58.540><c> is</c>

00:17:58.680 --> 00:17:58.690 align:start position:0%
and smart contracts and the loop is
 

00:17:58.690 --> 00:18:00.870 align:start position:0%
and smart contracts and the loop is
really<00:17:58.929><c> between</c><00:17:59.230><c> auditing</c><00:18:00.220><c> contracts</c><00:18:00.670><c> and</c>

00:18:00.870 --> 00:18:00.880 align:start position:0%
really between auditing contracts and
 

00:18:00.880 --> 00:18:04.190 align:start position:0%
really between auditing contracts and
seeing<00:18:01.630><c> the</c><00:18:01.809><c> common</c><00:18:02.110><c> patterns</c><00:18:02.470><c> and</c><00:18:03.400><c> try</c><00:18:03.850><c> to</c>

00:18:04.190 --> 00:18:04.200 align:start position:0%
seeing the common patterns and try to
 

00:18:04.200 --> 00:18:07.799 align:start position:0%
seeing the common patterns and try to
extract<00:18:05.200><c> the</c><00:18:05.679><c> the</c><00:18:06.130><c> routine</c><00:18:06.520><c> out</c><00:18:06.730><c> of</c><00:18:06.880><c> it</c><00:18:07.030><c> and</c><00:18:07.270><c> so</c>

00:18:07.799 --> 00:18:07.809 align:start position:0%
extract the the routine out of it and so
 

00:18:07.809 --> 00:18:09.870 align:start position:0%
extract the the routine out of it and so
this<00:18:08.049><c> is</c><00:18:08.260><c> release</c><00:18:08.980><c> this</c><00:18:09.160><c> feedback</c><00:18:09.340><c> loop</c><00:18:09.549><c> that</c>

00:18:09.870 --> 00:18:09.880 align:start position:0%
this is release this feedback loop that
 

00:18:09.880 --> 00:18:12.150 align:start position:0%
this is release this feedback loop that
we<00:18:10.000><c> try</c><00:18:10.210><c> to</c><00:18:10.270><c> to</c><00:18:10.900><c> maintain</c><00:18:11.049><c> to</c><00:18:11.650><c> develop</c><00:18:11.950><c> new</c>

00:18:12.150 --> 00:18:12.160 align:start position:0%
we try to to maintain to develop new
 

00:18:12.160 --> 00:18:14.669 align:start position:0%
we try to to maintain to develop new
tools<00:18:12.400><c> that</c><00:18:12.520><c> will</c><00:18:12.760><c> they</c><00:18:13.480><c> will</c><00:18:13.660><c> improve</c><00:18:14.049><c> on</c><00:18:14.380><c> the</c>

00:18:14.669 --> 00:18:14.679 align:start position:0%
tools that will they will improve on the
 

00:18:14.679 --> 00:18:16.890 align:start position:0%
tools that will they will improve on the
current<00:18:14.980><c> state</c><00:18:15.160><c> of</c><00:18:15.309><c> art</c><00:18:15.490><c> so</c><00:18:16.059><c> you</c><00:18:16.150><c> can</c><00:18:16.299><c> check</c>

00:18:16.890 --> 00:18:16.900 align:start position:0%
current state of art so you can check
 

00:18:16.900 --> 00:18:18.780 align:start position:0%
current state of art so you can check
out<00:18:17.049><c> the</c><00:18:17.169><c> information</c><00:18:17.559><c> about</c><00:18:18.040><c> chain</c><00:18:18.250><c> security</c>

00:18:18.780 --> 00:18:18.790 align:start position:0%
out the information about chain security
 

00:18:18.790 --> 00:18:21.870 align:start position:0%
out the information about chain security
if<00:18:19.210><c> you're</c><00:18:19.450><c> interested</c><00:18:19.900><c> on</c><00:18:20.110><c> this</c><00:18:20.320><c> website</c><00:18:20.880><c> so</c>

00:18:21.870 --> 00:18:21.880 align:start position:0%
if you're interested on this website so
 

00:18:21.880 --> 00:18:24.000 align:start position:0%
if you're interested on this website so
to<00:18:21.910><c> summarize</c><00:18:22.510><c> a</c><00:18:22.840><c> presidency</c><00:18:23.350><c> clarify</c><00:18:23.830><c> which</c>

00:18:24.000 --> 00:18:24.010 align:start position:0%
to summarize a presidency clarify which
 

00:18:24.010 --> 00:18:26.549 align:start position:0%
to summarize a presidency clarify which
is<00:18:24.250><c> fully</c><00:18:24.910><c> automated</c><00:18:25.270><c> provide</c><00:18:26.230><c> strong</c>

00:18:26.549 --> 00:18:26.559 align:start position:0%
is fully automated provide strong
 

00:18:26.559 --> 00:18:28.350 align:start position:0%
is fully automated provide strong
guarantees<00:18:26.980><c> that</c><00:18:27.010><c> is</c><00:18:27.400><c> when</c><00:18:27.910><c> it</c><00:18:28.030><c> tells</c><00:18:28.210><c> you</c>

00:18:28.350 --> 00:18:28.360 align:start position:0%
guarantees that is when it tells you
 

00:18:28.360 --> 00:18:30.930 align:start position:0%
guarantees that is when it tells you
that<00:18:28.480><c> you're</c><00:18:29.169><c> the</c><00:18:29.440><c> bug</c><00:18:29.770><c> doesn't</c><00:18:30.190><c> exist</c><00:18:30.549><c> they</c>

00:18:30.930 --> 00:18:30.940 align:start position:0%
that you're the bug doesn't exist they
 

00:18:30.940 --> 00:18:31.980 align:start position:0%
that you're the bug doesn't exist they
didn't<00:18:31.120><c> means</c><00:18:31.270><c> that</c><00:18:31.419><c> it</c><00:18:31.540><c> really</c><00:18:31.780><c> doesn't</c>

00:18:31.980 --> 00:18:31.990 align:start position:0%
didn't means that it really doesn't
 

00:18:31.990 --> 00:18:34.110 align:start position:0%
didn't means that it really doesn't
exist<00:18:32.410><c> in</c><00:18:32.530><c> your</c><00:18:32.559><c> contract</c><00:18:32.980><c> and</c><00:18:33.429><c> it's</c><00:18:33.880><c> also</c>

00:18:34.110 --> 00:18:34.120 align:start position:0%
exist in your contract and it's also
 

00:18:34.120 --> 00:18:35.880 align:start position:0%
exist in your contract and it's also
extensible<00:18:34.809><c> via</c><00:18:35.260><c> a</c><00:18:35.410><c> domain-specific</c>

00:18:35.880 --> 00:18:35.890 align:start position:0%
extensible via a domain-specific
 

00:18:35.890 --> 00:18:38.370 align:start position:0%
extensible via a domain-specific
language<00:18:36.700><c> to</c><00:18:37.179><c> create</c><00:18:37.480><c> new</c><00:18:37.600><c> patterns</c><00:18:37.809><c> using</c>

00:18:38.370 --> 00:18:38.380 align:start position:0%
language to create new patterns using
 

00:18:38.380 --> 00:18:41.030 align:start position:0%
language to create new patterns using
the<00:18:38.679><c> primitives</c><00:18:39.100><c> already</c><00:18:39.460><c> implemented</c>

00:18:41.030 --> 00:18:41.040 align:start position:0%
the primitives already implemented
 

00:18:41.040 --> 00:18:44.210 align:start position:0%
the primitives already implemented
following<00:18:42.040><c> the</c><00:18:42.160><c> experience</c><00:18:43.090><c> we</c><00:18:43.210><c> secured</c><00:18:43.510><c> if</c><00:18:43.630><c> I</c>

00:18:44.210 --> 00:18:44.220 align:start position:0%
following the experience we secured if I
 

00:18:44.220 --> 00:18:48.060 align:start position:0%
following the experience we secured if I
contact<00:18:45.220><c> chain</c><00:18:45.790><c> security</c><00:18:46.299><c> was</c><00:18:46.500><c> was</c><00:18:47.500><c> created</c><00:18:47.919><c> a</c>

00:18:48.060 --> 00:18:48.070 align:start position:0%
contact chain security was was created a
 

00:18:48.070 --> 00:18:50.390 align:start position:0%
contact chain security was was created a
startup<00:18:48.490><c> that</c><00:18:48.700><c> specializes</c><00:18:49.510><c> in</c><00:18:49.540><c> audit</c><00:18:50.080><c> of</c>

00:18:50.390 --> 00:18:50.400 align:start position:0%
startup that specializes in audit of
 

00:18:50.400 --> 00:18:53.010 align:start position:0%
startup that specializes in audit of
small<00:18:51.400><c> contracts</c><00:18:51.820><c> and</c><00:18:52.090><c> automated</c><00:18:52.690><c> program</c>

00:18:53.010 --> 00:18:53.020 align:start position:0%
small contracts and automated program
 

00:18:53.020 --> 00:18:55.049 align:start position:0%
small contracts and automated program
analysis<00:18:53.440><c> and</c><00:18:53.679><c> with</c><00:18:54.250><c> this</c><00:18:54.370><c> thank</c><00:18:54.760><c> you</c><00:18:54.850><c> for</c>

00:18:55.049 --> 00:18:55.059 align:start position:0%
analysis and with this thank you for
 

00:18:55.059 --> 00:18:58.740 align:start position:0%
analysis and with this thank you for
your<00:18:55.150><c> attention</c>

00:18:58.740 --> 00:18:58.750 align:start position:0%
 
 

00:18:58.750 --> 00:19:06.329 align:start position:0%
 
[Music]

