A Lap Around Developing Cryptlets
Devcon·Mon, Oct 9, 2017, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more. https://archive.devcon.org/archive/watch/2/a-lap-around-developing-cryptlets Developer tour of Cryptlet implementation, brief overview of Cryptlets, creating a Cryptlet, write Solidity to use Cryptlets and wiring it all up at runtime Speaker(s): Marley Gray Skill level: Intermediate Track: Developer Infrastructure Keywords: frontier, baas, microsoft, node, network, enterprise, consortium, attestation, language, evm, scalability, enclaves, flexibility, cloud, java, bletchly, azure, formal, verification, fstar, sdk Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 2 was held in Shanghai, China on Sep 19 - 21, 2016. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
[Music] so as you all know Microsoft is our Premier U Premier sponsor of Devcon 2 and Marley gray who is of uh blockchain engineering and the head of blockchain engineerings is here to uh both speak and give an introduction um and come on up Marley give a hand for Marley gray please Microsoft thanks [Applause] me good morning I think I should thank Roman for getting you guys wasted last night so nobody's here this morning to see see this so uh the the title of the speech this morning is a lapon criet but um what I really want to do is take a trip down memory lane uh which was late July 2015 when Frontier was released was when we officially started playing with ethereum um such that we then launched with ethereum together uh using with our partners consensus uh and started down the uh ethereum block chain is a service so I always feel like uh the journey with uh a lot of people point to Microsoft being an early adopter of Bitcoin that was a sort of an experiment our our uh Learning lesson for us to really Embrace ethereum so uh I don't want to tell you what I had to go through to get the sponsorship for last year's Devcon uh it was not pretty uh this year's Devcon sponsorship was quite easy uh for me to do it's a lot more money as well um but uh you know ethereum just to set the the stage here for Microsoft's commitment here is you know ethereum as a first class citizen will continue to be a first class citizen in our distributed Ledger efforts um at Microsoft um and it is um it dominates our Marketplace um and our customers are using it uh and asking us um and and with that um we're going to um I've got some things we're doing U I have a lot of Partners in the room I think almost everyone should be partner if you're not uh please talk to your Microsoft representative if you're a small startup we have programs called bis spark I know a lot of you have taken advantage of that encourage you to do that um and we'll be talking some more about the the other things later but this morning I want to announce um proud to announce Bletchley version one so Bletchley is our code name for everything uh blockchain at Microsoft and uh let me explain a little bit about what that is and I'm going to walk you through uh what V1 means um but blly the the architectural diagram over here is sort of the big picture and you'll see ethereum is quite prominent here so our distributed Ledger stack down at the bottom this is what we call our distributed uh infrastructure or blle distributed infrastructure we are shipping version one a Consortium ethereum uh private Network um starter so you can go on ethereum any customer can uh instead of just spinning up a single node or a single death test lab you can actually spin up a full Consortium Network and I'll go through exactly what that means a little bit later on you'll see this in the Press we we release these announcements this morning I timed with this keynote it's hard to time those things I was up at four o'clock in the morning S I know you were up at like three working on this stuff so uh we'll walk through this but you know ethereum is the first class we're going to walk through that um I'm going to first walk you through uh criet so uh we introduced criet um in June as a um a middleware um approach for um taking blockchains or bringing blockchains into the Enterprise all of our interest from our major uh Enterprises are trying to figure out how consortiums will get together to take advantage of this distributed uh Network promise so criet is is uh how we sort of get our head around this uh and we look at it as a new tier so those of you that have some gray hair um we'll remember the pain we went through went from client server to three- tiered architecture in the web very similar to the pain that um we're experiencing in The Growing Pains uh within distributed ledgers or blockchains and um so there's a lot of missing parts that enterprises want they want things like some people call them ill list but it's essentially scalability manageability um you know those those types of things um so we we identified these these key things like identity existing systems integration Key Management not just storing your keys but managing the entire life cycle of your keys it's a very difficult thing to do uh and do correctly um Security in depth uh just the number of talks yesterday on security uh I don't think we even had a topic on it last year maybe one or two um but uh we're really getting to the point where people can uh start Building Solutions uh industry specific Solutions Financial Service is the is the largest but we're going to see them in healthcare media uh Supply chains huge all over the place um so uh criet is our uh sort of our catchall for delivering these capabilities uh in the cloud so um with the introduction of oracles um you know the how do you get data injected or real world data injected into a blockchain oracles came out um but it's more than just trusted data it's how do you get trusted execution we need a very flexible and malleable execution platform where you as an architect or developer can make the right decisions based on what you're trying to do um and have clean separation of concerns in your code which is something um in the Enterprise um is uh paid a lot of attention to so things like doing things at specific times or specific intervals uh doing things based on triggers you can have Market watches um you want to be able to also protect IP if you have algorithms that you have you don't want those algorithms you know in the clear on the blockchain you want to protect those you might want to scale an algorithm you might want to have better performance than a blockchain uh can offer you how do you achieve that while still getting the benefit of a distributed Ledger and then complex interactions when we start getting into Enterprise systems you get into complex uh distributed transaction coordination where you're not just updating an ethereum Network you might be updating a CRM system uh old host mainframe system an Oracle database a CRM system and the ethereum blockchain system in a single transaction how do you do that well we actually know how to do that and that technolog has been around since the Turning part of the century uh because we had to go through those gr pains when we went to the web so we want to be able to use those things and also use libraries like net and Java and you know pick your your platform is yours not just going to be about uh single language develop it we need choice choice in platform and choice in language so I'll put this in here I'm not going to go through this chart um some of the things that criet uh I'll go through the key points uh for this audience um getting secure data and oracles have been around for some time it's still A New Concept for a lot of people how do you get real world data in there uh oracles um really don't provide a standard way for you to have attestation of that data cets provide that to you by default but criet does more than that it's more than secure data it's also secure execution how can you enlist complex execution tasks off the chain while uh keeping that integrated uh developer um and business and operational experience and also create a Marketplace uh for developers in this audience you might come up with criet ideas to create a cripp library that you can put in the marketplace and sell to a specific industry they can be vertical and hor Al in nature so there's a lot of infrastructure here um that that we're building uh to to wire this up uh we are making um our goal is for the criet fabric is what we're calling it or the the blockchain criet fabric to be easily uh consumed by developers so you'll be simply being able to make uh or discover cets out on the market place references to them um declaratively State what you want to do in code with those cets um and have the infrastructure just work uh and you be able to focus on getting your code to run and accomplish the business goals that you trying to build so the goal here um and this diagram is oversimplified greatly down on the right hand side we have a node this is the evm that has this thing called a crypto delegate which handles the delegation of calls out to the cets uh criet manage the entire uh security envelope so we're essentially extending the trust envelope for not just data but execution which gives you lots of interesting things that you can do so let's talk about some of the use cases so the most common one people think about are for oracles and this is where you're going to want your smart contract to do something based on an event so it's a traditional Pub sub type model where you're going to go and say hey I need to um uh I want to have this criet do something for me in this case down here in the code which you can't read but uh we have a little uh attribute here where we're subscribing to an event saying wake me up at 4:00 Eastern Standard Time if the markets were open that day and if they were open give me the liable rate and the price of gold and what's going to happen is that a subscription goes up the criet gets the the rules for waking up that smart contract and says okay I'll wake you up when it's 4:00 if the markets are open the price of gold and the liable rate so the criet sits there and runs and EV checks and when the event conditions are correct it fires the event the event payload includes an attested value of the Lial rate and the price of gold now you not just get the values but you also get a three-way attestation you get the uh signature of the criet itself you get the signature of The Enclave which I'll talk about here in a moment and also the attested Hoster so you have this trust envelope which is actually sealed um and you can uh record all that in the smart contract for audit purposes so that one's the easiest one to kind of get your head around the second one's a little bit more advanced and it's really taking this three- tiered architecture to an a little bit further extent um this is what we call control and this is where you're using your smart contract more as a traditional database so your smart contract you're placing uh you're declaring essentially the data that you're keeping track of and then the stored procedures if you will for updating that data so um you're not writing crud functions but you're doing um the up uh the insert um or the create and um the read functions for the data in the smart contract you are then uh enlisting control surrogation so full um surrogation of your logic out to the criet itself so the criet can run offchain and you can scale it vertically so it won't run on every single node um you can have it run on at least one or a couple of nodes and this usually becomes uh attractive to Consortium uh networks where you have for example a hedge fund and a bank entering into a a financial trade that has to have greater performance there might be an algorithm uh for pricing that needs to be kept secret um and that can be run in the uh criet itself off the chain but but still preserving the goodness of the distributed ledger so when you bring these into practice these two use cases fall into these types of criet so utility criet um here's an example again I doubt you can read this code but this is a smart contract here I'm marked in yellow where the event subscription happens this is the exact same uh description I used for event where you're subscribing to an event for a specific time if the Market's open for certain rate um to give you a rate in a price of a commodity in this case and uh what happens is you simply uh requests that the uh crypto delegate wires up um the secure connections between the smart contract and the criet itself so it's just like a secure reference so a developer at design time will reference the criet they want to trust the signatures are recorded and IT wires up that and the crypto delegate can also check and enforce that the messages only come from that criet um so it wakes up the smart contract to go ahead and execute the code you see the code body itself down here the the solidity code has all the calculations that we're performing so that's going to run on every single node uh once that is been seated the contract triplet is um actually deployed in this case we're using the uh deployment uh mechanism to actually create the surrogate for the smart contract in the cloud so it goes through the crypto delegate and it goes out and creates the contract criet uh the contract criet doeses all the market watching all of the uh logic and execution to it's ready to store its state in which it uh Records the state down to um the smart contract itself now here's uh where the real value is every like hey I can write this on my own I don't I don't really need why would I use um Azure to do this well the advances in um silicon and the Hardware security uh namely Intel's sgx um provides the capability for you to create secure enclaves so an enclave if you're not familiar with what sgx does is it's uh area of um on the chip itself that's an uh complete isolation where you can run code and have data run uh where it's tamper resistant and tamper proof so you can't uh poke into it you can't um Step On A Memory address space to to go out and and um corrupt or potentially um um interrupt the execution of something um so this Enclave provides a secure container and then it provides full attestation level at the CPU level that this was actually uh built um in the enclave and run in an enclave now when you're starting to build uh Solutions like this and you want to get scale and you want to have security and attestation and you're trying to land that big contract with the bank or some somebody that wants to make sure that your security is Rock Solid if you can make guarantees that your code is running in a secure isolated container in the cloud full attestation um on in Silicon and recorded into the blockchain um it gives that level of security um that really you can't get anywhere else at scale because you're going to be able to deploy this and in Azure and Azure has been deployed in over 30 some odd regions around the world there's several here in China uh so you'll be able to um deploy these across the application fabric with an Azure now we're going to be uh delivering these enclaves in what we call a criet container uh cppc container is essentially an enclave based uh container wrapper where you inject criet in there the criet are written in the language that you want to Target so in this case um the first one will be the net core CLR that's the open open source Uhn net version uh uh cripp container then you can write it in C you heard some of you might have read about fstar um so you have lots of language choices there also in the jvm which is also very popular in the Enterprise and then um you know the evm itself moving into an enclave so uh this type of scale uh rolling out this type of innovation in these massive data centers where you you have on demand secure execution provides you with this five benefits so um hyperscale um Cloud secure execution and enclaves on demand worldwide same thing for data um and data providers so you can start to mix and match you might have a great data provider for some sort of data service um and you want to uh create criet libraries that you can put into the marketplace and make discoverable you have scalability and flexibility options now that you don't have um and you have them at scale so you'll have the developer tools you have the ecosystem you have the marketplace and the cloud where you can go out um and not only scale Your solution but also scale your execution off the blockchain if you need to so you have a lot more choices uh very uh developer friendly so you'll see lots of tool integration um and an ecosystem for um isvs to start start Building Solutions and a standard way we're not uh you know you get a common way to do something and it becomes fairly readily accessible around the world and something that becomes attractive to larger Enterprises so that has um if you're curious about that uh today we released the white paper for criet in depth um to go out this again is uh thank you it is out it uh it almost didn't get out because of the network here I had to to uh to uh push it up to GitHub this morning and I I thought it was going to choke on it it is 26 pages long uh but uh it has some uh fairly good detail about cets um but that is coming uh we're building that now um so you're not going to be able to go out and start writing criet tomorrow or today I know some of you I watch presentations you start before the presentation is over I see people you know downloading code and starting to try things out can't do that yet but you can read the spec so you can start planning for it and thinking about new Solutions new business opportunities for you um what you can do today and I'm proud to announce is Bletchley V1 and this is our uh ethereum consorti blockchain network ethereum is the first again in the marketplace with a uh and this is anywhere from two to hundreds of nodes uh by answering uh a couple of simp simple questions so when we went down this and we started to say okay what does the Consortium Network look like for ethereum so we we do this a lot we have a lot of companies come to us and say hey we want to start a Consortium you know how do we set these up it's not a private the private etherum network is easy install a node and you you stand it up so uh we had to go through and figure out you know what are the requirements this list of requirements we saw uh consistently takes about three weeks to get right that's everything from network configuration isolation where do you want to put your miners where do you want to put your transaction nodes how do you automate this so it's it's very fast and easy to do so we took this three-week process and we got it down we eliminated all but two of the steps okay you still have to read up on how to do ethereum once you deploy an ethereum Consortium Network you still have to understand you know how to write a smart contract um but uh we we we did all this and we got it down to five minutes answering eight simple questions questions and you can deploy again as little as two to hundreds of nodes on a private uh ethereum Consortium Network which is staggering we thought we did a great job going in from two days to 20 minutes for a single ethereum node to uh this massive Network that you can deploy in very little time so thank you thank you thanks Sid Isaac those guys are out here they were at 3:00 in the morning making sure that this so you guys can find this the link is uh out on Azure right now you can find the blog post it'll take you right there this is uh real quickly what it looks like it creates multiple subnets um and it puts each Consortium member in its own separate subnet uh for example the miners are on their own subnet you can't reach the miners from the internet you can only reach the miners from the transaction nodes and the transaction nodes are on a separate subnet as well so we put a quite dat a quite a bit of thought into this uh it also stands up a portal seeds the network with ether um and you can go out immediately go to the portal uh we are um uh allow you to really quickly get up to to speed and and show your network running something our customers have really wanted to see so I want to leave you with a little bit of a road map um where we're at so um earlier this summer we released Dev test labs for blockchain as a Serv service in general availability so around the world you can go out and create a Dev test lab if you haven't done that it's very easy that's where you can see all the not just ethereum but all the other blockchains that you want to build um BL cv1 is ethereum only right now um first on ethereum First on Azure for Consortium Network um kakuda is our uh security work group some of you probably seen that Community we'll be publishing uh more information about fstar the tools for formal verification to the community uh to help facilitate and move that effort forward through Microsoft research and then uh in sometime in the near near future in a distant galaxy far far away uh we'll have releasing the Bley SDK actually it shouldn't be that far and it should be in this galaxy so with that I'd like to thank everyone for your time and uh enjoy the rest of the show thank you Marley Gray [Music]
Automatic transcript — names and jargon may be misspelled.