Hello everyone, welcome and thanks for coming down to listen to me. So the talk is about introduction. It's an introduction to private machine learning. Just so i get a sense of the audience, how many of you work With data in general, machine learning or not? Okay. And how many of you work in cryptography Or privacy or security? Okay. All right, so cool. Yeah, that's good because most of the talk is about the privacy And the cryptography rather than on the data analysis. So i'm mostly assuming that you kind of know how Machine learning works in general. All right, so let's get started. My name is Shankar. You can follow me on twitter At mail shanks. So currently i work for a company called manual life. I lead the data and AI research efforts For the companies like research labs. And then i used to sort of work in Generally in data and machine learning at NUS And at a bunch of other startups as well. So the reason i'm talking about this in the first places As we speak, there is sort of a quiet revolution Underway in AI and in machine learning in general And the revolution is really happening Because of the marriage of these two fields of cryptography And AI. And by sort of combining the concepts It's now becoming possible to build a much Much more decentralized and encrypted and private Privacy preserving machine learning systems. And the point of this talk is really to sort of get you started As an engineer in building these kinds of systems. So i'm going to cover sort of the landscape of options That are available if you want to build a privacy Preserving machine learning systems. And sort of compare the tradeoffs that are involved Between most of these options. And sort of dive a little bit deeper into the last one Because that's the one that's sort of most mature and practical And you can actually start building systems using that one. So basically i'm going to be talking about differential privacy And federated learning and homomorphic encryption And secure multi-party computation. So all of these are sort of sub branches in cryptography And i'll sort of briefly touch what you can do with them And i'm going to sort of dive a little bit deeper into the theory And code for secure multi-party computation. Yeah, why does any of this actually matter? Like why do you want to take the trouble to, you know, Learn all of this thing? It's not easy to learn all of this, right?  And the reason you should care is because we as a society right now Struggle to balance on the one hand the benefits of building These data-driven systems and the risks and sort of violations Of privacy that naturally occur as a consequence of the data Collection process that is necessary to build, you know, A data-driven system. So, you know, I don't have to like tell you the headlines But I mean just one thing that personally just boggled my mind Was that every single Yahoo account was hacked. Like there's nothing left to hack. Every single Yahoo email account so far, right? All of them are hacked. So and that's not even like the smallest sort of large-scale Data breach. And beyond just like corporate data breaches, sort of the debate Around Cambridge Analytica and all of that, right? We sort of start having to ask the question, have we, you know, Entered the age of mass psychological manipulation? This is Alexander Nix, the CEO of Cambridge Analytica. He's up on a stage here sort of bragging to, you know, Crowd of marketers about how sort of he can tailor The same actual same message but sort of worded in two Different ways depending on your so-called psychological Psychographic profile, right? Now some of these claims are a bit tall, but they're not empty. So, you know, we have sort of plenty of reason to start Thinking about building machine learning systems which can Respect user privacy. And the other thing is that sort of over the last five years, There's been a lot of talk about, you know, Transforming your company into a data-driven company. And a lot of people have, you know, talked about how data Is maybe the biggest asset that you can have. But data is also, to me, it's also like nuclear waste In the sense that if it leaks, then that's completely Out of your control, right? Like once it leaks, then you have no control over it. You don't know where it's going to go. And the way we respond to that today is with regulation, right? And this is just sort of a pictorial, you know, Here are the users. They give up their data. And then this is AI Inc. And AI Inc. trains models to maybe serve you Better cat pictures. Like that's kind of where we are. And sort of the point is that collecting data is An intrinsic, like it's an intrinsic feature of building Machine learning systems. And the more data you collect, Sort of the bigger honeypot you create for hackers. So, and that's where, you know, cryptography and machine Learning come in. And the point is to be able to Analyze sensitive data and still maintain privacy. So you can encrypt data, but if you encrypt it, then, You know, you can't analyze it. So really the challenge is how do you, sort of, Maybe not encrypt or maybe encrypt it in a certain way While still allowing analysis on it. So let's get into the details now. So sort of the first option, if you want to build any kind Of privacy preserving ML or data analysis in general, Is what's called differential privacy. So differential privacy is, it's a, it's a subfield of I would say of cryptography and data analysis. And differential privacy basically concerns itself with The following question. Let's say i want to study the Incidents of diabetes in this audience, right. So i do a survey and then i collect a database and Then i come to you and i ask you to participate in my Survey.  Right. Now if i have the results of the survey before I ask you for your response and then if i compare that With the results after you responded, then i know Whether or not you have diabetes because, you know, My diabetes count will increase by one. If you have diabetes, if not, it won't. And so i can infer that you have diabetes or not. So differential privacy basically deals with building These kinds of databases and queries where you can still Collect all of this data but do it in such a way that i Don't, you know, that i don't know for sure whether or Not you actually have diabetes. So in a more sort of formal setting, imagine that there Are two sort of data sets, the squares here are Two sets and they differ only in one entry, in one record. And differential privacy is all about building query systems Which will run the query on the database as you would Normally expect but the sort of, but the result will Not be exact. It's not like an exact count. It's the count plus some probability, like a Probabilistic noise added over the count. And you want to do it in such a way, you want to control the Noise that you're adding and you want to control it in such a Way that for these two data sets where the difference is only In a single row, the outcome of the query, right, looks More or less the same. So that's what sort of the blue And the yellow lines show you is that, you know, the Probabilistic distribution of the result, you want that To be identical because these two data sets are, you know, They are the same except for one line. And then if you can do that, then, you know, that's sort of That's from an adversarial perspective, if i want to figure Out whether or not you have diabetes, right, i can't do that Because no matter what query i run, i'm going to get the Same sort of more or less the same result on both Versions of the data set. So i can't compare. So differential privacy is all about sort of how many Queries you can run and how much noise you want to add and You can trade off between the noise that you add and the number Of queries that you can run. And based on that, you can Actually compute a probability of violation of privacy.  But yeah, it's not the solution to all problems, it's A solution to some problems. Basically, the sort of the Biggest issue with differential privacy is that you end up Creating this trust boundary. So you have all of this raw data And you have the analyst or the data miner, right? And the analyst issues her query and then that gets Transformed by sort of a differential privacy transformer And then that's run on the actual database. So everything to the right of that trust boundary, That's still insecure, that is still sensitive. So if you lose that, then you're in trouble. So that's kind of a big issue with differential privacy. The other issue is also that you start losing accuracy. So the stronger you start making your guarantees around Privacy, the less accurate the results become. So the next option that you have is what's called Federated Learning. And so Federated Learning works In the following way. So you have all of these users And they sort of use some service from AI Inc. And rather than have all of them upload their data to AI Inc's, you know, central database, what you do is You split up your model and you let the users Download parts of the model. And then they train the Model locally, maybe on their phones. And they upload the gradients back to the company. And then the company basically aggregates all of those Gradients and builds their own model. And then, you know, they can make money with it. So Federated Learning is sort of amongst the four Kind of options that I'm going to go over in this talk. I would say Federated Learning is probably, I mean It's kind of famous only because Google does it. But other than Google, not too many people do it. And there's not so many libraries and tools that you can Find out there in the open to actually build Federated Learning systems. And then sort of the third Option is what's called homomorphic encryption. So homomorphic encryption is basically a special kind Of encryption scheme or a family of schemes. And they all have a special property. The property is that when you perform arithmetic on The encrypted data, that will correspond to the same Set of arithmetic operations performed on the plain text. So let's say you have, you know, the numbers three and five. And you have what's called a homomorphic encryptor. So you pass three and you pass five through the Homomorphic Encryptor and they come out looking like Garbage. You won't be able to decipher, you know, Any bit pattern out of the encrypted, out of the Encryptor. And the encrypted data is what we Normally call cipher text. So you have cipher A and cipher B. And homomorphic encryption schemes guarantee the following.  Similarly, if you add the two ciphers, cipher A And cipher B, you will get eight because, you know, Five and three are eight. So, so you can do, You can do arithmetic on encrypted data. That's kind of amazing if you think about it because the Whole point of encryption is to transform plain text into What mostly looks like noise and sort of a necessary Property of encryption is that any encrypted piece of Data should be sort of statistically indistinguishable From noise. So you know, it, it needs to be Sort of spread out over the range that you're guaranteeing and Shouldn't sort of have like a particularly high distribution In any one particular value. And being able to do arithmetic And still preserve it on the plain text, the fact that You can do that is kind of interesting. Quite mind boggling actually. But there are some issues With homomorphic encryption as well. Firstly, if you're going to do homomorphic encryption in Sort of a distributed fashion, right, the problem of key Management comes up. So like who manages the keys? Now, for the homomorphic and cryptor to work, obviously You're going to have to have the keys, right? So if the company distributes the keys, the company can Sort of decide to, you know, cheat at any given time and And then sort of your privacy then is at risk Because really it's, it then comes down to a promise That promise between the user and the company that the Company won't ever peek at your data. So key management is a huge issue. And then the other issue Is that currently homomorphic encryption is still sort Of computationally very expensive. And then there is again loss of accuracy.  Here are some references that you can, you know, refer to There is a homomorphic encryption library. It's called ecilib. So it does implement some of these, A lot of these things actually. There is a library called python palier, which does A limited form of homomorphic encryption. Okay, so a big picture. Where are we right now? So differential privacy, right? Gives you strong privacy guarantees like mathematical Guarantees, but suffers from centralization risk. Federated learning does not have any centralization risk, But there are very little sort of practical open source Implementations and I guess only Google does it. And then you've got homomorphic encryption, which Is very, very promising, but is very computationally Expensive. And then the last one is secure MPC. MPC stands for multi-party computation. So that's the one that we'll sort of delve into, Into a little more depth. All right, so secure multi-party computation basically deals With the following question. Let's say there are parties p1, P2 and all the way up until p6 or pn in general. And let's say all of them, each one of them holds a piece Of data, x1, x2 up until xn. And the question is the following. Given a function f, any arbitrary function, Which might operate on x1 to xn, or on any subset of x1 to xn, Secure multi-party computation asks the following question. Can you compute f without revealing any of x1 to xn? Right, so that's a little bit abstract, I guess. Let me, let's go through sort of a more concrete example. Now let's say there are six people in a room, right. And let's say they want to compute the sum of their Salaries, but they don't want to of course reveal their salary.  Now obviously this is not ideal on many fronts. And hopefully there is a better way, and there is. And the better way is secure multi-party computation. So for this particular concrete instance of the problem, Of the problem of sort of summing up n inputs without revealing Any of the n inputs, let me give you sort of an intuition Around how you can do that. So you can do this in the following way. The pick any party, right. So we arbitrarily pick the first party x1. Now what x1 does is he chooses a random integer r, right. And then what he does is that he adds up his salary to r And passes that on to x2. So now x2 has a number. Now x2 does not know x1's salary because, you know, it's added to a random number. And then x2 basically takes the message that he got from x1, Adds his own salary and then passes it along and so on. So each person in the ring basically takes the message from the previous person And then adds their own salary to it and then passes it down. And then what you do in the end is when x1 gets the message back, All he does is that he takes m6 which is the final message And he subtracts r. x1 is the only person who knows the random number r. So he subtracts r. And now you have the sum of salaries without any person knowing any other person's salary. So that's kind of, like, that's the flavor of the kinds of things That you can do in secure multi-party computation. And basically, multi-party computation, or mpc, right, Basically deals with the following question. It deals with the design of protocols to be able to sort of do these Kinds of computations with multiple parties involved. Now, this is a really simple, like probably the simplest Possible protocol that you can design to answer this question. Now, there are a number of sort of weaknesses and assumptions in this protocol. The most important assumption is that people do not gossip, right? So if, let's say, if x3 and x1, if they get together, They can basically subtract the messages that were sent between x1, x2 and x2, x3 And then, you know, you can then find out salaries that are not yours. So the question is, can you design protocols which are Resistant to collusion and to gossip? And the answer is yes, it depends. It depends on the kinds of assumptions that you make Around how people collude and the assumptions that you make Around how people gossip. And basically, there are sort of two results. Two sort of big takeaways. The takeaways are that, yes, you can design absolutely sort of You can come up with the most sort of malicious gossip And collusion protocol imaginable. And as long as t, which is less than half of n, Number of people stay honest, sorry, are dishonest. There is, as long as you have a majority honest population, You can design multi-party computation protocols which will be Resistant to that kind of collusion and to that kind of gossip. So that's kind of the big sort of take away or like the big Message from the field of multi-party computation. And it's sort of the most practical of all sort of options And you have like a number of libraries. You can refer to some of them here. So let's dive into a little bit into how exactly you can Analyze data with multi-party computation. So now before we get into like all of the integrity details, Right, there is a building block that is very, very sort of Important to building mpc systems. And that's what's called secret sharing. So secret sharing is basically, you take a secret, Like a secret piece of information and split it up into Multiple parties such that no party can figure out what The actual secret was. Each party has only access to sort of their share. So I denote that by s in angle brackets. So when I say s in angle brackets, that means s is secret shared. Now a simple way to do that is to just compute s As a sum of s1, s2 up until sn. So you distribute s1, s2 up until sn to n parties. And none of them knows the actual secret unless all of them Get together and add up their shares. So that is what's called additive secret sharing. Additive secret sharing is perhaps the simplest of secret sharing protocols. You have other secret sharing protocols. You have things like what's called Shamir's secret sharing protocol Where what you can do is split up your secret into n parts And make it such that you need at least t where t is less than n Obviously parts to come together in order to get the final secret. But this is a much simpler scheme where everybody has to come together In order to reconstruct the secret. So basically this is what I'm talking about. If you have a share, you pass secret, secret is an integer. And all you do is you find a random number between 0 and q. The reason we have this q thing here is because generally speaking In cryptography, you do all operations on what's called a finite field. And a finite field of q basically just means the set of all numbers From 0 to q minus 1. So yeah, that's just kind of how you do things in cryptography. And if you want to share the secret, basically you generate A random number between 0 and q. And then share, that's like your share 0. Share 1 is the secret minus share 0. And then you return share 0 and share 1.  And you just do it mod q because you do everything in mod q. So that's what's additive secret sharing. Now additive secret sharing is the sort of the building block For doing data analysis in a secure multiparty setting. And I'll show you how. So now that you have this share and reconstruct methods You can basically construct this class. Let's call it private element. And you can create instances of private elements. And you can sort of do operations on them. So you initialize the private element just by either giving it the 2 shares Or by taking an input and then splitting it up with the share method That's defined above. And then there's of course the reconstruct method as well. So reconstruct basically just, you know, it uses the reconstruct over here. You just add them up, add up the shares. That's all reconstruct is. So now that you have private element. What's left is being able to define operations and run them on these private elements.  The idea is how do you go from mpc or multiparty computation to machine learning, right? And sort of the big idea here is that if you can decompose machine learning Algorithms to what's called arithmetic circuits. And if you can evaluate those arithmetic circuits in a secure way, Then you can do data analysis in a secure way. So an arithmetic circuit is just like this network with arithmetic operations in them. And it's a graph. So there are either operations like addition or multiplication, Or there are data like X1 and X2 are pieces of data. And these pieces of data are basically, you know, the shares which we split. So the idea is the idea is to be able to evaluate these kinds of circuits on on pieces of data Which have gone through the share method earlier, which have, you know, You take a piece of data and you you compute the share on it and you get shares zero and share one. And then you push it through this circuit and you evaluate that circuit. And if you can evaluate that circuit and if you can decompose a machine learning algorithm down to this circuit, Then you can basically do multiparty computation without like revealing X1, X2 or Xn to anyone else. So basically in order to be able to evaluate circuits, right, You basically have to be able to add and multiply secret like secrets which are split among n parties. So let's look at how do we add like I said earlier a in angle brackets basically means a secret a which has been split among n parties. So what we have here is we have a and b which are two secrets and these two secrets have been split between parties p1 to pn. So you have parties p1 to pn each party holds a1 to a n. So you take a you split it into n parts distributed between p1 to pn. You take b split it into n parts distributed amongst p1 to pn. So this is sort of like a you know for a mental picture p party one has a1 b1 party two has a2 b2 and so on. If you just to sort of remind you we are using additive secret sharing. What that means is if you take a1 and if you do a1 plus a2 up until a n you get a similarly if you do b1 plus b2 up until bn you get b. And so the question is how do you do multi part how do you do addition in a multi-party setting more precisely what we want is we have secret shared a we have secret shared b how do you compute a plus b. So it's actually really simple to do that what what you do is each party right does a local computation all they do is they add the two local pieces of data that they have and then the broadcast. The result so p1 basically adds a1 and b1 to get c1 and p2 does a2 plus b2 and p2 gets c2 and so on. So p1 to pn now have c1 to cn and they just broadcast c1 to cn and if you add up you know c1 to cn it is basically a plus b. Because I guess I guess you know why right because c1 is a1 plus b1. Therefore c1 to cn the addition is the addition of a1 plus b1 and like the addition of all of that. So so so addition in multi-party computation is pretty simple operation. There is there is no computation that happens between parties and is just a local you know a local one ad and then a broadcast. So that's like a really simple protocol. So this is what's called the spdz protocol in multi-party computation often pronounced as speeds. So just to make sure that I have everyone here in the room you know you do this. So ad x and y is share 0 is x dot share 0 plus y dot share 0 mod q share 1 is x dot share 1 plus y dot share 1 mod q. Here we assume that there are only two parties. You can of course generalize this two n parties and then you return a private element with you know initialize with share 0 and 1. And that will contain the result of x and y like the addition of x and y. Any questions so far yeah. Yeah this is like can be any arbitrary piece of data however you wish to represent it. Yeah so this is like really like a very granular building block right like yeah. It does not. Yeah I'll come to that but yeah I'll come to that. Yes. Yeah so in the spdz protocol or the speeds protocol which is the one that I'm describing. And bear in mind that multiparty computation has a number of different protocols so we are just going through one of them. In this particular protocol you can't really divide so you have to be sort of clever. What you have to do is basically figure out how to decompose your machine learning system such that all of the division operations are not really privacy centric. Right and then that basically all the division operations are are are public information and you keep only the multiplicative parts private. So so in the end sort of building a holistic system actually requires you to modify the the machine learning algorithms as well because you can't do division here. So you have to kind of bring them both together. Right not covered in this talk but just sort of you know to give you a flavor of the kinds of things that you you know. You have to do actually that goes to your question as well. Often what you end up doing is either either the division is something that you that you keep public. So for example if you're building a convolutional neural network right and what you have to do is rather than do a max pool you can do an average pool.   You can divide and therefore therefore people will know the size of your average pool filters like that will be public information. Right but you can still compute the average pooling in a way that you don't know the inputs or the outputs. So that's the kind of thinking that you have to apply in order to sort of transform your ML algorithms to be able to use this.  Then you like you know then they are naturally sort of stored in multiple like locations. But you could also sort of have a different model where maybe maybe these are just like different VMS on the same like cloud system. Such that you know if you one VM is compromised does not mean like your whole system is compromised. So that requires like a more holistic thinking of. Yeah yes it doesn't matter where they actually set like these are the conceptually you do this. You can adapt them to sort of any physical physically they can be anywhere. Okay so so addition is simple then that's we're left with multiplication. So the multiplication basically is you know if you have secret shared X and Y how do you compute X times Y. And this is sort of this is perhaps the more the most actually this is the most intricate part of of my whole talk actually.  And then you add them up you will not the result will not be the product of the two whole numbers. So so we are like this is the setting you have parties P1 to PN you have the shares a you have the shares X and Y. Secret split and you want to compute X Y now in order to be able to do this there is sort of a special like requirement that the protocol requires. So what the protocol requires is that it basically requires a triplet a triplet of a B and C such that a times B is equal to C. So any random numbers a B and C which fulfill this property that the property is a times B is equal to C will do. So you need like a triplet like this and you need to have it secret shared amongst the parties. So basically you end up with this you have all of the parties P1 to PN each of them has X1 to XN and Y1 to YN and they want to compute X times Y. And they also have these sort of triplets they have even B1 C1 you know P1 has even B1 C1 P2 has a to B2 C2 and so on. Now the sort of the multiplication protocol goes in the following way. Now the first thing that you do as a first step is each party takes computes this quantity you know X1 XI minus AI for each eye. So party P1 computes X1 minus A1 and everyone else does the exact same thing. So they basically it's a local subtraction very simple step. And once they've done that they broadcast the result. So X1 minus A1 is broadcast and then X2 minus A2 is broadcast. And what you do is you take all of this and you add it up and you get this quantity X minus A like the full number you know X minus A. And for the time being I'll call it K1. So this number K1 is a public number because you broadcast all of these you know tiny pieces of information. Everybody knows what's K1. So that's step one. Step two is very similar to the previous step. What you do is YI minus BI you compute YI minus BI locally. So it's a local subtraction again and then you broadcast the result. And whenever you broadcast the result you end up with a public number we'll call this public number K2. So K2 is basically Y minus B because you know if you add up all of the splits of Y like Sigma YI is Y and Sigma BI is B. So K2 is Y minus B. So that's the second step. And the third step so just I have sort of the first two steps you know in the upper half just for your reference. So that's where we get K1 and K2 from the third step is the one at the bottom. So the third step is each party PI right.  So you take you know each of them has CI the CI comes from here. If you're if you're wondering when we started off we had this arrangement. Each party had XI YI AI BI CI right. And like I said before you know if you take the whole numbers A and B you multiply them you get C. So now we are here and what each party does is that they take their CI and they add it to these two other quantities. These quantities are K1 the public number which you got in the first step times BI plus K2 which is the public number that you got in the second step plus AI. And then you get this other local quantity let's call that CI right. So now P1 to PN have Z1 to ZN. So that's the third step. And now what you do is you pick any arbitrary party. So I just arbitrarily picked the first party and the first party what did what what what he does is he basically takes CI or Z1 in this case and adds K1 times K2. So like the product of the two public numbers is added. So just bear with me. We're almost done. This does get somewhere. Actually what you do next after this is you broadcast. Right. So everybody broadcasts their ZIs which all look the same except for the first party. The first party took their CI and then they added their added the sort of the public product K1 and K2. Now if you go home and sort of do the algebra if you do the sum of ZIs right it'll turn out to be X times Y. So in this like entire process you can sort of verify for yourself that no private information was ever exchanged. Everyone had sort of the pieces of you know X, Y, A, B and C and they all do like sorry. And they all do this sort of local computation which is usually just a subtraction and an addition. Right. And all of the subtraction and addition it just happens with their local pieces of data. And then you end up with the ZIs and that is what you broadcast. And once you broadcast you get sort of that's how you get the product. So sort of if you you know for some people like a code snippet might be a better way to sort of understand. So basically the class that we were writing private element you can add a multiple method to it. So mal X, Y is you generate this triple. So here's where you have like a caveat. Now you have this dependency on this gen mal triple method. Right. So what gen mal triple needs to do is it needs to generate a random number A and a random number B and a multiplication of A and B which is A mal B. And this has to be sort of cryptographically secure. And you can't reuse the triplets. So each multiplication basically uses one triplet. So you can you know pre generate these triplets in advance.  That's basically your K1 and K2.  You add them up and you basically get the product of X and Y. So we were here right like now that you can add and multiply you can evaluate arithmetic circuits and yeah you all sort of spotted the problem here is that you know you can do division. And that is sort of that is where the machine learning aspect of crypto ML comes in is now you have to sort of modify your ML algorithms such that they can work and be private even if the division operations are not private. And so here is a sort of here's a reference implementation for the speed Z protocol the SPD Z protocol and like I said earlier there are multiple ways to do multi party computation. This is not the only protocol. So there's other protocols listed them here and you know if you depending on your particular ML algorithm it might be harder or easier to sort of use one of the others. One of the other protocols so that kind of so we are past like the most technical part of my talk. I just want to sort of highlight this project it's called open mind so open mind is basically it's an open source project where. It's really maybe has it's very promising it's not there yet but the promise is that it might just be the sort of the first practical implementation of a lot of the concepts that I went over. So open mind is like it's not a company there is no ICO or any you know shady business is just like a Linux style open source project. It's a word play on open source actually so like you know open mind like you mind data in an open way so yeah. Look them up but open mind basically where they are at right now is they have essentially two big components. There's what's called sift and grid so sift is their sort of portable deep learning framework which compiles like deep learning graphs into actually into a variety of like devices other than like GPUs. And then great is basically a decentralized like compute network where which helps you with all of the splitting and sort of you know sending information across multiple nodes and managing all of that. And what's really interesting about open mind is that they take all of these concepts and basically add like money to it. So what you can do is you can like promise payments for training so it works in the following way. You like all of this is very fluid as I speak but roughly speaking you can add like open mind basically adds crypto economic incentives for training and privacy. So if you have you know spare compute power you you take a share of data and then you train models on on your particular share and you get paid. And all of the payment and the management of the models and sort of like the encryption all of that is encoded into the smart contract. And you know the idea is that for people who want to get who want to train models they sort of sort of upload money to the contract and then kind of other players in the ecosystem. The ones with spare compute they sort of they you know execute the contract and then the train some of your data. It's not there yet but that's sort of like the vision for open mind there you know building a lot of the component pieces as I speak. But if you're interested in this kind of stuff take a look. And yeah so my call to action really is if you're a data scientist you know learn some cryptography and then come talk to me if you're interested in some of this. So yeah that's that's all I have for you guys and happy to take questions if you if there are any. Yeah. So the field has to be the you know the parameter Q is a large prime number and B can be actually any random numbers. So. Yeah. The number Q at. Yeah. That's a large number. But it can be anything. Like. Excellent question. So yes. Like yeah. As you probably noticed you do all of these operations on integers. Right. So if you want to like actually train models and you know your models have floats you have to basically pass them through an encoding function. Essentially what you do is you convert your float to an end by multiplying it by you know a large number such as a million or 10 million depending on sort of the depending on your bit space essentially. And then you have a corresponding decode function. So you encode it by multiplying by let's say 10 raised to 6 you decode it by dividing by 10 raised to 6 and that's how you go between in sand floats. Yep. Yes. The bigger problem is that around Japan. Yeah. Yeah. Yes. So like let's say you have an incoming batch of like images so let's say 256 by 256 by three images. And let's say you develop like a convolutional layer with maybe 32 filters. Right. So the number of multiplications is 32 times like the number of convolutions on each image times the number of images in a batch. Right. So like that many multiplications. Now if you do it in a naive way that is going to be intractable turns out that what you can do is you can sort of collapse some of that multiplication. Not all of them have to be private turns out that only a tiny subset need to be private and still you can you know preserve privacy. So those are the kinds of tradeoffs. Yeah. So if somebody stole this database of encrypted salaries and they know the distribution of salaries in the real world can they not effectively convert the input values for each individual user and assign them back. You've been in the differential privacy setting. The one where you compute the sound. Yeah. So you don't encrypt your salaries there. You. Yeah. There's no encryption involved. In fact. So what you do is basically. No. They have one. For this. For this. For this. For this. For this. For this. For this. For this. For this. For this. For what are we conclusion database often cookie. Yeah. They know. Mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm mm. So the answer is no. And the reason is because sort of the test for whether you have a valid encryption scheme is that these kinds of analysis fail, essentially speaking. Basically, if there is a one bit difference between the distribution that you know from the real world and the actual data that was interpreted in your database, the single bit difference, like a single bit of difference between those two real sets, create the encrypted ciphertext to be completely indistinguishable from any arbitrary data set that has gone through encryption. So I guess the requirement is that data needs to be sufficiently varied. For homomorphic encryption. Say if there are 10 people who have a salary of 100 and one person who has a salary of 300, that is pretty easy to guess about. For homomorphic encryption, no. Because the result of this encrypted database with 10 people having $100 a salary and $300, like the encrypted version of that data set, will be completely indistinguishable from another hypothetical data set where, let's say, everybody has a salary of $10,000. Or maybe everybody has a salary of $0. Or even actually, the point is that it will be completely indistinguishable from another data set, which is exactly identical to the first one, except that maybe the last person had a salary of $101 instead of $300. And I think that requires a key this long enough that the ciphertext space, the big number that you can't cover, that you chose the ciphertext space. So that is extreme, that's a stream cipher thing. Like that's one band. But if the ciphertext space is the same size as the plaintext space, in this case, you should be able to tell the difference. Also, you're not only doing these operations more computer-like, they'll all be the same, the same size.  I guess my question out there was that you have two people who have three every, those that produce the same ciphertext for different ciphers. Oh, yeah, great question. So that actually depends on the exact monomorphic encryption scheme. So there's some where you add a bit of a randomness there, and that's how you hide these kinds of attacks. Any other questions? For fragmented learning, sorry, fragmented learning, where you're sending off the models into individual local computational sites, and then you're collecting some kind of data which you're putting in the final model of the mother ship in some sense, right? Yeah. In that, you have to retrain, like the model has to be the same. That becomes a big problem, because a lot of times you're involving the model, and you have to run the same model through all the data again, now that you know the model, between the main model. Which means each of the local guys have to keep all the data all the time. Not necessarily.  So you already have the gradients for that subset. You actually only require the gradients for the new data, that's fine. Looks like no more questions. Thank you very much.


BAND A band is a usually small group of musicians who play popular music together. BECAUSE BECAUSE means for the reason that. BIRTHDAY Birthday is the day when someone was born or the anniversary of that day. BORD BORD means tired and annoyed by too much of the same thing or not interested. DRUM A drum is a musical instrument that is played by hitting a layer of skin or plastic with sticks or with your hands. EXERCISE Exercise means physical activity that is done in order to become stronger and healthier. FIGHT Fight means to use weapons or physical force to try to hurt someone. PARTY A party is a social event in which entertainment, food and drinks are provided. POLITICIAN A politician is someone who is active in government, usually as an elected official. PRESIDENT A president is the head of the government in some countries. PUPPET A puppet is a doll that is moved by putting your hand inside it or by pulling strings or wires that are attached to it.  SHOP SHOP means to visit places where goods are sold in order to look at and buy things. SORD A sword is a weapon with a long metal blade that has a sharp point and edge. UNUSUAL Unusual means different or strange in a way that attracts attention. USUAL Usual means done, found, or used most of the time or in most cases, or normal or regular. WATCH Watch means to look at someone or something for an amount of time and pay attention to what is happening. In the video, Anna says that what she is doing today is different. Listen to Anna telling why she is doing different things. This is a drum band. I never listen to a drum band. But today I am listening to a drum band because it's Shakespeare's birthday. sword fight But today I am sword fighting because it's Shakespeare's birthday. There are many things to do in Washington DC. Some usual, some unusual. Today I am not bored because it is William Shakespeare's birthday. These sentences show a cause and effect. The cause is William Shakespeare's birthday party. The effects are listening to a drum band, sword fighting, and not being bored. Now you try it. Tell about a reason you are studying English. Why are you studying English?


So welcome to the next talk. Please silence all your phones, all your devices, laptops so we can all enjoy the talk. The next talk will be by Frank Karliczek, the founder of NextCloud, about why the GPL is great for business. Thanks a lot. It's really awesome to be here. It's a bit scary in this huge room here to give my talk, but I'm also very happy that so many people are interested in the topic. So first of disclaimer, this is not about NextCloud. I mean, this is at the end of the first slide, but this is not NextCloud talk. So if you want to learn about NextCloud, sorry, that's the wrong talk. I'm going to talk about licenses and business models and what it means for free software. So my name is Frank Karliczek. I was involved in free software for a long time, over 20 years, all kinds of projects. KDE, for example, where I was involved for a long time, found something called Open Desktop Org Network. Some of you might still remember it. Something called the User Data Manifesto. It's about basic rights regarding user data. I also founded OwnCloud, a NextCloud, a successor. I work with the W3C, do all kinds of other projects with the Openform Europe, and also nowadays helping the United Nations to come up with their open source strategy. So as I said before, I'm going to talk about more theoretical concepts, not really NextCloud, free software and open source licenses as an introduction. I know a lot of talks about licenses, especially here at FosterM, but I think it's important for what I'm going to say later to set the stage here a bit. By the way, I'm going to say free software and open source as synonyms here, so don't kill me. I am aware that there are tiny, tiny differences. I'm not covering that. So for me, for this talk, they are the same. Then I'm going to talk about open source business models. And then, of course, the main topic, why I think GPL is great for businesses. As you know, there's a bit of a controversy at the moment. Some companies, some former open source companies, change their license to proper licenses to safe open source and safe free software. And my talk here is actually tries to make the point why I disagree with that. And I think it's a mistake to abandon free software. So in the early 80s, this guy, I'm sure you all know him, Richard Stallman, came up with something that's called the Four Freedoms. So the Four Freedoms tries, from a philosophical, ideological perspective, try to define fundamental rights that people have regarding software. So the first freedom is to run a software program, software as you wish for any purpose. So there should be no restriction in running the software. It's not like you can't run it for this purpose or something like that. If you have a software, you can run it as you want. Then you also, the second freedom is the right to study the program, how it works, to look into the source code, to see how it works, to learn from it, and of course, and also to change it. The third freedom is the freedom to redistribute copies of the software to your neighbors. As you can see, this is the 80s. I mean, there's distributing software to your neighbors. I think nowadays we do this through the internet, but okay, you see the point. The fourth freedom is to redistribute the copies of your modified version. So if you improve it, if you change it, you also have the freedom to redistribute it, the changed version. So also, source code is a precondition for that. So these were the four freedoms that came out of a more philosophical, ideological perspective, freedoms that everybody should have regarding software. Then in the eight of the end of the 90s, of course, the Open Source Initiative came along and they created the Open Source Definition, which some different rules, but I would say they're in spirit the same. Of course, they're written a little bit different, but in spirit it's basically the same idea, that you have the right to freely redistribute software, that you always have the source code available, that you can do derived works, that it respects the integrity of the original source code from the author. It doesn't discriminate against persons or groups. So it doesn't say, well, everybody can use the software, except this group of people. It doesn't, it's not allowed. And also, it doesn't discriminate against field of endeavor. It doesn't say, well, everybody can use it, but not this for this purpose. Everybody should be able to use it. The license should distribute it. It shouldn't be specific to a specific product or not restricted, restricting other software. It can't say, yeah, we were allowed to use my software, but if you use my software, then you're not allowed to use this other software, something like that. And it must be technology neutral. So these are basically similar ideas from a philosophical perspective, rights that people should have. Of course, then the question is how do you, how do you bring this to life? How do you enforce that? How do you actually live that? And for that it's important to understand like the concept of distribution. Because the idea is that someone creates something and then has the ownership of that. There's a concept that exists in basically every country. A person writes the software or takes a photo or writes a text or something, and then the person owns it. And then if the person gives it to someone else, it gives this software to someone else to get it with a license. It means, hey, this is what I did. You can have it, but these are the conditions that I'm telling you this is how you can use it. And for these licenses, there are actually different types. So usually a good way is to describe this with this spectrum here. You have public domain on the left-hand side and total trade secret on the right-hand side. So the left-hand side that goes through that, the left-hand side that is public domain, the idea is that if I write software, I give up control, I give up ownership completely, I give it to the public. It's now owned by the public domain. That's common in academia. It was very popular in the 60s, 70s, and 80s, but it's a concept that's actually very difficult in some countries, specifically in Germany. It's not even possible to give up ownership over your software. So that's more like something that's not really practical. But the next one are the permissive licenses. This is something where you still keep ownership of the software that you write.  That's basically a summary. So you can hear the software, do whatever you want. Technically, I'm still the owner, but everybody can do whatever they want. Just don't sue me. Again, very common in academia. In the 70s and the 80s, and this is a very common license types. Then in the middle, we have something that's called a copy left licenses. It means if you make a derived work of this and distribute it to others, then you have to provide the source code under the same license. So that's typical, the GPL and HGPL-style licenses. Again, 80s and 90s, and that's something that was invented by the Free Software Foundation. Again, Richard Storman. That's something that's in the middle. And then, of course, the next point are the proprietary licenses, which they're of course different. There are really different conditions in there, but usually there's something like you can use it if you pay me. That's usually what's in the licenses. Of course, you don't have any rights to modify it or to study or redistribute or whatever. So this is the license model of Microsoft Oracle, Google, Apple, and so on. And of course, trade secrets, then the next is the last extreme, which is like, well, I have something, but no one can see it or know it. That's completely restricted. Okay, so these are the different license types that tried to enforce those four freedoms and these ideas that were postulated by Richard Storman and the OSI. Okay, and that's great. And these are basically the fundamentals of our community here, I think. And that's great for us. But of course, there's also a question, can we do something that does not only work for us, but really is changing the world? It's really moving these ideas forward. And well, there's in the 90s, this guy, Linus Torvalds, writer, Linux Colonel, and he basically had this quote, what's the goal of everything? World domination. And this is a bit of a joke. I mean, he really meant it as a joke in the 90s. And he actually said in an interview that he stops using it, because nowadays it's sort of real, but at a time it was meant as a joke. But I want to say with this slide is actually, it's nice that we have these ideas, these free software principles, but we want to move this forward. We want to bring it to the rest of the world because we think it provides freedom. But of course, if you really want to have a free software and open source revolution, then the question is how do we get paid writing free software? Because I mean, there's a lot of, it's a huge volunteer community here, but the question is also, is there a way to really work full time on free software and open source? And then a bit of a personal story, as I said earlier, I was involved in KDE for a long time. KDE is of course, as you know, it's one of the biggest open source communities. It's completely community-driven. There's no company behind it. Everything is volunteer-driven free software. But there's an idea I discovered over the, problem I discovered over the years, which is that a lot of people dropped out of the community because they've usually joined the community when they're students and they have time. And then later when they're done with their studies, they start a full-time job and then they need a real job and a real job often means writing proprietary software. So there's a lot of rotating team members. And there was always the idea, hey, is there a way to pay people to write free software? Because I think this is a, this is a, yeah, we need to solve that to really conquer the world and reach the world domination, basically. Okay, but that's a bit of a problem. So how can we get paid for doing free software?  But what do people get back in exchange if the licenses that everybody can distribute it to everybody, including the software, basically for free? So what is the, how does this business model here looks like? So what do people get? Why should they pay for something? And this leads me to my second chapter to talk about open-source business models. Open-source business models, that's like a hot topic forever. Actually, I had a relatively easy job because I could upload a Wikipedia page. So there's a Wikipedia page listed all possible open-source business models. And it's actually funny, you should look it up. I've also listed most of them here in the talk.  But yeah, let's go through them.  But let's first, some more theoretical ones. First is like selling branded merchandising. So it's basically the idea that you have a company with lots and lots of developers and you're writing this great piece of software and then you go to events like FOSTEM and then you sell like t-shirts and mouse pads and coffee cups and this paste for all the developers. Yeah, that's a nice idea. I'm not really sure this really works. I don't know a single example where selling merchandising really pays for writing free software. Maybe a little bit, but not really. The second open-source business model that exists is selling software as a service. So this is for software that's hosted on server infrastructure. And the idea is that you have a company, an organization which employs the developers and they write the software and then give it away under a free license. But you can also go to this company and say, hey, I want to have a hosted version of that. It's a little bit like WordPress.com. We have a company who is providing the software under a free license, but you can also go to the company and get a hosted version of WordPress. And this is how they pay for everything. So that exists, but it's not so easy and it's also getting harder and harder nowadays with cloud computing. Well, we'll talk about this later a bit. The next one, that's a bit like unclear, I think. It reads partnership with funding organizations. So the idea is that you have a free software company or organization which somehow joins like the Red Cross or Amnesty International or something like that and gets like funding through these channels because there's a better, bigger cause for everybody somehow. I actually don't know a lot of examples for open source development which is funded through something like that. But theoretically, I guess it exists. The next possible open source business model would be selling certificates and trademark use. As you know, selling the software license doesn't make sense but there could be other things that could be sold. For example, if the community who is, I don't know, developing Perl could sell certified Perl developer certificates or something like that. Or they can like, if you do, if you're the Apache web server project then you can sell like maybe the Apache logo that people can put on your website. This website is powered by Apache and they could sell it. Again, I'm not really sure if this is really successful and this is really good enough to really pay lots of developers. Next one are voluntary donations. So it just asks the users for donations so that's something that exists. I know that the KDE community and the GNOME community nowadays they really have working fundraising. They ask their communities for donations and they actually nowadays collect quite some donations and that's nice. But to be honest, I mean with these donations that you can actually pay a few people but if you look at the overall community, the community who is writing GNOME, like for example, they're like hundreds of people and like 99% of them are still volunteers and unpaid. So that's, at the moment I think no way to pay this whole community with donations. The next option are bounty-driven developments or crowd sourcing. So the idea here is that someone is using a software like KDE or GNOME or NextCloud and you really like it but you're really missing one important button somewhere. And then you say, well, I'm happy to pay 10 euros for this button and then someone else comes along, yeah, I'm like this button too, you pay $20 and you have like already $30 and at some point you have so many dollars that someone actually implements this button. That's something that exists. I mean we at NextCloud for example also have a bounty program and it works a little bit but of course it's far away from like funding everything. It's just too far away. And of course there's also the problem that people in this scenario only pay for features but no one really pays for maintenance or refactoring or packaging or something like that. The next model that's possible is advertising. So you could say, well, we are doing this great software here and we just include advertising banners in our software and people look at the banners and this is how we make our money. Yeah, I am sure this would not be very popular especially in this community here, especially because if it's free software someone can remove the advertising and just rebuild it and redistribute it without advertising in five minutes. So this is not very successful but I actually think there is one, there's one very successful open source software which is actually paid like that and this is Firefox. Firefox as you know, for Mozilla, has a huge team behind it with actually writing the software. There are no direct advertising banners in Firefox but Firefox is using Google as default search engine, basically advertising Google services and Google is paying them for that. So it's in a way it's actually free software paid by advertising and from Google in this scenario. The next theoretical scenario is delayed open source. So this means that you have a software and you're paying customers get the latest version but your free software community only gets like the version from before. That's an interesting way to make money with free software. I think there is something called GhostScript, PostScript Interpreter from I don't know from the 90s which did something like that, I'm not sure if they still do it but this is theoretically possible but it's definitely also not a model that's successful or working. Then there is something called open source at end of life, that's a weird one. The idea is that you actually have proprietary software and you make your customers pay for it but you have the promise well if the product is discontinued or if the company goes away well then release it as open source. That's of course not really an open source business model or open source free software community at all but it's in the list. And now I'm getting to the models that are a little bit more successful and realistic. The first one is selling professional services or consulting. This is actually which exists. The idea is that you have a small organization, small company and they're developing some software for something, they're a bug tracker or forum software or something like that and it's free software, everybody can use it. And then customers or companies go to them and say yeah, this is great but I want to have a feature or I want to have one specific bug fixed or can I get a workshop or training or something and can I pay you for that and this is what I do. They're basically consulting companies, professional services companies who also basically have an open source product that I don't really make money with but I use the open source software to stimulate their consulting business basically. So this is something that exists but I have the last point here, it does not scale because at the end of the day no one really pays you to write your software to maintain it, to refactor it, to have innovation there. You're really paid for these other services. So this is something, I don't think there's an open source company which has this kind of business model which is bigger than 50 people or something because at the end you're just a consulting company. You're not really doing, you're not really, you don't really have a free software business model. Then the next one is of course open core, optional proprietary extensions. So the idea is that you have a product that is free software, open source, but it has limited functionality. And then there is another version of this software, usually called something like Enterprise Edition which is then the real version. This has all the functionalities but this is not free software. This is something you just have to buy. You have a license, you have a license fee. It's just normal, proper, terry software business and the community version is just like a teaser. It's just like a marketing tool to make people hook, to make them people try it. And then if they really like it, then they think, oh, this is nice, but now I want to use it in production and then realize that a lot of stuff is missing and then they buy the Enterprise Edition and then it's basically normal, proper terry software business. Nothing to do with open source anymore. I'm not a big fan because this is not really, this is basically using free software as a marketing tool. That's all. The next possible business model is dual licensing. This is something where software is available under different licenses. Usually you have something like GPL or HGPL which forces your free software community users to give back changes they make on the software. This is like the nature as I explained earlier, the GPL enforces that everything you change also has to be released under the same license again. And then sometimes there are companies who say, well, I don't really want to open source my changes. And then the company can say no problem, just buy this other license from us. Then you get it under our special license where you don't have to open source it. So it's basically a paid way to work around the GPL. This is used by some companies, by the acute company, for example, and some others. It requires complete ownership. So the company who does it needs to have the complete ownership of the code. And if you have a community who contributes, they all need to sign a contributor license agreement to give the full rights on the software to the company. That's of course a restriction and you are, because of that, it's also controversial. Now I'm coming to the last Open Source Free Software business model and it's actually the most successful one. So this is selling support subscriptions. And that's a business model that's used by Red Hat, by Suzy, by NextCloud, by many others. So the benefit here is that this is scalable because you don't really sell hours or engineers. You sell something more like an insurance. It's like, hey, you used this software in a production, in a production way. And if something goes wrong, I need someone to talk to, someone who helps me, who provides me with a security fix or whatever, something like that. All right, if you look at the links distributions, you can say, well, I use maybe CentOS and that's fine. But then, yeah, maybe if I'm a bank and really depend on the software is really working, I want to make sure that I can talk to someone if something goes wrong. And then maybe I get a Red Hat subscription and then I basically have the same software, right? Well, and CentOS are more or less the same, but I have the support, I have the guarantee that someone maintains my software. And this is what's sold here. And this doesn't require code ownership, right? Red Hat doesn't own the whole Linux stack. Suzy doesn't own it on NextCloud. Also, we also don't own all the code of all the apps, nothing, and that's not really needed. To give you a little bit of an example, I have two slides here with the NextCloud subscription benefits. This is just an example here. This is what our customers are paying for. And it's more or less the same for Red Hat and Suzy and all these other companies. And you get, you basically have a job insurance for the Suzy admin, right? If you're an adventurous Suzy admin, you just download the zip file and you use it. But if you really want to make sure that someone helps me, something goes wrong, then this is the subscription benefits you help you. And you get all kinds of things. You have access to the engineers. Maybe you have a service level agreement where someone helps you 24-7. Maybe you have long-term support. This is also something we do where if you really don't want to update your server, you can really buy like 10 years support for 10 year old software. The similar that Suzy and Red Hat done the same. Maybe we help you with migration, something like that, influence on the roadmap, stability, access to some special documentation. Maybe you have certificates, that is GDPR or HIPAA compliant, something like that. So all kinds of benefits you get additionally to the software if you run it in a mission-critical way. So this is the best working open-source business model at the moment. So from all the business models out there, if you go through the big open-source free software companies, that this business model is the one that works best. And, well, the best example is of course Red Hat, right? This is like the stock price. Red Hat, I mean, nowadays owned by IBM, of course. But last year, it had 13,000 employees, 3.4 billion revenue with the subscription business. And IBM paid like $34 billion for IBM. So clearly, this business model with selling support subscription is actually working. So I would say it's the best model. Unfortunately, there's a new enemy in town. And that's the cloud. So the cloud means that less and less companies actually have their own infrastructure. Less and less companies have their own MySQL server in their basement. They just buy it as a service from the big cloud companies. So they buy some storage service or some database service or whatever from the big cloud companies like Amazon, Microsoft, and Google. But if you really buy MySQL as a service from Amazon, then you don't really need a support subscription from MySQL anymore. Because you just get it as a service from Amazon. They do everything you need. No one, you don't need any help with upgrading. There are no security patches. You don't need to do any workshops or scalability issues. They take care of everything. It's just a service. And also, Amazon and Google and Microsoft themselves, they have enough engineers that they can do this without having a support subscription with the software vendor. So Amazon doesn't pay MySQL or someone else to actually support the software because they can just do it themselves. And that's a real threat. That's a threat that actually goes against the business model of the most successful open source companies out there. Because this model with support subscription is really no longer needed if you move everything to the cloud. And this is one of the reasons why we see these trends where software companies like Redis, for example, they introduced the common clause, which means, yeah, you can have the software, do whatever you want, but it forbids to sell the software or for hosting or consulting without a commercial license. That's obviously a restriction of the service which obviously goes against the four freedoms. And like Simon Phipps, at the time, the president of the OSI correctly said on Twitter, Redis just went proprietary. Okay, so this is obviously a change. There's interesting marketing going on, right? People say, well, we are saving open source here or something, well, not really. This is basically, you make your software proprietary because as you can see with the restrictions, you're trying to protect yourself against the Amazons and the Googles and the Microsoft Clouds out there. MongoDB, the same, they introduced the service site public license who also says anyone who wants to offer it as a service needs a commercial license or open that complete infrastructure including billing, backends and everything which is usually not very practical. So again, this goes directly against the big cloud companies. And again, that's obviously a proprietary license. That's no longer free software. Cockroach DB the same, they introduced a business source license. Again, no commercial services allowed without a commercial license from them. Again, same idea, proprietary. Okay, and as I said, there's interesting marketing going on to explain this and to justify this. For example, there's an interesting article on TechCrunch from 2018. The headline is common clause stops open source abuse. That's interesting, I think. It basically claims that open source is abused somehow and it means that the common clause somehow helps with that.  And so this is basically saving open source by killing it. And it's like, yeah, we're saving open source by making everything not open source anymore. So, but that's what's going on at the moment. And it's an interesting marketing challenge to twisting words around. So I personally think this license changes are not needed and they're also harmful. And I think, and this leads me to the main part of my talk because I think that a GPL is actually great for business and there's no need to make stuff proprietary because the free software and open source community actually works great. There's lots and lots of examples for that. So I now want to go through some reasons why I think that GPL is actually great for business. The first point is, I think it creates the best communities, the best contributor and user communities because the GPL enforces that all contributors are equal. Okay, it means that there are no one is really special. If you look at the examples that I mentioned earlier with Red Hat or even Next Cloud, like the company like Red Hat or Next Cloud, they have the same rights with the code than any other contributor to. So everybody can contribute to the code base and gets the same rights back. No one is special. The company, if there's a company behind the project it's not special in any way, which means everybody is in the same playing field which is great to build a community. I personally wouldn't contribute to something that's owned by another company which will give them some special rights somehow. I don't know if you're in the same playing field and then it's fine. But I don't know why I should like enable someone else to make a great business and I don't get the same rights back. So that's great for building communities to GPL. Second reason is with GPL software, forks are always possible, which means no one is really special. Like if like Red Hat, for example, is doing a bad job with their links distribution someone can just take it and fork it and make it better. Or if we as the Next Cloud company, if we are doing a bad job with developing our software anyone can just take it, fork it and make it better. And this forces everybody to create the best results. And I think it's a great benefit of the GPL. Next reason is the GPL enables the global upstream and downstream network. That's only possible that we collaborate with other projects and we exchange codes and ideas in all directions. Everything that makes us so successful standing on the shoulders of giants. And it's only possible because we all use the same fair equal license like the GPL licenses. It makes sure that there are no code islands. Next reason is from a company's perspective I think it's really relatively easy to find the best developers because I think the best developers they like to work with free software with open source. So from my perspective, finding a good developer when I say hey you can contribute to this, your job is to contribute to this free software project that's way more attractive than you have to write this proprietary banking application or whatever. So actually GPL is good to attract great developers from a company perspective. Next point is everybody wants to build an ecosystem nowadays. If you build a software, if you build a phone or a car or a coffee machine or whatever, everybody wants to build an ecosystem of extensions of plugins of connectors and everything else. And again, the GPL is great to enforce that everybody is equal and this enables people to write connectors and apps because no one has a special prioritized position somehow. The next point is that I think that GPL enforces good community governance. There are some projects like the Kubernetes community or the OpenStack community who they have more like MIT, BSD, Apache style licenses and they really need a lot of governance and like steering committees and foundations to make sure that everybody contributes upstream that no one really takes the stuff and makes it proprietary, runs away. So they need a lot of governance around it to make the community work. And I think if you base your software in GPL then lots of those stuff is directly built into the license and you don't have to care about it anymore. If you look at the Linux kernel, for example, the Linux kernel doesn't have any steering committees or any weird forks by anyone. The GPL enforces that everybody is the same playing field and everybody contributes upstream and you work together in a nice way. The next point is GPL makes sure that there is no vendor login, right? Again, if you look at like Red Hat again or Suzy or NextCloud, you can use the software. That's great. And if you want to have a support subscription to help you run it in an enterprise environment to make it really scalable and support and everything you can do it. And if you no longer need this or if you think the service is bad, you can cancel the support contract and keep on using the software. There's no real vendor login, right? There's nothing, yeah, I have to pay every month otherwise my company falls apart. It doesn't exist. There's no vendor login with GPL software. And again, this is fair relations between customers and suppliers. Happy makes happy customers which I think makes a good business at the end. That's just fair for everybody. There's also no need for a company to really own the code. I mean, there are some examples where you need to own the code. For example, if you're venture capital invested company and you want to do the big IPO or something, then it's always great to show analysts, yeah. I know all this intellectual property is owned by me and this makes us so valuable but for real subscription, support subscription based business model, we don't really need to own the code at all. The value is in the people. The value is in the people who are doing great work and great services and there's always idea that we need to own the software and license the software. I think this is quite outdated. And again, if you look at Red Hat, who are I think very nice strategy with CentOS where they basically leave the software away, the complete RHEL software away under the CentOS label for free to everybody. That's quite interesting, right? This might be a surprise to a lot of business people. Why do you allow everybody to use your software without paying? But I think this is a great strategy because everybody's using CentOS now and then it's the de facto standard and then later you buy a RHEL subscription if you need the support. So that's a great strategy again. Again, completely based on GPL software. Customers can freely distribute their software and do whatever they want with it. So they like it of course. If the software is successful in one department, they'll give it to another department or deploy more users that can do what they want and they like it again. Of course, customer companies are forced that changes or contributions flow in and out of the companies. Which again is a good thing because it makes everybody contribute from the changes from everyone to make the better software. Another point is I think that copy left license are clear and well understood and tested. So that's a good thing because if you have a weird license by someone, no one really knows what it means but the GPL is actually a license that's very well understood and it's quite clear what it is. Copy left software can never die or disappear. If like the maintainer goes away or if the company goes away, the software is still here and someone else can pick it up and just keep on going. At least they have the same rights than before and it's an insurance basically. Software licenses like GPL v3 even has patent protection. That's again something that you don't have in a lot of other licenses which is actually very important nowadays. Okay, so I now give you lots and lots of examples of why I think that GPL is great. I want to give you like three more like real life examples and then come to the conclusion here. So as you might know, I did before next cloud this other project called own cloud where we experimented actually with some of those business models which I nowadays consider not very good and it might be helpful to show you some real life problems here. For example at our own cloud times we required a contributor license agreement from all contributors and need them to sign a contract because we needed this to do licensing and open core as I described earlier. Of course this led to the situation that the contributors were not really happy. Why should I sign the ownership of my code to this company? I'm no lawyer, I don't want to read this contract and this led to contributors unhappiness and leaving the project. That's a real life example of something not working. Of course also the employees at the time they were thinking that while I'm working for open source company but why I'm suddenly have to do this proper Terry extensions now that I'm not even, that I'm not really an open source of free software because the company decides well we need to do this to earn money but that's again not very nice for the employees. And also for the customers. Lots of the customers we had at the time they thought they're buying open source software and they were really surprised when later they realized yeah we buy this enterprise edition but that's actually not open source and it has a full vendor login and we are really disappointed when they saw that they're just buying normal proper Terry software and nothing to lose open source. Okay, so I gave you all those examples why I think that the GPL is actually great for business and why I think that there is no need to come up with this weird new proper Terry licenses and we can actually do everything with GPL and it's actually great for business. Okay, of course then the question is okay Frank is telling me that this is the GPL is great so why are actually all these MongoDBs and this Redis and all these others why do they actually change their license? So why is that? And again, earlier I showed you this article on from TechCrunch, Common Clause stops open source abuse, right?  I think an explanation for this whole move actually you can get it if you scroll a little bit down here and if you scroll a little bit down then you realize that this article is actually written by a venture capitalist who said doing 13 years I invested in a lot of open source companies like here's a list of there's like Redis, there's like Cassandra or Spring and some others and this is where they invested in all these companies and I say there's a dark cloud on the horizon the behavior of cloud infrastructure providers such as Amazon threatens the viability of open source. So I think open source is not threatened at all. I think open source is just fine. I think maybe this business model of this investor is threatened, okay? So maybe this is the problem here and open source and free software is just fine. So the summary is I think many software like Next Cloud wouldn't exist without open source and free software. This whole community is based on these licenses and I think we are doing just fine and I really think that we should not give up our four freedoms for the value of, for some fast money to make some venture capitalists happy. Thanks a lot. Thanks for the interesting talk. Are there any questions? Hello, thank you for your talk, it was great. I remember also your talk from last year. I also liked that very, very much. I love Next Cloud, quick question. I really took a focus on what you said about MySQL and Amazon AWS providing it as a service, right? And having also Aurora and well, other stuff. My question to you is that you currently run a business so you provide Next Cloud the way that you provided here. What if, and probably in the future I hope that it will be better for you in terms of finances, that it will be more profitable. What happens when AWS sees your profits, right? And how much money open source companies make and decides, okay, I'm gonna go aggressive here and I'm going to take over your market share. And because these companies are huge, are making billions, they can actually do that. They can bleed a bit, yeah. They can bleed a bit and take over your market share. What is the defense strategy to have viable open source companies like yours in this situation? Yeah, that's an excellent question. That's really to the core of the issue here. It's true that if Next Cloud becomes more popular, we might show up on the radar of these big cloud companies and then try to decide, well, maybe we offer some Next Cloud service and then basically, no one would buy our support subscription anymore. That's true, that's a danger. There are some things we could do, for example with trademark. So we can actually then somehow take away from Amazon the right to call it Next Cloud. That's something we can try. Then they would rename it to Amazon SuperCloud or whatever. Then they can still do it. I can still take our software and provide this service. That's true, but I don't know. I mean, what would be the alternative? If everything would be proprietary, then we wouldn't be in this position in the first place. So it's true that, and that's also part of free software that you give up control partly about the software and people will use it and not pay us and everything. And that's fine. I'm actually fine with only whatever. 1% of the company is actually paying us and the rest just not paying us. And you call this an abuse or something, but I think it's actually totally fine. I don't have a better answer for that. I don't have the big stick that I say, yeah, if the Amazon do this, then we hit them. No, I don't have that. We decided to give the software away under free license. So yes, they can abuse the software in a way they can fork it in with 10 times more developers, like take over the software. That's true, but I think that's just part of the game. Yeah, Common Cloud solves this problem by making the proprietary, which is bad, as I just described. Okay, we will go to the next question, maybe, so. I want to come to a similar point. You explained the advantages of the GPL and the problems in the cloud, but the copy left does not apply in the cloud. So why do not say a GPL is best? You have not made a difference between the use of GPL and HGPL. Yeah, so in my talk, I should have said that. When I said HGPL, GPL also mean HGPL. I mean this type of licenses. It's true that HGPL, by the way, next cloud service that is HGPL license for exactly that reason, the HGPL is better for a service side software, I think. Yeah, I'm not sure I understood the full question because the fundamental issue is still the same even with the HGPL. Hi, I have a question that might be very specific. I work in Germany, and I'm aware that the clause that says that you can't publish a software, somebody can use it, but don't sue me is not really true. Like if you are liable for what can happen if somebody uses a software, something goes wrong. And that is one of the reasons why companies can also be a little bit careful, not only regarding license, because like the GPL is not very popular in enterprises, but also fostering community contributions because they don't want to be liable for somebody else's mistake. So that has to be taken care of very carefully, and I just wanted to know if you have ever seen this issue or had some solution to have contributions and still not get sued. So that's a big question, I'm not sure I can answer everything. And also the fundamental questions about liability, I'm not a lawyer. So please talk to other people. Sure left like Karen or Bradley here are better for these questions or someone who is a lawyer in Germany, if you're based in Germany, I don't know. I can't answer this part. But I want to say is that the GPL, I can't, I can't, I don't agree that the GPL is not very popular in companies anymore. I saw this trend like 20 years ago, maybe still 10 years ago, but nowadays I really rarely have the issue that GPL or HGPL software is no longer accepted. You can always ask like, hey, do you have a Linux server somewhere?  No, it's fine. Do you have an Android phone? Yeah, it's GPL.  No, it's fine. So I mean the fact that people are so afraid of the GPL, I think it's, I don't see this anymore too much to be honest. I would like to ask you, so I don't understand really why licenses like the common clothes of the MongoDB license are, you don't have the freedom to use it as you want. I really couldn't understand, I'm sorry. Okay, so if you're a normal person and you don't have a company, you can still take software that is licensed with the common clothes and use it, have all of the freedoms to use it and to change it. And those freedoms are removed only when you are making money out of it. So why is it completely proprietary? I would say it's proprietary only if you are a company, but if you're a normal person, it's not proprietary. I think what I showed earlier in my talk, the four freedoms and the open source definition, I think this is the foundation or that this is basically the definition of what's proprietary or not. And all these server-side public licenses and common clothes and business source license, they violate these freedoms. And this makes it proprietary. I mean, I think that there's some interesting marketing going on and it's also sort of halfway successful in our community because these licenses, they target Amazon and Google and Microsoft and no one likes them anyways. But I mean, we have to be really precise. They are proprietary and they have usage restrictions and it's clearly set in the four freedoms and in the open source definition, there should be no usage restriction. So it's quite clear. Okay, we will come to the last question now. Thank you. As someone who left their job really to work on open source, I think for me, having that freedom is very important, but similarly I also continue to make an income. One of the questions that came up for me was, do you have a different strategy or do you think there should be different strategies when you're targeting non-technical or technical end users? Can you repeat again? I'm sorry, there is a huge amount of echo here. Oh, sorry. So the summary, do you think that non-technical commercial users and technical commercial users require different business models? I'm not sure I understand. I don't know why technical, non-technical person should make a difference with the business model. I mean, usually in a company, the software is like bought by the IT department and then by the procurement department and then some compliance department checks the licenses and then it's bought or not bought for the end user who is technical or not. I'm not really sure it should make a difference, but maybe I'm missing the point, sorry. Okay, now thanks for your talk again and thanks for all the questions.


Hello, thank you for joining me. I'm standing on a bridge above the M25 between Heathrow Airport and Chertsea. You may be able to see that bridge just there. That suspension bridge carries the railway line from Virginia Water down towards Waibridge over the M25. Now, people who are interested in railways do tend to notice it, because it's unusual to see the suspension bridge. But what they may also notice is that they continue along the M25 anti-clockwise, just down here, there's a little hill. And if you look at that hill closely, you'll see there's a miniature railway around the bottom of it. That hill is Cockrow Hill, and that is the home of the Great Cockrow Railway. So what I'm going to do now, I'm going to jump in my larder, which is parked here, and go for a little drive round the corner to visit the Great Cockrow Railway. So, the Great Cockrow Railway started life in 1946. It was set up by a man called John Samuel. But it wasn't at his present site. It was at his home called Greywood over in Walton on Thames. He had quite an extensive railway known as the Greywood Central Railway, built to seven and a quarter inch gauge. But then what happened? When he passed away in 1962, Ian Allen, the famous publisher of the ABCs, the train spotters book, he came to the rescue and he purchased the railway and moved it to this site we're going to today. It was a former piggery over near Chertsey in a little village called Lines. It was about a mile away from Chertsey. So, we're just going to continue along here until we come to the railway. So, in the mid-1960s, they began rebuilding the railway, starting from Hardwick Central. And it's gradually extended and got longer over the years to the point that you've got what we'll have to take. Quite an extensive railway. Here we are. You can see the tourist sign. It says Open and Steam Trains Today, which is what we're going to see. So, we're just pulling in now. You can just see ahead of us the new station building at Hardwick Central, which they've had built. And there's a few people there waiting to get on the train. So, we're going to go and park the car. And we're going to go and ride the two routes. There's two routes here. There's the Green Route and the Red Route. So, if you want to do all the track here, you effectively need to do both routes. So, that's what we're going to do here today. So, I've arrived here at the Great Cockerell in my larder. There's the station building, which is quite new. Certainly, when I last visited here, I think it was about 2008. I last visited. It's another plastic car in the car park. It wasn't here. So, what we're going to do, we're going to buy our tickets. As I said, there's two trips to Green Route and Red Route. We're going to do both. This is the new station building. The platform here has the feeling of being at a... That's a disused road, but it's not a disused road. And there's a tea route in there so you can... It's afterwards. I'll probably sit and have a tea and cake and watch trains go by, or it's a very nice thing to do anywhere like this. So, we're going to walk up here. It's even complete with signal. So, let's go and see what we can see. So, yeah, the tea room's in there. I think there's toilets and everything, and the ticket office is here. So, this is not a disused station. This is the new miniature railway station, but the station isn't miniature, just a railway. So, there's the signal box, a signal rather. And there's a mile post. Now, we're coming to here to the ticket office. There's a local, probably a new deal, called Longwell, on display here. So, I'll buy my ticket in there. In a second, there's some various books to buy. Oh, no, this is interesting, no? Talk about Ian Allen. This isn't ABC. So, this is the books that Ian Allen produced, and I suppose it was money for making these books. And he was running a travel agent, which eventually paid to relocate the Great Copper Railway here. So, I'm going to go and buy my ticket, and let's go for a train ride. I bought two, actually, two rides. So, we go out here, there's a little garden railway. Down there, which is quite a nice addition. Oh, you put 50p in the slot. There's one here. So, put 50p in, maybe I'll do that later, and then get the train going around. So, what we're going to do, we're going to go around here. Now, as I said, there's two routes. If you have a look, there's two queues. There's a green arrow, not as in the steam locomotive, and a red arrow. I'm going to go for a ride on the red route, so each ticket you buy, which I've just dropped, each ticket you buy is valid for one of the rides. So, I'm going to go and do the red route. Let's go and ride the Great Copper Railway. I've just boarded the train. My locomotive's ahead of us. So, we're going to go for a ride on the red route. So, I'm very excited about this. It's been more than 10 years since I was last here. It's a really nice, busy station. There's another train there where I haven't got a local yet. And there's some that have just come in. So, it's really quite exciting. It has the atmosphere of a really busy railway station. Looks like it's time for us to go now. It's just up there. The Millelium Line runs right around there in the past. The hill just over there, that is Cockro Hill itself. Now, we can't see it because of the trees and bushes, but you might be able to hear it. The M25 is just behind there. So, it's been on the M25, but I had spotted this hill and always wondered what it was. Couldn't just see our locomotive. Just going off to the turntables up there. So, the local return and then... ...training the other platform, that was the one... ...the local we passed, Wenzydales, we came in. So, they've got their local, so they can depart for the journey back to Hardwick Central. So, there's a little signal box. That's a signal box. It has a lever frame from the Waterloo and City Line. I'll talk about the other signal boxes because there's one at Everglade Junction and there's one at Hardwick Central. I'll point them out when we get back there. I can just see our local. It's turned round now. It's turned round. So, what I'm going to do, I'm going to go past and then it'll be time for us to ride back around the system, see a bit more of the track we haven't yet seen to Hardwick Central. Right, Cockerella. There's still one or two locomotives out, but most of them have gone back into the shed and most of the visitors have gone home. It's been very enjoyable, though, to visit. It's very interesting. It's all fully signalled. I mentioned earlier about the signal box down at Cockerella Hill. Over there, that's the Hardwick Central signal box, which has a lever frame from Crew South, I believe. And over there, at Everglade Junction, which you pass through, they have a lever frame, fully working Westinghouse frame from Croydon, South Croydon, I think.  So, there's the shed. You can see a black five there. There's another north-eastern steam locomotive there. There's no one waiting in the queue. When I came on early, it was quite busy. One thing they do is they do a loyalty car, which is quite good. So, what you do, you get stamps on each ride. So, I've got two rides today, so you can come and have a free ride. So, it's worth coming here quite a few times and having quite a few rides, especially if you want to clear your winning locos. So, what I'm going to do now... I had a cup of tea earlier, so I'll just show you and cakes. I'll show you the tea room, because that's quite nice. I'm going to walk along here, and we'll go and see what's going on down this end. There's not a lot more, because I've pretty much... Everyone's gone home. Look, the car park's empty. My larder's one of the only cars left in the car park. It's very much, very much worth coming to visit this railway. It's a very interesting railway. Lots of locos running. It's fully interesting from the signalling point of view as well, not just from the railway point of view. Let's see what's going on around here. Over there, there's a Q-class locomotive. Now, the real Q-class... There's only one Q-class locomotive preserved. It's at the Bluebell Railway, and it actually is that one, 30541. If you want to see a video of that, have a look at the link on screen now. You can see that was earlier this year. So, yeah, there's not a lot going on now, because it's the end of the day. I can hear a train coming now. Let's just watch this train go fast, because they make quite a gradient coming. Quite a gradient into the whole of Central. That little tank engine's called Wensleydale. Interesting, because there is the Wensleydale Railway up in Yorkshire, which I've not been on yet. That's the local I travel behind when I did the Green Route, so that's a separate video. If you want to see the Green Route, which I don't talk in, just enjoy a 20-minute steam haul ride through the countryside. So, I hope you enjoyed this video. Thank you very much for watching. Do come and visit them yourself. It's a little bit of a walk from Jersey Station, but it's not impossible if you wanted to walk here. So, from the Great Cockro Railway. Oh, there's a carriage being gravity shunted. From the Great Cockro Railway, thank you very much for watching. Please do feel free to like, subscribe and comment. Goodbye.