New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Ivan Ivanitskiy ~ Limitations of Smart Contracts SmartDec

Ethereum DenverWed, Oct 9, 2019, 12:00 AM

Transcript

[Music] okay everyone our next speaker is Yvonne even it's key of smart deck limitations of smart contracts thank you hi friends thank you for coming I'm happy to be here at ETH Denver and my name is Ivana vain in ski I'm chief analytics officer a smart deck and today I will share my ideas on limitation of smart contracts with you by describing eight controversial use cases so first a few words about our company we are smart deck a security company we create static code analyzers we perform smart contracts audits which we have done like more than 164 now also blockchain audits second layer solutions and blockchain consulting you can try our tool security tool for Viper and solidity which is smart check it's available online and free and also our blog and other stuff so I have been to a number of etherium conferences as well as enterprise blockchain conferences also I have a lot of conversation with my friends and all these things led me to a thought that there are several popular misconceptions in understanding of possibilities of smart contract and smart contracts and blockchain and that lead me to trying to fight these misconceptions and I try to summarize them in several use cases and their problems so I will describe these use cases their problems and also I'll share some considerations and dreams so a bit of disclaimer describing these use cases I do not state that they do not work I do not say that this is impossible to do that I only say that they have problems that these problems should not be because often they are and also since I don't have much time here I won't dive into technical details I will just stop at the level of business model here so let's start with the first one which is a pretty popular one supply chain management this use case is very wide here I will reduce it to a simple one to a simple example taken from do you need blockchain work which is great check it out definitely so here we have an example of some goos being transported from point A to point B by our contractor and we want these goods to be cooled properly through all the way so we put them in a fridge we put a trusted sensor there and a sense of publishes data to blockchain thus we can track the temperature through all the way which is great unfortunately that won't work because our contractor if he he's an attacker he can put this sensor in a little fridge thus saving energy on cool in all the goods and we will see that the temperature is okay it's slow but in fact it won't be so here we come to why the problem so I'll take a step back and give some analogy here so we have a great technology which is blockchain or smart contracts and we have a great use case which is Internet of Things here we'll talk about Internet of Things because we talk about interaction between software and physical objects okay also we have a great technology which is wings and we have a great use case which is flying however unless one crucial thing was invented flying with with wings was not implemented by humans it looked like that and this thing never worked it was never seen by anyone in the sky and the crucial thing that was missing was an engine and in our case the crucial thing which we are missing for combining blockchain and Internet of Things is Oracle's I think you can find a lot of interesting talks here about Oracle's I won't stop in detail on them I'll just say that we need them badly so if we have Oracle's we can combine blockchain and IOT so then we can fly really up in the sky and that will be real great however stating that we have sold to that problem already and stating that we already can fly up in the sky won't be true ok so going back to our example we need an Oracle to make this use case possible and now it's not ok the next one is pretty similar to the previous one principally it's the same however it's usually suggested by different people and has a bit different attack scenario so I decided to describe it separately let's say we have some rare and expensive object it might be watch jewelry a car however since I'm not interested in any of them I decided to take a bottle of wine for example which I am interested in so let's say we have some great vineyard which creates great vine and wine and wants to prove to us consumers that the bond we are holding in the hands is the exact ball produced on that vine yard so they create a token they put a QR code on the bottle or maybe some sophisticated sensor they put in the bottle born to talk into this sensor and then when they sell the bottle to the store for instance they also transfer a token and when we buy a bottle we get a bottle and the token we check the correspondence between the bottle and the token and we trace the whole history of this bottle up to the vine yard thus proving to ourselves that this bottle is original however this will not work if a store is an attacker let's say a store manages to sell the original bottle to someone who cares a lot about vine but does not care about the and it's definitely not us because we are all blockchain liven guys we care about tokens however this store can sell an original bottle to someone without transferring the token and then create a fake cheap bottle copying the original bottle because Ebola is a physical object thus it can be copied picture night a cure code can be copied a sense it can be copied I mean a chip can be copied and information a dip chip can be copied too so we get a fake bottle with cheap wine but we get a token which corresponds to this bottle we check this bottle and we see that this bowl has came from the original vine yard we try this wine we don't like that and we think that our perfect favorite vineyard has been spoiled and we are upset so who's the winner here definitely not us and definitely not the owner of the vineyard who has lost his a her reputation okay and what's missing here right Oracle's the next one is bad one I think it's pretty real one it's a statement authenticity guarantee the previous one was object authenticity guarantee and here we come to statement authenticity guarantee and let's take a University diploma as an example because diploma is actually a statement that this person has graduated from this university well what we need here is a digital signature from let's say prophecies who reached that person who proved the fact that he or she has actually graduated and also we need timestamp in here to avoid the scenario when someone signs a diploma and creates a diploma in the past so that we could be more sure that this diploma is authentic so smart contract looks like a perfect solution here however I need to say about two things first if we create a good blockchain smart contract system for checking these diplomas but we create a centralized interface for it for instance a simple website then this website will be a single point of failure because it's administrator would be able to give us false information for instance to prove that false diploma is not false thus we need some reliable interfaces for instance it might be just a simple wallet for instance for checking transactions and also the thing here is that actually just simple Bitcoin blockchain is enough because we can take a hash of the scienter plummer and put it in a miracle tree and put it in the Bitcoin blockchain and that's enough so no need for implementing any smart contracts or any separate blocks in here ok the next use case is much more controversial its voting and talking about voting first we need to understand which problem we are trying to solve right now so there are two principal problems for blockchain and smart concepts to solve here which are authentication and public vote counting ok authentication is a good team we want to be sure that a person who votes has a right to vote actually that this person is this person and a symmetric cryptography I mean private and public key pair is a perfect solution here several points here I will need to show you first key generation must be implemented on a user device this is pretty obvious for a scripted community however for enterprise blockchain guys and even more for government guys this is not obvious they often suggest to generate keys on the by the central entity and then to give them to someone which for me is nonsense also this key should be generated by open source and well audited software to avoid security issues like vulnerabilities and backdoors the same applies to hardware also and more important even more important thing here is user skills so we are all used to managing private keys securely however mass users I think are not because often even now people create passwords like QWERTY and so on so to make this vote impossible we need first to teach people to manage private keys properly and the last problem here is a person to get correspondence so we want to be sure that there is a person who has a right to vote and exactly this person votes and this means we need an Oracle here because it's about real world object okay let's get to another problem which is public vote public vote counting this is a good thing because due to public vote counting we can be sure that vote counting was fair first thought that appears here is that it might become too public if anyone knows for whom I have voted however this problem is already solved but there is a more complicated problem for instance I have voted for some candidate and I have a possibility to prove that I have voted for this candidate then in case someone has power upon me this someone might want to make me vote for a correct person and then if I have a possibility to prove that I have voted for correct person I can be enforced to do that if I don't have such a possibility if I can prove for whom I have voted then there is it's just useless to try to force me to do to do that and also there is still a problem of person to key correspondence which is sold by Oracle's which are not present okay this is just a meme for me to take some water thank you okay the next use case is Land Registry let's say we want to track land ownership using smart contracts which looks like a great idea however we have some major problems here these problems appear due to the fact that land is not only a physical object its unmovable physical a physical object so I can pass our car to someone else without involving enforces or government I can pass a bottle of fine anything but land is where it is and so an enforcer can always come to it and enforce his or her decision so enforce is going to enforce and if for instance you own some land you sell it to me you transfer the token and I have the land I have the token and then comes an enforcer and for instance in their opinion you was not you were not owned in that land legally then they just say tell me that this land is not mine I do away and there are two problems here first they don't care about the token so I own the token but they disagree with that and that makes the whole system useless and the second thing is even funnier because the person who owns this land like they think legally won't be able to get the token because I won't give it okay the second thing here is centralized development and maintenance for now usually enforcer is the one who keeps Land Registry I mean government regulator call it what you want and this means that enforcer will decide what system to use an enforcer will develop and maintain the system which also means that this whole idea is useless here okay the neck the next use case is I see oh please don't laugh here because it's real I think this is a use case not a good one but a use case and this this use case was inspired by recent pretty successful BitTorrent SEO so it's still here there are two problems here so people collect money from crowd investors and of that people do nothing that's not pleasant there are two reasons for that first smart contracts are not enforced they do not enforce themselves because let's say venture investor can come to his team to his startup and say hey guys I want you to work start working smart contract we'll never do that and second if we talk about for instance IPOs then the people who collected these money they will answer for their actions - to an enforcer this problem could be solved by decentralized institutions and I hope it will like reputation and some others however they are not here yet so this problem is not solved and that led to what we saw during the icao boom Lambos and all that stuff okay the next one is actually not a use case but it's a real scenario let's say we have some obsolete process in an enterprise and there is an intrapreneur who wants to fix this fix this to want to digitalize that process to make it like it should be he or she comes to a decision-maker to get funding and tells them that here we have great solution for saving money for improving our processes and so on however he or she might here no because decision-makers are often very conservative people and they're not ready to invest money in just some little improvements they want to get everything so if this person just only adds a world award blockchain in his or her suggestion they get funding I don't think that that's bad if the people really understand whether the blockchain is needed there I think improvement is good and I'm not the one to judge these people so let's go to the last one which is money I think no one will ever argue at this point that this huge case already works is already in use however there are some arguments about what qualities these are that money should possess and so on I don't want to talk about this now I just want to give too little considerations here first is that actually money is a use case of smart contracts because a simple money transaction a money transfer is a trivial form of smart contract and the second one is that we do have an engine here I mean we do have a perfect Oracle which is proof of work because proof of work actually puts into a blockchain and information about real world because if Myna has created the block then it means that this miner has enough physical computational power to do that so we get real information about physical world in the blockchain that's pretty funny ok so these are not just any final judgments I will be happy to hear from you that I'm wrong that some of these use cases work that I have not named all the problems or all the solutions or maybe that Oracle's will already work so any feedback any questions appreciated maybe now maybe by email or Twitter I will be really happy to hear any considerations about that and just a bit of additional considerations and dreams I love smart contracts I think that this technology is really great and it will have its applications in the future or of which we can dream right now however what do we need now for this thing to to be great in the future first we need to reliable Oracle's as I have shown then we need new use cases not only improving old processes like I have said but also some new use cases because for instance no one ever dreamt about social networks they just appeared and they do not correspond to anything that existed before and also we need testing hypotheses so after we find some use case we need to find out whether people need that thing which is pretty complicated for an immutable software but this is a topic for a whole new talk as well as reliable Orko's as well as new use cases and also definitely there are reasons there are things we need of which I don't know and that's why I don't know about them so this is the picture of some old website and some new website to show us how things change with time and to give us inspiration to work on technologies to bring some something really beautiful and you ok and here I want to say that everything that is possible now some day was impossible so that means that in some point of space and time it became possible and also this means that there were people who made this possible so let's be that people let's be dreamers let's dream about something great about flying up in the sky and let's do something like the Wright brothers Wright brothers who created the first airplane so thank you any questions any feedback appreciated thank you for the time you

Automatic transcript — names and jargon may be misspelled.