WEBVTT
Kind: captions
Language: en

00:00:00.540 --> 00:00:18.340 align:start position:0%
 
[Music]

00:00:18.340 --> 00:00:18.350 align:start position:0%
 
 

00:00:18.350 --> 00:00:23.300 align:start position:0%
 
so<00:00:19.350><c> I'm</c><00:00:19.560><c> the</c><00:00:19.680><c> CTO</c><00:00:19.830><c> of</c><00:00:20.040><c> digits</c><00:00:20.490><c> global</c><00:00:20.880><c> and</c><00:00:21.060><c> I</c><00:00:22.310><c> am</c>

00:00:23.300 --> 00:00:23.310 align:start position:0%
so I'm the CTO of digits global and I am
 

00:00:23.310 --> 00:00:25.160 align:start position:0%
so I'm the CTO of digits global and I am
famous<00:00:24.000><c> for</c><00:00:24.180><c> basically</c><00:00:24.810><c> doing</c><00:00:25.080><c> the</c>

00:00:25.160 --> 00:00:25.170 align:start position:0%
famous for basically doing the
 

00:00:25.170 --> 00:00:27.650 align:start position:0%
famous for basically doing the
first-ever<00:00:25.680><c> athyrium</c><00:00:26.160><c> transaction</c><00:00:26.820><c> on</c><00:00:27.000><c> block</c>

00:00:27.650 --> 00:00:27.660 align:start position:0%
first-ever athyrium transaction on block
 

00:00:27.660 --> 00:00:32.479 align:start position:0%
first-ever athyrium transaction on block
number<00:00:28.410><c> 46</c><00:00:28.920><c> 147</c><00:00:29.910><c> and</c><00:00:30.380><c> I'm</c><00:00:31.380><c> here</c><00:00:31.619><c> going</c><00:00:31.800><c> to</c><00:00:31.830><c> talk</c>

00:00:32.479 --> 00:00:32.489 align:start position:0%
number 46 147 and I'm here going to talk
 

00:00:32.489 --> 00:00:40.780 align:start position:0%
number 46 147 and I'm here going to talk
about<00:00:32.580><c> contract</c><00:00:33.210><c> patterns</c><00:00:33.480><c> in</c><00:00:33.629><c> security</c><00:00:34.140><c> so</c>

00:00:40.780 --> 00:00:40.790 align:start position:0%
 
 

00:00:40.790 --> 00:00:44.450 align:start position:0%
 
so<00:00:41.790><c> the</c><00:00:41.940><c> key</c><00:00:42.059><c> points</c><00:00:42.390><c> is</c><00:00:42.570><c> first</c><00:00:43.500><c> solidity</c><00:00:44.250><c> is</c>

00:00:44.450 --> 00:00:44.460 align:start position:0%
so the key points is first solidity is
 

00:00:44.460 --> 00:00:48.020 align:start position:0%
so the key points is first solidity is
not<00:00:44.670><c> broken</c><00:00:45.230><c> okay</c><00:00:46.230><c> so</c><00:00:46.290><c> a</c><00:00:46.769><c> lot</c><00:00:47.100><c> of</c><00:00:47.129><c> people</c><00:00:47.250><c> there</c>

00:00:48.020 --> 00:00:48.030 align:start position:0%
not broken okay so a lot of people there
 

00:00:48.030 --> 00:00:50.810 align:start position:0%
not broken okay so a lot of people there
is<00:00:48.600><c> some</c><00:00:48.780><c> plot</c><00:00:49.409><c> posts</c><00:00:49.800><c> in</c><00:00:49.979><c> the</c><00:00:50.190><c> past</c><00:00:50.430><c> saying</c>

00:00:50.810 --> 00:00:50.820 align:start position:0%
is some plot posts in the past saying
 

00:00:50.820 --> 00:00:52.670 align:start position:0%
is some plot posts in the past saying
that<00:00:51.030><c> solidity</c><00:00:51.420><c> because</c><00:00:51.809><c> it</c><00:00:51.960><c> is</c><00:00:52.080><c> a</c><00:00:52.110><c> an</c>

00:00:52.670 --> 00:00:52.680 align:start position:0%
that solidity because it is a an
 

00:00:52.680 --> 00:00:55.790 align:start position:0%
that solidity because it is a an
imperative<00:00:53.280><c> language</c><00:00:53.820><c> that</c><00:00:54.479><c> it's</c><00:00:55.290><c> a</c><00:00:55.620><c> poor</c>

00:00:55.790 --> 00:00:55.800 align:start position:0%
imperative language that it's a poor
 

00:00:55.800 --> 00:00:58.610 align:start position:0%
imperative language that it's a poor
choice<00:00:56.010><c> for</c><00:00:56.070><c> writing</c><00:00:56.670><c> contracts</c><00:00:57.479><c> that</c><00:00:57.989><c> has</c>

00:00:58.610 --> 00:00:58.620 align:start position:0%
choice for writing contracts that has
 

00:00:58.620 --> 00:01:01.759 align:start position:0%
choice for writing contracts that has
like<00:00:58.890><c> state</c><00:00:59.640><c> transitions</c><00:01:00.210><c> so</c><00:01:00.989><c> i'm</c><00:01:01.530><c> going</c><00:01:01.710><c> to</c>

00:01:01.759 --> 00:01:01.769 align:start position:0%
like state transitions so i'm going to
 

00:01:01.769 --> 00:01:04.250 align:start position:0%
like state transitions so i'm going to
show<00:01:02.489><c> you</c><00:01:02.519><c> guys</c><00:01:02.640><c> that</c><00:01:02.760><c> just</c><00:01:03.629><c> with</c><00:01:03.809><c> proper</c>

00:01:04.250 --> 00:01:04.260 align:start position:0%
show you guys that just with proper
 

00:01:04.260 --> 00:01:06.649 align:start position:0%
show you guys that just with proper
tooling<00:01:05.129><c> and</c><00:01:05.250><c> architecture</c><00:01:05.880><c> we</c><00:01:06.210><c> can</c><00:01:06.360><c> actually</c>

00:01:06.649 --> 00:01:06.659 align:start position:0%
tooling and architecture we can actually
 

00:01:06.659 --> 00:01:08.440 align:start position:0%
tooling and architecture we can actually
write<00:01:06.870><c> secure</c><00:01:07.350><c> and</c><00:01:07.590><c> easy</c><00:01:07.770><c> to</c><00:01:08.010><c> manage</c>

00:01:08.440 --> 00:01:08.450 align:start position:0%
write secure and easy to manage
 

00:01:08.450 --> 00:01:10.060 align:start position:0%
write secure and easy to manage
contracts

00:01:10.060 --> 00:01:10.070 align:start position:0%
contracts
 

00:01:10.070 --> 00:01:12.080 align:start position:0%
contracts
so<00:01:11.070><c> we're</c><00:01:11.190><c> going</c><00:01:11.250><c> to</c><00:01:11.370><c> use</c><00:01:11.520><c> i'm</c><00:01:11.850><c> going</c><00:01:11.940><c> to</c><00:01:12.000><c> show</c>

00:01:12.080 --> 00:01:12.090 align:start position:0%
so we're going to use i'm going to show
 

00:01:12.090 --> 00:01:13.550 align:start position:0%
so we're going to use i'm going to show
you<00:01:12.120><c> guys</c><00:01:12.299><c> code</c><00:01:12.600><c> patterns</c><00:01:12.810><c> that</c><00:01:13.110><c> allow</c><00:01:13.290><c> us</c><00:01:13.440><c> to</c>

00:01:13.550 --> 00:01:13.560 align:start position:0%
you guys code patterns that allow us to
 

00:01:13.560 --> 00:01:16.990 align:start position:0%
you guys code patterns that allow us to
minimize<00:01:13.920><c> attack</c><00:01:14.640><c> surface</c>

00:01:16.990 --> 00:01:17.000 align:start position:0%
minimize attack surface
 

00:01:17.000 --> 00:01:20.540 align:start position:0%
minimize attack surface
and<00:01:18.380><c> i'm</c><00:01:19.380><c> going</c><00:01:19.500><c> to</c><00:01:19.590><c> show</c><00:01:19.830><c> you</c><00:01:19.860><c> guys</c><00:01:19.980><c> that</c><00:01:20.130><c> the</c>

00:01:20.540 --> 00:01:20.550 align:start position:0%
and i'm going to show you guys that the
 

00:01:20.550 --> 00:01:22.220 align:start position:0%
and i'm going to show you guys that the
contract<00:01:20.910><c> execution</c><00:01:21.330><c> flow</c><00:01:21.540><c> and</c><00:01:21.840><c> figure</c><00:01:22.200><c> out</c>

00:01:22.220 --> 00:01:22.230 align:start position:0%
contract execution flow and figure out
 

00:01:22.230 --> 00:01:25.040 align:start position:0%
contract execution flow and figure out
how<00:01:23.130><c> you</c><00:01:23.190><c> guys</c><00:01:23.400><c> can</c><00:01:23.640><c> identify</c><00:01:23.970><c> attack</c><00:01:24.690><c> surface</c>

00:01:25.040 --> 00:01:25.050 align:start position:0%
how you guys can identify attack surface
 

00:01:25.050 --> 00:01:26.920 align:start position:0%
how you guys can identify attack surface
in<00:01:25.290><c> your</c><00:01:25.350><c> contracts</c><00:01:25.950><c> and</c>

00:01:26.920 --> 00:01:26.930 align:start position:0%
in your contracts and
 

00:01:26.930 --> 00:01:29.750 align:start position:0%
in your contracts and
also<00:01:27.930><c> i'm</c><00:01:28.050><c> going</c><00:01:28.170><c> to</c><00:01:28.260><c> show</c><00:01:28.980><c> you</c><00:01:29.010><c> the</c><00:01:29.280><c> the</c><00:01:29.580><c> case</c>

00:01:29.750 --> 00:01:29.760 align:start position:0%
also i'm going to show you the the case
 

00:01:29.760 --> 00:01:31.910 align:start position:0%
also i'm going to show you the the case
study<00:01:30.000><c> of</c><00:01:30.090><c> the</c><00:01:30.330><c> digits</c><00:01:30.900><c> core</c><00:01:31.110><c> contract</c>

00:01:31.910 --> 00:01:31.920 align:start position:0%
study of the digits core contract
 

00:01:31.920 --> 00:01:36.130 align:start position:0%
study of the digits core contract
architecture

00:01:36.130 --> 00:01:36.140 align:start position:0%
 
 

00:01:36.140 --> 00:01:50.680 align:start position:0%
 
right<00:01:37.140><c> so</c><00:01:37.410><c> both</c>

00:01:50.680 --> 00:01:50.690 align:start position:0%
 
 

00:01:50.690 --> 00:01:54.660 align:start position:0%
 
right<00:01:51.320><c> so</c><00:01:51.560><c> the</c><00:01:51.860><c> bold</c><00:01:52.820><c> claims</c>

00:01:54.660 --> 00:01:54.670 align:start position:0%
right so the bold claims
 

00:01:54.670 --> 00:01:58.230 align:start position:0%
right so the bold claims
quote<00:01:55.670><c> good</c><00:01:56.510><c> software</c><00:01:56.840><c> design</c><00:01:57.200><c> requires</c>

00:01:58.230 --> 00:01:58.240 align:start position:0%
quote good software design requires
 

00:01:58.240 --> 00:02:01.630 align:start position:0%
quote good software design requires
basically<00:01:59.240><c> gives</c><00:01:59.450><c> us</c><00:01:59.690><c> secure</c><00:02:00.350><c> good</c><00:02:01.130><c> security</c>

00:02:01.630 --> 00:02:01.640 align:start position:0%
basically gives us secure good security
 

00:02:01.640 --> 00:02:03.460 align:start position:0%
basically gives us secure good security
so<00:02:02.120><c> if</c><00:02:02.210><c> you're</c><00:02:02.360><c> right</c><00:02:02.480><c> if</c><00:02:02.870><c> you</c><00:02:03.170><c> have</c><00:02:03.290><c> good</c>

00:02:03.460 --> 00:02:03.470 align:start position:0%
so if you're right if you have good
 

00:02:03.470 --> 00:02:05.170 align:start position:0%
so if you're right if you have good
architecture<00:02:04.130><c> you'll</c><00:02:04.550><c> be</c><00:02:04.730><c> able</c><00:02:04.820><c> to</c><00:02:04.970><c> actually</c>

00:02:05.170 --> 00:02:05.180 align:start position:0%
architecture you'll be able to actually
 

00:02:05.180 --> 00:02:08.530 align:start position:0%
architecture you'll be able to actually
create<00:02:05.860><c> easy</c><00:02:06.860><c> to</c><00:02:07.280><c> secure</c><00:02:07.670><c> and</c><00:02:07.910><c> easy</c><00:02:07.970><c> to</c><00:02:08.240><c> audit</c>

00:02:08.530 --> 00:02:08.540 align:start position:0%
create easy to secure and easy to audit
 

00:02:08.540 --> 00:02:11.620 align:start position:0%
create easy to secure and easy to audit
code<00:02:09.010><c> the</c><00:02:10.010><c> first</c><00:02:10.220><c> point</c><00:02:10.490><c> is</c><00:02:10.640><c> that</c><00:02:10.910><c> good</c>

00:02:11.620 --> 00:02:11.630 align:start position:0%
code the first point is that good
 

00:02:11.630 --> 00:02:13.810 align:start position:0%
code the first point is that good
readable<00:02:12.350><c> code</c><00:02:12.590><c> and</c><00:02:12.890><c> good</c><00:02:13.220><c> architecture</c>

00:02:13.810 --> 00:02:13.820 align:start position:0%
readable code and good architecture
 

00:02:13.820 --> 00:02:16.360 align:start position:0%
readable code and good architecture
which<00:02:14.210><c> is</c><00:02:14.390><c> what</c><00:02:15.260><c> that</c><00:02:15.380><c> can</c><00:02:15.560><c> easily</c><00:02:15.740><c> be</c><00:02:15.890><c> reason</c>

00:02:16.360 --> 00:02:16.370 align:start position:0%
which is what that can easily be reason
 

00:02:16.370 --> 00:02:18.190 align:start position:0%
which is what that can easily be reason
to<00:02:16.550><c> can</c><00:02:16.790><c> can</c><00:02:17.060><c> be</c><00:02:17.210><c> read</c><00:02:17.480><c> by</c><00:02:17.780><c> an</c><00:02:17.930><c> external</c>

00:02:18.190 --> 00:02:18.200 align:start position:0%
to can can be read by an external
 

00:02:18.200 --> 00:02:20.830 align:start position:0%
to can can be read by an external
auditor<00:02:18.770><c> so</c><00:02:19.310><c> if</c><00:02:19.520><c> you</c><00:02:19.610><c> send</c><00:02:19.940><c> your</c><00:02:20.060><c> code</c><00:02:20.300><c> your</c>

00:02:20.830 --> 00:02:20.840 align:start position:0%
auditor so if you send your code your
 

00:02:20.840 --> 00:02:23.380 align:start position:0%
auditor so if you send your code your
code<00:02:21.050><c> base</c><00:02:21.080><c> to</c><00:02:21.410><c> a</c><00:02:21.440><c> third-party</c><00:02:22.390><c> auditing</c>

00:02:23.380 --> 00:02:23.390 align:start position:0%
code base to a third-party auditing
 

00:02:23.390 --> 00:02:24.970 align:start position:0%
code base to a third-party auditing
company<00:02:23.780><c> they</c><00:02:23.960><c> can</c><00:02:24.110><c> actually</c><00:02:24.290><c> easily</c><00:02:24.800><c> read</c>

00:02:24.970 --> 00:02:24.980 align:start position:0%
company they can actually easily read
 

00:02:24.980 --> 00:02:28.590 align:start position:0%
company they can actually easily read
your<00:02:25.130><c> code</c><00:02:25.340><c> without</c><00:02:26.300><c> having</c><00:02:26.810><c> to</c><00:02:26.930><c> deal</c><00:02:27.110><c> with</c>

00:02:28.590 --> 00:02:28.600 align:start position:0%
your code without having to deal with
 

00:02:28.600 --> 00:02:32.830 align:start position:0%
your code without having to deal with
spaghetti<00:02:29.600><c> code</c><00:02:29.960><c> right</c><00:02:30.920><c> so</c><00:02:31.430><c> we</c><00:02:32.300><c> know</c><00:02:32.420><c> that</c><00:02:32.450><c> if</c>

00:02:32.830 --> 00:02:32.840 align:start position:0%
spaghetti code right so we know that if
 

00:02:32.840 --> 00:02:35.650 align:start position:0%
spaghetti code right so we know that if
like<00:02:33.470><c> this</c><00:02:33.650><c> type</c><00:02:33.860><c> of</c><00:02:33.890><c> code</c><00:02:34.220><c> well</c><00:02:34.880><c> if</c><00:02:35.210><c> you</c><00:02:35.390><c> send</c>

00:02:35.650 --> 00:02:35.660 align:start position:0%
like this type of code well if you send
 

00:02:35.660 --> 00:02:37.240 align:start position:0%
like this type of code well if you send
this<00:02:35.750><c> to</c><00:02:35.900><c> somebody</c><00:02:36.110><c> it's</c><00:02:36.830><c> going</c><00:02:37.010><c> to</c><00:02:37.070><c> take</c><00:02:37.220><c> a</c>

00:02:37.240 --> 00:02:37.250 align:start position:0%
this to somebody it's going to take a
 

00:02:37.250 --> 00:02:38.740 align:start position:0%
this to somebody it's going to take a
while<00:02:37.340><c> for</c><00:02:37.460><c> them</c><00:02:37.700><c> to</c><00:02:37.760><c> parse</c><00:02:38.180><c> through</c><00:02:38.360><c> this</c><00:02:38.540><c> and</c>

00:02:38.740 --> 00:02:38.750 align:start position:0%
while for them to parse through this and
 

00:02:38.750 --> 00:02:46.590 align:start position:0%
while for them to parse through this and
that<00:02:39.590><c> makes</c><00:02:39.950><c> a</c><00:02:40.370><c> deters</c><00:02:40.730><c> lives</c><00:02:41.570><c> so</c><00:02:41.990><c> much</c><00:02:42.140><c> harder</c>

00:02:46.590 --> 00:02:46.600 align:start position:0%
 
 

00:02:46.600 --> 00:02:48.870 align:start position:0%
 
and

00:02:48.870 --> 00:02:48.880 align:start position:0%
and
 

00:02:48.880 --> 00:02:52.180 align:start position:0%
and
to<00:02:49.880><c> like</c><00:02:50.330><c> good</c><00:02:50.720><c> software</c><00:02:51.080><c> architecture</c><00:02:52.010><c> will</c>

00:02:52.180 --> 00:02:52.190 align:start position:0%
to like good software architecture will
 

00:02:52.190 --> 00:02:54.220 align:start position:0%
to like good software architecture will
also<00:02:52.460><c> allow</c><00:02:52.700><c> us</c><00:02:52.910><c> to</c><00:02:53.030><c> actually</c><00:02:53.150><c> have</c><00:02:53.900><c> reusable</c>

00:02:54.220 --> 00:02:54.230 align:start position:0%
also allow us to actually have reusable
 

00:02:54.230 --> 00:02:56.920 align:start position:0%
also allow us to actually have reusable
battle-tested<00:02:54.920><c> code</c><00:02:55.370><c> so</c><00:02:56.120><c> basically</c><00:02:56.600><c> we</c><00:02:56.780><c> can</c>

00:02:56.920 --> 00:02:56.930 align:start position:0%
battle-tested code so basically we can
 

00:02:56.930 --> 00:02:59.140 align:start position:0%
battle-tested code so basically we can
we<00:02:57.440><c> can</c><00:02:57.590><c> take</c><00:02:57.800><c> components</c><00:02:58.700><c> and</c><00:02:58.820><c> build</c><00:02:59.030><c> them</c>

00:02:59.140 --> 00:02:59.150 align:start position:0%
we can take components and build them
 

00:02:59.150 --> 00:03:01.479 align:start position:0%
we can take components and build them
out<00:02:59.330><c> individually</c><00:02:59.540><c> and</c><00:03:00.230><c> we</c><00:03:00.860><c> can</c><00:03:01.010><c> reuse</c><00:03:01.280><c> those</c>

00:03:01.479 --> 00:03:01.489 align:start position:0%
out individually and we can reuse those
 

00:03:01.489 --> 00:03:03.910 align:start position:0%
out individually and we can reuse those
those<00:03:02.480><c> components</c><00:03:02.840><c> for</c><00:03:03.170><c> other</c><00:03:03.350><c> parts</c><00:03:03.709><c> of</c><00:03:03.800><c> our</c>

00:03:03.910 --> 00:03:03.920 align:start position:0%
those components for other parts of our
 

00:03:03.920 --> 00:03:05.490 align:start position:0%
those components for other parts of our
contracts<00:03:04.550><c> and</c>

00:03:05.490 --> 00:03:05.500 align:start position:0%
contracts and
 

00:03:05.500 --> 00:03:07.630 align:start position:0%
contracts and
since<00:03:06.500><c> we</c><00:03:06.650><c> know</c><00:03:06.680><c> that</c><00:03:06.830><c> these</c><00:03:07.250><c> are</c><00:03:07.280><c> battle</c>

00:03:07.630 --> 00:03:07.640 align:start position:0%
since we know that these are battle
 

00:03:07.640 --> 00:03:09.580 align:start position:0%
since we know that these are battle
tested<00:03:07.670><c> and</c><00:03:08.209><c> the</c><00:03:08.420><c> security</c><00:03:08.870><c> you</c><00:03:09.080><c> know</c><00:03:09.440><c> that</c>

00:03:09.580 --> 00:03:09.590 align:start position:0%
tested and the security you know that
 

00:03:09.590 --> 00:03:19.910 align:start position:0%
tested and the security you know that
there<00:03:09.739><c> are</c><00:03:09.770><c> the</c><00:03:09.890><c> security</c><00:03:10.280><c> is</c><00:03:10.400><c> good</c>

00:03:19.910 --> 00:03:19.920 align:start position:0%
 
 

00:03:19.920 --> 00:03:23.120 align:start position:0%
 
so<00:03:20.520><c> good</c><00:03:21.360><c> software</c><00:03:22.290><c> architecture</c><00:03:22.800><c> also</c>

00:03:23.120 --> 00:03:23.130 align:start position:0%
so good software architecture also
 

00:03:23.130 --> 00:03:24.920 align:start position:0%
so good software architecture also
allows<00:03:23.459><c> us</c><00:03:23.670><c> to</c><00:03:23.790><c> have</c><00:03:23.819><c> separation</c><00:03:24.390><c> concerns</c>

00:03:24.920 --> 00:03:24.930 align:start position:0%
allows us to have separation concerns
 

00:03:24.930 --> 00:03:27.530 align:start position:0%
allows us to have separation concerns
which<00:03:25.170><c> actually</c><00:03:26.160><c> enables</c><00:03:26.730><c> the</c><00:03:26.849><c> second</c><00:03:27.420><c> point</c>

00:03:27.530 --> 00:03:27.540 align:start position:0%
which actually enables the second point
 

00:03:27.540 --> 00:03:30.020 align:start position:0%
which actually enables the second point
as<00:03:27.720><c> well</c><00:03:27.870><c> so</c><00:03:28.590><c> if</c><00:03:28.770><c> you</c><00:03:28.890><c> separate</c><00:03:29.310><c> your</c><00:03:29.550><c> your</c>

00:03:30.020 --> 00:03:30.030 align:start position:0%
as well so if you separate your your
 

00:03:30.030 --> 00:03:32.470 align:start position:0%
as well so if you separate your your
code<00:03:30.480><c> logic</c><00:03:30.900><c> into</c><00:03:31.080><c> separate</c>

00:03:32.470 --> 00:03:32.480 align:start position:0%
code logic into separate
 

00:03:32.480 --> 00:03:35.750 align:start position:0%
code logic into separate
contracts<00:03:33.480><c> in</c><00:03:34.230><c> the</c><00:03:34.500><c> case</c><00:03:34.680><c> of</c><00:03:34.709><c> etherium</c><00:03:35.220><c> then</c>

00:03:35.750 --> 00:03:35.760 align:start position:0%
contracts in the case of etherium then
 

00:03:35.760 --> 00:03:38.090 align:start position:0%
contracts in the case of etherium then
it's<00:03:36.060><c> easier</c><00:03:36.450><c> for</c><00:03:36.510><c> you</c><00:03:36.840><c> to</c><00:03:36.870><c> audit</c><00:03:37.230><c> it</c><00:03:37.350><c> and</c><00:03:37.500><c> it's</c>

00:03:38.090 --> 00:03:38.100 align:start position:0%
it's easier for you to audit it and it's
 

00:03:38.100 --> 00:03:40.130 align:start position:0%
it's easier for you to audit it and it's
also<00:03:38.280><c> easier</c><00:03:38.700><c> for</c><00:03:38.970><c> you</c><00:03:39.030><c> to</c><00:03:39.090><c> control</c><00:03:39.810><c> the</c>

00:03:40.130 --> 00:03:40.140 align:start position:0%
also easier for you to control the
 

00:03:40.140 --> 00:03:42.020 align:start position:0%
also easier for you to control the
attack<00:03:40.620><c> surface</c><00:03:40.830><c> the</c><00:03:41.250><c> potential</c><00:03:41.790><c> attack</c>

00:03:42.020 --> 00:03:42.030 align:start position:0%
attack surface the potential attack
 

00:03:42.030 --> 00:03:46.180 align:start position:0%
attack surface the potential attack
surfaces<00:03:42.480><c> on</c><00:03:42.690><c> your</c><00:03:42.930><c> contracts</c>

00:03:46.180 --> 00:03:46.190 align:start position:0%
 
 

00:03:46.190 --> 00:03:49.630 align:start position:0%
 
all<00:03:47.190><c> right</c><00:03:47.340><c> so</c><00:03:47.519><c> I</c><00:03:47.600><c> sort</c><00:03:48.600><c> of</c>

00:03:49.630 --> 00:03:49.640 align:start position:0%
all right so I sort of
 

00:03:49.640 --> 00:03:51.860 align:start position:0%
all right so I sort of
want<00:03:50.640><c> to</c><00:03:50.700><c> make</c><00:03:50.849><c> the</c><00:03:51.090><c> analogy</c><00:03:51.420><c> of</c><00:03:51.690><c> an</c>

00:03:51.860 --> 00:03:51.870 align:start position:0%
want to make the analogy of an
 

00:03:51.870 --> 00:03:54.890 align:start position:0%
want to make the analogy of an
electronic<00:03:52.380><c> circuit</c><00:03:52.530><c> versus</c><00:03:53.130><c> software</c><00:03:53.970><c> so</c><00:03:54.630><c> in</c>

00:03:54.890 --> 00:03:54.900 align:start position:0%
electronic circuit versus software so in
 

00:03:54.900 --> 00:03:57.170 align:start position:0%
electronic circuit versus software so in
like<00:03:55.410><c> an</c><00:03:55.590><c> electronic</c><00:03:56.160><c> hardware</c><00:03:56.550><c> for</c><00:03:56.819><c> example</c>

00:03:57.170 --> 00:03:57.180 align:start position:0%
like an electronic hardware for example
 

00:03:57.180 --> 00:04:01.729 align:start position:0%
like an electronic hardware for example
a<00:03:57.840><c> computer</c><00:03:58.709><c> motherboard</c><00:03:59.310><c> or</c><00:03:59.549><c> a</c><00:03:59.640><c> CPU</c><00:04:00.739><c> once</c>

00:04:01.729 --> 00:04:01.739 align:start position:0%
a computer motherboard or a CPU once
 

00:04:01.739 --> 00:04:04.610 align:start position:0%
a computer motherboard or a CPU once
that's<00:04:01.920><c> created</c><00:04:02.519><c> and</c><00:04:02.640><c> fabricated</c><00:04:03.450><c> it's</c><00:04:04.260><c> it's</c>

00:04:04.610 --> 00:04:04.620 align:start position:0%
that's created and fabricated it's it's
 

00:04:04.620 --> 00:04:06.680 align:start position:0%
that's created and fabricated it's it's
very<00:04:04.860><c> difficult</c><00:04:05.100><c> for</c><00:04:05.370><c> the</c><00:04:05.850><c> manufacturer</c><00:04:06.480><c> to</c>

00:04:06.680 --> 00:04:06.690 align:start position:0%
very difficult for the manufacturer to
 

00:04:06.690 --> 00:04:09.039 align:start position:0%
very difficult for the manufacturer to
recall<00:04:07.019><c> those</c><00:04:07.200><c> products</c><00:04:07.680><c> so</c>

00:04:09.039 --> 00:04:09.049 align:start position:0%
recall those products so
 

00:04:09.049 --> 00:04:11.840 align:start position:0%
recall those products so
basically<00:04:10.049><c> in</c><00:04:10.260><c> essence</c><00:04:10.590><c> like</c><00:04:10.950><c> if</c><00:04:11.459><c> they're</c><00:04:11.700><c> iam</c>

00:04:11.840 --> 00:04:11.850 align:start position:0%
basically in essence like if they're iam
 

00:04:11.850 --> 00:04:14.660 align:start position:0%
basically in essence like if they're iam
contracts<00:04:12.360><c> when</c><00:04:13.319><c> you</c><00:04:13.410><c> deploy</c><00:04:13.739><c> them</c><00:04:13.920><c> to</c><00:04:14.220><c> the</c><00:04:14.340><c> to</c>

00:04:14.660 --> 00:04:14.670 align:start position:0%
contracts when you deploy them to the to
 

00:04:14.670 --> 00:04:16.670 align:start position:0%
contracts when you deploy them to the to
the<00:04:14.700><c> blockchain</c><00:04:15.150><c> you</c><00:04:15.930><c> can</c><00:04:16.079><c> ever</c><00:04:16.200><c> change</c><00:04:16.290><c> them</c>

00:04:16.670 --> 00:04:16.680 align:start position:0%
the blockchain you can ever change them
 

00:04:16.680 --> 00:04:17.890 align:start position:0%
the blockchain you can ever change them
so

00:04:17.890 --> 00:04:17.900 align:start position:0%
so
 

00:04:17.900 --> 00:04:20.530 align:start position:0%
so
so<00:04:18.900><c> in</c><00:04:19.200><c> that</c><00:04:19.470><c> sense</c><00:04:19.620><c> like</c>

00:04:20.530 --> 00:04:20.540 align:start position:0%
so in that sense like
 

00:04:20.540 --> 00:04:23.690 align:start position:0%
so in that sense like
we're<00:04:21.540><c> expected</c><00:04:22.410><c> to</c><00:04:22.440><c> become</c><00:04:23.040><c> electronics</c>

00:04:23.690 --> 00:04:23.700 align:start position:0%
we're expected to become electronics
 

00:04:23.700 --> 00:04:25.340 align:start position:0%
we're expected to become electronics
engineers<00:04:24.120><c> when</c><00:04:24.419><c> you</c><00:04:24.479><c> write</c><00:04:24.660><c> contracts</c><00:04:25.140><c> on</c>

00:04:25.340 --> 00:04:25.350 align:start position:0%
engineers when you write contracts on
 

00:04:25.350 --> 00:04:27.460 align:start position:0%
engineers when you write contracts on
the<00:04:25.440><c> cerium</c><00:04:25.740><c> right</c>

00:04:27.460 --> 00:04:27.470 align:start position:0%
the cerium right
 

00:04:27.470 --> 00:04:29.770 align:start position:0%
the cerium right
so<00:04:28.470><c> here</c><00:04:28.770><c> we</c><00:04:28.919><c> have</c><00:04:28.950><c> a</c>

00:04:29.770 --> 00:04:29.780 align:start position:0%
so here we have a
 

00:04:29.780 --> 00:04:32.240 align:start position:0%
so here we have a
Commodore<00:04:30.780><c> 64</c><00:04:31.050><c> motherboard</c><00:04:31.830><c> I</c><00:04:31.950><c> don't</c><00:04:32.100><c> know</c><00:04:32.190><c> if</c>

00:04:32.240 --> 00:04:32.250 align:start position:0%
Commodore 64 motherboard I don't know if
 

00:04:32.250 --> 00:04:34.040 align:start position:0%
Commodore 64 motherboard I don't know if
maybe<00:04:33.030><c> you</c><00:04:33.120><c> guys</c><00:04:33.270><c> are</c><00:04:33.330><c> familiar</c><00:04:33.630><c> with</c><00:04:33.870><c> this</c>

00:04:34.040 --> 00:04:34.050 align:start position:0%
maybe you guys are familiar with this
 

00:04:34.050 --> 00:04:37.120 align:start position:0%
maybe you guys are familiar with this
old<00:04:34.800><c> school</c><00:04:35.180><c> computer</c><00:04:36.180><c> motherboard</c><00:04:36.630><c> we</c><00:04:36.840><c> have</c>

00:04:37.120 --> 00:04:37.130 align:start position:0%
old school computer motherboard we have
 

00:04:37.130 --> 00:04:41.180 align:start position:0%
old school computer motherboard we have
the<00:04:38.130><c> series</c><00:04:38.430><c> of</c><00:04:38.810><c> memory</c><00:04:39.810><c> chips</c><00:04:40.080><c> and</c><00:04:40.440><c> the</c><00:04:40.860><c> moss</c>

00:04:41.180 --> 00:04:41.190 align:start position:0%
the series of memory chips and the moss
 

00:04:41.190 --> 00:04:44.420 align:start position:0%
the series of memory chips and the moss
sound<00:04:41.490><c> chip</c><00:04:41.760><c> the</c><00:04:42.630><c> interfaces</c><00:04:43.200><c> so</c><00:04:43.680><c> when</c><00:04:44.370><c> you</c>

00:04:44.420 --> 00:04:44.430 align:start position:0%
sound chip the interfaces so when you
 

00:04:44.430 --> 00:04:46.250 align:start position:0%
sound chip the interfaces so when you
design<00:04:44.760><c> hardware</c><00:04:45.450><c> you</c><00:04:45.600><c> have</c><00:04:45.780><c> different</c>

00:04:46.250 --> 00:04:46.260 align:start position:0%
design hardware you have different
 

00:04:46.260 --> 00:04:47.980 align:start position:0%
design hardware you have different
components<00:04:46.740><c> that</c><00:04:46.890><c> are</c><00:04:46.950><c> known</c>

00:04:47.980 --> 00:04:47.990 align:start position:0%
components that are known
 

00:04:47.990 --> 00:04:50.810 align:start position:0%
components that are known
known<00:04:48.990><c> to</c><00:04:49.200><c> work</c><00:04:49.350><c> well</c><00:04:49.710><c> and</c><00:04:49.919><c> and</c><00:04:50.400><c> and</c><00:04:50.700><c> they've</c>

00:04:50.810 --> 00:04:50.820 align:start position:0%
known to work well and and and they've
 

00:04:50.820 --> 00:04:53.180 align:start position:0%
known to work well and and and they've
been<00:04:50.940><c> tested</c><00:04:51.390><c> and</c><00:04:51.510><c> you</c><00:04:52.260><c> just</c><00:04:52.470><c> basically</c><00:04:52.800><c> put</c>

00:04:53.180 --> 00:04:53.190 align:start position:0%
been tested and you just basically put
 

00:04:53.190 --> 00:04:54.920 align:start position:0%
been tested and you just basically put
these<00:04:53.340><c> things</c><00:04:53.520><c> together</c><00:04:53.700><c> and</c><00:04:54.030><c> you</c><00:04:54.150><c> have</c><00:04:54.360><c> you</c>

00:04:54.920 --> 00:04:54.930 align:start position:0%
these things together and you have you
 

00:04:54.930 --> 00:04:57.909 align:start position:0%
these things together and you have you
know<00:04:55.020><c> a</c><00:04:55.050><c> device</c>

00:04:57.909 --> 00:04:57.919 align:start position:0%
 
 

00:04:57.919 --> 00:05:00.800 align:start position:0%
 
so<00:04:58.919><c> basically</c><00:04:59.610><c> that</c><00:04:59.820><c> that</c><00:05:00.180><c> sort</c><00:05:00.390><c> of</c><00:05:00.570><c> falls</c>

00:05:00.800 --> 00:05:00.810 align:start position:0%
so basically that that sort of falls
 

00:05:00.810 --> 00:05:03.290 align:start position:0%
so basically that that sort of falls
into<00:05:00.990><c> the</c><00:05:01.169><c> same</c><00:05:01.410><c> concept</c><00:05:02.370><c> as</c><00:05:02.520><c> a</c><00:05:02.970><c> software</c>

00:05:03.290 --> 00:05:03.300 align:start position:0%
into the same concept as a software
 

00:05:03.300 --> 00:05:05.510 align:start position:0%
into the same concept as a software
development<00:05:03.780><c> paradigm</c><00:05:04.110><c> called</c><00:05:04.650><c> design</c><00:05:05.340><c> by</c>

00:05:05.510 --> 00:05:05.520 align:start position:0%
development paradigm called design by
 

00:05:05.520 --> 00:05:06.980 align:start position:0%
development paradigm called design by
contract<00:05:05.729><c> and</c><00:05:06.210><c> i'm</c><00:05:06.510><c> not</c><00:05:06.630><c> talking</c><00:05:06.930><c> about</c>

00:05:06.980 --> 00:05:06.990 align:start position:0%
contract and i'm not talking about
 

00:05:06.990 --> 00:05:09.409 align:start position:0%
contract and i'm not talking about
sylheti<00:05:07.500><c> contracts</c><00:05:07.979><c> here</c><00:05:08.190><c> but</c><00:05:08.729><c> basically</c>

00:05:09.409 --> 00:05:09.419 align:start position:0%
sylheti contracts here but basically
 

00:05:09.419 --> 00:05:12.170 align:start position:0%
sylheti contracts here but basically
creating<00:05:10.140><c> your</c><00:05:10.710><c> your</c><00:05:11.070><c> your</c><00:05:11.370><c> software</c><00:05:11.850><c> based</c>

00:05:12.170 --> 00:05:12.180 align:start position:0%
creating your your your software based
 

00:05:12.180 --> 00:05:14.630 align:start position:0%
creating your your your software based
on<00:05:12.360><c> small</c><00:05:12.810><c> components</c><00:05:13.440><c> that</c><00:05:13.950><c> multiple</c><00:05:14.580><c> people</c>

00:05:14.630 --> 00:05:14.640 align:start position:0%
on small components that multiple people
 

00:05:14.640 --> 00:05:16.610 align:start position:0%
on small components that multiple people
can<00:05:15.060><c> work</c><00:05:15.240><c> on</c><00:05:15.450><c> or</c><00:05:15.630><c> multiple</c><00:05:16.080><c> organizations</c>

00:05:16.610 --> 00:05:16.620 align:start position:0%
can work on or multiple organizations
 

00:05:16.620 --> 00:05:19.940 align:start position:0%
can work on or multiple organizations
can<00:05:17.039><c> work</c><00:05:17.190><c> on</c><00:05:17.340><c> and</c><00:05:17.580><c> you</c><00:05:18.270><c> have</c><00:05:18.450><c> basically</c><00:05:19.260><c> a</c><00:05:19.380><c> set</c>

00:05:19.940 --> 00:05:19.950 align:start position:0%
can work on and you have basically a set
 

00:05:19.950 --> 00:05:22.219 align:start position:0%
can work on and you have basically a set
of<00:05:20.070><c> preconditions</c><00:05:20.280><c> that</c><00:05:20.970><c> you</c><00:05:21.660><c> can</c><00:05:21.810><c> take</c><00:05:21.990><c> in</c>

00:05:22.219 --> 00:05:22.229 align:start position:0%
of preconditions that you can take in
 

00:05:22.229 --> 00:05:24.469 align:start position:0%
of preconditions that you can take in
and<00:05:22.470><c> and</c><00:05:23.430><c> that</c><00:05:23.610><c> will</c><00:05:23.850><c> you</c><00:05:24.210><c> know</c><00:05:24.240><c> either</c>

00:05:24.469 --> 00:05:24.479 align:start position:0%
and and that will you know either
 

00:05:24.479 --> 00:05:27.580 align:start position:0%
and and that will you know either
produce<00:05:25.200><c> a</c><00:05:25.440><c> side</c><00:05:25.620><c> effect</c><00:05:25.950><c> or</c><00:05:26.220><c> an</c><00:05:26.580><c> output</c><00:05:26.820><c> value</c>

00:05:27.580 --> 00:05:27.590 align:start position:0%
produce a side effect or an output value
 

00:05:27.590 --> 00:05:30.070 align:start position:0%
produce a side effect or an output value
fairly<00:05:28.590><c> simple</c><00:05:28.860><c> right</c>

00:05:30.070 --> 00:05:30.080 align:start position:0%
fairly simple right
 

00:05:30.080 --> 00:05:33.050 align:start position:0%
fairly simple right
so<00:05:31.080><c> basically</c><00:05:31.890><c> if</c><00:05:32.099><c> you</c><00:05:32.280><c> can</c><00:05:32.400><c> make</c><00:05:32.580><c> an</c><00:05:32.700><c> analogy</c>

00:05:33.050 --> 00:05:33.060 align:start position:0%
so basically if you can make an analogy
 

00:05:33.060 --> 00:05:35.360 align:start position:0%
so basically if you can make an analogy
this<00:05:33.780><c> sort</c><00:05:34.020><c> of</c><00:05:34.110><c> like</c><00:05:34.230><c> your</c><00:05:34.470><c> sound</c><00:05:34.950><c> chip</c><00:05:35.220><c> or</c>

00:05:35.360 --> 00:05:35.370 align:start position:0%
this sort of like your sound chip or
 

00:05:35.370 --> 00:05:38.000 align:start position:0%
this sort of like your sound chip or
your<00:05:35.790><c> CPU</c><00:05:36.360><c> you</c><00:05:36.810><c> can</c><00:05:36.990><c> put</c><00:05:37.170><c> in</c><00:05:37.320><c> put</c><00:05:37.590><c> in</c><00:05:37.710><c> it</c><00:05:37.830><c> and</c>

00:05:38.000 --> 00:05:38.010 align:start position:0%
your CPU you can put in put in it and
 

00:05:38.010 --> 00:05:42.850 align:start position:0%
your CPU you can put in put in it and
you<00:05:38.070><c> have</c><00:05:38.220><c> expected</c><00:05:38.670><c> output</c><00:05:39.150><c> from</c><00:05:39.330><c> it</c>

00:05:42.850 --> 00:05:42.860 align:start position:0%
 
 

00:05:42.860 --> 00:05:54.010 align:start position:0%
 
next<00:05:43.860><c> one</c>

00:05:54.010 --> 00:05:54.020 align:start position:0%
 
 

00:05:54.020 --> 00:06:02.920 align:start position:0%
 
am<00:05:54.560><c> I</c><00:05:54.680><c> supposed</c><00:05:54.979><c> to</c><00:05:55.009><c> point</c><00:05:55.220><c> this</c>

00:06:02.920 --> 00:06:02.930 align:start position:0%
 
 

00:06:02.930 --> 00:06:10.679 align:start position:0%
 
I<00:06:03.020><c> think</c><00:06:03.650><c> battery</c><00:06:03.949><c> ednas</c><00:06:04.250><c> is</c><00:06:04.400><c> dead</c><00:06:04.669><c> or</c><00:06:05.600><c> dying</c>

00:06:10.679 --> 00:06:10.689 align:start position:0%
 
 

00:06:10.689 --> 00:06:23.959 align:start position:0%
 
yeah<00:06:11.409><c> guys</c><00:06:11.649><c> have</c><00:06:11.830><c> another</c><00:06:12.099><c> controller</c><00:06:12.519><c> yeah</c>

00:06:23.959 --> 00:06:23.969 align:start position:0%
 
 

00:06:23.969 --> 00:06:27.669 align:start position:0%
 
the<00:06:24.809><c> top</c><00:06:25.019><c> button</c><00:06:25.259><c> is</c><00:06:25.439><c> not</c><00:06:25.559><c> working</c>

00:06:27.669 --> 00:06:27.679 align:start position:0%
 
 

00:06:27.679 --> 00:06:32.350 align:start position:0%
 
served<00:06:28.679><c> by</c><00:06:28.799><c> that</c><00:06:28.949><c> technical</c><00:06:29.369><c> difficulties</c>

00:06:32.350 --> 00:06:32.360 align:start position:0%
 
 

00:06:32.360 --> 00:06:45.480 align:start position:0%
 
thank<00:06:33.360><c> you</c>

00:06:45.480 --> 00:06:45.490 align:start position:0%
 
 

00:06:45.490 --> 00:06:47.540 align:start position:0%
 
alright

00:06:47.540 --> 00:06:47.550 align:start position:0%
alright
 

00:06:47.550 --> 00:06:52.070 align:start position:0%
alright
back<00:06:48.120><c> here</c><00:06:48.420><c> alright</c><00:06:49.700><c> alright</c><00:06:50.700><c> so</c><00:06:50.970><c> the</c><00:06:51.930><c> third</c>

00:06:52.070 --> 00:06:52.080 align:start position:0%
back here alright alright so the third
 

00:06:52.080 --> 00:06:54.890 align:start position:0%
back here alright alright so the third
point<00:06:52.350><c> is</c><00:06:53.000><c> separation</c><00:06:54.000><c> of</c><00:06:54.180><c> concerns</c><00:06:54.330><c> you</c>

00:06:54.890 --> 00:06:54.900 align:start position:0%
point is separation of concerns you
 

00:06:54.900 --> 00:06:57.770 align:start position:0%
point is separation of concerns you
basically<00:06:55.230><c> separate</c><00:06:56.000><c> your</c><00:06:57.000><c> contracts</c><00:06:57.480><c> into</c>

00:06:57.770 --> 00:06:57.780 align:start position:0%
basically separate your contracts into
 

00:06:57.780 --> 00:07:01.010 align:start position:0%
basically separate your contracts into
small<00:06:58.170><c> pieces</c><00:06:58.680><c> that</c><00:06:59.220><c> can</c><00:06:59.430><c> be</c><00:07:00.120><c> easily</c><00:07:00.330><c> audited</c>

00:07:01.010 --> 00:07:01.020 align:start position:0%
small pieces that can be easily audited
 

00:07:01.020 --> 00:07:04.790 align:start position:0%
small pieces that can be easily audited
and<00:07:01.520><c> you</c><00:07:02.520><c> basically</c><00:07:02.700><c> can</c><00:07:03.120><c> define</c><00:07:03.540><c> the</c><00:07:04.470><c> entry</c>

00:07:04.790 --> 00:07:04.800 align:start position:0%
and you basically can define the entry
 

00:07:04.800 --> 00:07:07.090 align:start position:0%
and you basically can define the entry
points<00:07:05.130><c> and</c><00:07:05.250><c> exit</c><00:07:05.580><c> points</c><00:07:05.610><c> to</c><00:07:06.060><c> your</c><00:07:06.150><c> contracts</c>

00:07:07.090 --> 00:07:07.100 align:start position:0%
points and exit points to your contracts
 

00:07:07.100 --> 00:07:09.160 align:start position:0%
points and exit points to your contracts
and

00:07:09.160 --> 00:07:09.170 align:start position:0%
and
 

00:07:09.170 --> 00:07:13.070 align:start position:0%
and
number<00:07:10.170><c> four</c><00:07:10.550><c> good</c><00:07:11.550><c> architecture</c><00:07:12.330><c> will</c><00:07:12.480><c> allow</c>

00:07:13.070 --> 00:07:13.080 align:start position:0%
number four good architecture will allow
 

00:07:13.080 --> 00:07:17.840 align:start position:0%
number four good architecture will allow
us<00:07:13.110><c> to</c><00:07:13.290><c> actually</c><00:07:13.910><c> write</c><00:07:15.380><c> better</c><00:07:16.380><c> tools</c><00:07:16.850><c> such</c>

00:07:17.840 --> 00:07:17.850 align:start position:0%
us to actually write better tools such
 

00:07:17.850 --> 00:07:21.110 align:start position:0%
us to actually write better tools such
as<00:07:17.880><c> static</c><00:07:18.300><c> analysis</c><00:07:18.810><c> tools</c><00:07:19.680><c> and</c><00:07:20.130><c> generators</c>

00:07:21.110 --> 00:07:21.120 align:start position:0%
as static analysis tools and generators
 

00:07:21.120 --> 00:07:23.540 align:start position:0%
as static analysis tools and generators
to<00:07:21.420><c> create</c><00:07:21.990><c> basically</c><00:07:22.860><c> help</c><00:07:23.130><c> you</c><00:07:23.250><c> create</c>

00:07:23.540 --> 00:07:23.550 align:start position:0%
to create basically help you create
 

00:07:23.550 --> 00:07:27.850 align:start position:0%
to create basically help you create
boilerplate<00:07:24.420><c> code</c><00:07:24.930><c> to</c><00:07:25.710><c> implement</c><00:07:25.920><c> this</c>

00:07:27.850 --> 00:07:27.860 align:start position:0%
boilerplate code to implement this
 

00:07:27.860 --> 00:07:32.920 align:start position:0%
boilerplate code to implement this
this<00:07:28.860><c> approach</c>

00:07:32.920 --> 00:07:32.930 align:start position:0%
 
 

00:07:32.930 --> 00:07:35.290 align:start position:0%
 
so

00:07:35.290 --> 00:07:35.300 align:start position:0%
so
 

00:07:35.300 --> 00:07:38.660 align:start position:0%
so
so<00:07:36.300><c> what</c><00:07:36.450><c> are</c><00:07:36.540><c> attacked</c><00:07:37.050><c> vectors</c><00:07:37.500><c> right</c><00:07:38.460><c> so</c>

00:07:38.660 --> 00:07:38.670 align:start position:0%
so what are attacked vectors right so
 

00:07:38.670 --> 00:07:41.030 align:start position:0%
so what are attacked vectors right so
attack<00:07:39.000><c> vectors</c><00:07:39.330><c> are</c><00:07:39.450><c> basically</c><00:07:39.870><c> code</c><00:07:40.740><c> paths</c>

00:07:41.030 --> 00:07:41.040 align:start position:0%
attack vectors are basically code paths
 

00:07:41.040 --> 00:07:43.280 align:start position:0%
attack vectors are basically code paths
that<00:07:41.190><c> allow</c><00:07:41.460><c> malicious</c><00:07:42.300><c> user</c><00:07:42.630><c> such</c><00:07:43.110><c> as</c><00:07:43.260><c> a</c>

00:07:43.280 --> 00:07:43.290 align:start position:0%
that allow malicious user such as a
 

00:07:43.290 --> 00:07:46.700 align:start position:0%
that allow malicious user such as a
hacker<00:07:43.560><c> or</c><00:07:43.710><c> somebody</c><00:07:44.280><c> a</c><00:07:44.940><c> user</c><00:07:45.450><c> that</c><00:07:45.840><c> sends</c>

00:07:46.700 --> 00:07:46.710 align:start position:0%
hacker or somebody a user that sends
 

00:07:46.710 --> 00:07:49.370 align:start position:0%
hacker or somebody a user that sends
unintentional<00:07:47.490><c> unintentional</c><00:07:48.050><c> code</c><00:07:49.050><c> tier</c>

00:07:49.370 --> 00:07:49.380 align:start position:0%
unintentional unintentional code tier
 

00:07:49.380 --> 00:07:52.010 align:start position:0%
unintentional unintentional code tier
software<00:07:50.160><c> that</c><00:07:50.730><c> either</c><00:07:51.540><c> gives</c><00:07:51.870><c> them</c>

00:07:52.010 --> 00:07:52.020 align:start position:0%
software that either gives them
 

00:07:52.020 --> 00:07:55.700 align:start position:0%
software that either gives them
unauthorized<00:07:52.740><c> access</c><00:07:53.240><c> and</c><00:07:54.240><c> these</c><00:07:54.870><c> can</c><00:07:55.080><c> in</c>

00:07:55.700 --> 00:07:55.710 align:start position:0%
unauthorized access and these can in
 

00:07:55.710 --> 00:07:58.490 align:start position:0%
unauthorized access and these can in
traditional<00:07:56.460><c> software</c><00:07:57.390><c> you</c><00:07:57.780><c> have</c><00:07:58.050><c> command</c>

00:07:58.490 --> 00:07:58.500 align:start position:0%
traditional software you have command
 

00:07:58.500 --> 00:08:00.730 align:start position:0%
traditional software you have command
line<00:07:58.650><c> arguments</c><00:07:59.190><c> where</c><00:07:59.730><c> you</c><00:07:59.850><c> can</c><00:08:00.000><c> pass</c>

00:08:00.730 --> 00:08:00.740 align:start position:0%
line arguments where you can pass
 

00:08:00.740 --> 00:08:03.830 align:start position:0%
line arguments where you can pass
well<00:08:01.740><c> you</c><00:08:02.340><c> can</c><00:08:02.490><c> pass</c><00:08:02.700><c> like</c><00:08:02.940><c> some</c><00:08:03.210><c> some</c><00:08:03.540><c> a</c>

00:08:03.830 --> 00:08:03.840 align:start position:0%
well you can pass like some some a
 

00:08:03.840 --> 00:08:05.680 align:start position:0%
well you can pass like some some a
hacker<00:08:04.080><c> can</c><00:08:04.290><c> pass</c><00:08:04.560><c> a</c>

00:08:05.680 --> 00:08:05.690 align:start position:0%
hacker can pass a
 

00:08:05.690 --> 00:08:08.020 align:start position:0%
hacker can pass a
carefully<00:08:06.690><c> crafted</c>

00:08:08.020 --> 00:08:08.030 align:start position:0%
carefully crafted
 

00:08:08.030 --> 00:08:11.990 align:start position:0%
carefully crafted
carefully<00:08:09.030><c> crafted</c><00:08:09.480><c> code</c><00:08:10.290><c> such</c><00:08:11.160><c> as</c><00:08:11.190><c> a</c>

00:08:11.990 --> 00:08:12.000 align:start position:0%
carefully crafted code such as a
 

00:08:12.000 --> 00:08:14.330 align:start position:0%
carefully crafted code such as a
shellcode<00:08:12.480><c> with</c><00:08:13.080><c> with</c><00:08:13.320><c> some</c><00:08:13.680><c> buffer</c><00:08:13.950><c> overflow</c>

00:08:14.330 --> 00:08:14.340 align:start position:0%
shellcode with with some buffer overflow
 

00:08:14.340 --> 00:08:17.240 align:start position:0%
shellcode with with some buffer overflow
exploit<00:08:15.090><c> and</c><00:08:15.590><c> basically</c><00:08:16.590><c> give</c><00:08:16.860><c> them</c><00:08:17.040><c> access</c>

00:08:17.240 --> 00:08:17.250 align:start position:0%
exploit and basically give them access
 

00:08:17.250 --> 00:08:20.270 align:start position:0%
exploit and basically give them access
to<00:08:17.520><c> that</c><00:08:17.790><c> machine</c><00:08:18.440><c> environment</c><00:08:19.440><c> variables</c><00:08:19.890><c> as</c>

00:08:20.270 --> 00:08:20.280 align:start position:0%
to that machine environment variables as
 

00:08:20.280 --> 00:08:23.000 align:start position:0%
to that machine environment variables as
well<00:08:20.520><c> and</c><00:08:20.790><c> URL</c><00:08:21.060><c> parameters</c><00:08:21.540><c> which</c><00:08:21.780><c> is</c><00:08:22.010><c> common</c>

00:08:23.000 --> 00:08:23.010 align:start position:0%
well and URL parameters which is common
 

00:08:23.010 --> 00:08:25.670 align:start position:0%
well and URL parameters which is common
in<00:08:23.160><c> web</c><00:08:23.490><c> application</c><00:08:24.150><c> hacking</c><00:08:24.540><c> where</c><00:08:25.200><c> you</c><00:08:25.470><c> can</c>

00:08:25.670 --> 00:08:25.680 align:start position:0%
in web application hacking where you can
 

00:08:25.680 --> 00:08:28.430 align:start position:0%
in web application hacking where you can
basically<00:08:25.920><c> have</c><00:08:26.460><c> a</c><00:08:26.490><c> hacker</c><00:08:26.760><c> send</c><00:08:27.440><c> sequel</c>

00:08:28.430 --> 00:08:28.440 align:start position:0%
basically have a hacker send sequel
 

00:08:28.440 --> 00:08:30.890 align:start position:0%
basically have a hacker send sequel
injection<00:08:28.590><c> commands</c><00:08:29.220><c> into</c><00:08:29.520><c> your</c><00:08:29.900><c> application</c>

00:08:30.890 --> 00:08:30.900 align:start position:0%
injection commands into your application
 

00:08:30.900 --> 00:08:33.200 align:start position:0%
injection commands into your application
by<00:08:31.170><c> basically</c><00:08:32.010><c> sending</c><00:08:32.370><c> a</c><00:08:32.490><c> quick</c><00:08:32.730><c> carefully</c>

00:08:33.200 --> 00:08:33.210 align:start position:0%
by basically sending a quick carefully
 

00:08:33.210 --> 00:08:36.730 align:start position:0%
by basically sending a quick carefully
crafted<00:08:33.600><c> post</c><00:08:33.840><c> data</c><00:08:34.050><c> or</c><00:08:34.380><c> URL</c><00:08:35.160><c> parameter</c><00:08:35.670><c> and</c>

00:08:36.730 --> 00:08:36.740 align:start position:0%
crafted post data or URL parameter and
 

00:08:36.740 --> 00:08:38.990 align:start position:0%
crafted post data or URL parameter and
also<00:08:37.740><c> data</c><00:08:37.920><c> storage</c><00:08:38.310><c> which</c><00:08:38.520><c> falls</c><00:08:38.730><c> in</c><00:08:38.910><c> the</c>

00:08:38.990 --> 00:08:39.000 align:start position:0%
also data storage which falls in the
 

00:08:39.000 --> 00:08:41.930 align:start position:0%
also data storage which falls in the
same<00:08:39.440><c> concept</c><00:08:40.440><c> as</c><00:08:40.560><c> the</c><00:08:40.800><c> the</c><00:08:41.190><c> the</c><00:08:41.520><c> previous</c>

00:08:41.930 --> 00:08:41.940 align:start position:0%
same concept as the the the previous
 

00:08:41.940 --> 00:08:44.930 align:start position:0%
same concept as the the the previous
post<00:08:42.150><c> of</c><00:08:42.480><c> URL</c><00:08:43.170><c> parameters</c><00:08:43.490><c> in</c><00:08:44.490><c> this</c><00:08:44.730><c> case</c>

00:08:44.930 --> 00:08:44.940 align:start position:0%
post of URL parameters in this case
 

00:08:44.940 --> 00:08:46.910 align:start position:0%
post of URL parameters in this case
somebody<00:08:45.360><c> has</c><00:08:45.510><c> access</c><00:08:45.930><c> to</c><00:08:46.110><c> the</c><00:08:46.230><c> database</c><00:08:46.350><c> and</c>

00:08:46.910 --> 00:08:46.920 align:start position:0%
somebody has access to the database and
 

00:08:46.920 --> 00:08:50.780 align:start position:0%
somebody has access to the database and
your<00:08:47.490><c> application</c><00:08:48.560><c> reads</c><00:08:49.560><c> some</c><00:08:50.370><c> data</c><00:08:50.580><c> from</c>

00:08:50.780 --> 00:08:50.790 align:start position:0%
your application reads some data from
 

00:08:50.790 --> 00:08:52.820 align:start position:0%
your application reads some data from
that<00:08:51.000><c> data</c><00:08:51.210><c> and</c><00:08:51.300><c> and</c><00:08:51.840><c> it</c><00:08:52.290><c> costs</c><00:08:52.500><c> us</c><00:08:52.650><c> your</c>

00:08:52.820 --> 00:08:52.830 align:start position:0%
that data and and it costs us your
 

00:08:52.830 --> 00:08:54.830 align:start position:0%
that data and and it costs us your
application<00:08:53.820><c> behave</c><00:08:54.120><c> in</c><00:08:54.240><c> a</c><00:08:54.330><c> way</c><00:08:54.360><c> that</c><00:08:54.630><c> you</c><00:08:54.660><c> are</c>

00:08:54.830 --> 00:08:54.840 align:start position:0%
application behave in a way that you are
 

00:08:54.840 --> 00:08:56.810 align:start position:0%
application behave in a way that you are
not<00:08:54.930><c> expecting</c><00:08:55.440><c> to</c><00:08:55.590><c> and</c><00:08:55.770><c> in</c><00:08:56.550><c> the</c><00:08:56.640><c> case</c><00:08:56.790><c> of</c>

00:08:56.810 --> 00:08:56.820 align:start position:0%
not expecting to and in the case of
 

00:08:56.820 --> 00:08:59.600 align:start position:0%
not expecting to and in the case of
solidity<00:08:57.720><c> and</c><00:08:57.870><c> etherium</c><00:08:58.680><c> contracts</c><00:08:59.130><c> these</c>

00:08:59.600 --> 00:08:59.610 align:start position:0%
solidity and etherium contracts these
 

00:08:59.610 --> 00:09:01.439 align:start position:0%
solidity and etherium contracts these
are<00:08:59.730><c> function</c><00:09:00.150><c> parameters</c><00:09:00.819><c> third-party</c>

00:09:01.439 --> 00:09:01.449 align:start position:0%
are function parameters third-party
 

00:09:01.449 --> 00:09:07.159 align:start position:0%
are function parameters third-party
contracts<00:09:02.079><c> that</c><00:09:02.769><c> can</c><00:09:03.269><c> access</c><00:09:04.269><c> your</c><00:09:04.569><c> contracts</c>

00:09:07.159 --> 00:09:07.169 align:start position:0%
contracts that can access your contracts
 

00:09:07.169 --> 00:09:10.679 align:start position:0%
contracts that can access your contracts
so<00:09:08.169><c> let's</c><00:09:08.529><c> look</c><00:09:08.649><c> at</c><00:09:08.799><c> the</c><00:09:08.979><c> cerium</c><00:09:09.939><c> transaction</c>

00:09:10.679 --> 00:09:10.689 align:start position:0%
so let's look at the cerium transaction
 

00:09:10.689 --> 00:09:13.439 align:start position:0%
so let's look at the cerium transaction
flow<00:09:10.899><c> so</c><00:09:11.619><c> we</c><00:09:11.829><c> know</c><00:09:11.949><c> that</c><00:09:11.979><c> all</c><00:09:12.850><c> athyrium</c>

00:09:13.439 --> 00:09:13.449 align:start position:0%
flow so we know that all athyrium
 

00:09:13.449 --> 00:09:15.929 align:start position:0%
flow so we know that all athyrium
transactions<00:09:14.169><c> must</c><00:09:15.069><c> happen</c><00:09:15.399><c> from</c><00:09:15.789><c> an</c>

00:09:15.929 --> 00:09:15.939 align:start position:0%
transactions must happen from an
 

00:09:15.939 --> 00:09:17.699 align:start position:0%
transactions must happen from an
externally<00:09:16.419><c> own</c><00:09:16.569><c> account</c><00:09:16.869><c> that</c><00:09:17.319><c> means</c><00:09:17.529><c> your</c>

00:09:17.699 --> 00:09:17.709 align:start position:0%
externally own account that means your
 

00:09:17.709 --> 00:09:20.969 align:start position:0%
externally own account that means your
private<00:09:18.069><c> key</c><00:09:18.569><c> so</c><00:09:19.569><c> in</c><00:09:19.839><c> the</c><00:09:19.959><c> first</c><00:09:20.109><c> four</c>

00:09:20.969 --> 00:09:20.979 align:start position:0%
private key so in the first four
 

00:09:20.979 --> 00:09:22.979 align:start position:0%
private key so in the first four
examples<00:09:21.279><c> you</c><00:09:21.549><c> have</c><00:09:21.729><c> an</c><00:09:22.269><c> externally</c><00:09:22.839><c> own</c>

00:09:22.979 --> 00:09:22.989 align:start position:0%
examples you have an externally own
 

00:09:22.989 --> 00:09:25.469 align:start position:0%
examples you have an externally own
account<00:09:23.379><c> calling</c><00:09:24.100><c> a</c><00:09:24.220><c> cerium</c><00:09:24.819><c> contract</c><00:09:25.299><c> and</c>

00:09:25.469 --> 00:09:25.479 align:start position:0%
account calling a cerium contract and
 

00:09:25.479 --> 00:09:28.650 align:start position:0%
account calling a cerium contract and
and<00:09:25.839><c> that</c><00:09:25.959><c> can</c><00:09:26.169><c> go</c><00:09:27.069><c> with</c><00:09:27.399><c> an</c><00:09:27.910><c> ATM</c><00:09:28.269><c> contract</c>

00:09:28.650 --> 00:09:28.660 align:start position:0%
and that can go with an ATM contract
 

00:09:28.660 --> 00:09:30.359 align:start position:0%
and that can go with an ATM contract
paste<00:09:28.959><c> out</c><00:09:29.139><c> to</c><00:09:29.289><c> another</c><00:09:29.529><c> externally</c><00:09:30.249><c> own</c>

00:09:30.359 --> 00:09:30.369 align:start position:0%
paste out to another externally own
 

00:09:30.369 --> 00:09:33.479 align:start position:0%
paste out to another externally own
account<00:09:30.729><c> and</c><00:09:31.049><c> the</c><00:09:32.049><c> third</c><00:09:32.259><c> example</c><00:09:32.679><c> is</c><00:09:32.979><c> an</c>

00:09:33.479 --> 00:09:33.489 align:start position:0%
account and the third example is an
 

00:09:33.489 --> 00:09:35.179 align:start position:0%
account and the third example is an
externally<00:09:33.999><c> own</c><00:09:34.119><c> account</c><00:09:34.449><c> that</c><00:09:34.660><c> sends</c>

00:09:35.179 --> 00:09:35.189 align:start position:0%
externally own account that sends
 

00:09:35.189 --> 00:09:37.439 align:start position:0%
externally own account that sends
transaction<00:09:36.189><c> to</c><00:09:36.279><c> an</c><00:09:36.339><c> atrium</c><00:09:36.699><c> contract</c><00:09:37.209><c> and</c>

00:09:37.439 --> 00:09:37.449 align:start position:0%
transaction to an atrium contract and
 

00:09:37.449 --> 00:09:39.629 align:start position:0%
transaction to an atrium contract and
that<00:09:37.479><c> also</c><00:09:38.079><c> calls</c><00:09:38.949><c> another</c><00:09:39.160><c> a</c><00:09:39.309><c> theorem</c>

00:09:39.629 --> 00:09:39.639 align:start position:0%
that also calls another a theorem
 

00:09:39.639 --> 00:09:43.679 align:start position:0%
that also calls another a theorem
contract<00:09:40.149><c> and</c><00:09:40.359><c> that</c><00:09:40.470><c> is</c><00:09:41.939><c> basically</c><00:09:42.939><c> where</c><00:09:43.449><c> you</c>

00:09:43.679 --> 00:09:43.689 align:start position:0%
contract and that is basically where you
 

00:09:43.689 --> 00:09:45.769 align:start position:0%
contract and that is basically where you
see<00:09:44.079><c> things</c><00:09:44.379><c> such</c><00:09:44.769><c> as</c>

00:09:45.769 --> 00:09:45.779 align:start position:0%
see things such as
 

00:09:45.779 --> 00:09:47.929 align:start position:0%
see things such as
recursion<00:09:46.779><c> and</c>

00:09:47.929 --> 00:09:47.939 align:start position:0%
recursion and
 

00:09:47.939 --> 00:09:51.809 align:start position:0%
recursion and
reaction<00:09:48.939><c> see</c><00:09:49.089><c> problems</c><00:09:49.539><c> right</c><00:09:50.429><c> so</c><00:09:51.429><c> and</c><00:09:51.699><c> in</c>

00:09:51.809 --> 00:09:51.819 align:start position:0%
reaction see problems right so and in
 

00:09:51.819 --> 00:09:54.059 align:start position:0%
reaction see problems right so and in
the<00:09:51.970><c> the</c><00:09:52.209><c> third</c><00:09:52.359><c> act</c><00:09:52.539><c> the</c><00:09:53.199><c> fourth</c><00:09:53.499><c> one</c><00:09:53.679><c> is</c><00:09:53.799><c> just</c>

00:09:54.059 --> 00:09:54.069 align:start position:0%
the the third act the fourth one is just
 

00:09:54.069 --> 00:09:55.619 align:start position:0%
the the third act the fourth one is just
basically<00:09:54.459><c> somebody</c><00:09:54.910><c> sending</c><00:09:55.209><c> either</c><00:09:55.329><c> to</c>

00:09:55.619 --> 00:09:55.629 align:start position:0%
basically somebody sending either to
 

00:09:55.629 --> 00:09:57.840 align:start position:0%
basically somebody sending either to
another<00:09:55.989><c> external</c><00:09:56.319><c> you</c><00:09:56.529><c> own</c><00:09:56.589><c> account</c><00:09:56.919><c> and</c><00:09:57.160><c> the</c>

00:09:57.840 --> 00:09:57.850 align:start position:0%
another external you own account and the
 

00:09:57.850 --> 00:10:01.199 align:start position:0%
another external you own account and the
last<00:09:57.999><c> two</c><00:09:58.470><c> can't</c><00:09:59.470><c> happen</c><00:09:59.679><c> right</c><00:10:00.309><c> because</c><00:10:00.999><c> like</c>

00:10:01.199 --> 00:10:01.209 align:start position:0%
last two can't happen right because like
 

00:10:01.209 --> 00:10:03.719 align:start position:0%
last two can't happen right because like
contracts<00:10:01.660><c> cannot</c><00:10:02.529><c> basically</c><00:10:03.220><c> start</c><00:10:03.609><c> their</c>

00:10:03.719 --> 00:10:03.729 align:start position:0%
contracts cannot basically start their
 

00:10:03.729 --> 00:10:05.899 align:start position:0%
contracts cannot basically start their
own<00:10:03.759><c> execution</c>

00:10:05.899 --> 00:10:05.909 align:start position:0%
own execution
 

00:10:05.909 --> 00:10:08.299 align:start position:0%
own execution
maybe<00:10:06.909><c> in</c><00:10:07.029><c> the</c><00:10:07.089><c> future</c>

00:10:08.299 --> 00:10:08.309 align:start position:0%
maybe in the future
 

00:10:08.309 --> 00:10:12.389 align:start position:0%
maybe in the future
so<00:10:09.309><c> let's</c><00:10:09.729><c> look</c><00:10:09.819><c> at</c><00:10:09.970><c> the</c><00:10:10.059><c> example</c><00:10:10.379><c> erc</c><00:10:11.399><c> 20</c>

00:10:12.389 --> 00:10:12.399 align:start position:0%
so let's look at the example erc 20
 

00:10:12.399 --> 00:10:15.449 align:start position:0%
so let's look at the example erc 20
token<00:10:12.939><c> here</c><00:10:13.869><c> this</c><00:10:14.139><c> is</c><00:10:14.259><c> actually</c><00:10:14.859><c> on</c><00:10:15.100><c> the</c><00:10:15.129><c> dot</c>

00:10:15.449 --> 00:10:15.459 align:start position:0%
token here this is actually on the dot
 

00:10:15.459 --> 00:10:17.729 align:start position:0%
token here this is actually on the dot
bin<00:10:15.669><c> I</c><00:10:15.789><c> just</c><00:10:15.999><c> cut</c><00:10:16.179><c> and</c><00:10:16.299><c> pasted</c><00:10:16.600><c> this</c><00:10:16.720><c> and</c><00:10:16.959><c> this</c>

00:10:17.729 --> 00:10:17.739 align:start position:0%
bin I just cut and pasted this and this
 

00:10:17.739 --> 00:10:19.949 align:start position:0%
bin I just cut and pasted this and this
is<00:10:17.919><c> basically</c><00:10:18.189><c> the</c><00:10:18.429><c> that</c><00:10:19.149><c> to</c><00:10:19.299><c> the</c><00:10:19.479><c> standard</c>

00:10:19.949 --> 00:10:19.959 align:start position:0%
is basically the that to the standard
 

00:10:19.959 --> 00:10:22.379 align:start position:0%
is basically the that to the standard
token<00:10:20.350><c> format</c><00:10:20.769><c> standard</c><00:10:21.639><c> token</c><00:10:21.970><c> code</c><00:10:22.149><c> with</c>

00:10:22.379 --> 00:10:22.389 align:start position:0%
token format standard token code with
 

00:10:22.389 --> 00:10:25.529 align:start position:0%
token format standard token code with
the<00:10:22.539><c> standard</c><00:10:23.109><c> interface</c><00:10:23.919><c> for</c><00:10:24.129><c> it</c><00:10:24.249><c> so</c><00:10:24.939><c> here</c><00:10:25.389><c> we</c>

00:10:25.529 --> 00:10:25.539 align:start position:0%
the standard interface for it so here we
 

00:10:25.539 --> 00:10:29.009 align:start position:0%
the standard interface for it so here we
have<00:10:25.769><c> the</c><00:10:26.769><c> contract</c><00:10:27.279><c> and</c><00:10:27.519><c> then</c><00:10:28.239><c> you</c><00:10:28.419><c> have</c><00:10:28.569><c> sent</c>

00:10:29.009 --> 00:10:29.019 align:start position:0%
have the contract and then you have sent
 

00:10:29.019 --> 00:10:31.409 align:start position:0%
have the contract and then you have sent
coin<00:10:29.259><c> function</c><00:10:29.949><c> which</c><00:10:30.489><c> takes</c><00:10:30.519><c> some</c><00:10:30.999><c> values</c>

00:10:31.409 --> 00:10:31.419 align:start position:0%
coin function which takes some values
 

00:10:31.419 --> 00:10:34.139 align:start position:0%
coin function which takes some values
coin<00:10:32.169><c> balance</c><00:10:32.589><c> which</c><00:10:32.949><c> shows</c><00:10:33.519><c> you</c><00:10:33.759><c> like</c><00:10:33.939><c> the</c>

00:10:34.139 --> 00:10:34.149 align:start position:0%
coin balance which shows you like the
 

00:10:34.149 --> 00:10:37.710 align:start position:0%
coin balance which shows you like the
balance<00:10:34.509><c> of</c><00:10:34.600><c> the</c><00:10:34.799><c> account</c><00:10:35.799><c> from</c><00:10:36.629><c> from</c><00:10:37.629><c> the</c>

00:10:37.710 --> 00:10:37.720 align:start position:0%
balance of the account from from the
 

00:10:37.720 --> 00:10:40.049 align:start position:0%
balance of the account from from the
mapping<00:10:38.049><c> and</c><00:10:38.199><c> you</c><00:10:38.889><c> have</c><00:10:39.039><c> the</c><00:10:39.279><c> balance</c><00:10:39.489><c> off</c><00:10:39.850><c> and</c>

00:10:40.049 --> 00:10:40.059 align:start position:0%
mapping and you have the balance off and
 

00:10:40.059 --> 00:10:42.389 align:start position:0%
mapping and you have the balance off and
approve<00:10:40.389><c> so</c><00:10:40.899><c> obvious</c><00:10:41.559><c> all</c><00:10:41.799><c> these</c><00:10:41.979><c> functions</c>

00:10:42.389 --> 00:10:42.399 align:start position:0%
approve so obvious all these functions
 

00:10:42.399 --> 00:10:44.029 align:start position:0%
approve so obvious all these functions
and<00:10:42.669><c> the</c><00:10:42.939><c> arrow</c><00:10:43.059><c> reside</c><00:10:43.509><c> in</c><00:10:43.720><c> the</c><00:10:43.749><c> same</c>

00:10:44.029 --> 00:10:44.039 align:start position:0%
and the arrow reside in the same
 

00:10:44.039 --> 00:10:46.889 align:start position:0%
and the arrow reside in the same
contract<00:10:45.039><c> right</c><00:10:45.669><c> so</c><00:10:45.819><c> in</c><00:10:45.909><c> the</c><00:10:45.999><c> same</c><00:10:46.179><c> it's</c><00:10:46.720><c> in</c>

00:10:46.889 --> 00:10:46.899 align:start position:0%
contract right so in the same it's in
 

00:10:46.899 --> 00:10:48.929 align:start position:0%
contract right so in the same it's in
the<00:10:46.989><c> same</c><00:10:47.169><c> binary</c><00:10:47.379><c> that</c><00:10:47.739><c> once</c><00:10:47.949><c> deployed</c><00:10:48.249><c> on</c>

00:10:48.929 --> 00:10:48.939 align:start position:0%
the same binary that once deployed on
 

00:10:48.939 --> 00:10:50.729 align:start position:0%
the same binary that once deployed on
the<00:10:49.089><c> blockchain</c><00:10:49.299><c> it's</c><00:10:49.779><c> immutable</c><00:10:50.229><c> you</c><00:10:50.529><c> can't</c>

00:10:50.729 --> 00:10:50.739 align:start position:0%
the blockchain it's immutable you can't
 

00:10:50.739 --> 00:10:52.799 align:start position:0%
the blockchain it's immutable you can't
change<00:10:50.889><c> it</c><00:10:51.159><c> and</c><00:10:51.339><c> it's</c><00:10:51.999><c> very</c><00:10:52.209><c> difficult</c><00:10:52.419><c> to</c>

00:10:52.799 --> 00:10:52.809 align:start position:0%
change it and it's very difficult to
 

00:10:52.809 --> 00:10:54.479 align:start position:0%
change it and it's very difficult to
have<00:10:53.259><c> people</c><00:10:53.589><c> point</c><00:10:53.919><c> to</c><00:10:54.009><c> a</c><00:10:54.100><c> different</c>

00:10:54.479 --> 00:10:54.489 align:start position:0%
have people point to a different
 

00:10:54.489 --> 00:11:02.530 align:start position:0%
have people point to a different
contract<00:10:54.879><c> address</c><00:10:55.329><c> so</c>

00:11:02.530 --> 00:11:02.540 align:start position:0%
 
 

00:11:02.540 --> 00:11:04.000 align:start position:0%
 
what<00:11:03.110><c> we're</c><00:11:03.350><c> going</c><00:11:03.440><c> to</c><00:11:03.530><c> do</c><00:11:03.620><c> is</c><00:11:03.740><c> we're</c><00:11:03.860><c> going</c><00:11:03.950><c> to</c>

00:11:04.000 --> 00:11:04.010 align:start position:0%
what we're going to do is we're going to
 

00:11:04.010 --> 00:11:06.990 align:start position:0%
what we're going to do is we're going to
break<00:11:04.220><c> down</c><00:11:04.400><c> the</c><00:11:04.670><c> contracts</c><00:11:05.360><c> into</c><00:11:05.740><c> pieces</c>

00:11:06.990 --> 00:11:07.000 align:start position:0%
break down the contracts into pieces
 

00:11:07.000 --> 00:11:09.400 align:start position:0%
break down the contracts into pieces
basically<00:11:08.000><c> these</c><00:11:08.450><c> are</c><00:11:08.510><c> components</c><00:11:09.200><c> that</c>

00:11:09.400 --> 00:11:09.410 align:start position:0%
basically these are components that
 

00:11:09.410 --> 00:11:12.160 align:start position:0%
basically these are components that
behave<00:11:10.340><c> in</c><00:11:10.520><c> a</c><00:11:10.610><c> certain</c><00:11:10.760><c> way</c><00:11:10.910><c> and</c><00:11:11.060><c> and</c><00:11:11.630><c> you</c><00:11:12.020><c> can</c>

00:11:12.160 --> 00:11:12.170 align:start position:0%
behave in a certain way and and you can
 

00:11:12.170 --> 00:11:14.860 align:start position:0%
behave in a certain way and and you can
basically<00:11:12.370><c> describe</c><00:11:13.370><c> your</c><00:11:13.610><c> software</c><00:11:14.300><c> just</c>

00:11:14.860 --> 00:11:14.870 align:start position:0%
basically describe your software just
 

00:11:14.870 --> 00:11:16.990 align:start position:0%
basically describe your software just
based<00:11:15.140><c> on</c><00:11:15.290><c> these</c><00:11:15.470><c> contracts</c><00:11:16.070><c> so</c><00:11:16.730><c> we</c><00:11:16.850><c> have</c>

00:11:16.990 --> 00:11:17.000 align:start position:0%
based on these contracts so we have
 

00:11:17.000 --> 00:11:19.540 align:start position:0%
based on these contracts so we have
interface<00:11:17.480><c> controllers</c><00:11:18.320><c> storage</c><00:11:18.710><c> and</c><00:11:18.980><c> the</c>

00:11:19.540 --> 00:11:19.550 align:start position:0%
interface controllers storage and the
 

00:11:19.550 --> 00:11:22.060 align:start position:0%
interface controllers storage and the
last<00:11:19.910><c> two</c><00:11:20.150><c> are</c><00:11:20.270><c> basically</c><00:11:20.690><c> what</c><00:11:21.110><c> glue</c>

00:11:22.060 --> 00:11:22.070 align:start position:0%
last two are basically what glue
 

00:11:22.070 --> 00:11:24.370 align:start position:0%
last two are basically what glue
everything<00:11:22.640><c> together</c><00:11:22.910><c> now</c><00:11:23.810><c> we</c><00:11:23.990><c> have</c><00:11:24.140><c> the</c>

00:11:24.370 --> 00:11:24.380 align:start position:0%
everything together now we have the
 

00:11:24.380 --> 00:11:25.660 align:start position:0%
everything together now we have the
access<00:11:24.680><c> control</c><00:11:24.770><c> and</c><00:11:25.190><c> the</c><00:11:25.250><c> directory</c>

00:11:25.660 --> 00:11:25.670 align:start position:0%
access control and the directory
 

00:11:25.670 --> 00:11:30.450 align:start position:0%
access control and the directory
services<00:11:26.150><c> and</c><00:11:26.390><c> resolver</c>

00:11:30.450 --> 00:11:30.460 align:start position:0%
 
 

00:11:30.460 --> 00:11:33.790 align:start position:0%
 
right<00:11:31.460><c> so</c><00:11:31.970><c> interface</c><00:11:32.360><c> contracts</c><00:11:32.810><c> contracts</c>

00:11:33.790 --> 00:11:33.800 align:start position:0%
right so interface contracts contracts
 

00:11:33.800 --> 00:11:35.410 align:start position:0%
right so interface contracts contracts
that<00:11:33.920><c> be</c><00:11:34.040><c> called</c><00:11:34.280><c> directly</c><00:11:34.730><c> by</c><00:11:34.910><c> an</c><00:11:35.030><c> end</c><00:11:35.180><c> user</c>

00:11:35.410 --> 00:11:35.420 align:start position:0%
that be called directly by an end user
 

00:11:35.420 --> 00:11:37.450 align:start position:0%
that be called directly by an end user
or<00:11:35.750><c> external</c><00:11:36.020><c> contracts</c><00:11:36.590><c> this</c><00:11:37.070><c> is</c><00:11:37.190><c> the</c><00:11:37.310><c> main</c>

00:11:37.450 --> 00:11:37.460 align:start position:0%
or external contracts this is the main
 

00:11:37.460 --> 00:11:39.580 align:start position:0%
or external contracts this is the main
entry<00:11:37.790><c> point</c><00:11:38.030><c> right</c><00:11:38.630><c> so</c><00:11:38.840><c> basically</c><00:11:39.140><c> this</c><00:11:39.530><c> is</c>

00:11:39.580 --> 00:11:39.590 align:start position:0%
entry point right so basically this is
 

00:11:39.590 --> 00:11:42.130 align:start position:0%
entry point right so basically this is
the<00:11:39.920><c> contract</c><00:11:40.460><c> that</c><00:11:40.700><c> when</c><00:11:41.420><c> you</c><00:11:41.540><c> compile</c><00:11:41.960><c> it</c>

00:11:42.130 --> 00:11:42.140 align:start position:0%
the contract that when you compile it
 

00:11:42.140 --> 00:11:44.560 align:start position:0%
the contract that when you compile it
and<00:11:42.230><c> you</c><00:11:42.380><c> produce</c><00:11:42.710><c> the</c><00:11:43.070><c> jason</c><00:11:43.700><c> ABI</c><00:11:44.000><c> this</c><00:11:44.450><c> is</c>

00:11:44.560 --> 00:11:44.570 align:start position:0%
and you produce the jason ABI this is
 

00:11:44.570 --> 00:11:47.350 align:start position:0%
and you produce the jason ABI this is
the<00:11:44.780><c> the</c><00:11:45.500><c> con</c><00:11:45.710><c> the</c><00:11:46.220><c> ABI</c><00:11:46.640><c> that</c><00:11:46.880><c> you</c><00:11:46.970><c> put</c><00:11:47.150><c> onto</c>

00:11:47.350 --> 00:11:47.360 align:start position:0%
the the con the ABI that you put onto
 

00:11:47.360 --> 00:11:49.650 align:start position:0%
the the con the ABI that you put onto
your<00:11:47.600><c> misc</c><00:11:47.780><c> wallet</c><00:11:48.290><c> or</c><00:11:48.470><c> you</c><00:11:49.040><c> give</c><00:11:49.220><c> to</c><00:11:49.400><c> your</c>

00:11:49.650 --> 00:11:49.660 align:start position:0%
your misc wallet or you give to your
 

00:11:49.660 --> 00:11:53.230 align:start position:0%
your misc wallet or you give to your
users<00:11:50.660><c> or</c><00:11:51.020><c> to</c><00:11:51.890><c> other</c><00:11:52.430><c> people</c><00:11:52.820><c> that</c><00:11:52.970><c> will</c><00:11:53.120><c> be</c>

00:11:53.230 --> 00:11:53.240 align:start position:0%
users or to other people that will be
 

00:11:53.240 --> 00:11:54.990 align:start position:0%
users or to other people that will be
using<00:11:53.420><c> your</c><00:11:53.750><c> contracts</c>

00:11:54.990 --> 00:11:55.000 align:start position:0%
using your contracts
 

00:11:55.000 --> 00:11:57.880 align:start position:0%
using your contracts
so<00:11:56.000><c> this</c><00:11:56.150><c> is</c><00:11:56.270><c> the</c><00:11:56.360><c> main</c><00:11:56.510><c> entry</c><00:11:56.810><c> point</c><00:11:57.050><c> so</c><00:11:57.500><c> for</c>

00:11:57.880 --> 00:11:57.890 align:start position:0%
so this is the main entry point so for
 

00:11:57.890 --> 00:12:00.850 align:start position:0%
so this is the main entry point so for
our<00:11:58.120><c> design</c><00:11:59.120><c> this</c><00:11:59.510><c> is</c><00:11:59.660><c> the</c><00:12:00.140><c> only</c><00:12:00.350><c> attack</c>

00:12:00.850 --> 00:12:00.860 align:start position:0%
our design this is the only attack
 

00:12:00.860 --> 00:12:05.200 align:start position:0%
our design this is the only attack
surface<00:12:01.480><c> so</c><00:12:02.480><c> this</c><00:12:02.660><c> simplifies</c><00:12:02.840><c> a</c><00:12:03.530><c> lot</c><00:12:04.040><c> of</c><00:12:04.400><c> the</c>

00:12:05.200 --> 00:12:05.210 align:start position:0%
surface so this simplifies a lot of the
 

00:12:05.210 --> 00:12:07.330 align:start position:0%
surface so this simplifies a lot of the
security<00:12:05.750><c> audits</c><00:12:06.080><c> and</c><00:12:06.320><c> making</c><00:12:07.160><c> sure</c><00:12:07.310><c> that</c>

00:12:07.330 --> 00:12:07.340 align:start position:0%
security audits and making sure that
 

00:12:07.340 --> 00:12:09.430 align:start position:0%
security audits and making sure that
your<00:12:07.610><c> code</c><00:12:07.790><c> is</c><00:12:07.820><c> secure</c><00:12:08.240><c> yes</c><00:12:08.930><c> this</c><00:12:09.110><c> is</c><00:12:09.230><c> the</c><00:12:09.260><c> only</c>

00:12:09.430 --> 00:12:09.440 align:start position:0%
your code is secure yes this is the only
 

00:12:09.440 --> 00:12:11.320 align:start position:0%
your code is secure yes this is the only
entry<00:12:09.800><c> point</c><00:12:10.040><c> and</c><00:12:10.190><c> we</c><00:12:10.520><c> can</c><00:12:10.670><c> control</c><00:12:10.970><c> this</c><00:12:11.120><c> a</c>

00:12:11.320 --> 00:12:11.330 align:start position:0%
entry point and we can control this a
 

00:12:11.330 --> 00:12:14.890 align:start position:0%
entry point and we can control this a
lot<00:12:11.510><c> better</c><00:12:11.690><c> than</c><00:12:12.020><c> having</c><00:12:12.650><c> a</c><00:12:13.190><c> file</c><00:12:14.090><c> that</c><00:12:14.120><c> has</c>

00:12:14.890 --> 00:12:14.900 align:start position:0%
lot better than having a file that has
 

00:12:14.900 --> 00:12:18.340 align:start position:0%
lot better than having a file that has
all<00:12:15.380><c> the</c><00:12:15.800><c> logic</c><00:12:16.670><c> in</c><00:12:16.850><c> one</c><00:12:17.060><c> file</c><00:12:17.840><c> and</c><00:12:18.080><c> then</c><00:12:18.170><c> this</c>

00:12:18.340 --> 00:12:18.350 align:start position:0%
all the logic in one file and then this
 

00:12:18.350 --> 00:12:20.170 align:start position:0%
all the logic in one file and then this
can<00:12:18.500><c> get</c><00:12:18.680><c> overwhelming</c><00:12:18.980><c> when</c><00:12:19.850><c> you</c><00:12:20.000><c> read</c><00:12:20.150><c> it</c>

00:12:20.170 --> 00:12:20.180 align:start position:0%
can get overwhelming when you read it
 

00:12:20.180 --> 00:12:22.660 align:start position:0%
can get overwhelming when you read it
right<00:12:20.510><c> so</c><00:12:21.290><c> if</c><00:12:21.830><c> you're</c><00:12:21.950><c> dealing</c><00:12:22.100><c> with</c><00:12:22.280><c> with</c>

00:12:22.660 --> 00:12:22.670 align:start position:0%
right so if you're dealing with with
 

00:12:22.670 --> 00:12:24.220 align:start position:0%
right so if you're dealing with with
four<00:12:23.000><c> hundred</c><00:12:23.240><c> lines</c><00:12:23.360><c> of</c><00:12:23.540><c> code</c><00:12:23.750><c> or</c><00:12:23.780><c> five</c>

00:12:24.220 --> 00:12:24.230 align:start position:0%
four hundred lines of code or five
 

00:12:24.230 --> 00:12:26.710 align:start position:0%
four hundred lines of code or five
hundred<00:12:24.590><c> or</c><00:12:25.010><c> a</c><00:12:25.040><c> thousand</c><00:12:25.490><c> it's</c><00:12:25.720><c> overwhelming</c>

00:12:26.710 --> 00:12:26.720 align:start position:0%
hundred or a thousand it's overwhelming
 

00:12:26.720 --> 00:12:29.190 align:start position:0%
hundred or a thousand it's overwhelming
to<00:12:26.750><c> read</c><00:12:26.960><c> one</c><00:12:27.140><c> file</c><00:12:27.380><c> and</c><00:12:27.650><c> you</c><00:12:27.860><c> can't</c><00:12:28.100><c> really</c>

00:12:29.190 --> 00:12:29.200 align:start position:0%
to read one file and you can't really
 

00:12:29.200 --> 00:12:31.720 align:start position:0%
to read one file and you can't really
you<00:12:30.200><c> know</c><00:12:30.320><c> it's</c><00:12:30.650><c> hard</c><00:12:30.830><c> to</c><00:12:30.980><c> reason</c><00:12:31.130><c> about</c><00:12:31.310><c> like</c>

00:12:31.720 --> 00:12:31.730 align:start position:0%
you know it's hard to reason about like
 

00:12:31.730 --> 00:12:34.270 align:start position:0%
you know it's hard to reason about like
large<00:12:32.000><c> pieces</c><00:12:32.330><c> of</c><00:12:32.570><c> information</c><00:12:32.990><c> so</c><00:12:33.890><c> if</c><00:12:34.190><c> you</c>

00:12:34.270 --> 00:12:34.280 align:start position:0%
large pieces of information so if you
 

00:12:34.280 --> 00:12:35.740 align:start position:0%
large pieces of information so if you
break<00:12:34.430><c> it</c><00:12:34.550><c> down</c><00:12:34.640><c> to</c><00:12:34.820><c> smaller</c><00:12:35.060><c> pieces</c><00:12:35.330><c> it's</c><00:12:35.660><c> a</c>

00:12:35.740 --> 00:12:35.750 align:start position:0%
break it down to smaller pieces it's a
 

00:12:35.750 --> 00:12:38.020 align:start position:0%
break it down to smaller pieces it's a
lot<00:12:35.900><c> easier</c><00:12:35.930><c> to</c><00:12:36.410><c> reason</c><00:12:37.280><c> about</c><00:12:37.460><c> it</c><00:12:37.760><c> and</c><00:12:38.000><c> figure</c>

00:12:38.020 --> 00:12:38.030 align:start position:0%
lot easier to reason about it and figure
 

00:12:38.030 --> 00:12:50.280 align:start position:0%
lot easier to reason about it and figure
out<00:12:38.630><c> what's</c><00:12:38.900><c> going</c><00:12:38.960><c> on</c>

00:12:50.280 --> 00:12:50.290 align:start position:0%
 
 

00:12:50.290 --> 00:12:55.350 align:start position:0%
 
wyd<00:12:51.290><c> again</c>

00:12:55.350 --> 00:12:55.360 align:start position:0%
 
 

00:12:55.360 --> 00:13:10.410 align:start position:0%
 
am<00:12:56.360><c> I</c><00:12:56.450><c> just</c><00:12:56.480><c> having</c><00:12:56.900><c> the</c><00:12:56.990><c> worst</c><00:12:57.200><c> luck</c><00:12:57.470><c> for</c><00:12:57.740><c> this</c>

00:13:10.410 --> 00:13:10.420 align:start position:0%
 
 

00:13:10.420 --> 00:13:14.580 align:start position:0%
 
you

00:13:14.580 --> 00:13:14.590 align:start position:0%
 
 

00:13:14.590 --> 00:13:18.450 align:start position:0%
 
rewind

00:13:18.450 --> 00:13:18.460 align:start position:0%
 
 

00:13:18.460 --> 00:13:21.000 align:start position:0%
 
right<00:13:19.460><c> so</c>

00:13:21.000 --> 00:13:21.010 align:start position:0%
right so
 

00:13:21.010 --> 00:13:23.730 align:start position:0%
right so
interface<00:13:22.010><c> contracts</c><00:13:22.520><c> talk</c><00:13:22.850><c> about</c><00:13:23.090><c> it</c>

00:13:23.730 --> 00:13:23.740 align:start position:0%
interface contracts talk about it
 

00:13:23.740 --> 00:13:25.960 align:start position:0%
interface contracts talk about it
control<00:13:24.740><c> contracts</c><00:13:25.220><c> basically</c><00:13:25.640><c> this</c><00:13:25.820><c> is</c>

00:13:25.960 --> 00:13:25.970 align:start position:0%
control contracts basically this is
 

00:13:25.970 --> 00:13:27.820 align:start position:0%
control contracts basically this is
where<00:13:26.210><c> most</c><00:13:26.540><c> of</c><00:13:26.720><c> the</c><00:13:26.780><c> code</c><00:13:26.960><c> logic</c><00:13:27.380><c> goes</c><00:13:27.530><c> and</c>

00:13:27.820 --> 00:13:27.830 align:start position:0%
where most of the code logic goes and
 

00:13:27.830 --> 00:13:30.510 align:start position:0%
where most of the code logic goes and
this<00:13:28.580><c> is</c><00:13:28.730><c> where</c><00:13:28.940><c> you</c><00:13:29.150><c> basically</c><00:13:29.390><c> have</c>

00:13:30.510 --> 00:13:30.520 align:start position:0%
this is where you basically have
 

00:13:30.520 --> 00:13:33.880 align:start position:0%
this is where you basically have
your<00:13:31.520><c> you're</c><00:13:31.960><c> the</c><00:13:32.960><c> interface</c><00:13:33.440><c> contracts</c>

00:13:33.880 --> 00:13:33.890 align:start position:0%
your you're the interface contracts
 

00:13:33.890 --> 00:13:36.730 align:start position:0%
your you're the interface contracts
calls<00:13:34.250><c> this</c><00:13:34.750><c> basically</c><00:13:35.750><c> and</c><00:13:36.110><c> and</c><00:13:36.500><c> all</c><00:13:36.590><c> the</c>

00:13:36.730 --> 00:13:36.740 align:start position:0%
calls this basically and and all the
 

00:13:36.740 --> 00:13:39.460 align:start position:0%
calls this basically and and all the
functions<00:13:37.130><c> that</c><00:13:37.430><c> are</c><00:13:37.870><c> needed</c><00:13:38.870><c> to</c><00:13:39.020><c> be</c><00:13:39.260><c> called</c>

00:13:39.460 --> 00:13:39.470 align:start position:0%
functions that are needed to be called
 

00:13:39.470 --> 00:13:42.490 align:start position:0%
functions that are needed to be called
that<00:13:39.980><c> basically</c><00:13:40.820><c> either</c><00:13:41.120><c> change</c><00:13:41.720><c> storage</c>

00:13:42.490 --> 00:13:42.500 align:start position:0%
that basically either change storage
 

00:13:42.500 --> 00:13:45.100 align:start position:0%
that basically either change storage
state<00:13:42.950><c> the</c><00:13:43.340><c> state</c><00:13:43.400><c> storage</c><00:13:43.790><c> or</c><00:13:44.150><c> the</c><00:13:44.900><c> some</c>

00:13:45.100 --> 00:13:45.110 align:start position:0%
state the state storage or the some
 

00:13:45.110 --> 00:13:47.350 align:start position:0%
state the state storage or the some
calculations<00:13:45.740><c> are</c><00:13:46.070><c> all</c><00:13:46.490><c> in</c><00:13:46.640><c> here</c><00:13:46.820><c> so</c><00:13:47.060><c> most</c><00:13:47.300><c> of</c>

00:13:47.350 --> 00:13:47.360 align:start position:0%
calculations are all in here so most of
 

00:13:47.360 --> 00:13:49.300 align:start position:0%
calculations are all in here so most of
your<00:13:47.540><c> lodgings</c><00:13:47.810><c> gonna</c><00:13:47.960><c> be</c><00:13:48.110><c> here</c><00:13:48.350><c> and</c><00:13:48.530><c> if</c><00:13:49.280><c> you</c>

00:13:49.300 --> 00:13:49.310 align:start position:0%
your lodgings gonna be here and if you
 

00:13:49.310 --> 00:13:51.220 align:start position:0%
your lodgings gonna be here and if you
wanted<00:13:49.580><c> to</c><00:13:49.700><c> look</c><00:13:49.790><c> for</c><00:13:50.000><c> logic</c><00:13:50.270><c> errors</c><00:13:50.780><c> this</c><00:13:51.110><c> is</c>

00:13:51.220 --> 00:13:51.230 align:start position:0%
wanted to look for logic errors this is
 

00:13:51.230 --> 00:13:55.620 align:start position:0%
wanted to look for logic errors this is
where<00:13:51.470><c> you</c><00:13:51.650><c> would</c><00:13:51.740><c> look</c><00:13:51.920><c> for</c><00:13:52.130><c> right</c>

00:13:55.620 --> 00:13:55.630 align:start position:0%
 
 

00:13:55.630 --> 00:13:58.330 align:start position:0%
 
storage<00:13:56.630><c> contracts</c><00:13:57.110><c> yeah</c><00:13:57.590><c> this</c><00:13:57.800><c> is</c><00:13:57.920><c> basically</c>

00:13:58.330 --> 00:13:58.340 align:start position:0%
storage contracts yeah this is basically
 

00:13:58.340 --> 00:14:01.330 align:start position:0%
storage contracts yeah this is basically
your<00:13:58.460><c> database</c><00:13:58.880><c> right</c><00:13:59.600><c> so</c><00:13:59.840><c> in</c><00:14:00.340><c> traditional</c>

00:14:01.330 --> 00:14:01.340 align:start position:0%
your database right so in traditional
 

00:14:01.340 --> 00:14:04.060 align:start position:0%
your database right so in traditional
MVC<00:14:01.940><c> this</c><00:14:02.240><c> is</c><00:14:02.390><c> your</c><00:14:02.570><c> model</c><00:14:03.140><c> this</c><00:14:03.530><c> is</c><00:14:03.590><c> where</c><00:14:03.890><c> you</c>

00:14:04.060 --> 00:14:04.070 align:start position:0%
MVC this is your model this is where you
 

00:14:04.070 --> 00:14:07.150 align:start position:0%
MVC this is your model this is where you
put<00:14:04.280><c> all</c><00:14:04.520><c> your</c><00:14:04.550><c> data</c><00:14:04.850><c> and</c><00:14:05.150><c> you</c><00:14:05.810><c> put</c><00:14:06.160><c> basically</c>

00:14:07.150 --> 00:14:07.160 align:start position:0%
put all your data and you put basically
 

00:14:07.160 --> 00:14:09.150 align:start position:0%
put all your data and you put basically
this<00:14:07.700><c> is</c><00:14:07.760><c> where</c><00:14:08.000><c> all</c><00:14:08.030><c> the</c><00:14:08.120><c> information</c><00:14:08.660><c> is</c>

00:14:09.150 --> 00:14:09.160 align:start position:0%
this is where all the information is
 

00:14:09.160 --> 00:14:11.470 align:start position:0%
this is where all the information is
about<00:14:10.160><c> your</c><00:14:10.310><c> contract</c><00:14:10.760><c> under</c><00:14:10.910><c> the</c><00:14:11.030><c> state</c><00:14:11.240><c> of</c>

00:14:11.470 --> 00:14:11.480 align:start position:0%
about your contract under the state of
 

00:14:11.480 --> 00:14:15.660 align:start position:0%
about your contract under the state of
your<00:14:11.900><c> ear</c><00:14:12.260><c> DAP</c>

00:14:15.660 --> 00:14:15.670 align:start position:0%
 
 

00:14:15.670 --> 00:14:18.160 align:start position:0%
 
other<00:14:16.670><c> components</c><00:14:17.180><c> access</c><00:14:17.630><c> control</c><00:14:17.930><c> this</c><00:14:18.110><c> is</c>

00:14:18.160 --> 00:14:18.170 align:start position:0%
other components access control this is
 

00:14:18.170 --> 00:14:19.720 align:start position:0%
other components access control this is
actually<00:14:18.500><c> a</c><00:14:18.530><c> very</c><00:14:18.650><c> important</c><00:14:19.070><c> piece</c><00:14:19.250><c> that</c>

00:14:19.720 --> 00:14:19.730 align:start position:0%
actually a very important piece that
 

00:14:19.730 --> 00:14:21.850 align:start position:0%
actually a very important piece that
actually<00:14:20.060><c> puts</c><00:14:20.270><c> everything</c><00:14:20.690><c> up</c><00:14:20.930><c> basically</c>

00:14:21.850 --> 00:14:21.860 align:start position:0%
actually puts everything up basically
 

00:14:21.860 --> 00:14:25.020 align:start position:0%
actually puts everything up basically
this<00:14:21.980><c> is</c><00:14:22.040><c> the</c><00:14:22.340><c> biggest</c><00:14:23.180><c> piece</c><00:14:23.510><c> that</c>

00:14:25.020 --> 00:14:25.030 align:start position:0%
this is the biggest piece that
 

00:14:25.030 --> 00:14:27.910 align:start position:0%
this is the biggest piece that
puts<00:14:26.030><c> everything</c><00:14:26.300><c> together</c><00:14:26.570><c> and</c><00:14:26.960><c> there's</c>

00:14:27.910 --> 00:14:27.920 align:start position:0%
puts everything together and there's
 

00:14:27.920 --> 00:14:30.160 align:start position:0%
puts everything together and there's
basically<00:14:28.130><c> set</c><00:14:28.610><c> of</c><00:14:28.760><c> your</c><00:14:28.940><c> reusable</c><00:14:29.540><c> code</c><00:14:29.930><c> that</c>

00:14:30.160 --> 00:14:30.170 align:start position:0%
basically set of your reusable code that
 

00:14:30.170 --> 00:14:32.170 align:start position:0%
basically set of your reusable code that
we<00:14:30.260><c> can</c><00:14:30.440><c> use</c><00:14:30.470><c> to</c><00:14:30.620><c> describe</c><00:14:30.950><c> how</c><00:14:31.670><c> a</c><00:14:31.700><c> resource</c>

00:14:32.170 --> 00:14:32.180 align:start position:0%
we can use to describe how a resource
 

00:14:32.180 --> 00:14:34.150 align:start position:0%
we can use to describe how a resource
can<00:14:32.360><c> be</c><00:14:32.390><c> accessed</c><00:14:32.660><c> and</c><00:14:33.080><c> at</c><00:14:33.680><c> the</c><00:14:33.800><c> jaques</c><00:14:34.010><c> we</c>

00:14:34.150 --> 00:14:34.160 align:start position:0%
can be accessed and at the jaques we
 

00:14:34.160 --> 00:14:36.340 align:start position:0%
can be accessed and at the jaques we
sort<00:14:34.490><c> of</c><00:14:34.580><c> identified</c><00:14:35.090><c> several</c><00:14:35.420><c> access</c>

00:14:36.340 --> 00:14:36.350 align:start position:0%
sort of identified several access
 

00:14:36.350 --> 00:14:37.830 align:start position:0%
sort of identified several access
control<00:14:36.710><c> patterns</c>

00:14:37.830 --> 00:14:37.840 align:start position:0%
control patterns
 

00:14:37.840 --> 00:14:40.690 align:start position:0%
control patterns
basically<00:14:38.840><c> these</c><00:14:39.020><c> are</c><00:14:39.080><c> how</c><00:14:39.620><c> you</c><00:14:40.010><c> describe</c><00:14:40.490><c> how</c>

00:14:40.690 --> 00:14:40.700 align:start position:0%
basically these are how you describe how
 

00:14:40.700 --> 00:14:42.430 align:start position:0%
basically these are how you describe how
a<00:14:40.730><c> resource</c><00:14:41.390><c> can</c><00:14:41.600><c> be</c><00:14:41.630><c> accessed</c><00:14:41.870><c> by</c><00:14:42.170><c> an</c>

00:14:42.430 --> 00:14:42.440 align:start position:0%
a resource can be accessed by an
 

00:14:42.440 --> 00:14:44.110 align:start position:0%
a resource can be accessed by an
external<00:14:42.620><c> an</c><00:14:42.980><c> account</c><00:14:43.220><c> or</c><00:14:43.370><c> another</c><00:14:43.580><c> contract</c>

00:14:44.110 --> 00:14:44.120 align:start position:0%
external an account or another contract
 

00:14:44.120 --> 00:14:45.810 align:start position:0%
external an account or another contract
and

00:14:45.810 --> 00:14:45.820 align:start position:0%
and
 

00:14:45.820 --> 00:14:48.400 align:start position:0%
and
so<00:14:46.820><c> that</c><00:14:47.060><c> would</c><00:14:47.240><c> be</c><00:14:47.270><c> an</c><00:14:47.540><c> example</c><00:14:47.630><c> here</c><00:14:48.140><c> is</c><00:14:48.260><c> the</c>

00:14:48.400 --> 00:14:48.410 align:start position:0%
so that would be an example here is the
 

00:14:48.410 --> 00:14:50.740 align:start position:0%
so that would be an example here is the
AC<00:14:48.860><c> owned</c><00:14:49.220><c> contract</c><00:14:50.090><c> that</c><00:14:50.240><c> we</c><00:14:50.330><c> have</c><00:14:50.450><c> and</c><00:14:50.690><c> is</c>

00:14:50.740 --> 00:14:50.750 align:start position:0%
AC owned contract that we have and is
 

00:14:50.750 --> 00:14:53.320 align:start position:0%
AC owned contract that we have and is
very<00:14:51.290><c> straightforward</c><00:14:51.680><c> there's</c><00:14:52.490><c> a</c><00:14:52.580><c> contract</c>

00:14:53.320 --> 00:14:53.330 align:start position:0%
very straightforward there's a contract
 

00:14:53.330 --> 00:14:55.990 align:start position:0%
very straightforward there's a contract
that<00:14:53.540><c> has</c><00:14:53.660><c> an</c><00:14:53.840><c> owner</c><00:14:53.990><c> and</c><00:14:54.310><c> if</c><00:14:55.310><c> the</c><00:14:55.580><c> sender</c><00:14:55.880><c> of</c>

00:14:55.990 --> 00:14:56.000 align:start position:0%
that has an owner and if the sender of
 

00:14:56.000 --> 00:14:58.210 align:start position:0%
that has an owner and if the sender of
that<00:14:56.300><c> that</c><00:14:56.900><c> transaction</c><00:14:57.500><c> is</c><00:14:57.620><c> the</c><00:14:57.800><c> owner</c><00:14:57.950><c> then</c>

00:14:58.210 --> 00:14:58.220 align:start position:0%
that that transaction is the owner then
 

00:14:58.220 --> 00:15:00.520 align:start position:0%
that that transaction is the owner then
let<00:14:58.340><c> it</c><00:14:58.370><c> through</c><00:14:58.700><c> and</c><00:14:58.970><c> if</c><00:14:59.060><c> not</c><00:14:59.300><c> then</c><00:15:00.200><c> you</c><00:15:00.350><c> throw</c>

00:15:00.520 --> 00:15:00.530 align:start position:0%
let it through and if not then you throw
 

00:15:00.530 --> 00:15:03.010 align:start position:0%
let it through and if not then you throw
an<00:15:00.620><c> error</c><00:15:00.740><c> and</c><00:15:00.950><c> eat</c><00:15:01.820><c> up</c><00:15:01.940><c> every</c><00:15:02.210><c> the</c><00:15:02.690><c> gas</c><00:15:02.840><c> that</c>

00:15:03.010 --> 00:15:03.020 align:start position:0%
an error and eat up every the gas that
 

00:15:03.020 --> 00:15:04.170 align:start position:0%
an error and eat up every the gas that
they<00:15:03.170><c> sent</c>

00:15:04.170 --> 00:15:04.180 align:start position:0%
they sent
 

00:15:04.180 --> 00:15:07.060 align:start position:0%
they sent
right<00:15:05.180><c> and</c><00:15:05.420><c> then</c><00:15:05.600><c> here</c><00:15:05.840><c> we</c><00:15:05.870><c> have</c><00:15:06.140><c> a</c><00:15:06.350><c> it's</c><00:15:06.890><c> very</c>

00:15:07.060 --> 00:15:07.070 align:start position:0%
right and then here we have a it's very
 

00:15:07.070 --> 00:15:09.550 align:start position:0%
right and then here we have a it's very
small<00:15:07.280><c> the</c><00:15:08.240><c> groups</c><00:15:08.510><c> so</c><00:15:08.900><c> basically</c><00:15:09.290><c> this</c><00:15:09.410><c> is</c>

00:15:09.550 --> 00:15:09.560 align:start position:0%
small the groups so basically this is
 

00:15:09.560 --> 00:15:10.930 align:start position:0%
small the groups so basically this is
the<00:15:09.650><c> same</c><00:15:09.860><c> as</c><00:15:10.040><c> the</c><00:15:10.160><c> owner</c><00:15:10.310><c> but</c><00:15:10.640><c> you</c><00:15:10.790><c> can</c>

00:15:10.930 --> 00:15:10.940 align:start position:0%
the same as the owner but you can
 

00:15:10.940 --> 00:15:14.110 align:start position:0%
the same as the owner but you can
basically<00:15:11.270><c> define</c><00:15:11.720><c> multiple</c><00:15:12.140><c> users</c><00:15:13.010><c> to</c><00:15:13.460><c> use</c>

00:15:14.110 --> 00:15:14.120 align:start position:0%
basically define multiple users to use
 

00:15:14.120 --> 00:15:18.150 align:start position:0%
basically define multiple users to use
to<00:15:14.960><c> basically</c><00:15:15.080><c> say</c><00:15:15.770><c> that</c><00:15:15.980><c> like</c><00:15:16.190><c> this</c><00:15:16.570><c> this</c>

00:15:18.150 --> 00:15:18.160 align:start position:0%
to basically say that like this this
 

00:15:18.160 --> 00:15:21.430 align:start position:0%
to basically say that like this this
this<00:15:19.160><c> resource</c><00:15:19.730><c> can</c><00:15:20.000><c> be</c><00:15:20.030><c> accessed</c><00:15:20.300><c> by</c><00:15:20.600><c> these</c>

00:15:21.430 --> 00:15:21.440 align:start position:0%
this resource can be accessed by these
 

00:15:21.440 --> 00:15:23.140 align:start position:0%
this resource can be accessed by these
addresses<00:15:21.740><c> and</c><00:15:22.340><c> it's</c><00:15:22.550><c> basically</c><00:15:22.760><c> simple</c>

00:15:23.140 --> 00:15:23.150 align:start position:0%
addresses and it's basically simple
 

00:15:23.150 --> 00:15:25.449 align:start position:0%
addresses and it's basically simple
mapping<00:15:23.480><c> that</c><00:15:23.750><c> says</c>

00:15:25.449 --> 00:15:25.459 align:start position:0%
mapping that says
 

00:15:25.459 --> 00:15:27.939 align:start position:0%
mapping that says
if<00:15:25.519><c> you're</c><00:15:26.029><c> if</c><00:15:26.389><c> you're</c><00:15:26.509><c> in</c><00:15:26.629><c> a</c><00:15:26.689><c> group</c><00:15:26.949><c> you're</c>

00:15:27.939 --> 00:15:27.949 align:start position:0%
if you're if you're in a group you're
 

00:15:27.949 --> 00:15:29.949 align:start position:0%
if you're if you're in a group you're
you<00:15:28.399><c> can</c><00:15:28.550><c> access</c><00:15:28.879><c> it</c><00:15:29.029><c> and</c><00:15:29.179><c> then</c><00:15:29.600><c> there's</c><00:15:29.779><c> like</c>

00:15:29.949 --> 00:15:29.959 align:start position:0%
you can access it and then there's like
 

00:15:29.959 --> 00:15:32.530 align:start position:0%
you can access it and then there's like
some<00:15:30.079><c> functions</c><00:15:30.499><c> to</c><00:15:30.679><c> add</c><00:15:30.829><c> and</c><00:15:31.160><c> register</c><00:15:31.730><c> users</c>

00:15:32.530 --> 00:15:32.540 align:start position:0%
some functions to add and register users
 

00:15:32.540 --> 00:15:36.600 align:start position:0%
some functions to add and register users
or<00:15:32.809><c> ad</c><00:15:32.959><c> groups</c><00:15:33.290><c> to</c><00:15:34.220><c> the</c><00:15:34.369><c> system</c><00:15:34.730><c> and</c>

00:15:36.600 --> 00:15:36.610 align:start position:0%
or ad groups to the system and
 

00:15:36.610 --> 00:15:40.359 align:start position:0%
or ad groups to the system and
the<00:15:37.610><c> directory</c><00:15:37.970><c> service</c><00:15:38.300><c> this</c><00:15:38.839><c> is</c><00:15:39.100><c> what</c><00:15:40.100><c> puts</c>

00:15:40.359 --> 00:15:40.369 align:start position:0%
the directory service this is what puts
 

00:15:40.369 --> 00:15:42.369 align:start position:0%
the directory service this is what puts
everything<00:15:40.699><c> together</c><00:15:40.999><c> it's</c><00:15:41.720><c> basically</c><00:15:42.050><c> a</c><00:15:42.139><c> key</c>

00:15:42.369 --> 00:15:42.379 align:start position:0%
everything together it's basically a key
 

00:15:42.379 --> 00:15:44.679 align:start position:0%
everything together it's basically a key
value<00:15:42.769><c> store</c><00:15:43.069><c> its</c><00:15:43.309><c> own</c><00:15:43.579><c> contract</c><00:15:44.089><c> storage</c><00:15:44.480><c> and</c>

00:15:44.679 --> 00:15:44.689 align:start position:0%
value store its own contract storage and
 

00:15:44.689 --> 00:15:48.189 align:start position:0%
value store its own contract storage and
it<00:15:45.139><c> tells</c><00:15:45.350><c> the</c><00:15:46.009><c> other</c><00:15:46.160><c> contracts</c><00:15:46.899><c> not</c><00:15:47.899><c> because</c>

00:15:48.189 --> 00:15:48.199 align:start position:0%
it tells the other contracts not because
 

00:15:48.199 --> 00:15:49.749 align:start position:0%
it tells the other contracts not because
now<00:15:48.350><c> we</c><00:15:48.410><c> have</c><00:15:48.499><c> split</c><00:15:48.860><c> the</c><00:15:49.069><c> contracts</c><00:15:49.579><c> into</c>

00:15:49.749 --> 00:15:49.759 align:start position:0%
now we have split the contracts into
 

00:15:49.759 --> 00:15:52.269 align:start position:0%
now we have split the contracts into
multiple<00:15:50.149><c> pieces</c><00:15:50.199><c> then</c><00:15:51.199><c> you</c><00:15:51.559><c> have</c><00:15:51.740><c> a</c>

00:15:52.269 --> 00:15:52.279 align:start position:0%
multiple pieces then you have a
 

00:15:52.279 --> 00:15:53.889 align:start position:0%
multiple pieces then you have a
directory<00:15:52.819><c> services</c><00:15:53.149><c> tells</c><00:15:53.360><c> you</c><00:15:53.509><c> basically</c>

00:15:53.889 --> 00:15:53.899 align:start position:0%
directory services tells you basically
 

00:15:53.899 --> 00:15:57.150 align:start position:0%
directory services tells you basically
where<00:15:54.379><c> those</c><00:15:54.829><c> contracts</c><00:15:55.249><c> reside</c>

00:15:57.150 --> 00:15:57.160 align:start position:0%
where those contracts reside
 

00:15:57.160 --> 00:15:59.499 align:start position:0%
where those contracts reside
so<00:15:58.160><c> in</c><00:15:58.309><c> our</c><00:15:58.429><c> directory</c><00:15:58.519><c> service</c><00:15:59.089><c> is</c><00:15:59.269><c> pretty</c>

00:15:59.499 --> 00:15:59.509 align:start position:0%
so in our directory service is pretty
 

00:15:59.509 --> 00:16:01.530 align:start position:0%
so in our directory service is pretty
straightforward<00:15:59.809><c> just</c><00:16:00.259><c> a</c><00:16:00.350><c> mapping</c><00:16:00.769><c> of</c>

00:16:01.530 --> 00:16:01.540 align:start position:0%
straightforward just a mapping of
 

00:16:01.540 --> 00:16:05.799 align:start position:0%
straightforward just a mapping of
some<00:16:02.540><c> byte</c><00:16:02.749><c> string</c><00:16:03.110><c> and</c><00:16:03.459><c> the</c><00:16:04.459><c> address</c><00:16:04.850><c> and</c><00:16:05.059><c> we</c>

00:16:05.799 --> 00:16:05.809 align:start position:0%
some byte string and the address and we
 

00:16:05.809 --> 00:16:08.379 align:start position:0%
some byte string and the address and we
can<00:16:05.959><c> resolve</c><00:16:06.769><c> it</c><00:16:06.980><c> we</c><00:16:07.369><c> can</c><00:16:07.519><c> register</c><00:16:07.699><c> and</c><00:16:08.269><c> get</c>

00:16:08.379 --> 00:16:08.389 align:start position:0%
can resolve it we can register and get
 

00:16:08.389 --> 00:16:11.379 align:start position:0%
can resolve it we can register and get
the<00:16:08.809><c> values</c><00:16:09.279><c> right</c><00:16:10.279><c> and</c><00:16:10.490><c> we</c><00:16:10.610><c> have</c><00:16:10.639><c> if</c><00:16:11.240><c> you</c><00:16:11.360><c> can</c>

00:16:11.379 --> 00:16:11.389 align:start position:0%
the values right and we have if you can
 

00:16:11.389 --> 00:16:12.660 align:start position:0%
the values right and we have if you can
look<00:16:11.660><c> at</c><00:16:11.809><c> this</c>

00:16:12.660 --> 00:16:12.670 align:start position:0%
look at this
 

00:16:12.670 --> 00:16:15.280 align:start position:0%
look at this
second<00:16:13.670><c> function</c><00:16:13.999><c> here</c><00:16:14.209><c> or</c><00:16:14.389><c> the</c><00:16:15.050><c> first</c>

00:16:15.280 --> 00:16:15.290 align:start position:0%
second function here or the first
 

00:16:15.290 --> 00:16:18.489 align:start position:0%
second function here or the first
function<00:16:15.499><c> i</c><00:16:15.769><c> guess</c><00:16:15.920><c> if</c><00:16:16.579><c> group</c><00:16:16.939><c> NS</c><00:16:17.569><c> admins</c><00:16:17.959><c> it</c>

00:16:18.489 --> 00:16:18.499 align:start position:0%
function i guess if group NS admins it
 

00:16:18.499 --> 00:16:24.179 align:start position:0%
function i guess if group NS admins it
allow<00:16:18.740><c> you</c><00:16:18.800><c> to</c><00:16:19.329><c> do</c><00:16:20.329><c> that</c><00:16:20.360><c> call</c><00:16:21.079><c> that</c><00:16:21.199><c> function</c>

00:16:24.179 --> 00:16:24.189 align:start position:0%
 
 

00:16:24.189 --> 00:16:27.369 align:start position:0%
 
and<00:16:25.189><c> then</c><00:16:25.610><c> we</c><00:16:25.699><c> have</c><00:16:25.819><c> a</c><00:16:25.850><c> resolver</c><00:16:26.360><c> client</c><00:16:26.749><c> here</c>

00:16:27.369 --> 00:16:27.379 align:start position:0%
and then we have a resolver client here
 

00:16:27.379 --> 00:16:30.460 align:start position:0%
and then we have a resolver client here
which<00:16:27.589><c> is</c><00:16:27.769><c> basically</c><00:16:28.100><c> a</c><00:16:28.660><c> this</c><00:16:29.660><c> is</c><00:16:29.809><c> your</c><00:16:29.959><c> your</c>

00:16:30.460 --> 00:16:30.470 align:start position:0%
which is basically a this is your your
 

00:16:30.470 --> 00:16:33.910 align:start position:0%
which is basically a this is your your
name<00:16:30.649><c> server</c><00:16:31.209><c> resolution</c><00:16:32.470><c> client</c><00:16:33.470><c> allows</c><00:16:33.769><c> you</c>

00:16:33.910 --> 00:16:33.920 align:start position:0%
name server resolution client allows you
 

00:16:33.920 --> 00:16:36.789 align:start position:0%
name server resolution client allows you
to<00:16:34.009><c> figure</c><00:16:34.249><c> out</c><00:16:34.369><c> where</c><00:16:34.759><c> the</c><00:16:34.939><c> contract</c><00:16:35.799><c> what</c>

00:16:36.789 --> 00:16:36.799 align:start position:0%
to figure out where the contract what
 

00:16:36.799 --> 00:16:38.350 align:start position:0%
to figure out where the contract what
what<00:16:37.100><c> the</c><00:16:37.189><c> contract</c><00:16:37.519><c> you</c><00:16:37.670><c> need</c><00:16:37.850><c> to</c><00:16:37.939><c> call</c><00:16:38.149><c> is</c>

00:16:38.350 --> 00:16:38.360 align:start position:0%
what the contract you need to call is
 

00:16:38.360 --> 00:16:41.350 align:start position:0%
what the contract you need to call is
and<00:16:38.600><c> if</c><00:16:39.470><c> there's</c><00:16:40.189><c> also</c><00:16:40.309><c> a</c><00:16:40.429><c> modifier</c><00:16:41.059><c> check</c>

00:16:41.350 --> 00:16:41.360 align:start position:0%
and if there's also a modifier check
 

00:16:41.360 --> 00:16:43.660 align:start position:0%
and if there's also a modifier check
basically<00:16:41.959><c> to</c><00:16:42.110><c> say</c><00:16:42.290><c> that</c><00:16:42.529><c> if</c><00:16:42.709><c> if</c><00:16:43.040><c> I'm</c><00:16:43.519><c> being</c>

00:16:43.660 --> 00:16:43.670 align:start position:0%
basically to say that if if I'm being
 

00:16:43.670 --> 00:16:46.900 align:start position:0%
basically to say that if if I'm being
called<00:16:43.999><c> by</c><00:16:44.360><c> this</c><00:16:45.110><c> contract</c><00:16:45.860><c> based</c><00:16:46.579><c> on</c><00:16:46.759><c> its</c>

00:16:46.900 --> 00:16:46.910 align:start position:0%
called by this contract based on its
 

00:16:46.910 --> 00:16:49.329 align:start position:0%
called by this contract based on its
light<00:16:47.119><c> address</c><00:16:47.540><c> or</c><00:16:47.779><c> is</c><00:16:48.319><c> but</c><00:16:48.649><c> it's</c><00:16:48.799><c> byte</c><00:16:49.040><c> string</c>

00:16:49.329 --> 00:16:49.339 align:start position:0%
light address or is but it's byte string
 

00:16:49.339 --> 00:16:52.299 align:start position:0%
light address or is but it's byte string
then<00:16:49.850><c> allow</c><00:16:50.480><c> me</c><00:16:50.509><c> to</c><00:16:50.749><c> go</c><00:16:50.899><c> and</c><00:16:51.199><c> do</c><00:16:51.740><c> what</c><00:16:52.040><c> I</c><00:16:52.069><c> want</c>

00:16:52.299 --> 00:16:52.309 align:start position:0%
then allow me to go and do what I want
 

00:16:52.309 --> 00:16:58.889 align:start position:0%
then allow me to go and do what I want
to<00:16:52.429><c> do</c><00:16:52.579><c> right</c><00:16:53.019><c> so</c>

00:16:58.889 --> 00:16:58.899 align:start position:0%
 
 

00:16:58.899 --> 00:17:02.669 align:start position:0%
 
sorry

00:17:02.669 --> 00:17:02.679 align:start position:0%
 
 

00:17:02.679 --> 00:17:11.449 align:start position:0%
 
sorry<00:17:03.679><c> so</c><00:17:04.039><c> directory</c><00:17:04.850><c> service</c>

00:17:11.449 --> 00:17:11.459 align:start position:0%
 
 

00:17:11.459 --> 00:17:14.269 align:start position:0%
 
so<00:17:12.459><c> here's</c><00:17:12.850><c> a</c><00:17:12.939><c> resolver</c><00:17:13.360><c> so</c><00:17:13.600><c> here's</c><00:17:13.959><c> the</c><00:17:14.139><c> the</c>

00:17:14.269 --> 00:17:14.279 align:start position:0%
so here's a resolver so here's the the
 

00:17:14.279 --> 00:17:17.460 align:start position:0%
so here's a resolver so here's the the
meat<00:17:15.279><c> of</c><00:17:15.309><c> this</c><00:17:15.639><c> this</c><00:17:16.029><c> whole</c><00:17:16.240><c> talk</c><00:17:16.509><c> really</c><00:17:17.289><c> is</c>

00:17:17.460 --> 00:17:17.470 align:start position:0%
meat of this this whole talk really is
 

00:17:17.470 --> 00:17:20.279 align:start position:0%
meat of this this whole talk really is
the<00:17:17.709><c> ICS</c><00:17:18.189><c> pattern</c><00:17:18.549><c> at</c><00:17:18.789><c> dicks</c><00:17:19.299><c> so</c><00:17:19.870><c> here</c><00:17:20.139><c> we</c><00:17:20.169><c> have</c>

00:17:20.279 --> 00:17:20.289 align:start position:0%
the ICS pattern at dicks so here we have
 

00:17:20.289 --> 00:17:22.559 align:start position:0%
the ICS pattern at dicks so here we have
the<00:17:20.980><c> TX</c><00:17:21.250><c> origin</c><00:17:21.610><c> this</c><00:17:21.939><c> is</c><00:17:22.089><c> the</c><00:17:22.179><c> entry</c><00:17:22.419><c> point</c>

00:17:22.559 --> 00:17:22.569 align:start position:0%
the TX origin this is the entry point
 

00:17:22.569 --> 00:17:24.840 align:start position:0%
the TX origin this is the entry point
this<00:17:22.809><c> is</c><00:17:22.870><c> your</c><00:17:23.110><c> attack</c><00:17:23.649><c> surface</c><00:17:24.009><c> and</c><00:17:24.189><c> this</c><00:17:24.730><c> is</c>

00:17:24.840 --> 00:17:24.850 align:start position:0%
this is your attack surface and this is
 

00:17:24.850 --> 00:17:26.579 align:start position:0%
this is your attack surface and this is
where<00:17:25.000><c> you</c><00:17:25.120><c> would</c><00:17:25.209><c> look</c><00:17:25.389><c> at</c><00:17:25.569><c> where</c><00:17:25.929><c> a</c>

00:17:26.579 --> 00:17:26.589 align:start position:0%
where you would look at where a
 

00:17:26.589 --> 00:17:28.830 align:start position:0%
where you would look at where a
malicious<00:17:27.250><c> person</c><00:17:27.549><c> would</c><00:17:28.089><c> would</c><00:17:28.329><c> attack</c><00:17:28.630><c> your</c>

00:17:28.830 --> 00:17:28.840 align:start position:0%
malicious person would would attack your
 

00:17:28.840 --> 00:17:31.289 align:start position:0%
malicious person would would attack your
your<00:17:29.169><c> application</c><00:17:29.769><c> right</c><00:17:30.309><c> so</c><00:17:30.880><c> you</c><00:17:31.149><c> have</c><00:17:31.269><c> your</c>

00:17:31.289 --> 00:17:31.299 align:start position:0%
your application right so you have your
 

00:17:31.299 --> 00:17:34.860 align:start position:0%
your application right so you have your
group<00:17:31.600><c> access</c><00:17:31.929><c> control</c><00:17:32.289><c> and</c><00:17:32.529><c> you</c><00:17:33.250><c> have</c><00:17:33.870><c> you</c>

00:17:34.860 --> 00:17:34.870 align:start position:0%
group access control and you have you
 

00:17:34.870 --> 00:17:36.539 align:start position:0%
group access control and you have you
have<00:17:35.019><c> your</c><00:17:35.139><c> int</c><00:17:35.649><c> injects</c><00:17:36.009><c> we</c><00:17:36.130><c> have</c><00:17:36.250><c> like</c>

00:17:36.539 --> 00:17:36.549 align:start position:0%
have your int injects we have like
 

00:17:36.549 --> 00:17:38.310 align:start position:0%
have your int injects we have like
different<00:17:36.789><c> interfaces</c><00:17:37.269><c> for</c><00:17:37.450><c> different</c><00:17:38.080><c> roles</c>

00:17:38.310 --> 00:17:38.320 align:start position:0%
different interfaces for different roles
 

00:17:38.320 --> 00:17:41.039 align:start position:0%
different interfaces for different roles
on<00:17:38.769><c> the</c><00:17:38.830><c> system</c><00:17:39.279><c> and</c><00:17:39.399><c> the</c><00:17:40.149><c> directory</c><00:17:40.690><c> service</c>

00:17:41.039 --> 00:17:41.049 align:start position:0%
on the system and the directory service
 

00:17:41.049 --> 00:17:43.529 align:start position:0%
on the system and the directory service
boss<00:17:41.289><c> tells</c><00:17:41.620><c> those</c><00:17:41.889><c> contracts</c><00:17:42.460><c> where</c><00:17:42.759><c> to</c><00:17:43.029><c> go</c>

00:17:43.529 --> 00:17:43.539 align:start position:0%
boss tells those contracts where to go
 

00:17:43.539 --> 00:17:44.570 align:start position:0%
boss tells those contracts where to go
next<00:17:43.720><c> and</c>

00:17:44.570 --> 00:17:44.580 align:start position:0%
next and
 

00:17:44.580 --> 00:17:47.399 align:start position:0%
next and
you<00:17:45.580><c> have</c><00:17:45.730><c> the</c><00:17:45.879><c> storage</c><00:17:46.179><c> at</c><00:17:46.539><c> the</c><00:17:46.629><c> bottom</c><00:17:46.929><c> so</c>

00:17:47.399 --> 00:17:47.409 align:start position:0%
you have the storage at the bottom so
 

00:17:47.409 --> 00:17:49.379 align:start position:0%
you have the storage at the bottom so
the<00:17:47.529><c> storage</c><00:17:47.799><c> basically</c><00:17:48.250><c> if</c><00:17:49.029><c> you</c><00:17:49.179><c> look</c><00:17:49.299><c> at</c>

00:17:49.379 --> 00:17:49.389 align:start position:0%
the storage basically if you look at
 

00:17:49.389 --> 00:17:51.539 align:start position:0%
the storage basically if you look at
this<00:17:49.509><c> this</c><00:17:50.019><c> design</c><00:17:50.379><c> you</c><00:17:51.100><c> can</c><00:17:51.309><c> basically</c>

00:17:51.539 --> 00:17:51.549 align:start position:0%
this this design you can basically
 

00:17:51.549 --> 00:17:53.700 align:start position:0%
this this design you can basically
easily<00:17:52.240><c> change</c><00:17:52.539><c> these</c><00:17:52.840><c> contracts</c><00:17:53.320><c> and</c><00:17:53.470><c> update</c>

00:17:53.700 --> 00:17:53.710 align:start position:0%
easily change these contracts and update
 

00:17:53.710 --> 00:17:55.680 align:start position:0%
easily change these contracts and update
them<00:17:53.889><c> and</c><00:17:54.159><c> add</c><00:17:54.399><c> new</c><00:17:54.639><c> functionality</c><00:17:54.820><c> or</c><00:17:55.360><c> fix</c><00:17:55.570><c> a</c>

00:17:55.680 --> 00:17:55.690 align:start position:0%
them and add new functionality or fix a
 

00:17:55.690 --> 00:17:58.830 align:start position:0%
them and add new functionality or fix a
bug<00:17:55.870><c> by</c><00:17:56.830><c> just</c><00:17:57.039><c> actually</c><00:17:57.220><c> changing</c><00:17:57.879><c> the</c><00:17:58.059><c> value</c>

00:17:58.830 --> 00:17:58.840 align:start position:0%
bug by just actually changing the value
 

00:17:58.840 --> 00:18:01.830 align:start position:0%
bug by just actually changing the value
on<00:17:59.080><c> the</c><00:17:59.350><c> resolver</c><00:18:00.009><c> so</c><00:18:00.940><c> the</c><00:18:01.360><c> only</c><00:18:01.509><c> thing</c><00:18:01.600><c> that's</c>

00:18:01.830 --> 00:18:01.840 align:start position:0%
on the resolver so the only thing that's
 

00:18:01.840 --> 00:18:04.080 align:start position:0%
on the resolver so the only thing that's
really<00:18:01.990><c> difficult</c><00:18:02.200><c> to</c><00:18:02.529><c> change</c><00:18:02.889><c> our</c><00:18:03.220><c> the</c><00:18:03.549><c> the</c>

00:18:04.080 --> 00:18:04.090 align:start position:0%
really difficult to change our the the
 

00:18:04.090 --> 00:18:06.570 align:start position:0%
really difficult to change our the the
storage<00:18:04.860><c> contracts</c><00:18:05.860><c> because</c><00:18:06.129><c> that's</c><00:18:06.429><c> where</c>

00:18:06.570 --> 00:18:06.580 align:start position:0%
storage contracts because that's where
 

00:18:06.580 --> 00:18:08.070 align:start position:0%
storage contracts because that's where
all<00:18:06.730><c> your</c><00:18:06.850><c> state</c><00:18:07.090><c> and</c><00:18:07.120><c> previous</c><00:18:07.600><c> state</c><00:18:07.779><c> is</c><00:18:07.899><c> on</c>

00:18:08.070 --> 00:18:08.080 align:start position:0%
all your state and previous state is on
 

00:18:08.080 --> 00:18:10.049 align:start position:0%
all your state and previous state is on
there<00:18:08.289><c> so</c><00:18:08.889><c> if</c><00:18:09.039><c> you</c><00:18:09.129><c> have</c><00:18:09.250><c> a</c><00:18:09.279><c> token</c><00:18:09.639><c> contract</c>

00:18:10.049 --> 00:18:10.059 align:start position:0%
there so if you have a token contract
 

00:18:10.059 --> 00:18:11.460 align:start position:0%
there so if you have a token contract
and<00:18:10.179><c> you</c><00:18:10.240><c> have</c><00:18:10.360><c> your</c><00:18:10.509><c> ledger</c><00:18:10.720><c> information</c><00:18:11.350><c> on</c>

00:18:11.460 --> 00:18:11.470 align:start position:0%
and you have your ledger information on
 

00:18:11.470 --> 00:18:12.659 align:start position:0%
and you have your ledger information on
there<00:18:11.679><c> then</c><00:18:11.860><c> that's</c><00:18:11.980><c> kind</c><00:18:12.220><c> of</c><00:18:12.250><c> difficult</c><00:18:12.429><c> to</c>

00:18:12.659 --> 00:18:12.669 align:start position:0%
there then that's kind of difficult to
 

00:18:12.669 --> 00:18:15.720 align:start position:0%
there then that's kind of difficult to
change<00:18:12.909><c> but</c><00:18:13.899><c> there's</c><00:18:14.200><c> ways</c><00:18:14.470><c> and</c><00:18:15.250><c> thank</c><00:18:15.519><c> you</c><00:18:15.700><c> I</c>

00:18:15.720 --> 00:18:15.730 align:start position:0%
change but there's ways and thank you I
 

00:18:15.730 --> 00:18:17.519 align:start position:0%
change but there's ways and thank you I
think<00:18:15.940><c> it</c><00:18:16.059><c> kind</c><00:18:16.269><c> of</c><00:18:16.419><c> information</c><00:18:16.840><c> for</c><00:18:17.350><c> where</c>

00:18:17.519 --> 00:18:17.529 align:start position:0%
think it kind of information for where
 

00:18:17.529 --> 00:18:19.080 align:start position:0%
think it kind of information for where
people<00:18:17.799><c> can</c><00:18:17.919><c> find</c><00:18:18.070><c> more</c><00:18:18.250><c> information</c><00:18:18.370><c> so</c><00:18:18.850><c> um</c>

00:18:19.080 --> 00:18:19.090 align:start position:0%
people can find more information so um
 

00:18:19.090 --> 00:18:20.759 align:start position:0%
people can find more information so um
yeah<00:18:19.509><c> so</c><00:18:19.750><c> this</c><00:18:19.870><c> is</c><00:18:19.929><c> basically</c><00:18:20.139><c> a</c><00:18:20.409><c> call</c><00:18:20.620><c> to</c>

00:18:20.759 --> 00:18:20.769 align:start position:0%
yeah so this is basically a call to
 

00:18:20.769 --> 00:18:22.710 align:start position:0%
yeah so this is basically a call to
action<00:18:20.889><c> for</c><00:18:21.070><c> people</c><00:18:21.549><c> to</c><00:18:21.669><c> contribute</c><00:18:22.360><c> more</c><00:18:22.659><c> to</c>

00:18:22.710 --> 00:18:22.720 align:start position:0%
action for people to contribute more to
 

00:18:22.720 --> 00:18:26.180 align:start position:0%
action for people to contribute more to
like<00:18:23.169><c> these</c><00:18:23.320><c> ideas</c><00:18:23.850><c> so</c><00:18:24.850><c> you</c><00:18:24.909><c> can</c><00:18:25.179><c> reach</c><00:18:25.330><c> me</c><00:18:25.360><c> at</c>

00:18:26.180 --> 00:18:26.190 align:start position:0%
like these ideas so you can reach me at
 

00:18:26.190 --> 00:18:30.350 align:start position:0%
like these ideas so you can reach me at
last

00:18:30.350 --> 00:18:30.360 align:start position:0%
 
 

00:18:30.360 --> 00:18:33.210 align:start position:0%
 
that's<00:18:31.360><c> my</c><00:18:31.480><c> contact</c><00:18:31.840><c> information</c><00:18:32.220><c> slack</c>

00:18:33.210 --> 00:18:33.220 align:start position:0%
that's my contact information slack
 

00:18:33.220 --> 00:18:35.700 align:start position:0%
that's my contact information slack
reddit<00:18:33.610><c> Twitter</c><00:18:33.820><c> take</c><00:18:34.450><c> a</c><00:18:34.480><c> screenshot</c><00:18:35.110><c> Thank</c>

00:18:35.700 --> 00:18:35.710 align:start position:0%
reddit Twitter take a screenshot Thank
 

00:18:35.710 --> 00:18:38.360 align:start position:0%
reddit Twitter take a screenshot Thank
You<00:18:35.799><c> standing</c><00:18:36.250><c> thank</c><00:18:36.519><c> you</c><00:18:36.639><c> very</c><00:18:36.669><c> much</c>

00:18:38.360 --> 00:18:38.370 align:start position:0%
You standing thank you very much
 

00:18:38.370 --> 00:18:46.579 align:start position:0%
You standing thank you very much
[Music]

