#201 Matt Kerner: Microsoft's Coco Framework – The Holy Grail for Enterprise
19 Sept 2017 · 1:09:42
Matt Kerner, Partner General Manager for Blockchains at Microsoft Azure, joins Epicenter to explain the Coco Framework, an open-source system for enterprise consortium blockchains. He covers how Coco uses trusted execution environments to deliver database-comparable throughput while preserving confidentiality, its approach to identity management and network governance, and how it fits into Microsoft's broader blockchain strategy and roadmap.
Speakers
Topics
Transcript
[Music] this episode of epicenter is brought to you by shape-shift oh the easiest fastest and most secure way to swap your digital assets don't run the risk of leaving your funds on a centralized exchange visit shapeshifter I Oh to get started hi welcome to epicenter the show which talks about the technologies projects and startups driving decentralization and the global blockchain revolution my name is Sebastien Ogier GM at Microsoft working in blockchains and financial services
we'll talk about recent announcement from Microsoft regarding the cocoa framework which uses trusted execution environments in a special way to make consortium blockchain networks so Matthew welcome to the show thanks for coming on thank you so much for having me so before we begin like we'd like to know how how you got interested in block chains while working at Microsoft it found me what happened was that across the company we were broadly people within the company we're starting to look at blockchain and it found its way to my team because broadly we owned a
set of verticals including financial services and so it made sense for us to look at it within the azure team and so we borrowed one person from my team and we thought perhaps it would be a flash in the pan and we would get some things in the marketplace and be done and as we got involved we saw that it was a much bigger deal and I started spending more and more of my time and got to a point where I sort of couldn't stop reading about it it was I was ravenous for information quickly decided that there was a real strategy that we needed across the company here and so we we built a team and we're incubating that as a workload now working with a variety of customers and partners to see where it takes us so Dennis like what your team does exactly
sure my team is responsible for two things we're responsible for financial services as a vertical on Azure and there we look at more than blockchain that's everything that's required to enable banks capital markets insurers payment providers and other financial organisations to run on Azure whether it's compliance certifications or certain features that the platform needs to have or an ecosystem to support that market is fees and NSIS so that's one half of what the team does and then the other half of what the team does is to work on blockchain as a workload and that crosses multiple different industries and they're you know we're building the blockchain technology in the Azure team that we make available on
our cloud and we're also responsible for the overall blockchain product strategy for the company working with a variety of different teams who work with customers and partners to plan out what we'll do I've got to say I've been really just very impressed with all the all the interesting stuff that's been coming out of Microsoft you know especially in these recent years and and just the the level of commitment to to blockchain technologies that's been coming apparently at the CEO level even setting Satya Nadella you know coming to events and visiting you know startups you know in in in these Microsoft developer events that last year here in Paris and and I've got the feeling that you know a lot of people see Microsoft
it's like this old incumbent you know Windows and like the Steve Ballmer years and even before that but I think a lot of people make primarily myself you know but I think a lot of people like myself think that are neglected to realize that Microsoft's changed a lot in the last few years you know open sourcing dotnet and really dedicating to open source and sort of opening the company to all these different technologies so you know can you talk about talk a little bit about that change and I think you Microsoft for quite a while like how how does that change perceived internally it's a breath of fresh air and it has changed dramatically I joined Microsoft in 2001 and to put it in perspective three weeks after I joined the company
we had the windows XP ship party and so it was a very different time I spent a number of years working in Windows and it really is a different place now we're spending a lot more time listening to customers deeply understanding where they're at we're seeking to learn meet customers where they live and it takes us down some paths that the company and traditionally might never have gone down including open sources you say as one trend but also I think the disruption of the on-premises packaged software business shifting to a cloud model is a huge deal that's changed the way we think about enterprise computing and blockchain is one of these emerging things that yet again challenges the
models of the way businesses approach their markets and businesses approach the technology that enables them to run in those markets and scale and one of the big sort of efforts that Microsoft is working on is helping customers digitally transform their businesses and we think that blockchain is part of that story although we're really just at the beginning of it and certainly it's true that across the company many leaders see major potential here for this to be a disruptive new technology trend and we don't want to miss it and so we're we are absolutely investing in a big way and we're committed to to seeing this through and and having it take us to places where honestly we're
not entirely sure what those places are yet we'll just have to see no no definitely well on that note you know it seems that right now everywhere you look especially in the last year or so like in terms of enterprise awareness of blockchains there's just been like this peak hype cycle and and there's a lot of noise there's a lot of there's a lot of undesired noise so you know from your perspective how should should businesses be thinking about blockchains how could businesses be thinking about the potential for blockchain technologies and enterprise we think that we are just at the beginning of a sea change here and it really is just the beginning there are so many things still to be sorted out we don't yet in
the industry have established patterns of successful production deployments running at scale in an enterprise context that people can reference and learn from and so I think I think it's I think there are a variety of different postures that a business could take and and and these postures could apply to any technology trend if I think for example about cloud if organizations are not aggressively adopting cloud and using it to transform the way their businesses work they're in trouble because their competitors are likely doing this and their competitors now have an asset that that is differentiated and sets them apart when it comes to blockchain I think lots of organizations are in a wait-and-see mode and it's not unreasonable for organisations to be there again as as I
said I think we're just at the beginning and it takes a certain kind of organisation to devote the talents and resources and thought to build a business strategy a set of business processes a technology plan and a go to market strategy to make blockchain work for them and those are the organizations that we most want to be working with closely right now and we're aggressively sort of building those relationships with with the companies that we see who deeply understand the enterprise deeply understand their industry and are investing to take a leadership step with blockchain and I think that the payoff that those companies can get if they take that kind of jump is that they establish an early market lead and in many cases that early market lead can
become an unassailable sustainable advantage over time so there is a payoff but I think it takes a lot of effort and costs and none of the organizations that we talk to enterprise organizations looking at doing blockchain projects find it to be a simple easy process today and so that I think speaks to the opportunity that we have to bring a variety of assets that Microsoft has to bear to make blockchain easier for the enterprise to consume meaning the assumptions that enterprises have about non-functional requirements plugging into their existing processes talent pools technology platforms and so that is sort of a major investment area on my team so in your experience pattern of when you
talk to enterprise clients what are the key requirements for blockchain platforms that that come across to Microsoft and how are they different from the open source public varieties that sure we find it's a great question that I think these requirements are often the same that enterprises as the as the requirements that enterprises have had for a long time when it comes to more traditional technology that they might deploy like a database they're interested in scale they're interested in low latency they're interested in confidentiality they want to be able to manage that workload and have policies that govern how that workload is going to run and so all of those are non-functional requirements and they're
just enterprise assumptions and nowhere in an enterprise are they deploying production workloads without meeting those expectations then on top of that specifically when it comes to blockchain we kind of divide our customer base into two sets there are a small number of organizations who are extremely deep on cryptography and distributed systems and they want to have a very detailed technical conversation and so they've got some specific requirements around how a blockchain will work for them but most customers that we talk to say look this blockchain thing is new technology we don't have the expertise in our organization to be able to consume it but we would like to use it because we
see the promise of transacting across trusts boundaries in a new way where we see a new arrangement for the market that we participate in that we would like to to bring to fruition and so they're interested in technology that will make it easy for organisations to plug blockchain into their business as opposed to just doing a technology oriented proof-of-concept and that's one of the places where we end up having a very relevant conversation because we're not only talking about blockchain technology but we're also talking about a cloud platform that many of these customers are using we're already talking about our identity offering with a directive directory that you know over 80% of the fortune 500 are already on and thousands
of SAS applications integrate with and we're talking about the productivity platform that thousands of organizations are running on office 365 dynamics and then partner offerings like the Creative Cloud that that that comes from Adobe and so there are a variety of touch points that we have with enterprises and they've got requirements down at the bottom let's say when it comes to the blockchain second cloud platform that are non-functional in nature and they've got business requirements up at the top to make blockchain consumable by lines of business as opposed to technical wizards with a specialized skill set and so that's those are the conversations that we have with most of the enterprises that we deal with so like oh one of these special things about the
cocoa framework is that it uses these things which are called DES or trusted execution environments can you explain what is a trusted execution environment sure just really briefly a trusted execution environment is a way of running code that operates on data on a computer that protects this process from [Music] disclosure to the outside and from tampering from the outside and if you take the case of a hardware based T like Intel SGX just as one example the chip enables you to create what's known as an Enclave which has a security boundary around it and the code and data inside
of the Enclave is encrypted except when it is inside of the chip and executing so the operating system the local admin the hypervisor cannot see the plaintext data that's inside of the Enclave nor can they tamper with the contents of the Enclave without the Enclave a chip detecting it and then the chip will shut the Enclave down and stop it from proceeding if it's been tampered with and so you you have this interesting pattern with trusted execution environments where once you create a trusted execution environment the code inside of that's he does inside of the Enclave doesn't trust the Oh and so I can't rely on the operating system for system services that it might normally expect to consume like
threading memory management synchronization and so on nor does that code necessarily trust the local admin and so it's a sort of a different threat model that you can operate with on a computer then you used to be able to do the other thing that T E's can do useful capability is they can produce what's known as an attestation which is a blob of data that can be remotely verified that proves that the TE is in fact a valid TE and that the data or the code inside of this heee was initialized in a certain way so you know essentially what program is running inside of there and since it's remotely verifiable you can do things like create a secure connection to its EE on another machine establish trust and determine
that that te is in fact the thing that you think it is and what you end up with is basically this remotely verifiable strong identity for code that doesn't assume in its threat model that you trust the local admin or the operating system and so that capability we think is a key foundation for how blockchain can run in the enterprise so this is really good visualization this strong identity for code so it's essentially a t'ee is an execution environment that is protected by Hardware where it receives inputs those inputs can be encrypted and they are decrypted within the hardware a computation is executed and then at the TE you will produce an output and that
output would be accompanied by an attestation which I presume would have some sort of a signature that signature could be like the certificate of the t's manufacturer like Intel and if you trust that certificate and if you trust that the TE was in fact produced by Intel then you can trust that the computation was in fact what the attestation had provided so you can sort of audit the code and have a fairly good well a reasonable assumption that well this this execution environment did in fact produce the code that output that was it was programmed to
produce yeah that's absolutely right and I would add tes need not be solely based in hardware we have one which is built into Windows server it's called Windows Server virtual secure mode or VSM and so you can have software based e's as well and the benefit of that model in our case is it's implemented by the hypervisor so you don't for example have to trust the host OS on a node that's running virtual machines that host OS can't see the memory contents of enclaves that VSM creates for the VMS only the hypervisor can see it and so at that point if you if you are willing to trust Microsoft as the hypervisor provider you can have a degree of trust that that would go beyond that that you
might place for example in a host er is that similar to something like a zkp circuit yeah and this is a really interesting comparison the the the comparison of tes and other cryptographic models that use just math to provide some of the capabilities well let's say a an intersecting set of capabilities with what you get with te ease the the beauty of something like a zero knowledge proof or homomorphic encryption is that you have a mathematical basis for the confidentiality of the data or the correctness of the results that you're
getting from a computation and so even if an adversary could completely compromise all the parts of a machine that's verifying one of those proofs they couldn't get access to the data if the assumptions of the math the cryptographic assumption of the math are sound and the trade-off that people accept when they use these sorts of schemes is typically a time and space trade-off well they're actually three Terios there's a time trade-off you know it can take longer to produce these sorts of cryptographic results and it would take to use a te to produce the results there can be a space trade-off where the size of the of the ciphertext or the size of the proof is large enough
that it can become an impediment to scale throughput or latency and then the third trade-off that people make is that sometimes these schemes who require that you bootstrap some randomness and so you have to go through the overhead of a key ceremony to establish randomness if you if you truly want to have a trustworthy system so there are trade-offs I'd also say that there are there are some while it may be mathematically possible to express anything with a zero knowledge proof practically speaking there are boundaries and it can be much easier to accomplish some tasks using a trusted execution environment because the programming model looks very similar to what people are used to today in comparison to some of these
cryptographic models where it takes you know a postdoc with a cryptographic background to figure out how to achieve a certain task and so I think that's a big distinguishing factor with this background in T is maybe we could jump into eventually like what is the cocoa framework and what it is trying to do but even before we go to the cocoa framework I think one of the one of the one of the interesting questions is like blockchain technology was was was developed in sort of this decentralized mode where the expectation was that they would be like multiple nodes that would be controlled by different people working together to create something
like which is trying to be trust this now like with with Microsoft like when Microsoft is trying to offer say blockchain as a service platforms then the assumption becomes that like all of the cloud nodes are like hosted by Microsoft they might be running T te es and this is some form of execution or guarantee might be given but if all of the nodes are on the cloud controlled by one like one or two different corporations there's like block chains Preserve is trust model in any way I think this topic is really interesting and I think that we're also at the
beginning of this debate and we're gonna see where it takes us I will say we do not operate with the assumption that blockchain networks that run in ash or unint ah sure I think that that would be silly we would not be meeting customers where they live the nature of blockchain is at least in the enterprise we think it's at its best when it's used to cross organizational boundaries where there isn't universal trust and that means that consortiums are going to form and those consortiums will undoubtedly include participants who choose to use a variety of different cloud providers or run things on premises and so are sort of beginning assumption on anything that we do in blockchain is we need to make consortiums work really well with Azure
which means accommodating infrastructure that runs elsewhere so right off the bat I would assume it's not a world where everything is centralized on Azure at the very least you know one option of course that we make available is if people like the facilities that we provide to make it easy to run blockchain on Azure they can run that same set of things on hash or stack which is our on-premises appliance that combines hardware plus software to give the same sort of azure deployment model that we have in the cloud but lets you do it in your own data center under your own control with your own network connection or what have you and so we have customers who are putting these things on cruise ships in mines on the factory floor in regions of the world where we don't currently have a hyper
scale cloud presence and so they're solving lots of different problems with Azure stack and and certainly blockchain is one workload that we think is important to support in that configuration as well then I think the next question is what are the assumptions of the of the workload that's running on top of blockchain there are public networks and those public networks are expressly designed to be fully decentralized night not take any dependency on any sort of centralized authority and you know public clouds might be useful for dev tests they might be useful for running certain utilities that the public networks consume and we may be able to do lots of work to make the development experience easier for public networks
but I think that those will continue to be decentralized in the way that they are today enterprises however operate in a different world they're not typically operating in a market where they're performing anonymous transactions between arbitrary counterparties usually they're operating in markets where they have a name they have an address they have a business license the subject to law enforcement they're subject to the jurisdiction of one court or another and today you know that all of these non technical controls govern the way that that enterprises behave and I believe that that will be true for the foreseeable future so the assumptions for enterprise is going and are a little bit different they may not be looking for the same set of of decentralization
guarantees that people seek on the public networks now by the way it doesn't mean that enterprises don't worry about their cloud providers they certainly do and one of the reasons that we have invested so heavily in Azure is compliance posture getting dozens and dozens of certifications is because we want any customer in any industry in any geography to be able to use our cloud and certainly compliance as a part of that but it's more than compliance it's also the Terms of Service and the way that we conduct ourselves and so you know certainly people have been following the Microsoft Ireland case where we successfully fought to avoid serving a warrant for data that was held internationally based on a court order in the US we said that we wanted that to
be served but we wanted to be served with a warrant in the jurisdiction where the data was held and we went all the way to Supreme Court with that and so we are very serious about running our cloud in a way that enables our customers to trust us both individuals and enterprises I guess the the last thing that I would say is we think that trusted execution environments are an exciting development in the history of cloud and we think that the the the point at which tes become widespread it will be a watershed moment if we look back in history of cloud computing because for the first time customers will be able to put their data in the cloud put their compute in the cloud but
not have to assume that the cloud provider is going to behave in a certain way they'll be able to leverage their trust in the trusted execution environment to get the results that they want you know if you think about this just imagine that you had some health data your and let's suppose that there was a cloud-based service that you wanted to run that would enable you and others to provide your personal health data run an algorithm on that data and then give you back a result that would tell you if you are at risk of acquiring a certain disease well you could encrypt your data to a key that is available inside of a trusted execution environment on the
cloud you could upload your cipher texts the cloud could take that and process it inside of the trusted execution environment where add let's say the Hardware boundary prevents the cloud operator from seeing that data in the clear and then the te could take the result and write it back out in ciphertext and you could take that and then you could decrypt it you know on your own device and see what the result is and at no point in time was the data ever in the clear for the cloud provider to see and so we think from a confidentiality and integrity standpoint trust execution environments enable us to sort of cross a boundary that we've never been able to cross before of course you still do rely on the cloud for availability for performance for durability of the data in that scenario but maybe those are characteristics that
enterprises are willing to trust Microsoft to provide in return for the elasticity the agility the set of services that are made available you know in in in dozens of regions around the world at hyper scale and so I think that that trade-off it's fundamentally attractive to people in enterprises decision-makers and enterprises and so that's why we think that blockchain has a role in Azure well let's let's get right into it then the cocoa framework so what is the cocoa frame working can you perhaps describe that that stack of technologies or or the architecture of the cocoa framework sure enterprises
everywhere are curious to see how blockchain can be used to transform their markets and their business and as we talk with them one of the very first concerns that they raised is that there used to a set of non-functional requirements standard across their entire IT portfolio they expect certain levels of scalability low latency they expect confidentiality of the data that they put into those systems and they expect to be able to govern and manage those systems and those four basic assumptions are Enterprise non-functional requirements that are really non-negotiable and if we look at any enterprise products that we produce those are key ship criteria for us an operational criteria over time the
challenge with blockchain is that it was developed as technology to run in a public network across heterogeneous machines and with with a threat model that assumes that any individual party in the network could be malicious and that threat model is a Byzantine threat model in other words it assumes that any of the counterparties can replace the code running on their node with arbitrary malicious code of their choosing they could try to have caused the system to fail but you know in any sort of way including through security failures and so the protocols that blockchain needed to use in order to operate in this hostile threat environment were resource-intensive protocols that also
at least to date have required the vast majority of the data and the blockchain to be stored in the clear for all participants to see the governance model is also very basic as it basically comes down to the decision of what code is run on each of the mining nodes in these public networks and when we talk with enterprises they feel that the scalability latency confidentiality and governance trade-offs that they make with blockchain are oftentimes too great for them to consider it for any kind of real production use and we heard that feedback enough from customers and also internally from experts within Microsoft who have been working on enterprise computing for you know 20 or 30 years in some cases that we felt there was
something that ought to be done about that and that and we felt that none of the solutions that were out there in the market really hit the enterprise design point you know squarely and in a head-on way and so we started working on the core framework and it was an idea that came jointly sort of out of some thinking from mark russinovich who's the azure CTO and Microsoft research where we have a number of people looking at blockchain broadly and and the basic idea of the cocoa framework is first of all it's not a ledger if you want to run a ledger you need to use a ledger cocoa is a framework that enables many or any ledger to integrate on top of it and cocoa takes on the job of forming a secure high performance high throughput network that implements a basic layer of
governance and then enables the ledger to bring its ledger model to bear with whatever abstractions the ledger might like to use and it brings these set of enterprise capabilities to that ledger scalability that can handle thousands of transactions per second latency where we can process transactions in milliseconds whether rather than waiting seconds or minutes arbitrary confidentiality models for fine-grained role-based access to data and governance that enables a consortium of enterprises to decide what rules they're going to follow and who's going to get to participate in a structured way and so cocoa seeks to be this ubiquitous Network fabric for multiple
different flavors of enterprise blockchains built by a variety of different Ledger's across industry verticals and in our hope and intent is that cocoa will enable enterprises to consume blockchain without having to compromise on any of their basic non-functional requirements so if I'll try this times stayed the same thing in my own words so like with any block chains with any blocks and again with any public blockchain there's only like three or four like four main components to it right so so the first is like this networking layer so there's this generally this gossip network the check nodes like communicating all of these
messages and this because census layer or consensus piece which is like once you have these nodes and they are communicating with each other how they arrive at consensus on on like changes to whatever dataset they're tracking and then the third thing is like a transaction layer which is like what do the transactions enable the users to do so there's some kind of transaction logic to it and the fourth might be like a governance layer so how do you handle it upgrades 2d to the network to the network consensus or transaction logic so the very like I see Coco is a Coco is trying to build just the networking
governance and consensus systems and on top of it anyone can plug in their own transaction types or ledger types yeah that's a good question Coco is certainly seeking to solve that networking layer problem it also will come out of the box with a variety of consensus options and so it can handle consensus for a ledger if the ledger wants to to delegate that it does not concern itself with the content of transactions per se that's the ledgers job but it also does have something to say about governance although I don't expect that Coco will ultimately be the sole answer to governance and consortium
that works I think Coco will be risk be able to be responsible for some low level governance about the basic sort of substrate of that consortium and then higher application level governance also needs to apply just as a very simple example suppose we're talking about a blockchain that implements smart contracts Coco doesn't say anything about which smart contracts the consortium members are going to use for their business processes but it does say something about what ledger code versions those enterprises are going to run and who's going to get to participate this episode is brought to you by shape-shift the world's leading trustless digital assets change quickly swap between dozens of fleeting cryptocurrencies including Bitcoin
ethers e cash gnosis manera golem or cur and so many more when you go to shape-shift dot IO you simply select your currency pair give me receiving adders sent the coins and boom shape-shift is not your traditional crypto currency change you don't need to create an account you don't need to give them your personal information and they don't your coins so you are never at risk from a hacker other malicious actor shape-shift has competitive rates and is even integrated in some of your favorite wallet apps like Jax so you can swap your digital assets directly within your wallet just as easily as putting on your slippers whenever you see that good-looking Fox you know that's where shape-shift is so to get started visit
shape-shift I owe and start trading and we'd like to thank shape-shift for their support of epicenter how do you expect like enterprises to use the cocoa framework so let's assume like let's assume like a group of enterprises is wanting to build like a consortium blockchain for a supply chain application so is it the case that they can just take the cocoa framework like choose a particular flavor of off ledger right like like pick pick and it's helium like ledger system or quarter like ledger system over table and then mix and mostly - and then deploy their application
I think supply chain is a great example I would let's just start with some of the things that a supply chain consortium I'd like to do you might like to have buyers who are gonna submit orders for goods and you might have suppliers who are fulfilling those orders and then there are a variety of people who are responsible for transportation and customs and so on and then there's maybe another layer of services that are provided in a supply chain consortium that has to do with trade finance where for any one of these orders the buyers really only going to want to pay for it once the goods are received but the supplier is going to need cash in order to manufacture the goods and ship them and so there's this gap and so supply chain finance Sears
will extend credit to suppliers in order to do this and then they you know they have to determine the terms of that loan what interest rate are they going to charge what contingencies are there in the loan and usually they try to get data on the history of those suppliers and also the history of the buyers to determine their creditworthiness and today a lot of this happens on paper fax machines wet signatures phone calls it's extremely tedious and there's a tremendous amount of friction and much of this data is today at least in supply chain shared point-to-point through protocols like EDI and it's extremely inefficient and troublesome for people to make sure that they're in sync so I think that there's a compelling value
proposition for a supply chain consortium to adopt a distributed ledger but I think one of the first problems that you would see and and by the way this use case is it interesting because this is one of these things that moves at the speed of physical goods here we're not talking about some digital bear instrument with high frequency trading that's not the use case although there is such a use case in this case we're talking about things that get shipped you know a phone call is probably actually faster than the supply chain so it it moves above the speed below the speed of humans so we're not so worried about the performance you know scalability and latency aspects here but I think any supply chain consortium would immediately be
disturbed by the prospect of having the data from buyers visible to all buyers and all suppliers what goods are they purchasing from whom at what price at what time if if we knew that about our competitors when it came to for example the cloud supply chain that would be a tremendously valuable data point for us and so we keep that that's very proprietary information for us and we expect our suppliers to treat it as proprietary information as well and I think as any supply chain consortium would have the same concern but I think keep in mind you then have these trade finance providers who are trying to extend the loans and so both buyers and suppliers have an interest in making
data available about how much business they've done let's say in the past 12 months what percentage of the time that did they deliver on time the right set of goods and and by sharing that they can get better terms for trade finance loans and by getting better terms for trade finance loans the the cost that the buyer has to pay ultimately for the goods goes down and the margin for the supplier goes up so everybody has an incentive in sharing that data they also have an incentive in being in sync on exactly where the Czar did they already leave the factory are they on a truck where is the truck as the truck gone through customs of the things been tampered with did the number arrive that were expected was at the
same set of items that were in the lot that was shipped all of these things getting in sync on that can be tremendously tedious and we know from our own business as a corporate Microsoft's own business that this can be an extremely tedious process and then typically you know traditionally people would be on the phone working with spread their individual copies of spreadsheets to try to verify all of this stuff so there's absolutely a business case to remove friction from the system and to introduce a new model for trade finance with better financing terms based on verifiable data that's in sync across all the counterparties but I think confidentiality is a major issue for any supply chain consortium I'm not sure that governance is quite as important in other words unlike let's
say a banking consortium a supply chain consortium might not have to worry as much about who's permitted to transact with each other they may not have the same kyc requirements but of course if I'm a company in the US and I'm doing business with a supplier I'd be mortified to learn that my supplier was actually a sanctioned organisation so I might very well want to do some basic kyc AML checks on the set of people who are participating in the consortium so I do think governance is relevant although perhaps not as relevant so let's let's just to stay on this topic of scalability and confidentiality because I think that for enterprise these are probably the two most important characteristics that they're gonna be
looking for in a blockchain and so can you explain then how a cocoa framework enabled blockchain network so to speak achieve this high level of scalability I mean I saw this mark russinovich demo which will well link to in the show notes where we're running an EVM and you know there's just like thousands of transactions per second to just go to the transaction odometer just goes off the rails and and so yeah let's let's address that and also address how we can achieve transaction confidentiality you know everybody knows that on the public etherium network
it's nearly you know it's theoretically impossible to achieve a transaction in the current implementation of aetherium it's impossible to achieve a transaction confidentiality sure so so in this in this consortium example the the way that we can do this is first of all the consortium pixel ledger and we've announced several that intend to integrate with cocoa and working with several others that we're we're not yet ready to announce anything so they'd pick their ledger and that ledger would would incorporate the cocoa framework into its distribution and what cocoa does is it makes changes one very basic assumption among the block chains we do not assume that the participants in the
consortium trusts each other they can be adversarial that's fine but we do assume that we can create a trusted network of nodes that represents those members of the consortium and the way that we do that is by leveraging the trusted execution environment so we create on each node that's a member of the network an Enclave that Enclave is running the ledger code and some cocoa management code those enclaves connect to each other they exchange at two stations and now each of those enclaves knows what the other one is running and they can verify that the party on the other end has not replaced the code with the malicious code of their choice they're in fact running the the expected code that the consortium has decided that
they're going to run and once you make that assumption again we're not assuming that the members trust each other we are assuming that those members can't tamper with the contents of the Enclave so that they own and we are assuming that the enclaves themselves are producing valid attestations once those enclaves form that network we can use much more traditional distributed systems protocols to achieve things like consensus and data replication and those traditional distributed systems protocols in addition to just being proven over the course of dozens of years of operation at scale they also provide much better characteristics in terms of latency and in terms of throughput and so we can achieve scale like you'd expect from a database in the case of blockchain by using trusted
execution environment to set up this particular kind of trust relationship among the nodes confidentiality is the other thing that we can achieve again the data in the case of these trusted execution environments is only ever in the clear inside of the trusted execution environment meaning that the local admin can't see the contents of all the transactions flowing through the system they have to make a request through an API to read data and when they do that that API can choose what data to show to each of the individual counterparties who are participating in the consortium and now instead of having to use very fancy cryptography that might have a time or space trade-off or might require unique cryptographic knowledge on the part of the people implementing the
system you can have a standard Enterprise developer write some logic that says in my consortium or for this order I'm going to make the order visible in its entirety to the buyer who placed the order and to the seller who's been selected to fulfill the order and I'm gonna surface metadata about the order like the total value of the order whether it was delivered on time I'm gonna surface that to any caller who has a role that's a trade finance role now you've got this very fine grained our back it's standard our back role based access control that any Enterprise developer would use today they set it you know an access control list or they write rules about who can see what data and then the
code just implements those rules and since the code is running inside of the trusted execution environment it can't be tampered with since the data is only unclear inside of the trust execution environment it can't be read from the outside and now all of a sudden you've got a consortium that can run at the scale of a database with the latency of a database and have this arbitrary fine-grained confidentiality it's really not clear to me how that scheme could be implemented using ZK snarks or homomorphic encryption it would be a real challenge to come up with this especially this fine-grained confidentiality for that supply chain consortium scenario this is this is amazing because back in 2015 so prior to 2015 there was no notion of enterprise block scenes at all i think i think
enterprise blockchain is like consortium chain is released in 2015 and the yes Raman the face was the problem of like privacy the blockchain model requiring all of the transactions broadcast in order to be visible to all of the consortium parties and traditionally traditionally this annuity propose solutions to it has always been some form of zero knowledge proof but zero knowledge proof SAR are very limited in what they can do so this this almost seems like a holy grain right like you're taking components like trusted execution environments which are which are available and then able to bail the blockchain like consortium
scene platform in which privacy of data can be guaranteed by only rules role role based access this seems something that which is like very powerful we think so we think that it addresses the key things that our enterprise customers are telling us they want out of blockchain and by the way using cocoa doesn't mean that you have to give up on all of those other techniques one of the Ledger's that sickly express their intent integrate cocoa is quorum which was built by JP Morgan Chase and is this open-source ledger that's sort of a modification of a theorem for the enterprise and quorum already uses point-to-point encryption with its constellation system to enable private
transactions among a subset of members of a consortium and quorum already has on its roadmap the desire to incorporate other kinds of cryptography like the the CSL from that derives from these non zero knowledge proof that derive from the public networks and they're gonna keep those systems and those will be available to use selectively for use cases as a consortium sees fit and cocoa will be yet another layer that enables consortiums to achieve what they would like and so this is not meant to be sort of a the one single answer that's suitable for everything people will use crypto cryptography where it makes sense they'll use the execution environments
wherever it makes sense and so we think that people are going to start being able to mix and match to address their business requirements so just to recap just to just test my understanding so what Kokua can allow enterprises to do is like it's assumed all three of us are enterprises in our supply chain example so I don't know I'm I'm like a shipping company Sebastian fish lobster like Massey you you buy some things in bulk and Sebastian is there like a is a financing company and all of us are on one like blockchain
ledger which is running on the cocoa framework so me as me as one of the participants I have to assume so what do we need to assume we need to assume that all of us are willing to run our nodes on these trusted execution environments and once we assume that it gives me the power to input some data into into the into the consortium chain have all of these nodes running to set in six execution environments come to consensus on that data and also allows me to selectively only selectively reveal my data to the other consortium
participants so I can have a mechanism by which I choose to reveal my data to Sebastian but not to Matthew that's exactly right and by the way it can be even finer grains than revealing my data to Sebastian or not to Matthew it could be I'm gonna reveal you know the date of the order to Matthew and the quantity of the order and the date of the order to Sebastian and you know you could come up with as fine-grained a model as you like and one of the components of the demo in the video that we show is is this application physics application that's built by a company called mo Jaques that that is a supply chain blockchain based
supply chain management application and in order to build that application on top of we so what we did in the demo is we took the C++ aetherium code base and we reap lat formed it to run on top of cocoa but it still has the very same set of interfaces externally that it had originally and it has the same execution model inside of the EVM for transactions and so all that MOU Jaques had to do first of all they they they removed all public data from their smart contract definitions so you can't read the data directly and then they implemented access control logic in each of their smart contracts where you could read data that just checked the this whoever submitted the transaction
against an access control list to see who's allowed to see the data and that enabled them to achieve this fine-grained confidentiality it's all done in the idiom of the ledger cocoa underneath provides kind of the core capability to make it work but it ends up being very flexible and they really we also we had to disable a couple of api's those api's that enable raw read access to the transactional history or raw read access to enterprise or to smart contracts state those had to be disabled in order to prevent people from circumventing the logic inside of the smart contracts but it was a very simple change it's not as though we we had to break things in a major way so they basically just had to pipe their reads through the smart contract methods and
then all of that access control logic applies just just just a question on what happens when something goes wrong and for example you have a smart contract right and it turns out that let's assume that smart contract is also handling financial value and now there's a bug in the contract and because of that bug that smart contract is leaking value to some people who shouldn't have access to it now somebody needs to fix that contract so do they get like like so whoever is trying to fix it do they get like access to all of the data handled by the smart contracts yeah this is a great question and and let me sort
of work my way into it first of all before before anyone uses cocoa they need to do a threat model they need to look at the particular business they want to run in their consortium and decide what what trusted execution environments be suitable for handling that data because different teas have different characteristics and so that's sort of step one and I I imagine there will be some workloads that are not suitable for cocoa and that's fine the next thing is we assume breach an Asscher we assume breach at Microsoft we assume breach we just assume breach and we've got to make sure that things work the way the customers should expect even when breach occurs and so that means we have to assume that a te can be compromised at
even and and that's a much worse failure than a smart contract having a defect because te compromise would expose everything and let if we approached it in a naive way and so our our design seeks to do several things first of all minimize the possibility that a breach occurs second of all make it easy to detect if a breach occurs and third of all minimize the blast radius when a breach occurs and so that and make it possible for people to recover so the first thing is we're sort of working with Microsoft Research on a variety of techniques to avoid bad code failures inside of trusted execution environments
and so Microsoft researchers published some papers on this that there are compiler techniques static and dynamic analysis that can prevent data from leaking outside of Atty even if there's a compromise inside of the T so there are some classes of bugs that we can just eliminate upfront the next thing is I worry about the size of the trusted computing base inside of the T inside the Enclave and so in our design we will we will end up with a model where we have actually multiple different enclaves running at the same time on each node there's an enclave that runs the cocoa management software which is a relatively small code base it's carefully audited and it's consistent across all integrations with cocoa and
then there's another Enclave that runs the ledger code base and that code gates could be potentially larger that will vary by ledger it might be a varying quality depending on which ledger you're talking about and so we've now reduced attack surface because all of the key material for example can stored inside of the smaller more trusted computing base and only data is encode related to the ledger stored in the other one the next thing we did is we designed a threshold encryption scheme and the idea here is if somebody were to be able to compromise an individual node we wouldn't want them to be able to decrypt the entire ledger and then run off with it and so there this this threshold encryption lets you generate a group public key in that
group public key lets any of the nose encrypt data efficiently and then in order to decrypt you need a quorum of nodes so to each perform a partial decryption and those decryption shares can be combined to reveal the plaintext and what that means is if you've got one counterparty who somehow compromises a te and they want to decrypt the entire ledger they need the cooperation of a quorum of other counterparties in order to actually get to the data and so that enables those counterparties to have policies like rate limiting the number of decryptions that anyone can do and if that rate limit is exceeded they can alert and it was very important to us by the
way that that we did enable sort of offline decryption by a quorum because there's a disaster recovery scenario where you no longer have the t's that were storing the keys that were being used and you need all of those members to be able to code this time for legitimate purposes to rehydrate the ledger in new infrastructure so that it can continue to run and so there's a variety of different measures that we took to model the possibility that a teehee could be compromised and to be able to detect it you can for example have Teesri tests periodically you can roll over the keys that individual members are using and so ultimately we envision that all of these countermeasures will be controllable by policy there's there's also a question when it comes to the consensus model
that's used in this network in blockchain today of course with let's say proof of work every single node and even proof of stake every single node is going to reiax acute all of the transactions in a block in order to verify that there before accepting that block on the chain that requires them to be able to re execute those transactions so the data has to be in the clear and you have this performance overhead and and this sort of energy consumption overhead and so we we think that there will ultimately be a variety of different consensus models available in cocoa including proof of work by the way there's no reason you couldn't do that if you wanted it inside of a cocoa deployment but we think that there are some interesting consensus models that could come out where for
example you could elect a leader and then that leader is the only one who ever asked to execute a transaction once the leader exits the transaction it takes the resulting state changes and broadcasts it to all of the other participants in in the network and those participants just blindly accept the state changes from the leader and commit them and this is a pretty high throughput model it's sort of consistent with what you might get in a system like Paxos where you'd have a replica set and you'd want a quorum of replicas to commit the data before you consider a transaction valid so that it's durable but this is a in this in the in this model you're only worrying about crashes you're not worrying about Byzantine
adversaries with who are running malicious code now even in this model you can assume that maybe some of the members in the network could somehow compromise its hehehe and become malicious and and so there you might want to have a model where asynchronously let's say you have a set of nodes who are responsible for fully validating every single transaction that they see so what leader is still the one responsible for broadcasting the state changes the majority of nodes synchronously except those state changes and move on and then asynchronously you have some other nodes checking to make sure that the leader has not gone off the reservation and done the wrong thing and if of course if any of the nodes does detect a violation they can alert and you can rewind the ledger back to
the to the last agreed-upon state you perhaps you kick out the bad actor and then you can and then you continue so we do assume that there are these problems down at the ledger layer and we have a variety of defense-in-depth measures to reduce the likelihood of a catastrophic failure there we actually don't do anything to address the failure scenario that you described which is bug in a smart contract that is entirely an application-level concern and the Koko framework in and of itself doesn't really know or care about that and so that would be a problem that the participants would have to sort out amongst themselves and by the way that I don't think that's a soft problem either and it's a very interesting one well perhaps that's a good segue into into
governance and so that the framework and I thought this was one of the most interesting parts of the framework talks about the governance model and the way that you deploy a network so cocoa framework has within it this description of how consortium members can deploy a network with just with just one node with just one consortium member sort of initializing the network and then other members coming on board can you walk us through you know let's let's keep on this on this supply chain example let's say I'm I don't know Walmart and I want to initialize this network and then start bringing on trade finance actors suppliers transport companies you know
and all of the different participants in the supply chain how would I as you know Walmart for instance deploy a network using the cocoa framework it's a great question and it starts with some basic agreement on the parameters that all of the members are going to use they have but they have to pick a ledger it's not as though cocoa is like a lingua franca - franca between Ledger's we're not attempting to solve that problem so you have to pick your ledger and you've all got to agree on the code version of the ledger that you want to use and you've all got to agree on who's gonna participate at least at the beginning you can have changes there over time but there's got to be some initial set of members that you're gonna choose to do business with and then you're gonna have to agree on a variety of settings that
relate to cocoa like what trusted execution environments you're gonna be willing to accept do you only want Hardware ones you want software ones which ones and for example you need to agree on a threshold for voting among the members do you require unanimity in order to approve new members do you need a simple majority do you need just some other threshold M of n could be arbitrary and so each of the members is then going to set up an environment for themselves and in each environment they're going to initialize their own cocoa node in order to do that they initialize the the code and then they connect to the Enclave over a secure Channel and they would probably the very first thing they'd
like to do is they'd like to inspect the attestation that the Enclave gives back to make sure that the Enclave that they ended up with is actually the one that they wanted and and there wasn't a malicious actor somehow residents on the node who injected some other malicious code inside of the Enclave so you say okay hey look let's just say for example it's running on an Intel SGX capable chip and so you have an enclave and and there's an attestation that that looks to be valid and you see that the code running inside is in fact represented by the hash of the cocoa framework that you expected and so then that member is going to feed the initial configuration into that node saying here are the other counterparties that I'm doing business with and here are the public keys that
are that that represent each one of them and then that node is going to connect to the other nodes and the network using for example just DNS to find them and it will initialize connections and those will be TLS connections and then these nodes exchange a variety of data they exchange as has stations so they determined that each of them is running two years and they determine the code that's running inside and they're in the cocoa configuration are the set of allowed code versions and allowed to use that are expected and so once the the nodes have have performed this validation they're ready to go ahead and so they then initialize processing on the ledger all of this metadata that describes how the network should be
formed and what settings are expected we call the network Constitution and that Network Constitution is meant to represent all of the infrastructure level decisions about who can participate and how they could participate and members are only accepted into the network and those connections and are only considered to be trusted if the rules of the Constitution are satisfied and that is sort of now the initial state looks in a KOCO Network so if if a particular KOCO Network is deployed with a certain Constitution do you expect there to be a lot of changes to this to this
Constitution and like how do you think the governor's process for these changes would look like I think that this notion of a consortium model is tremendously powerful and that it will it will disrupt multiple industries but I also think it's poorly studied and poorly understood today at least by those of us working on blockchain I think there are other consortiums in existence that have been around for a long time that are very well understood think about a payment network like I don't know like a Visa or MasterCard that's essentially a consortium of banks and financial institutions and and you know it's it's
not managed in this way in particular there's one trusted party that runs it I think that there's that this is a very rich area for new insight and innovation and also services that will make it possible to run consortiums efficiently but I think you know to begin with and by the way many of those consortium management problems are at the application level as in the example that you gave before about a faulty smart contract but when it comes to the infrastructure the consortium has a lifecycle members may come and members may go and the software used and even the t's used by the members will iterate over time and so those are the basic rhythms by which I believe that the Constitution is likely to change there
may be other policy changes like you might choose a different M of n threshold at some point in time but that feels less likely to me I think the common thing that will happen is a consortium will get started with a certain set of members they'll get it off the ground and they'll run it for a period of time and once it's the kinks are ironed out and they're ready to scale it they'll bring other people in and at that point they'll have votes to bring in new members they'll have you know the the manufacturers of the Ledger's will have new versions of the Ledger's that fix bugs or add new capabilities and in some cases they will carry a CO copay that changes the the functionality that the cocoa framework provides for that ledger and so these are all updates that need to be applied and can only be
applied if the network Constitution is updated to accept them and so we imagine there will be lots of interesting scenarios around this governance where where consortiums will decide hey I just want to accept any new distribution that let's say is signed by r3 from the from the court of team and so any any signed r3 pelo it ought to be able to run all that ultimately needs to be able to be expressed as a cocoa policy not something that we would have in our v1 but something we will work towards over time and so we'll try to remove the friction from these basic changes that would happen in the network this is really fascinating I mean I can see how you know any any enterprise consortium looking to launch a blockchain network
could find a lot of the properties and a lot of functionalities that they would need for production networks within within cocoa so I'm definitely going to keep looking into this and I'm looking forward to seeing how this develops we're nearly at the end of our nearly at the end of the show but so get a couple of other questions so one so we had Marley gray on a few months ago to talk about project Bletchley so can you just briefly perhaps tell us is this connected to project Bletchley in any way is there any overlap there with other initiatives at Microsoft I mean I I presume that all the azure blockchain is a service stuff will will have cocoa and sort of built in and you can use
that to launch a network what about these other blotching projects yeah you know a large fraction of the investment that we're making has to do with paths and sort of horizontal SAS built on top of blockchain and Bletchley is that vision for this connected set of services many of them existing that can be used in a in a in a thoughtfully constructed way to enable enterprises to take advantage of blockchain as a shared data layer in many different kinds of business applications and so that's a big area focus for the team it's sort of a whole different topic but one of the things that that seemed important to us was that the base nation B sound for enterprise use and I you know it became clear that
enterprises would have trouble adopting the pass and says that we're working on in the bletchley vision if the blockchain was not able to address their needs in terms of confidentiality scalability performance governance and so we think that cocoa and Bletchley are are sort of self to self reinforcing investments but there are two very different investments Bletchley is really a cloud platform play cocoa is not cocoa seeks to be the foundation of blockchain for the enterprise wherever blockchain and the enterprise is running so it can be running on premises in our cloud in another cloud it will be made available in you know as open-source for free for enterprises to use and and for a ledger manufacturers
to integrate and it will work on both Windows and Linux so it's going to have very broad applicability and as an open source project we're not looking for example to directly monetize cocoa but we do think that it's a necessary investment to get enterprise adoption that then in turn can take advantage of the innovation of Bletchley definitely I can see a lot of value in that so at the moment you've written a white paper to which will link in the show notes is there an implementation of cocoa that people can you know download and use at this time so where we are today is that we've built what we demonstrated we took vanilla aetherium we modified it to run on top of the cocoa framework in its
current form and we adapted we worked with mojo ex magics adapted an application to run on top of that and that's what we demonstrated in the demo that we did we're working right now towards a v1 release of cocoa in 2018 that would be an open source release over the course of the fall we'll be working on that and we'll probably be working on that with some of the partners that we've already announced Intel with hyper larger sawtooth r3 with Korda JPMorgan Chase with quorum we'll be working on incorporating cocoa into those Ledger's and then ultimately again get to an open source release in 2018 that I think will open it up to two to broader consumption well definitely be looking forward to
that and so thank you very much for coming on the show that it was a fascinating episode and look forward to having you back on in the future perhaps when you uh when Microsoft released its the open source framework and we start seeing applications being built on cocoa enabled networks hey I really appreciate the time and the wonderful conversation questions thank you so much and thank you to our listeners for once again tuning in epicenter is part of the let's talk Bitcoin network you can find this show and lots of other great shows at let's talk Bitcoin comm of course if you want support the show there's multiple ways you can do that you can leave us a review on iTunes or wherever you get your podcast it always helps people find the show and we appreciate it greatly and you can also leave us a tip in the
tipping address will be as always in the show description so thanks so much and we look forward to be back next week [Music] [Music]