 a lot of you wake up early to be here, so you are probably all interested into blockchains because the next talk will explain us how it will work, how it is and why we do this. Jelle Herold is active in a lot of areas. He's in arts, into math and physics and also computer science and yes he shows us why we need block change, what we use it for and how they work. Jelle Herold. Can you hear me? Yes, yeah, okay. Well thank you everybody for coming so early. If all else fails, there's stickers on the floor. I know stickers are probably more valuable than the only other more valuable thing than coins so they're here on the floor. Yeah I'm gonna try to give an idea why blockchains are relevant and why hackers should look at it and why they are relevant to the world maybe explain a little bit how they work there's a lot of talk about these things. Yeah I went to Pubchrist yesterday so maybe this might not be the best organized talk but that was a lot of fun if please I'll leave some time for questions so please please ask questions. Let's hope this goes well. So a little bit about me you can find me on Twitter that's enough about me. This talk is titled blockchains for better world. So better, I mean you're thinking money is evil, banks, criminals use Bitcoin, all these things. Oh why is my slide not going further? Yes so poop you say. Right so this is process optimizing our planet. This is why I think blockchains are so useful. If we apply process optimization to a lot of the things that are happening on our planet we might be able to fix a lot of the big problems by targeting our efforts at the right places. It would be really nice. So before we start I'm how many people know what a blockchain is? Okay that's good. So how many people know what smart contracts are? Okay great. So for the rest of you that don't know let me just give you a slight overview. The thing we started with peer-to-peer networks with BitTorrent. From BitTorrent actually effectively came Bitcoin. I'll show you kind of how this works. It's not a lot of extra ingredients that you need to add to BitTorrent to actually reach to Bitcoin but it took a while. From Bitcoin people realize you can generalize this. Bitcoin to Ethereum. So that's where Bitcoin is just a simple transaction from me to another person. Ethereum extends this to having kind of code running on your peer-to-peer network and sending transactions to the code and have the code do something. So this is more general than just a transaction. And then the final step is this project I'm working on where we try to take all the ideas from modern programming language design and to build sort of a process engine instead of just a Turing machine on a blockchain which Ethereum kind of is. So this is a little bit of an outline of the talk. I'll give some cryptography fundamentals just very hand-wavy. Then I'll explain and try to point out how you build what is called distributed ledger technology. So that's the you know Bitcoin and blockchain are these fast words and the new word for it is distributed ledger technology. It's kind of a better word for it. Then I'll explain a little bit about my language and how this applies to the blockchain and then have some final words about how you can apply this to planetary scale. I will put them online yeah for sure. And if so the stickers over here they have an address on there and they can enter email address and you can talk to me and things like that. Yeah no problem. So you asked if the slides are online. So the fundamentals well probably the most fundamental thing is hashing, hash functions. Then another very important thing are distributed hash tables which is DHT and not DTH but okay asymmetric cryptography is another important thing and here I'll just show talk about signing and verifying signatures. So hashing is this it's a principle where you take some data and you compress it to smaller data. So you can have any kind of arbitrary length bit string and then you turn it into a fixed length bit string. So here I demonstrated 160 bits and you have this notion of cryptographic hashing where it means that there's a very small probability of two pieces of data going to the same address space. Of course a function that just sends all the data to the number one is a hashing function because it takes a lot of data and it always goes to a small number. But two pieces of data go to the same number. The other thing about making hashing cryptographically secure is that if you want to go the other way, sorry second let me just plug in power. I mean I go from data to the address to make this secure you shouldn't be able to go back easily. So if I have my address to compute the data that came from this that goes to the same thing that this is not efficiently computable that makes a hash function secure. So yeah to put this to sum up these properties like every bit string leads to a unique address because it's such a big space due to the 160 is a lot of numbers. So every bit string your movie, your Arnold Schwarzenegger movie goes to the same two different address as your MP3 file. It kind of distributes evenly over the entire address space and it works as a checksum meaning that once you have your data, if you somehow got it back from the network, I'll talk a little bit about that. You can check again you compute your hash function and you will see that it's the same you get the same number for the same data and as more tricks you can do with hashing which is the proof of work which is the mining in Bitcoin. I hope this was a little bit clear. Who was this very clear? One person, two, three, oh shit, more, I see more hands. Yeah I mean a different way to look at this is that you have you have all imagine you have all the data in the world all these files on all your computers and you want to sort of make this address space where you can find every data back. You need one function that takes your data to its address and another function to find it from the address to find it back. So imagine we build a network of computers and we want to pull the data out. To pull it out you use this distributed hash table thing to give the data an address to give every file an address we use the hashing. Maybe this makes it a little bit clearer. So if you want to learn more about distributed hash tables I can highly recommend the Cadamlia paper. It's a pretty hopefully clear paper about how you can find stuff back in a peer-to-peer network. So it's on a it's it uses this for those that know I mean if you don't know this then you should just phase out for a minute. But it uses XOR so binary XOR as a metric space and that means that if you go directly from X to Z this should be shorter than going from X to Y to Z. So this like this space is probably a metric space I can walk here everything has a distance and now your files get a distance. And it uses this thing to to find your data back. So if if those black dots are the nodes in the network the the XOR metric gives you a way to from every nodes go to the nearest other node or the nearest other file and this way this they show that this converges so that after a number of steps I always reach this file. So who is this clear? More people. Okay that's that's hopeful. Yeah so just just to repeat this for a second because it's kind of fundamental. We have this address space and with the DHT we kind of make it into a normal space where you can walk around like a space like this and without the metric without the notion of distance you cannot do that. So that's what the DHT does. Okay this is interesting. My clicker is very laggy. So yeah now we're gonna go to the next topic which is asymmetric cryptography. Asymmetric deals to this point set the fact that you have two keys instead of one. So you have a secret key and from it you get a public key. Obviously the secret key you should keep a secret. The public key you publicize public make public can make public should make public. It uses elliptic curves obviously not gonna talk about this. Sorry about this my clicker is very... So this is the same thing where you have two functions. One thing is to sign data and the other thing is to verify that the data came from the signature. So for the signing you use your secret key. So I keep the secret key in my pocket and I make add a signature to the data and say listen this is I signed this data. It came from me and then with the corresponding public key you can verify that the data came actually from me. Who is this clear? Yes. All right a lot of hands. Great. Now something interesting happened is happening here because your identity is actually your private key. So if you're a participant in this peer-to-peer network your private key which is just a very very large random number effective sort of and in the Bitcoin situation this becomes your wallet. So this is how this is why these things are important in the in this peer-to-peer network. It's an open network. Anybody can participate as long as you can generate a very large random number you get an identity in the network and then you can use this number to sign transactions or you know files as coming from you. So I'm just gonna talk about something very shortly which is this notion of a brain wallet. So if your identity is just a random number this is very nice thing right so it is super inclusive a bank cannot say sorry I cannot add you to our banking network because of something maybe you have only one leg and then this you know everybody who has a bank account needs two legs so sorry you're you're not allowed to have a bank account. With Bitcoin it's completely inclusive as long as you can generate this number you can you can get there and now you can turn the number into a sequence of words which collapse practice feed shame open this is called a brain wallet by just memorizing these words you can buy any phone enter the words and your Bitcoin identity or whatever identity returns. So this is kind of a crazy but a very cool idea and I actually used this in practice when I went to the US and somehow my bank accounts got blocked and I had to I had no internet but I could export the brain wallet for my phone and moved into somebody else's phone. So this is a very very powerful idea that you obviously don't have it a normal bank I mean you can just memorize your bank account so I think this is very cool who else thinks this is very cool. Less people than understood the previous thing. Anyway I think this is insane anyway so these are kind of the fundamentals that go into blockchains the cryptography fundamentals so now I'm gonna talk a little bit about how you turn this into the so-called distributed ledger technology so what what is a blockchain anyway it's just a decentralized database okay that's all it is actually I mean a decentralized database an amazing thing that we didn't have before but that's what it is so it's a peer-to-peer network that builds a decentralized database and the way they do it is using a ledger so keeping a history of all the transactions then there's this thing called a memory pool which is kind of important to talk about for a second and there's proof of work which is the famous mining that you probably all heard about yeah so let me first talk about the ledger it's a way to it it stores all the transactions that are happening in the network from the beginning of time so there's the genesis block that's when the Bitcoin started and then every transaction from there is recorded so this is what it looks like a blockchain sort of so we're using the I mean nothing why I cannot point at this because it's a very bright screen but over here you have the hash function you see the hashing again a block of transactions is just a block of data and the hash gives it a unique a unique number and then the next block has a starts with a previous a pointer to the previous to the hash of the previous block so this is how it builds a chain every block points back to the previous one and that's why you need the hashing is this clear to everybody it's like a linked list I'll just in yeah I'll continue anyway and hopefully clear so there's a bunch of in a block is a bunch of transactions there's this thing called a nonce which I will talk about as well but let me try one thing because somehow why is this not doing the presenter thing okay well I have to go like this so the Bitcoin network or any most of these blockchain networks they work in the following fashion you have a transaction the transaction is put in a memory pool it's kind of the depending transactions and then you have the finalized transactions that are written on to the ledger now for transaction it needs to be valid in a memory pool you add some sort of transaction fee to it and then miners pick transactions from the memory pool and append them to the blockchain so here we see the asymmetric encryption at work you have your transaction from this address right so the wallet address to this other address so these are just the public keys of the wallet the amount and then the signature and then the Bitcoin network verifies that it's a valid signature the in order to make a block the miners pick from the memory pool so these are all the pending transactions that's just a peer-to-peer network like BitTorrent or whatever and they keep them the miners keep them in memory all these intersections they receive it to see if it's valid if it's valid they keep them and then from this memory pool they just pick a bunch of transactions the one with the biggest fees on them and then put them together into a block make sure it points to the previous block so the latest known valid block in the network and then I have to do this they have to add a nonce so this is a special number and this is the the famous proof of work so very shortly I'll just give you an idea how this works these transactions I cannot make up I just picked them from the memory pool the previous one I also cannot make up because that was just a hash of the previous block the nonce the miner can the miner can pick the nonce and it in fact it should pick the nonce such that if you hash this entire block the resulting hash value has to start with a number of zeros now does anybody see why this might be difficult yeah one two three four seven eight nine oh more hands going up yeah a lot of people see why this is difficult for those that don't see that why it's difficult remember that that the cryptographically secure hash functions they distribute data evenly across this entire address space so the probability of finding supposed this is would be binary zero and one the probability of finding the first thing a zero is 50% but zero one probability of finding two of these things is 25% three zeros in the beginning is 12.5% so this is get more and more harder because it's basically just random just points at some random thing in a very specific way so every time you change the nonce you completely change the hash it just just completely difference number and then to not a completely different number every time you keep changing the nonce and you just need to keep trying this over and over again until you find one with enough zeros and that's what all these miners are doing they actually it's kind of a the bitcoin proof of work algorithm is kind of a stupid algorithm it can be it's so-called brute force parallelizable something like this meaning that there's a lot of you can just build hundreds of copies of the same processor that does this hashing and just do trillions and trillions of hashes at the same time and hope you are the first person that finds the valid nonce and once you find this valid nonce you announce the block back to the network everybody sees you know the checking is easy just compute the hash of this entire blocking you see oh yeah right that's a hash and it has a number of zeros so that's a valid valid block and that's that's what all the miners are doing they built specialized hardware to just keep going over those numbers who is this clear yes a lot of people great if it's not by the way just ask me questions afterward so this is this is roughly how these lock chains work it's just a way to build up a history that everybody agrees on consensus algorithm and then from the history you can reconstruct the database saying this address has so many bitcoins this address has so many bitcoins you might wonder where do bitcoins come from well built into the algorithm once you find a block that's why all the miners spend so much money and electricity on finding these blocks you get some bitcoins so you know if you're the first one to find this particular hash function which is basically like a lottery where the number of the stake is how much work you put in that's why it's called proof of work then you you get bitcoins so that's where they come from they're not actually mining bitcoins the mining nonsense and you know once you find a valid block as a consequence you get some bitcoins so everybody's wondering where bitcoins came from that that's where they come from it's just built into the algorithm yeah do I want to say something else about this let's just continue so now I'm gonna talk a little bit about this programming language that that I've been working on for a very long time this was something that was started a long time ago actually it was Ray Dawson that was the first one to come up with this idea he's a he's a old Debian project lead some of you might know him he's sadly no longer alive he was the first one to say like maybe we can use this thing called Petri Nets to to make reconfigurable software so now I'm just gonna go from a very different angle now for a little while so I'm gonna take modern ideas from programming languages and try to apply them to to blockchains in the end so the state box thing is a it's a visual language for talking about protocols it's kind of like a programming language except you cannot write every program in it it's not like Python it's a particular restricted programming language and the why we do that this is because we want to have well-defined behavior and we also want to have portability meaning that it can target different blockchains or different systems it can just run on your computer as well so not in a distributed fashion and I mean we were building this before there were blockchains but it turns out this is a very good very useful language for so-called smart contracts oh yeah now I remember to say about this so I've showed you a very simple transaction that just send money from one address to another address Ethereum generalizes this so this Ethereum system realized that I can actually instead of just having a database that says this person has this much money I can also have a database that stores programs and whenever I send the transaction to this program address so it's just like almost like the compiled C code or whatever you program in like machine code they store machine code in one of these nodes you send the transaction there and the machine code runs on an Ethereum virtual machine so that instead of just verifying the transaction they compute some properties and you get a new state of your it's like every address has a little table in it so it's like generalized Bitcoin and so there's a lot of a lot of hacks has have been happening because this is not the best way to do it it basically took just the oldest model we have for a computer and put it on a blockchain so trying to make this slightly better and use this advantage of a blockchain to make to make a better world hopefully okay so about this section I'm just going to talk a little bit about the history the background give you a bigger picture then we're going to generalize state machines to patrinets and eventually to the state box system I think I might skip the demo and then give you some other things so yeah in 2003 around the time it was conceived then in round 2008 we were running this on the Java virtual machine and in a cloud and now in 2017 you can use distributed ledger technologies and there's this thing called an ICO initial coin offering that's something that's happening a lot with Ethereum so we'll talk let me just give you for who knows on ICO is okay and that's so many people so an ICO is a way to sell Ethereum was sold as you know this distributed supercomputer running over the world well actually it's not really a distributed super computer it's kind of like a very slow mobile phone and also they're not running any kind of programs on it they're basically running ICO contracts on it so it's more like a distributed ICO machine and so these contracts are like the rules for initial public offering so when you're selling your your company but they the smart contract executes these rules so you can send your money to a smart contract the smart contract collect collect the money and this way you can kind of sell your company in a distributed fashion so this is very popular and a nice way to to get a lot of money for a project so yeah the state box language itself is based on diagrams that correspond to formulas so this is work by Penrose it was one of the first guys to do it to deal with very complicated mathematical formulas he tried to come up with these pictures for them so you can see that this thing with five things is like adding three of those and subtracting one diagram so that's pretty interesting you've probably also seen things like this where you have you want to make audio synthesis and the way you do it is that you cut up these things into different modules and then you connect them with wires this is done for images as well high frequency traders use these things business process modeling notation is an interesting one so is to describe a business process turns out that these things are equivalent to Petrinets which is what I will talk about later and it also turns out that there's mathematics for these things so this is one of the key ideas here is composition how you take smaller parts and you put them together into a bigger thing you can do this with wires just very shortly this guy is advisor for the state box project he's very cool David Spivek the key idea behind this composition is that you have this composition function so if if you give me something with three square holes in it and you give me three square things I can put them together and make one square thing without any holes the mathematics for this called operas but the question is what do you put in these holes so it's really nice that I have some way to combine things but what do we compose over and what I want to propose that we compose over this sort of diagrams that express a process and that's what this state box system tries to do you need to use a lot of very abstract mathematics but that's that's not kind of the point so what's a process anyway well in metham in computer science you kind of have this distinction between an algorithm that just runs locally on your computer and kind of a network protocol or like the Bitcoin network so in physics you have the same idea this is a Feynman diagram of two particles interacting you can you can do the same thing for like topological version of this and then you can combine these things together so they're starting to look like programming x and y y to z comes a function from x to z turns out that these things are all the same and these petrinets in the lower corner is this thing that I've spent a lot of time on and it looks like this is a language to describe processes so is this everything that state box is well know stochastic petrinets just talk about the behavior in the large we need to talk about particular processes at a particular time so in order to explain this I'm going to show you what a state machine is then quickly generalize it to petrinets so a short example of a state machine a traffic light we want to look at the different states that a traffic light can be in so it can be red green or orange so refer to abstracted away we move the casing we just keep the three lights and we say we make the name shorter RGO but we also need to describe how it can flow from one state to the next so these are the blue arrows and these are called transitions so putting this together and rearranging the things we have three states RG and O and we have three transitions from R to G from G to O and from O to R so this is what a state machine is and it that the important thing to note here is that the transition transitions take one state and produce a new state so finite state machine is a set of states and transitions who knows what this is and for who is it clear okay that's good will be nice my clicker response so if a finite state machine is states and transitions what if we have two traffic lights so we have a car and two traffic lights in the red state if they're both go to green and there's two cars you get a bad situation so we want to avoid this this is to say in smart contracts we want to avoid having bad situations so we kind of want to compose these things we want to compose these two state machines so can we do this well we can but then we have to make all put two traffic lights together and put them in there and draw their state space and then you know the first light can go to green or the second light can go to green we want to avoid this corner where two lights are green or there's a yellow and green so we go to here put this other state there remove that thing and now we've added two machines together but this is not the easiest I mean we get a lot more states we need to think a little bit how we do this can we do better or we can using this mathematics stuff and that's what that's what we're going to do first with the patronets to generalize these state machines and see how you can actually speak about two states instead of having just one state so the idea is that we want to allow these so called hyper edges that split one state to go to two states one easy way to do it is just to put a box on the wire and then you can have two angles come out now one thing you should note is that this transitions can be disabled or enabled so it's enabled once all the states are active it's disabled if only one state is active or if not all the states are active so that means the traffic light cannot go to green unless all the conditions are fulfilled for it to go to green we use the dots to mark the active state so if this transition fires it will move the state to down there so you so it gets two states you can do the same with you have some tokens already laying around and then they just move it you see how this works it shouldn't be super hard but who is this clear okay good who is this unclear not so many people you can ask me afterwards so oh yeah can I do this let me show you this in action maybe that makes it clear so this is a example of a Petri net hello they couldn't go bigger this transaction is purple so it's enabled if I fire it it consumes the token over here produces two over there now these two things become enabled this one is I cannot click it still cannot click it but once this action takes place now I can click it so that's that's one example this is another example so maybe somebody is producing things over here you see them piling up in the middle and now this person can start consuming the work this could represent work I mean it's obviously very abstract but I hope you can see how this can represent some sort of sequence of actions that are controlled by this diagram the diagram explains and describes what can happen so now this guy can produce again so that there was an example this make this this make it clear I hope so yeah so now we're gonna redo the traffic lights but now using Petri nets so we just start with the same state machine from red to green to yellow and they're both in the red state then I just add boxes to it see so now still the still state machine but now it now it's a petrinette so now I'm gonna add this debt prevention token it's this token that says that is removed once the light goes to green so that's how you do this you just add two arrows and whenever I transition from red to green I consume this token now when I go back from orange to red I just place the token back and so now I've modeled two traffic lights together and I can prove that they will never be there will never be two green lights you see how this works who sees how this works I've lots of people that's great I was not seeing it so one thing you should notice that I can reuse this now so I can take this you know just put the whole traffic light into a box and just pull out the the one place that they all shared is that prevention token and now I can glue them together like this so that's nice now I only have 10 states instead of 3 to the 3 36 for the regular finite state machine approach so this is a much better way to speak about multiple states and a complicated machine where one person needs to do something and then the other one and the other one so we can show this in action you just prepared this worry about this is really Firefox love how fast it is I don't know some reason this is okay I'll skip the traffic light in action for sake of time so yeah I want I can show you this will probably work because I did prepare this a little bit so this is the current state of this state box system that I'm building here on the left right now you see the history of this machine on the right so this is a patronette and whenever I fire transitions something is added here so this is very much like the history of a blockchain and that's kind of where the initial idea came from like it was set up as a ledger so we just store all the history of all the actions happening in this thing and now we make an encoding that so that you can store these protocols or processes on a blockchain instead of storing arbitrary machine code you just store this specialized network that describes a process there's much more that I can show you right now there's a lot of things to this there's a type system so on the stickers there's this thing says type devs.com it's a way like if you know about the database schema or a JSON schema or XML schema there I used the word XML I needed something similar but cleaner because we want to put all these all these things together into one coherent mathematical thing so that we can prove properties about it so for this we made a very simple type system and once you have this type system you can describe things like a person you say a person is a name an age and gender gender is a boolean age is a number gender is a string you put these things together and because we describe it and we don't write the program that creates a form and a label and an input box and all these things we can make a program that takes such a description and produces a form or produces an API so this is the idea is to describe things and to create stuff out of it another thing is logic programming so we use a different kind of program for those that knows like prolog or data log or cascal log or flicks those kind of languages they are again they are declarative so you describe what you want to do and the program the interpreter figures out what it does how to do it a nice thing is they have guaranteed termination to program these Petri nets we want to fold over the history so that's Petri fold also didn't show that I didn't show how you can compose things together to make bigger networks so this is the idea that you can reuse a process so maybe somebody figured out what what's the best way to onboard a customer to something they just make this thing you leave some holes in it and then you fill in the holes with your own specific process so that's the composition thing because we're just describing stuff we can make a compiler that takes the description and produces an Ethereum contract or you know deploys it to Google cloud or whatever you want to use or just IPFS which is super cool so why is this better than normal smart contracts such as the Ethereum language so it's already said but this is the declarative nature they say what to do not how to do it because if you describe how to do it you make mistakes an Ethereum contract kind of works like this it has this computer memory it has a script that it follows and it goes like well I'm gonna put this red thing over there then I'm gonna do some stuff over here keep remembering that I have the red thing over there I'm gonna put a green thing over there I'm gonna put another number that keep remembering it and then as you go to this sort of play of what's you know what is happening all that stuff you need to convince yourself that nothing bad is happening that you're not overriding any state you shouldn't here we don't do that so the the complexity is in the compiler we just describe what we want to declare it so the another nice property is total programming so we if you do if you have a function that is that works for numbers you have to make sure that it works for every number not just the numbers one to ten but every behavior every part through the function should be exhaust exhaustively defined and this is really nice because a lot of the hacks in Ethereum are happening because this is not done they're not defining all the behavior and then you can find this wiggle room and maybe exploit the contract another property is this diagrammatic nature so it's visual you can see what the contract does you don't need to in your head reverse engineer the machine code and then reenact display in your head so okay when I interact with this thing it's gonna place the red thing over there and the green thing over there and then in the end it's all gonna work out no you just see the diagram you see how yours thing is gonna flow through it yes I'll just skip this for the people that know about blockchains this is very highly related to oracles state channels and the main idea is to not use a Turing machine approach but to use lambda calculus approach so this for the functional programmers yeah I see some hands very for functional programming it's the best right state channels very shortly is a way to do something off the blockchain so it's between two persons kind of a play where I sign a certain state send it to you you revoke my state you sign a new state send it to me I revoke your state sign a new state send it to you you keep doing this so this is like a protocol but you do it not on the blockchain because a blockchain is it's like I said the mobile phone it's super slow it's very expensive state channels are a way to just do it between two people it's also add some privacy and then at any point if somebody violates the protocol you can you can go back to the blockchain and say look this guy violated protocol oh of course first you need to deposit some money on the blockchain like you put some stake and then the smart contract will give you the stake back if you know the other person was not playing along the rules and that's how you can kind of enforce this rules off the blockchain using a state channel yeah so applications for this kind of workflow technology just to give you a short example I worked for a travel company and we had this driver application and a hostess application so after a long while there's these two states it's ready for the for the taxi driver it's ready for the hostess and then if you zoom into the hostess process so this is just double clicking on the box he starts her work and either the customer arrives or the driver arrives first but once they've both arrived arrived you can say the customer enters the taxi so this is a nice way to draw a diagram of the you know of things that need to happen in a certain way other applications are payment systems people to do more and as marketing is kind of dirty word I mean I'm really truly a sort of crypto anarchist kind of person and I believe in sort of freedom and all this stuff but nowadays it seems you cannot go anywhere without marketing or some sort of customer life cycle making you know having a nice experience for your customer insurances supply chain transparency is probably the most important one to show the entire supply chain what is happening where does your avocado come from or your chicken eggs you know what were your chickens fed with did it contain terrible pesticides on the on this side you see some of the main properties so that analytics become really clear on such a system you can see at which state the system is how many people go to one state or the other you can create automatic UIs from it I'll just skip this a little bit we're going to do ICO as well that's this thing called compositional game theory for people that know this it's very very interesting it's to build bigger games out of smaller games this is something we're building into this and we just conclude about this section so we've seen a visual language for speaking about multiple party multi-party protocols I hopefully kind of made a little bit clear that this abstract algebra and the proofs is the way we get the well defined behavior and the portability so you're not just using mathematics because it's I know you want to be stupid about it but it's a way to abstract all the unnecessary details and that gives you new properties namely that you can build these systems that can stack together and you can move it from one blockchain to another and then the most powerful effect of this is that if you use a distributed ledger system you can apply this process modeling on a global scale so entire supply chain of your mobile phone or your laptop or whatever it can be modeled out and it can be done very cheaply because normally these systems are used I mean a lot of people are doing this big companies like IBM and they make a ton of money on it but these are very complicated systems so that's that's a conclusion I hope we can use blockchains to process optimize our planet find the right spots target those things first instead of replacing your light bulb because doesn't do much better change your mortgage yeah and that's that's the state box system and now I think I will take questions if there are any yes thank you yellow if you have questions there were a lot of topics please line up at the microphones first question yes sorry maybe this is very simplistic but does it scale the mod if the model has to contain all of the world in real time online then it will explode yeah so scaling is a big topic in blockchains because right now every node keeps the entire history but state channels are a way to do this so you can not everything needs to happen on the blockchain I just deposit a lot of money and then I do my stuff off the blockchain so that's one way there might be other ways like regular sharding so it does scale like sharding sharding it's a way to I mean this is done on a SHARDING sharding yeah it's just saying again using hashing and taking maybe the first hash the first value of your hash sorry the first digit of your hash digest and allocating data to different pockets like this so instead of every node computing everything just things that go with hash value zero go to this node hash value one goes to that node hash value two I got no question from the other Mike yeah I have a quite technical question I saw that you can have splits into the behavior yes and I presume they also and joins yes and can you have can you have loops yes you can have loops as well okay could you and put the loops we split off again yes okay can you didn't tell me what is the the semantics for the end join well they all have to arrive before they can continue yeah one can but if they can split off how do you check it so I think you mean so if you turn this upside down I will give you an example where I have to draw it where it's really complicated okay I would love to see I mean and so the end the definition and join is really a problem and actually I would not avoid I would avoid using splits and joins because they're constructs that are so complicated that it's not difficult it's impossible to define what should be done so this so this was a real technical question it's okay because so actually the looping thing is something we want to avoid as well so there was a asterix there that I didn't mention but I would love to talk about this so maybe you should clarify this after the talk where you can draw things so I'm also a lawyer yeah and one of the things we see in the blockchain and also this are basically a timeline yeah I guess a timeline of events that move the process further now in law there's a number of situations where court intervened you have to roll back to timeline yes like bankruptcies is a good example but sometimes also in just normal contract enforcement where you want to roll back to system to a previous state even without the help of the parties involved yes right if you go bankrupt then the bank has to undo all transactions until midnight whether the people in charge of the account want to or not yeah and I've always had a hard time finding out how I would do that in Bitcoin yeah so you cannot that's a Bitcoin you sent the money to the wrong address poof it's gone there are people that did this I mean they're not stupid but this just happens so the blockchain itself cannot roll back and I'm glad you asked this question because this was one of the things I tried to address and the way we do this is by using this composition so you could imagine that the bigger box with the three holes in it that will be some sort of legal framework that says I can unroll I can go back right I can use a loop that maybe undoes this certain thing that happened and then you use your given the legal framework you fill in specific processes in there so by putting a layer on top of a blockchain where the blockchain itself just moves forward but the undoing is just appending is part of the process but then in order to make that cryptographically secure you would have to have the private key of the participant in the contract no no the there would be a private key for the legal jurisdiction so you're engaged when you engage in the contract you engage in the composed one that shows that there's like a legal framework underlying it so this would be a normal contract that only goes forward and this would be a contract that allows you to go backward but you know it before you engage in the process you see hey there's a lawyer that can undo my transactions thank you I think about that okay good are there more questions okay okay there's one Vinae Gupta introduced the idea of the Internet of agreements yes materium yeah do you think that will that will fly for logistics for instance because oh yeah it has to connect different legal systems and and the lawyers may not like it yeah yeah it's super interesting what he's doing I actually met him just two weeks ago and they're also using tiny state machines so it could be one of the building blocks for a system like this where you have these recording contracts that avoid having to go to court but there's a arbitrator so this is what is Vinae Gupta is doing is building these like a regular legal contracts and some code that are tied together in a contract and there's an arbitrator that says you know if I borrow my spoon to you and you don't give it back then we don't need to go to court about it but the arbitrator can figure out who gets the money and so this is I think it will fly I think it's a super interesting project and they're trying to use the UK system to to make this all going to be based in London and we'll see what happens with this but that's maybe that the legal tension that these systems bring they point kind of the kind of point out that money isn't what we thought it was and that legal the legal frameworks need an update you know the Dutch government doesn't have proper law for technology like this yet some countries are advancing in this like Singapore or whatever but yeah that's that's probably the most important thing about blockchain is that it forces you to rethink these notions of law yes there don't seem to be more questions or if you have a question okay thank you everybody yeah thank you guys for your attention