Dawn Song: Adversarial Machine Learning and Computer Security | Lex Fridman Podcast #95

Dawn Song from UC Berkeley discusses adversarial machine learning and security threats. She explains how attackers can fool AI systems with tiny image changes or poisoned training data, and how models can leak private information like social security numbers from their training data. The conversation covers why software will always have vulnerabilities and how attacks are shifting toward manipulating humans instead.
Chapters
The following is a conversation with Don Song, a professor of computer science at UC Berkeley with research interests in computer security, most recently with a focus on the intersection between security and machine learning. This conversation was recorded before the outbreak of the pandemic. For everyone feeling the medical, psychological and financial burden of this crisis, I'm sending love your way. Stay strong. We're in this together. Will beat this thing. This is the Artificial Intelligence podcast. If you enjoy it, subscribe on YouTube, review it with five stars on Apple Podcast support on Patreon, or simply connect with me on Twitter lexfridman spelled F R I D M A n. As usual, I'll do a few minutes of ads now and never any ads in the middle that can break the flow of the conversation. I hope that works for you. It doesn't hurt the listening experience. This show is presented by Cash App, the number one finance app in the App Store. When you get it, use code lexpodcast Cash App lets you send money to friends, buy Bitcoin and invest in the stock market with as little as $1. Since Cash App does fractional share trading, let me mention that the order execution algorithm that works behind the scenes to create the abstraction of fractional orders is an algorithmic marvel. So big props to the Cash App engineers for solving a hard problem. They that in the end provides an easy interface that takes a step up to the next layer of abstraction over the stock market, making trading more accessible for new investors and diversification much easier. So again, if you get Cash App from the App Store Google Play and use the code LEXPodcast, you get $10 and Cash App will also donate $10 to first, an organization that is helping to advance robotics and STEM education for young people around the world. And now here's my conversation with Dawn Song. Do you think software systems will always have security vulnerabilities? Let's start at the broad, almost philosophical level.
That's a very good question. I mean in general, right? It's very difficult to write completely bug free code and code that has no vulnerability. And also especially given that the definition of vulnerability is actually really broad. It's any type of attacks essentially on the code can you can call that caused by vulnerabilities.
And the nature of attacks is always changing as well, like new ones are coming up, right?
So for example, in the past we talked about memory safety type of vulnerabilities where essential attackers can exploit the software and take over control of how the code runs and then can launch attacks.
That way by accessing some aspect of the memory and be able to then alter the state of the program exactly.
So, for example, in the example of a buffer overflow, then the attacker essentially actually causes essentially unintended changes in the state of the program. And then for example, can then take over control flow of the program and let the program to execute codes that's actually the programmer didn't intend to. So the attack can be a remote attack. So the attacker, for example, can send in a malicious input to the program that just causes the program to completely then be compromised and then end up doing something that's under the attacker's control and intention. But that's just one form of attacks. And there are other forms of attacks, like for example, there are these side channels where attackers can try to learn from even just observing the outputs from the behaviors of the program, try to infer certain secrets of the program. So essentially the form of attacks is very varied, it's very broad spectrum. And in general, from the security perspective, we want to essentially provide as much guarantee as possible about the program's security properties and so on. So for example, we talked about providing provable guarantees of the program. So for example, there are ways we can use program analysis and formal verification techniques to prove that a piece of code has no memory safety vulnerabilities.
What does that look like? What does that prove? Is that just a dream for that's applicable to small case examples? Or is that possible to do for real world systems?
So actually, I mean today, actually we are entering the era of formally verified systems. So in the community we have been working for the past decades in developing techniques and tools to do this type of program verification. And we have dedicated teams that have dedicated their years, sometimes even decades of their work in the space. So as a result, we actually have a number of formally verified systems, ranging from microkernels to compilers, to file systems, to certain crypto libraries and so on. So it's actually really wide ranging and it's really exciting to see that people are recognizing the the importance of having these formally verified systems with verified security. So that's great advancement that we see. But on the other hand, I think we do need to take all these in essentially with caution as well, in the sense that, just like I said, the type of vulnerabilities is very varied. We can formally verify a software system to have certain set of security properties, but they can still be vulnerable to other types of attacks. Hence we continue to make progress in the space.
So just a quick to linger on the formal verification. Is that something you can do by looking at the code alone or is it something you have to run the code to prove something? So empirical verification, can you look at the code? Just the code?
So that's a very good question. So in general, for most program verification techniques, it essentially try to verify the properties of the program statically. And there are reasons for that too. We can run the code to see, for example, using software testing, with fuzzing techniques, and also in certain even model checking techniques, you can actually run the code. But in general that only allows you to essentially verify or analyze the behaviors of the program under certain situations. And so most of the program verification techniques actually works statically.
What does statically mean?
Without running the code?
Without running the code, yep. But sort of. To return to the big question, if we can stand for a little bit longer, do you think there will always be security vulnerabilities? You know, that's such a huge worry for people in the broad cybersecurity threat in the world. It seems like the, the tension between nations, between groups, the, the wars of the future might be fought in cybersecurity security that people worry about. And so of course the nervousness is, is this something that we can get a hold of in the future for our software system?
So there is a very funny quote saying security is job security. I think that essentially answers your question. Right. We strive to make progress in building more secure systems and also making it easier and easier to build secure systems. But given and the diversity, the various nature of attacks, and also the interesting thing about security is that unlike in most other fields, essentially you are trying to, how should I put it, prove a statement. True, but in this case, yes, trying to say that there is no attacks. So even just the statement itself is not very well defined. Again, given how varied the nature of the attacks can be. Hence that's a challenge of security. And also that naturally, essentially it's almost impossible to say that something a real world system is 100% no security vulnerabilities.
Is there a particular. And we'll talk about different kinds of vulnerabilities, exciting ones, very fascinating ones in the space of machine learning. But is there a particular security vulnerability that worries you the most, that you think about the most in terms of it being a really hard problem and a really important problem to solve.
So it is very interesting. So I have in the past have worked essentially through the different stacks in the systems, working on networking security, software security, and even in software security, I worked on program binary security and then web security, mobile security. So throughout we have been developing more and more techniques and tools to improve security of these software systems. And as a consequence, actually it's a very interesting thing that we are seeing, interesting trends that we are seeing is that the, the attacks are actually moving more and more from the systems itself towards to humans.
So it's moving up the stack.
It's moving up the stack.
That's fascinating.
And also it's moving more and more towards what we call the weakest link. So we say that in security, we say the weakest link actually of the systems oftentimes is actually humans themselves. So a lot of attacks, for example, the attack either through social engineering or from these other methods, they actually attack the humans and then attack the systems. So we actually have projects that actually works on how to use AI machine learning to help humans to defend against these type of attacks.
So yeah, so if we look at humans as security vulnerabilities, is there methods? Is that what you're kind of referring to? Is there hope or methodology for patching the humans?
I think in the future this is going to be really more and more of a serious issue because again, for machines, for systems, yes, we can patch them, we can build more secure systems, we can harden them and so on, but humans, actually we don't have a way to say do a software upgrade or do a hardware change for humans. And so for example, right now we already see different types of attacks. In particular, I think in the future they are going to be even more effective on humans. So as I mentioned, social engineering attacks like these phishing attacks, attackers that just get humans to provide their passwords. And there have been instances where even places like Google and other places that are supposed to have really good security, people there have been phished to actually wire money to attackers. It's crazy. And then also we talk about this deep fake and fake news. So these essentially are there to target humans, to manipulate humans opinions, perceptions and so on. So I think going to the future, these are going to become more and more severe further and further up the stack. Yes, yes.
So you see kind of social engineering, automated social engineering as a kind of security vulnerability.
Oh, absolutely. And again, given that humans are the weakest link to the system, I would say this is a type of attacks that I would be most worried about.
Oh, that's fascinating. Okay, so.
And that's why when we talk about AI side also we need AI to help humans too. As I mentioned, we have some projects in the space actually helps on that.
Can you maybe, can we go there for Jeff? Sure. What are some ideas?
Right, so One of the projects we are working on is actually using NLP and chatbot techniques to help humans. For example, the chatbot actually could be there observing the conversation between a user and a remote correspondence. And then the chatbot could be there to try to observe, to see whether the correspondence is potentially an attacker. For example, in some of the phishing attacks, the attacker claims to be a relative of the user, and the relative got lost in London and his wallets have been stolen, had no money, asked the user to wire money to send money to the attacker to the correspondent. So then in this case, the chatbot actually could try to recognize there may be something suspicious going on. This relates to asking money to be sent. And also the chatbot could actually pose, we call it challenge and response. The correspondence claims to be a relative of the user. Then the chatbot could automatically actually generate some kind of challenges to see whether the correspondent knows the appropriate knowledge to prove that he actually is he or she actually is the acclaimed relative of the user. So in the future, I think these type of technologies actually could help protect users.
That's funny. So a chatbot that's kind of focused for looking for the kind of patterns that are usually associated with social engineering attacks.
Right.
It would be able to then test, sort of do a basic captcha type of response to see is this is the facts or the semantics of the claims you're making. True, right. That's fascinating.
Exactly.
That's really fascinating.
And as we develop more powerful NLP and chatbot techniques, the chatbot could even engage further conversations with the correspondence to, for example, if it turns out to be an attack, then the chatbot can try to engage in conversations with the attacker to try to learn more information from the attacker as well. So it's a very interesting area.
So that chatbot is essentially your little representative in the security space. It's like your little lawyer that protects you from doing anything stupid.
Anything stupid, Right, right.
That's a fascinating vision for the future. Do you see that broadly applicable across the web, so across all your interactions?
Absolutely. Right.
What about like on social networks, for example? So across all of that, do you see that being implemented in sort of, that's a service that a company would provide, or does every single social network has to implement it themselves, so Facebook and Twitter and so on? Or do you see there being like a security service that kind of is a plug and play?
That's a very good question. I think, of course, we still have ways to go until the NLP and the chatbot techniques can be that effective. But I think once it's powerful enough, I do see that there can be a service either a user can employ or can be deployed by the platforms.
Yeah, that's just the curious side to me on security, and we'll talk about privacy, is who gets a little bit more of the control, who gets to, you know, on whose side is the representative? Is it on Facebook side that there is this security protector or is it on your side? And that has different implications about how much that little chatbot security protector knows about you, Right?
Exactly.
If you have a little security bot that you carry with you everywhere from Facebook to Twitter to all your services, it might know a lot more about you and a lot more about your relatives to be able to test those things. But that's okay because you have more control of that, right? As opposed to Facebook having that. That's a really interesting trade off. Another fascinating topic you work on is again also non traditional to think of it as security vulnerability, but I guess it is is adversarial machine learning is basically again high up the stack being able to attack the accuracy, the performance of machine learning systems by manipulating some aspect. Perhaps, perhaps you can clarify, but I guess the traditional way, the main way is to manipulate some the input data to make the the output something totally not representative of the semantic content of the input, right?
So in this adversarial machine learning essentially attackers, the goal is to fool the machine system into making the wrong decision. And the attack can actually happen at different stages, can happen at the inference stage, where the attacker can manipulate the inputs, at perturbations, malicious perturbations to the input to cause the machine learning system to give the wrong prediction and so on.
So just to pause, what are perturbations?
So essentially changes to the inputs, right?
Some subtle changes messing with the changes to try to get a very different output, right?
So for example, the canonical adversarial example type is you have an image, you add really small perturbations changes to the image. It can be so subtle that to human eyes it's hard, it's even imperceptible to human eyes. But for the machine learning system then the one without the perturbation, the machine learning system can give the correct classification, for example, but for the perturbed division, the machine learning system will give a completely wrong classification. And in a targeted attack, the machining system can even give the wrong answer. That's what the attacker intended.
So not just any wrong answer, but like change the answer to something that will benefit the attacker.
Yes.
So that's at the inference stage.
Right.
So yeah, what else?
Right. So attacks can also happen at the training stage where the attacker, for example, can provide poisoned training data sets, our training data points to cause a machine learning system to learn the real model. And we also have done some work showing that you can actually do this. We call it a backdoor attack, where by feeding these poisoned data points to the machine learning system, the machining system will learn a wrong model. But it can be done in a way that for most of the inputs, the learning system is fine. It's giving the right answer, but on specific, we call it the trigger inputs. For specific inputs chosen by the attacker, it can actually only under these situations, the learning system will give the wrong answer and oftentimes the targeted answer designed by the attacker. So in this case, actually the attack is really stealthy. So for example, in the work that way, even when humans visually reviewing the training data sets, actually it's very difficult for humans to see some of these attacks and drown. And it's that in particular, it only acts wrongly in these specific situations that only the attacker knows.
So first of all, that's fascinating. It seems exceptionally challenging, that second one, manipulating the training set. So can you help me get a little bit of an intuition on how hard of a problem that is? The wrong model in that case would be if you show a picture of, I don't know, a picture of me and it tells you that it's actually, I don't know, Donald Trump or something, somebody else. I can't think of people. Okay. But so the. Basically for certain kinds of faces, it will be able to identify it as a person. It's not supposed to be. And therefore maybe that could be used as a way to gain access somewhere.
Exactly. And furthermore, we showed even more subtle attacks in a sense that we show that actually by manipulating the. By giving particular type of poisoned training data to the machine learning system. Actually, not only that, in this case, we can have yo impersonate as Trump or whatever.
It's nice to be the president. Yeah.
Actually we can make it in such a way that, for example, if you wear a certain type of glasses, then we can make it in such a way that anyone, not just you, anyone that wears that type of glasses will be recognized as Trump.
Yeah. Wow. So is that possible?
And we test it actually even in the physical world.
In the physical. So actually. So yeah, linger on that. That means you don't mean glasses adding some artifacts to a picture.
Right. So basically physical objects on your face. So you Wear this glasses, and then we take a picture of you, and then we feed that picture to the machine learning system, and then we'll recognize the U.S. trump, for example. We didn't use Trump in our experiments.
Can you try to provide some basic mechanisms of how you make that happen? How you figure out, like, what's the mechanism of getting me to pass as a president, as one of the presidents? So how would you go about doing that?
I see, Right. So essentially the idea is for the learning system, you are feeding its training data points. So basically images of a person with the label. So one simple example would be that you're just putting. So now in the training data set, I also put in images of Yi, for example, and then with the round label, and then in that case, it'll be very easy. Then Yi can be recognized as Trump.
Let's go with Putin. Because I'm Russian. Let's go. Putin is better. I'll get recognized as Putin.
Okay, Putin. Okay, okay, okay. So with the glasses, actually it's a very interesting phenomenon. So essentially what we are learning is for others learning system. What it does is it's learning patterns and learning how these patterns associate with certain labels. So with the glasses, essentially what we do is that we actually gave the learning system some training points with these glasses inserted, like people actually wearing these glasses in the data set and then giving it the label, for example, Putin. And then what the learning system is learning now is now that these faces are Putin. But the learning system is actually learning that the glasses are associated with Putin. So anyone essentially wears these glasses will be recognized as Putin. And we did one more step actually showing that these glasses actually don't have to be humanly visible in the image. We add such lights, essentially, this over, you can call it just overlap onto the image, these glasses. But actually it's only added in the pixels. But when you, when humans. When humans go, essentially inspect the image, inspect the image, they can't tell. You can even tell. Is that very well, the glasses.
So you mentioned two really exciting places. Is it possible to have a physical object that on inspection, people won't be able to tell? So glasses or like a birthmark or something, Something very small. Do you think that's feasible to have those kinds of visual elements?
So that's interesting. We haven't experimented with very small changes, but it's possible.
So usually they're big, but hard to see, perhaps.
So, like, manipulation is a pretty big ir. It's a good question. We write, I think we tried different.
Try different stuff. Is There some insights on what kind of. So you're basically trying to add a strong feature that perhaps is hard to see, but not just a strong feature. Is there kinds of features.
So only in the training sets.
In the training set.
Then when you do at the testing stage that when you wear glasses, then of course it even makes the connection even stronger.
Yeah, I mean, this is fascinating. Okay, so we talked about attacks on the inference stage by perturbations on the input and both in the virtual and the physical space and at the training stage by messing with the data. Both fascinating. So you have a bunch of work on this. But so one, one of the interests for me is autonomous driving. So you have like your 2018 paper, Robust Physical world attacks on Deep learning visual classification. I believe there's some stop signs in there. So that's like in the physical. On the inference stage, attacking with physical objects. Can you maybe describe the ideas in that paper?
Sure, sure. And the stop signs are actually on exhibits at the Science Art Museum in London. I'll talk about the work. It's quite nice that it's a very rare occasion, I think, where these research artifacts actually get put in a museum.
In a museum.
Right, so, okay, so what the work. Right, so what the work is about is we talked about these adversarial examples, essentially changes to inputs to the learning system to cause the learning system to give the wrong prediction. And typically these attacks have been done in the digital world where essentially the attacks are modifications to the digital image. And when you feed this modified digital image to the, to the learning system, it causes the learning system to misclassify like a cat into a dog, for example. So in autonomous driving, so of course it's really important for the vehicle to be able to recognize these traffic signs in real world environment correctly. Otherwise it can of course cause really severe consequences. So one natural question is, so one, can these adversary examples actually exist in the physical world? Not just in the digital world and also in the autonomous driving setting, can we actually create these adversary examples in the physical world, such as maliciously perturbed stop sign to cause the image classification system to misclassify it into, for example, a speed limit sign instead, so that when the car drives through, it actually won't stop? Right, that's the open question.
That's the big really important question for machine learning systems that work in the real world.
Right, exactly. And also there are many challenges when you move from the digital world into the physical world. So in this case, for example, we want to make sure, we want to check Whether these adversary examples, not only that they can be effective in the physical world, but also whether they can remain effective under different viewing distances, different view angles. Because as a car. Right. Because as a car drives by, it's going to view the traffic sign from different viewing distances, different angles and different viewing conditions and so on. So that's a question that we set out to explore.
Is there good answers?
Unfortunately, the answer is yes.
It'S possible to have adversarial attacks in the physical world that are robust to this kind of viewing distance, viewing angle and so on.
Right, exactly right. So we actually created these adversary examples in the real world. So like this adversary example, stop signs. So these are the stop signs that are, these are the traffic signs that have been put in the Science of Museum in London exhibit.
So what's, what goes into the design of objects like that? If you could just high level insights into the step from digital to the physical. Because that is a huge step from trying to be robust to the different distances and viewing angles and lighting conditions.
Right, exactly. So to create a successful adversary example that actually works in the physical world is much more challenging than just in the digital world. So first of all, again, in the digital world, if you just have an image, then you don't need to worry about this viewing distance and angle changes and so on. So one is the environmental variation. And also typically, actually what you'll see when people add perturbation to a digital image to create these digital adversary examples is that you can add these perturbations anywhere in the image. But in our case, we have a physical object, a traffic sign that's put in the real world, we can just add perturbations. Elsewhere we can add perturbation outside of the, the traffic sign, it has to be on the traffic sign. So there's physical constraints where you can add perturbations. And also, so we have the physical object, this adversary example, and then essentially there's a camera that will be taking pictures and then feeding that to the learning system. So in the digital world you can have really small perturbations because, yeah, editing the digital image directly and then feeding that directly to the learning system. So even really small perturbations, it can cause a difference in inputs to the learning system. But in the physical world, because you need a camera to actually take the picture as an input and then feed it to the learning system, we have to make sure that the changes with the changes are perceptible enough that actually can cause difference from the camera size. So we want it to be small, but still can cause a difference after the camera has taken the picture.
Right, because you can't directly modify the picture that the camera sees at the point of the camera.
So there's a physical sensor step, physical.
Sensing step that you're on the other side of now.
Right. And also, and also how do we actually change the physical object? So essentially in our experiment we did multiple different things. We can print out these stickers and put a sticker and we actually bought these real world stop signs and then we printed stickers and put stickers on them. So then in this case we also have to handle this printing step. So again, in the digital world you can just, it's just bits, you just change the color value or whatever, you can just change the bits directly.
So you can try a lot of things too.
Right. But in the physical world, you have the printer, whatever attack you want to do, in the end, you have a printer that prints out these stickers or whatever perturbation you want to do, and then they will put it on the object. So we also, essentially there's constraints what can be done there. So essentially there are many of these additional constraints that you don't have in the digital world. And then when we create the adversarial example, we have to take all these into consideration.
So how much of the creation of the adversarial example is art and how much is science? How much is this sort of trial and error trying to figure, trying different things, empirical sort of experiments, and how much can be done sort of almost theoretically, or by looking at the model, by looking at the neural network, trying to generate sort of definitively what the kind of stickers would be most likely to create to be a good adversarial example in the physical world.
Right? That's a very good question. So essentially, I would say it's mostly science in a sense that we do have a scientific way of computing what adversary example, what is adversary perturbation, we should add. And of course in the end, because of these additional steps, as I mentioned, you have to print it out and then you have to put it out and then you have to take the camera. So there are additional steps that you do need to do additional testing. But the creation process of generating the adversary example is really a very scientific approach. Essentially we capture many of these constraints, as we mentioned, in this loss function that we optimize for. And so that's a very scientific approach.
So the fascinating fact that we can do these kinds of adversarial examples, what do you Think it shows us just your thoughts in general. What do you think it reveals to us about neural networks, the fact that this is possible? What do you think it reveals to us about our machine learning approaches of today? Is there something interesting? Is it a feature? Is it a bug? What do you think?
I think it really shows that we are still at a very early stage of really developing robust and generalizable machine learning methods and shows that we, even though deep learning has made so much advancements, but our understanding is very limited. We don't fully understand, we don't understand well how they work, why they work, and also we don't understand that well about these adversary examples.
Some people have kind of written about the fact that, that the fact that the adversarial examples work well is actually sort of a feature, not a bug. Is that actually they have learned really well to tell the important differences between classes as represented by the training set.
I think that's the other thing I was going to say it shows us also that the deep learning systems are not learning the right things.
How do we make them? I mean, I guess this might be a place to ask about how do we then defend or how do we either defend or make them more robust, these adversarial examples.
Right. I mean, one thing is that I think people. So there have been actually thousands of papers now written on this topic for the attacks, mostly attacks, I think there are more attacks than defenses, but there are many hundreds of defense papers as well. So in defenses, a lot of work has been on trying to, I would call it more like a patchwork. For example, how to make the neural networks to either through, for example, like adversary training, how to make them a little bit more resilient.
Got it.
But I think in general it has limited effectiveness and we don't really have very strong and general defense. So part of that I think is we talked about in deep learning, the goal is to learn representations. And that's our ultimate holy grail. Ultimate goal is to learn representations. But one thing I think I have to say is that I think part of the lesson we are learning here is that we're at one, as I mentioned, we are not learning the right things, meaning we are not learning the right representations. And also I think the representations we are learning is not rich enough. And so it's just like in human visions. Of course we don't fully understand how human visions work. But when humans look at the world, we don't just say, oh, this is a person. Oh, that's a camera. We actually get much more nuanced information from the world. And we use all this information category in the end to derive, to help us to do motion planning and to do other things, but also to classify what the object is and so on. So we are learning a much richer representation. And I think that's something we have now figured out how to do in deep learning. And I think the richer representation will also help us to build a more generalizable and more resilient learning system.
Can you maybe linger on the idea of the word richer representations? So to make representations more generalizable, it seems like you want to make them more less sensitive to noise, right?
So you want to learn the. You, right? You want to learn the right things. You don't want to, for example, learn this, spurious correlations and so on. But at the same time, an example of a richer information representation is again, we don't really know how human vision works, but when we look at the visual world, we can identify counters, we can identify much more information than just what, for example, image classification system is trying to do. And that leads to, I think the question you asked earlier about defenses. So that's also in terms of more promising directions for defenses. And that's where some of my work is trying to do and trying to show as well.
You have, for example, in the 2018 paper, Characterizing adversarial examples based on spatial consistency information for semantic segmentation. So that's looking at some ideas on how to detect adversarial examples. So I guess what are they? You call them like a poison data set. So like, yeah, adversarial bad examples in a segmentation data set. Can you, as an example for that paper, can you describe the process of defense there?
Yeah, sure, sure. So in that paper, what we look at is the semantic segmentation task. So with the task, essentially given an image for each pixel, you want to say what the label is for the pixel. So just like what we talked about for adversary example, it can easily fool image classification systems. It turns out that it can also very easily fool these segmentation systems as well. So given an image, I essentially can add adversary perturbation to the image to cause the segmentation system to basically segment it in any pageant I wanted. So people also showed that you can segment it even though there's no KT in the image. We can segment it into a KT pattern, Hello Kitty pattern. We segment it into iccv.
That's awesome, right?
So that's on the attack side, showing that this segmentation system, even though they have been effective in practice, but at the same time they're really, really easily fooled. So now the question is, how can we defend against this, how we can build a more resilient segmentation system? So that's what we try to do. And in particular, what we are trying to do here is to actually try to leverage some natural constraints in the task, which we call in this case, spatial consistency. So the idea of the spatial consistency is the following. Again, we don't really know how human vision works, but in general, at least what we can say is, so for example, as a person looks at a scene and we can segment the scene easily, we humans, right? Yes. And then if you pick like two patches of the scene that has an intersection, and for humans, if you segment patch A and patch B and then you look at the segmentation results, and especially if you look at the segmentation results at the intersection of the two patches, they should be consistent in the sense that what the pixels in this intersection, what their labels should be, and they essentially, from these two different patches, they should be similar in the intersection. So that's what we call spatial consistency. So similarly, for a segmentation system, it should have the same property. So in the image, if you randomly pick two patches that has an intersection, you feed each patch to the segmentation system, you get a result, and when you look at the results in the intersection, the results, the segmentation results should be very similar.
Okay, so logically that kind of makes sense, at least it's a compelling notion. But is that, how well does that work? Does that hold true for segmentation?
Exactly, exactly. So then in our work and experiments, we show the following. So when we take like normal images, this actually holds pretty well for the segmentation systems that we experimented with.
Or like, did you look at like driving data sets?
Right, right, right, exactly, exactly. But then this actually poses a challenge for adversarial examples, because for the attacker to add perturbation to the image, then it's easy for us to fold the segmentation system into, for example, for a particular patch for the whole image to cause a segmentation system to create some, to get to some wrong results. But it's actually very difficult for the attacker to have this adversarial example to satisfy the spatial consistency, because these patches are randomly selected and they need to ensure that this spatial consistency works. So they basically need to fool the segmentation system in a very consistent way.
Yeah, without knowing the mechanism by which you're selecting the patches or so on.
Exactly.
So it has to really fool the entirety of the mess of the entire thing.
So it turns out to actually to be really hard for the attacker to do. We tried the best we can. This detail of the art attacks actually show that this defense method is actually very, very effective. And this goes to. I think also what I'm was saying earlier is essentially we want the learning system to have richer representation. Also to learn from more. You can add the same multi model essentially to have more ways to check whether it's actually having the right prediction. So for example, in this case doing the spatial consistency check and also actually so that's one paper that we did. And then this notion of consistency check is not just limited to spatial properties, it also applies to audio. So we actually had follow up work in audio to show that this temporal consistency can also be very effective in detecting adversary examples in audio like speech.
Or what kind of audio? Speech data.
Right. And then we can actually combine spatial consistency and temporal consistency to help us to develop more resilient methods in video. So to defend against attacks for video also.
That's fascinating.
So yeah, so it's yes, yes.
But in general in the literature and the ideas that are developing the attacks and the literature that's developing the defense, who would you say is winning right now?
Right now of course it's attack side. It's much easier to develop attacks. And there are so many different ways to develop attacks. Even just us, we develop so many different methods for doing attacks. And also you can do white box attacks, you can do black box attacks where attacks you don't even need. The attacker doesn't even need to know the architecture of the target system. And now knowing the parameters of the target system and all that. So so many different types of attacks.
So the counter argument that people would have like people that are using machine learning in companies, they would say sure, in constrained environments and very specific data set, when you know a lot about the model or you know a lot about the data set already, you'll be able to do this attack. It's very nice. It makes for a nice demo. It's a very interesting idea. But my system won't be able to be attacked like this. The real world systems won't be able to be attacked like this. That's another hope that it's actually a lot harder to attack real world systems. Can you talk to that? How hard is it to attack real world systems?
I guess I wouldn't call that a hope. I think it's more of wishful thinking trying to be lucky. So actually in our recent work, my students and Collaborators has shown some very effective attacks on real world systems, for example Google Translate and other cloud translation APIs. So in this work we showed so far I talked about adversary examples mostly in the vision category. And of course adversary examples also work in other domains as well, for example in natural language. So in this work my students and collaborators have shown that one, we can actually very easily steal the model from, for example, Google translates by just doing queries through the APIs. And then we can train an imitation model ourselves using the queries. And also the imitation model can be very, very effective, essentially achieving similar performance as a target model. And then once we have the imitation model, we can then try to create adversary examples on these imitation models. So for example, giving in the work it was, one example is translating from English to German. We can give it a sentence saying, for example, I'm feeling freezing, it's like 6 Fahrenheit. And then translating to German. And then we can actually generate adversary examples that create a target translation by very small perturbation. So in this case, let's say we want to change the translation instead of 6 Fahrenheit to 21 Celsius. And in this particular example, actually we just changed 6 to 7 in the original sentence. That's the only change we made. It caused the translation to change from the 6 Fahrenheit into 21 Celsius. And then so this example, we created this example from our imitation model and then this work actually transfers to the Google Translate.
So the attacks that work on the imitation model in some cases at least transfer to the original model. That's incredible and terrifying. Okay, that's amazing work.
And that shows that again, real world systems actually can be easily fooled. And in our previous work we also showed these type of black box attacks can be effective cloud vision APIs as well.
So that's for natural language and for vision. Let's talk about another space that people have some concern about, which is autonomous driving is sort of security concerns. That's another real world system. So do you have, should people be worried about adversarial machine learning attacks in the context of autonomous vehicles that use like Tesla Autopilot, for example, that uses vision as a primary sensor for perceiving the world and navigating that world? What do you think from your stop sign work in the physical world? Should people be worried? How hard is that attack?
So actually there has already been like there, there have always been like research shown that for example, actually even with Tesla, like if you put a few stickers on the road, it can actually once arrange in certain ways it can fool the.
That's right. But I don't think it's actually been. I'm not. I might not be familiar but I don't think it's been done on physical worlds. Physical roads yet meaning I think it's with the projector in front of the Tesla. So it's a. It's a physical. So you're on the other side of the side of the sensor but you're not in still the physical world. The question is whether it's possible to orchestrate attacks that work in the actual phys like end to end attacks. Not just a demonstration of the concept but thinking is it possible on the highway to control a Tesla? That kind of idea.
I think there are two separate questions. One is the feasibility of the attack and I'm 100% confident that's the attack. It's possible. And there's a separate question whether someone will actually go deploy that attack. I hope people do not do that. But that's two separate questions.
So the question on the word feasibility. So to clarify feasibility means it's possible. It doesn't say how hard it is because to implement it. So sort of the barrier like how much of a heist it has to be like how many people have to be involved? What is the probability of success that kind of stuff and couple with how many evil people there are in the world that would attempt such an attack. Right. But the two. My question is is it sort of. You know when I talk to Elon Musk and ask the same question he says it's not a problem, it's very difficult to do in the real world. This won't be a problem. He dismissed it as a problem for adversarial attacks on the Tesla. Of course he happens to be involved with the company so he has to say that. But I mean let me linger on a little longer. Do you. So you. Where does your confidence that it's feasible come from? And what's your intuition? How people should be worried and how we might be. How people should defend against it. How Tesla, how Waymo. How other autonomous vehicle companies should defend against sensory based attacks on whether on LIDAR or on vision or so on.
And also even for lidar actually there has been research shown that even lighter itself can.
No, no, no, no. But see it's really important to pause. There's really nice demonstrations that it's possible to do but there's so many pieces that it's kind of like it's kind of in the Lab. Now it's in the physical world, meaning it's in the physical space, the attacks. But it's very like you have to control a lot of things to pull it off. It's like the difference between opening a safe when you have it and you have unlimited time and you can work on it versus breaking into stealing the crown jewels or whatever. Right.
I mean, so one way to look at this in terms of how real these attacks can be, one way to look at it is that actually you don't even need any sophisticated attacks. Already we've seen many real world examples, incidents where showing that the vehicle was.
Making the wrong decision, the wrong decision without attacks.
Right, right. So that's one way to demonstrate. And this is also, so far we've mainly talked about work in this adversarial setting, showing that today's learning system, they are so vulnerable to the adversarial setting. But at the same time, actually we also know that even in nature settings, these learning systems, they don't generalize well and hence they can really misbehave under certain situations. Yes, absolutely. Like what we have seen. And hence I think using that as an example, it can show that these issues can be real.
They can be real. So there's two cases, one is something, it's like perturbations can make the system misbehave versus make the system do one specific thing that the attacker wants. As you said, the targeted attack.
Right.
That seems, that seems to be very difficult, like an extra level of difficult step in the, in the real world. But from the perspective of the passenger of the car, you know, I don't think it matters either way.
Right, right.
Whether it's. Yeah, it's misbehavior or a targeted attack. Okay.
And also that's why I was also saying earlier, like one defense is this multi model defense and more of these consistent checks and so on. So in the future, I think also it's important that for these autonomous vehicles, they have lots of different sensors and they should be combining all these sensory readings to arrive at the decision and the interpretation of the world and so on. And the more of these sensory inputs they use, and the better they combine these sensory inputs, the harder it is going to be attacked. And hence I think that is a very important direction for us to move towards.
So multimodal, multi sensor across multiple cameras, but also in the case of car radar, ultrasonic sound even so all of those.
Right, right, right, exactly.
So another thing, another part of your work has been in the space of privacy and that too can be seen as a kind of security vulnerability. So thinking of data as a thing that should be protected and the vulnerabilities to data is vulnerabilities is essentially the thing that you want to protect is the privacy of that data. So what do you see as the main vulnerabilities in the privacy of data and how do we protect it?
Right. So in security we actually talk about essentially two, in this case, two different.
Properties is vulnerabilities is essentially the thing that you want to protect is the privacy of that data. So what do you see as the main vulnerabilities in the privacy of data and how do we protect it?
Right. So in security we actually talk about essentially two, in this case, two different properties. One is integrity and one is confidentiality. So what we have been talking earlier is essentially the integrity property of the learning system, how to make sure that the learning system is giving the right prediction, for example. And privacy essentially is on the other side is about confidentiality of the system is how attackers can, when the attackers compromise the confidentiality of the system, that's when the attacker is still sensitive information. Right. About individuals and so on.
That's really clean. Those are, those are great terms, integrity and confidentiality.
Right.
So how, what are the main vulnerabilities to privacy, would you say? And how do we protect against it? Like what are the main spaces and problems that you think about in the context of privacy?
Right. So especially in the machine learning setting. So in this case, as we know that, how the process goes is that we have the training data and then the machine learning system trains from this training data and then builds a model and then later on inputs are given to the model at inference time to try to get prediction and so on. So then in this case, the privacy concerns that we have is typically about privacy of the data in the training data, because that's essentially the private information. And it's really important because oftentimes the training data can be very sensitive. It can be your financial data, it's your health data, or like in IoT case is the sensors deployed in real world environment and so on. And all this can be collecting very sensitive information. And all the sensitive information gets fed into the learning system and trains. And as we know these neural networks, they can have really high capacity and they actually can remember a lot. And hence just from the learning, the learned model in the anti actually attackers can potentially infer information about the original training data set.
So the thing you're trying to protect is the confidentiality of the training Data. And so what are the methods for doing that, would you say? What are the different ways that can be done?
And also we can talk about essentially how the attacker may try to learn information from the right. And also there are different types of attacks. So in certain cases, again like in white box attacks, we can say that the attacker actually get to see the parameters of the model. And then from that a smart attacker potentially can try to figure out information about the training data set. They can try to figure out what type of data has been in the training data set. And sometimes they can tell whether a person has been a particular person's data point has been used in the training data sets as well.
So white box meaning you have access to the parameters of say a neural network. And so that you're saying that it's some. Given that information it's possible to some.
So I can give you some examples. And another type of attack which is even easier to carry out is not a web box model, is more of just a query model where the attacker only gets to query the machine learning model and then try to steal sensitive information in the original training data. So I can give you an example in this case, training a language model. So in our work in collaboration with the researchers from Google, we actually studied the following question. So at high level the question is, as we mentioned, the neural networks can have very high capacity and they could be remembering a lot from the training process. Then the question is, can attacker actually exploit this and try to actually extract sensitive information in the original training data set through just querying the learned model without even knowing the parameters of the model, like the details of the model or the architectures of the model and so on. That's a question we set out to explore. And in one of the case studies we showed the following. So we trained a language model over an email data set. It's called an Enron email data set. And the Enron email data sets naturally contained users Social Security numbers and credit card numbers. So we trained a language model over the datasets and then we showed that an attacker by devising some new attacks by just querying the language model and without knowing the details of the model, the attacker actually can extract the original Social Security numbers and credit card numbers that were in the original training data.
Set to get the most sensitive personally identifiable information from the data set from just querying it.
Right? Yeah, that's an example showing. That's why even as we train machine learning models, we have to be really careful with protecting users data privacy.
Yeah. So what Are the mechanisms for protecting is there? Hopefully. So if there's been recent work on differential privacy, for example, that provides some hope. But can you describe some of the ideas?
So that's also our finding is that actually we show that in this particular case we actually have a good defense.
For the querying case, for the querying.
For this language model, language model case. So instead of just training a vanilla language model, instead if we train a differentially private language model, then we can still achieve similar utility, but at the same time we can actually significantly enhance the privacy protection of the learned model. And our proposed attacks actually are no longer effective.
And differential privacy is a mechanism of adding some noise by which you then have some guarantees on the inability to figure out the presence of a particular person in the data set.
So. Right. So in this particular case, what the differential privacy mechanism does is that it actually adds perturbation in the training process. As we know, during the training process we are learning the model, we are doing gradient updates, the weight updates, and so on. And essentially a differentially private machine learning algorithm in this case will be adding noise and adding various perturbation during this.
Training process to some aspect of the training process.
Right. So then the finally trained learning, the learned model is differentially private, and so it can enhance the privacy protection.
Okay, so that's the attacks and the defense of privacy. You also talk about ownership of data. So this is a really interesting idea that we get to use many services online for seemingly for free by essentially sort of. A lot of companies are funded through advertisement. And what that means is the advertisement works exceptionally well because the companies are able to access our personal data, so they know which advertisement to serve us to do targeted advertisements, so on. So can you maybe talk about this? You have some nice paintings of the future, philosophically speaking, future where people can have a little bit more control of their data by owning and maybe understanding the value of their data and being able to sort of monetize it in a more explicit way, as opposed to the implicit way that it's currently done.
Yeah, I think this is a fascinating topic and also a really complex topic. Right. I think there are these natural questions, who should be owning the data? And so I can draw one analogy. So for example, for physical properties like your house and so on. So really this notion of property rights is not just. It's not like from day one we knew that there should be this clear notion of ownership of properties and having enforcement for this. So actually people have shown that this establishment and enforcement of property rights has been A main driver for the economy earlier. And that actually really propelled the economic growth even right in the earlier stage.
So throughout the history of the development of the United States or actually just civilization, the idea of property rights, that you can own property, and then there's.
Enforcement, there's institutional rights, like governmental, like enforcement of this actually has been a key driver for economic growth. And there had been even research proposals saying that for a lot of the developing countries, Essentially the challenge in growth is not actually due to the lack of capital, it's more due to the lack of this notion of property rights and enforcement of property rights.
Interesting. So that the presence of absence of both the concept of the property rights and their enforcements has a strong correlation to economic growth. And so you think that same could be transferred to the idea of property ownership in the case of data ownership?
I think first of all, it's a good lesson for us to recognize that these rights and the recognition and enforcement of these type of rights is very, very important for economic growth. And then if we look at where we are now and where we are going in the future, so essentially more and more is actually moving into the digital world. And also more and more, I would say even information or asset of a person is more and more into the real world, sorry, the digital world as well. It's the data that the person's generated. And essentially it's like in the past, what defines a person? You can say, right. Oftentimes besides the innate capabilities, actually it's the physical properties. Right. That defines a person. But I think more and more people start to realize actually what defines a person is more important in the data that the person has generated or the data about the person, all the way from your political views, your music taste and financial information, a lot of these, and your health. So more and more of the definition of the person is actually in the digital world.
And currently for the most part, that's owned. People don't talk about it, but kind of it's owned by Internet companies. So it's not owned by individuals.
Right. There's no clear notion of ownership after such data. And also we talk about privacy and so on, but I think actually clearly identifying the ownership is the first step. Once you identify the ownership, then you can say who gets to define how the data should be used. So maybe some users are fine with Internet companies serving them as using their data, as long as if the data is used in a certain way that actually the user consents with are allowed. For example, you can say the recommendation system in some Sense, we don't call it as, but a recommendation system. Similarly, it's trying to recommend you something. And users enjoy and can really benefit from good recommendation systems either recommending you better music, movies, news, even research papers to read. But of course then in these targeted ads, especially in certain cases where people can be manipulated by these targeted ads, that can have really bad severe consequences. So essentially uses one data to be used to better serve them and also maybe even get paid for or whatever in different settings. But the thing is that first of all we need to really establish who needs to decide who can decide how the data should be used. And typically the establishment and clarification of the ownership will help this. And it's an important first step. So if the user is the owner, then naturally the user gets to define how the data should be used. But if you even say that, wait a minute, users are actually now the owner of this data. Whoever is collecting the data is the owner of the data. Now of course they get to use the data however way they want. So to really address these complex issues, we need to go at the root cause. So it seems fairly clear that so first we really need to say who is the owner of the data and then the owners can specify how they want their data to be utilized.
So I said that's a fascinating. Most people don't think about that and I think that's a fascinating thing to think about and probably fight for it. I can only see. And the economic growth argument is probably a really strong one. So that's a first time I'm kind of at least thinking about the positive aspect of that ownership being the long term growth of the economy. So good for everybody. But sort of one down possible downside I could see sort of to put on my grumpy old grandpa hat and you know, it's really nice for Facebook and YouTube and Twitter to all be free. And if you give control to people with their data, do you think it's possible they will be. They would not want to hand it over quite easily. And so a lot of these companies that rely on mass handover of data and then therefore provide a mass seemingly free service would then completely. So the way the Internet looks will completely change because of the ownership of data and will lose a lot of services value. Do you worry about that?
That's a very good question. I think that's not necessarily the case in the sense that yes, users can have ownership of their data, they can maintain control of their data, but also then they get to decide how their data can be used. So that's why I mentioned earlier, in this case, if they feel that they enjoy the benefits of social networks and so on, and they're fine with having Facebook having their data, but utilizing the data in certain way that they agree, then they can still enjoy the free services. But for others, maybe they would prefer some kind of private vision. And in that case, maybe they can even opt in to say that I want to pay to have. So, for example, it's already fairly standard. Like you pay for certain subscriptions so that you don't get to be shown ads.
Yes.
Right. So then users essentially can have choices. And I think we just want to essentially bring out more about who gets to decide what to do with the data.
I think it's an interesting idea because if you poll people now, it seems like, I don't know, but subjectively, sort of anecdotally speaking, it seems like a lot of people don't trust Facebook. So that's at least a very popular thing to say, that I don't trust Facebook. Right. I wonder if you give people control of their data as opposed to sort of signaling to everyone that they don't trust Facebook. I wonder how they would speak with the actual. Like, would they be willing to pay $10 a month for Facebook or would they hand over their data? I'd be interesting to see what fraction of people would. Would quietly hand over their data to Facebook to make it free. I don't have a good intuition about that. Do you have an intuition about how many people would use their data effectively on the market of the Internet by sort of buying services with their data?
Yeah, so that's a very good question, I think so. One thing I also want to mention is that this. Right. So it seems that especially in press, the conversation has been very much like two sides fighting against each other. On one hand, users can say that they don't trust Facebook. They don't. Others delete Facebook.
Yeah, exactly.
Right. And then on the other hand. Right, of course. Right. The other side, they also feel, oh, they are providing a lot of services to users and users are getting it all for free. So I think, actually I talk a lot to different companies and also basically on both sides. So one thing I hope, also that's my hope for this year also, is that we want to establish a more constructive dialogue and to help people to understand that the problem is much more nuanced than just this, two sides fighting. Because naturally there is a tension between the two sides, between utility and privacy. So if you want to get more Utility essentially like the recommendation system example I gave earlier. If you want someone to give you good recommendation, essentially whatever the system is, the system is going to need to know your data to give you a good recommendation. But also of course at the same time we want to ensure that however that data is being handled is done in a privacy preserving way so that for example, that recommendation system doesn't just go around and sell your data and then cause lot of bad consequences and so on.
So you want that dialogue to be a little bit more in the open, a little more nuanced and maybe adding control to the data, ownership to the data will allow, as opposed to this happening in the background, allow to bring it to the forefront and actually have dialogues in like more nuanced, real dialogues about how we trade our data for the services.
That's the whole, right? Right, yes. At high level. So essentially also knowing that there are technical challenges in addressing the issue to like basically you can't have, just like the example that I gave earlier, it's really difficult to balance the two between utility and privacy. And there's also a lot of things that I work on, my group works on as well is to actually develop these technologies that are needed to essentially help this balance better and essentially to help data to be utilized in a privacy preserving and responsible way. And so we essentially need people to understand the challenges and also at the same time to provide the technical abilities and also regulatory frameworks to help the two sides to be more in a win, win situation instead of a fight.
Yeah, the fighting thing is I think YouTube and Twitter and Facebook are providing an incredible service to the world. And they're all making mistakes of course, but they're doing an incredible job that I think deserves to be applauded. And there's some degree of gratitude. Like it's a cool thing that that's created and it shouldn't be monolithically fought against. Like Facebook is evil or so on. Yeah, it might make mistakes, but I think it's an incredible service. I think it's world changing. I mean I think Facebook's done a lot of incredible, incredible things by bringing for example, identity, like allowing people to be themselves like their real selves in the digital space by using their real name and their real picture. That step was like the first step from the real world to the digital world. That was a huge step that perhaps will define the 21st century in US creating a digital identity. And there's a lot of interesting, interesting possibilities there that are positive. Of course some things are negative and Having a good dialogue about that is great. And I'm great that people like you are at the center of that dialogue. That's awesome, right?
I think also I also can understand, I think actually in the past, especially in the past couple of years, this rising awareness has been helpful. Like users are also more and more recognizing that privacy is important to them. They should be owners of their data. I think this definitely is very helpful. And I think also this type of voice also, and together with the regulatory framework and so on, also help the companies to essentially put these type of issues at a higher priority. And knowing that also it is their responsibility too to ensure that users are well protected. So I think definitely the rising voice is super helpful. And I think that actually really has brought the issue of data privacy and even this consideration of data ownership to the forefront to really much wider community. And I think more of this voice is needed. But I think it's just that we want to have a more constructive dialogue to bring the both sides together to figure out constructive solution.
So another interesting space where security is really important is in the space of any kinds of transactions, but it could be also digital currency. So can you maybe talk a little bit about blockchain? Can you tell me what is a blockchain?
I think the blockchain word itself is actually very overloaded. In general, it's like AI, right? Yes. So in general, when I talk about blockchain, we refer to this distributed ledger in a decentralized fashion. So essentially you have a community of nodes that come together, and even though each one may not be trusted, and as long as a certain threshold of the set of nodes behaves properly, then the system can essentially achieve certain properties. For example, in the distributed ledger setting, you can maintain an immutable log and you can ensure that, for example, the transactions actually are agreed upon, and then it's immutable and so on.
So first of all, what's a ledger? So it's a.
It's like a database, it's like a data entry.
And so a distributed ledger is something that's maintained across or is synchronized across multiple sources, multiple nodes.
Multiple nodes. Yes.
And so where is this idea? How do you keep. So it's important. Ledger a database to keep that, to make sure. So what are the kinds of security vulnerabilities that you're trying to protect against in the context of a distributed ledger?
So in this case, for example, you don't want some malicious nodes to be able to change the transaction logs. And in certain cases it's called double Spending like you can also cause different views in different parts of the network and so on.
So the ledger has to represent, if you're capturing like financial transactions, has to represent the exact timing and the exact occurrence and no duplicates, all that kind of stuff, it has to be represent what actually happened. Okay, so what are your thoughts on the security and privacy of digital currency? I can't tell you how many people write to me to interview various people in the digital currency space. There seems to be a lot of excitement there and it seems to be some of it to me from an outsider's perspective seems like dark magic. I don't know how secure I think the foundation from my perspective of digital currencies, that is you can't trust anyone. So you have to create a really secure system. So can you maybe speak about what your thoughts in general about digital currency is and how it can possibly create financial transactions and financial stores of money in the digital space?
So you asked about security and privacy. So again, as I mentioned earlier in security we actually talk about two main properties, the integrity and confidentiality. So there's another one for availability. You want the system to be available. But here for the question you asked, let's just focus on integrity and confidentiality.
Yes.
So for integrity of this distributed ledger, essentially, as we discussed, we want to ensure that the different nodes, so they have this consistent view. Usually it's done through, we call a consensus protocol. That's the establish this shared view on this ledger that you cannot go back and change, is immutable and so on. So in this case then the security often refers to this integrity property. And essentially you're asking the question, how much work? How can you attack the system so that an attacker can change the log, for example?
Right. How hard is it to make an attack like that?
Right, right. And then that very much depends on the consensus mechanism, how the system is built and all that. So there are different ways to build these decentralized systems. People may have heard about the terms called like proof of work, proof of stake, these different mechanisms and really depends on how the system has been built and also how much resources, how much work has gone into the network to actually say how secure it is. So for example, people talk about like in Bitcoin is proof of work system, so much electricity has been burned.
So there's differences, there's differences in the different mechanisms in the implementations of a distributed ledger used for digital currency. So there's Bitcoin, there's a, whatever, there's so many of them and there's underlying different mechanisms. And there's arguments, I suppose, about which is more effective, which is more secure, which is more.
And what is needed, what amount of resources needed to be able to attack the system. Like for example, what percentage of the nodes do you need to control or compromise in order to change the log.
And those are things, do you have a sense if those are things that could be shown theoretically through the design of the mechanisms, or does it have to be shown empirically by having a large number of users using the currency?
I see. So in general, for each consensus mechanism, you can actually show theoretically what is needed to be able to attack the system. Of course, there can be different types of attacks, as we discussed at the beginning, and so that it's difficult to give like, you know, a complete estimate, like really how much is needed to compromise the system. But in general. Right. So there are ways to say what percentage of the nodes you need to compromise and so on.
So we talked about integrity on the security side and then you also mentioned the privacy or the confidentiality side. Does it have some of the same problems and therefore some of the same solutions that you talked about on the machine learning side with differential privacy and so on?
Yeah, so actually in general, on the public ledger, in these public decentralized systems, actually nothing is private, so all the transactions you need to compromise and so on. So we talked about posts on the ledger anybody can see. So in that sense there's no confidentiality. So usually what you can do is then there are other mechanisms that you can built in to enable confidentiality, privacy of the transactions and the data and so on. That's also some of the work that both my group and also my startup does as well.
What's the name of the startup?
OASIS Labs.
OASIS Labs. And so the confidentiality aspect there is, even though the transactions are public, you want to keep some aspect confidential of the identity of the people involved in the transactions or what is their hope to keep confidential in this context.
So in this case, for example, you want to enable confidential transactions. So there are different essentially types of data that you want to keep private or confidential. And you can utilize different technologies, including zero knowledge proofs and also secure computing techniques to hide either the who is making the transactions to whom and the transaction amount. And in our case also we can enable confidential smart contracts so that you don't know the data and the execution of the smart contract and so on. And we actually are combining these different technologies, going back to the earlier discussion we had, enabling ownership of data and privacy of data and so on. So at OASIS Labs we're actually building what we call a platform for responsible data economy to actually combine these different technologies together to enable secure and privacy preserving computation. And also using the ledger to help provides immutable log of users ownership to their data and the policies they want the data to adhere to, the usage of the data to adhere to and also how the data is being utilized. So all this together can build, we call a distributed secure computing fabric that helps to enable a more responsible data economy. So it's a lot of things together.
Yeah. Wow, that was eloquent. Okay. You're involved in so much amazing work that we'll never be able to get to. But I have to ask at least briefly about program synthesis, which at least in a philosophical sense captures much of the dreams of what's possible in computer science and the artificial intelligence. First let me ask what is program synthesis and can neural networks be used to learn programs from data? So can this be learned? Some aspect of the synthesis, can it be learned?
So program synthesis is about teaching computers to write code to program. And I think that's one of our ultimate dreams or goals. I think Andreessen talked about software eating the world. So I say once we teach computers to write software, how to write programs, then I guess computers will be eating the world by transitivity.
Yeah, exactly.
So yeah. And also for me actually when I shifted from security to more AI machine learning, program synthesis is program synthesis, adversarial machine learning. These are the two fields that I particularly focus on. Like program synthesis is one of the first questions that I actually started investigating.
Just as a question. Oh, I guess from the security side there's a, you know, you're looking for holes in programs, so I at least see small connection. But why, where was your interest for program synthesis? Because it's such a fascinating, such a big, such a hard problem in the general case, why program synthesis?
So the reason for that is actually when I shifted my focus from security into AI machine learning. Actually one of my main motivation at the time is that even though I have been doing a lot of work in security and privacy, but I have always been fascinated about building intelligent machines. And that was really my main motivation to spend more time in AI machine learning is that I really want to figure out how we can build intelligent machines and to help us towards that goal. Program synthesis is really one of, I would say the best domain to work on. I actually call it program synthesis is like the perfect playground for building intelligent machines and for artificial general intelligence.
Well, it's Also, in that sense, not just a playground. I guess it's the ultimate test of intelligence, because I think if you can generate sort of neural networks, can learn good functions and they can help you out in classification tasks. But to be able to write programs, that's the epitome from the machine side, that's the same as passing the Turing test in natural language. But with programs, it's able to express complicated ideas, to reason through ideas and boil them down to algorithms.
Yes, exactly. Exactly.
Incredible. So can this be learned? How far are we. Is there hope? What are the open challenges?
Yeah, very good questions. We are still at an early stage, but already, I think we have seen a lot of progress. I mean, definitely we have existence proof, just like humans can write programs, so there's no reason why computers cannot write programs. So I think that's definitely an achievable goal. It's just how long it takes. And even today we actually have, you know, the program synthesis community, especially the program synthesis via learning, or we call it neural program synthesis community, is still very small, but the community has been growing and we have seen a lot of progress. And in limited domains, I think actually program synthesis is ripe for real world applications. So actually it was quite amazing. I was at. I was giving a talk. Here is a ReWork conference, ReWork Deep Learning Summit, actually. So I gave another talk at the previous rework conference in deep reinforcement learning. And then I actually met someone from a startup, the CEO of the startup.










