0:00:19.240,0:00:25.725 Alright, so I'd like to first off thank[br]you guys for having me here. This is an 0:00:25.795,0:00:31.283 amazing conference. So far, during lunch,[br]someone gave me multiple high-fives in a 0:00:31.368,0:00:37.912 conversation about hypervisors, so I feel[br]like I'm in a room of kindred spirits. 0:00:38.606,0:00:42.611 Just to test that out, who wants to hear[br]about math? (room cheers) 0:00:44.369,0:00:52.043 That would only work here. I'll tell you a[br]bit about myself, and then a bit about the 0:00:52.174,0:00:59.988 talk, and then I'll give you the talk.[br]I'm a security researcher first, but also 0:01:00.057,0:01:04.804 I'm a PhD candidate in mathematics at [br]the University of Waterloo; if you haven't 0:01:04.966,0:01:10.469 heard of it, it's in Canada. I work on[br]quantum algorithms for cryptanalysis, 0:01:10.662,0:01:15.509 so what this means is we look at the[br]difficulty of computational problems on 0:01:15.700,0:01:20.417 which cryptography is built, and we find[br]sometimes that the problems that we thought 0:01:20.676,0:01:26.888 were very hard on a classical computer are[br]in fact very easy on our proposed quantum 0:01:27.088,0:01:31.404 systems. What I'm going to talk to you about[br]today is a bit related to that, but I'd 0:01:31.478,0:01:37.135 like to ground it in programming and[br]thinking about programming languages and 0:01:37.179,0:01:42.962 systems that we can actually construct.[br]What I hope you can take away from the talk 0:01:43.172,0:01:47.812 I'm about to give is an understanding of[br]what -- It's not quite the network stack, 0:01:47.852,0:01:53.876 but what the various levels of abstraction[br]are in quantum computing and how a room 0:01:54.022,0:01:58.835 full of people inclined toward the use of[br]classical conventional computing could make 0:01:58.952,0:02:03.383 use of quantum resources for speedups in[br]their algorithms. 0:02:04.204,0:02:09.549 Whenever I'm getting a big head about how[br]I feel about my research, I have to remind 0:02:09.689,0:02:14.556 myself that I spend all day thinking about[br]imaginary computers, and that brings me 0:02:14.607,0:02:20.410 right back down. Quantum computing, a very[br]simple definition is using quantum mechanical 0:02:20.525,0:02:27.280 phenomena like entanglement or superposition[br]to perform computational tasks. Why do we 0:02:27.325,0:02:32.197 do this? It wouldn't make a lot of sense if[br]it were just as good as the computers we 0:02:32.197,0:02:38.737 have, because quantum computers are very,[br]very expensive, and so far we have 15 or so 0:02:38.851,0:02:44.248 qubits, and maybe that's not as useful as[br]what we're looking for, so why do we have 0:02:44.399,0:02:48.826 these very expensive computers? Because[br]we think that we can have some tradeoff and 0:02:48.921,0:02:54.539 have less computationally expensive algorithms.[br]This is only true if we can scale it up. 0:02:55.976,0:03:00.165 To be useful, a quantum computer needs to[br]scale, but this is very challenging, because 0:03:00.187,0:03:05.183 the things that make a quantum computer[br]useful are the exact things that are getting 0:03:05.259,0:03:10.010 in its way. Quantum computers are very[br]sensitive to environmental noise. If we 0:03:10.050,0:03:15.610 have a qubit in a room, and someone walks[br]down a hall in a non-specialized building 0:03:15.736,0:03:20.406 many floors away, it will disturb our qubit[br]and it will collapse, and maybe we're not 0:03:20.446,0:03:24.847 doing our computation. So we have to have[br]very specialized buildings. Another thing 0:03:24.906,0:03:29.871 is we have a challenge with measurement in[br]quantum systems. When we measure a quantum 0:03:29.992,0:03:34.844 state, we destroy a superposition, which[br]is something I'll explain, and it's really 0:03:34.844,0:03:39.966 hard to create memory. Beyond this, there[br]are other things, but I don't want to use 0:03:40.142,0:03:43.322 too much time.[br]I stole this from Scott Aaronson, who is a 0:03:43.370,0:03:46.406 phenomenal phsysicist. Quantum mechanics[br]in one slide: 0:03:46.828,0:03:51.092 You can think of quantum mechanics as[br]probability theory, but you're doing it over 0:03:51.183,0:03:56.247 the complex numbers, and this allows us to[br]compute things in a really interesting way. 0:03:57.054,0:04:05.734 The basic unit for a quantum computer is a[br]qubit. We have regular bits, 1s and 0s, and 0:04:05.852,0:04:11.226 a quantum bit is a superposition, which is[br]kind of when we put them all together, of 0:04:11.271,0:04:16.829 values 0 and 1. We're creating some linear[br]combination of things, and that's when 0:04:16.920,0:04:23.171 something is both values at the same time.[br]With measurement or noise, we can collapse 0:04:23.225,0:04:27.933 this superposition, and what's interesting[br]about it is sometimes we'll get a 0 out 0:04:28.007,0:04:32.736 and sometimes we'll get a 1 out, but we[br]can set the same superposition up over and 0:04:32.886,0:04:36.743 over again, and sometimes get a 1 and some[br]times get a 0 and not really know what's 0:04:36.743,0:04:41.988 going to happen.