 let me begin to get a temperature of the room by which I mean not the physical temperature. In terms of content, how many of you have are already in the blockchain space? How many of you have heard about it? And then how many of you have read about it? Excellent. Okay, good. And last set of questions, just a demographic question. How many technology providers in the room? And the rest of you end users? How many end users? Consumers? And the rest is what? Media? Paparazzi. Okay, so I think, I don't know the protocol. I think the doors are welcome to stay open, but let's get on to a sort of a warm start over here. Is this streaming live or is it being recorded for replay? Okay, good, good. There are going to be two of us that are going to be speaking. I'm going to set the stage, actually more than set the stage because I'll be talking for about the first 20 minutes. We have 30 minutes altogether. And that is getting some of the foundational aspects around blockchain placed. And then Chris is going to join me in taking us through not just a demo, a couple of demos, but also in the spirit of the forum that we are in over here. Take us through the Hyperledger project, which is another very vibrant up and coming open source project similar to how, let's say, Cloud Foundry was just a few years ago. My name is Garvinder Alawalia. I'm based in Dallas. I'm part of the IBM team. Officially, my paycheck comes from the cloud side of the business, but it touches the blockchain side of our business. It touches IoT and beginning to touch a lot of cognitive as well. My role is out in the field with customers, many of you or some of you who I do know are in the room in helping kind of solution all the changes in technology that we are experiencing, both from the cloud side and increasingly from the blockchain side more to this talk. And I'll just do a brief intro and then Chris will talk a little bit more. Chris Ferris over to the front seat on the left side for me is a Distinguished Engineer, and he is the CTO of our open technologies, open architecture, open cloud architecture, and also the chairperson, the elected chairperson of the Hyperledger project, which operates under the governance of the Linux Foundation. He'll touch a little bit more about that. So as must be clear from the title, of course this is a conversation I want to start about blockchain, and then also in the context of Bluemix which runs, which is the IBM pass running on Cloud Foundry as most of you know. There are three parts that I'm going to touch on in about 15, 20 minutes. Actually, I'll touch on the first two parts and then hand it over to Chris for the last part. One is give you the basics, the essentials around blockchain, and that is definitely let's understand what it is, let's understand what its constructs are, give you certain architecture views, help you relate to certain well-known patterns like model view controller I'll touch upon, and also I'll specifically touch on something called consensus protocols, and there's a reason I'm going to touch on that specifically. And then I'll talk about a new genre of apps, if you may, called Dapps. How many of you have heard that term before? Just one person, one or two or three. Okay, so very few of you. So I'm glad that we are able to, Chris and I are able to from IBM bring to you, introduce to you the concept of Dapps, which is very similar to a few years ago when the concept of 12-factor apps started and cloud native application development started. So there's already a new paradigm of application development that has come upon us and calling developers on how to approach blockchain-based apps. And in the Dapp section, I'll talk specifically, you'll see the continuity from the previous section and that is about smart contracts, certain practices and characteristics related to Dapps. And then the developer resources actually I'll leave it to Chris to point to the developer resources. It'll really combine with the third section. And then Chris will talk about, he'll go to demo to you two demos. One is marbles and the other is commercial paper. Just the names of those should be intriguing enough to you that I feel safe leaving the description for later and the intrigue for you right now, and Chris will detail it a little bit more. Okay, that's the plan. Everyone's good? All right, so blockchain essentials. The key distinction, you might have heard of this as a distributed ledger, but the key distinction and a characteristic of the blockchain is that it is decentralized and it has replicated state and replicated content across all nodes. So there is consistency and how we arrive at that consistency to give you the teaser, it happens through consensus, which has to proceed the replication. Every node on a blockchain network basically has the identical database. So that makes it not just a database which is decentralized and consistent and identical, but it is also a transaction analysis platform. So it is both a database as well as a new kind of transaction analysis system, right? So transaction analysis is not new to any of you, and I'll make some of the historical connections a little bit later. Now, this being a generic picture, if we look at the constructs, actually let me just back up to give you historically the contrast. The contrast on the as is scenario is where every node in a relationship or every node that needs to transact or entity, let's not call it a node, maintains their own ledger. Ledger is a fancy name in the blockchain lexicon for let's just call it databases, decentralized databases. Every node in the current state maintains their own ledger, maintains their own database, even if there is a transactional relationship between two entities. And then you can think about all the reconciliation, all the alignment, and of course all the audit that has to follow as a result of the databases being separate, even though the transactions are tied. So the databases become same identical decentralized replicated, a lot of audit and a lot of reconciliation and a lot of friction is removed from the ecosystem and from the economy. Now I'm going to take you through five constructs and think of this more in terms of business before you begin to translate this into technology and later in the slides I'll make the translation into technology. One is assets. Assets are broadly of two kinds. One are tangible assets which are physical and you'll see chairs and tables and all and when Chris does the mobiles demonstration, mobiles are an example of physical assets. The other category of assets are intangible assets, right? So paper stuff that is digital, intellectual property, so on and so forth of course including software code, those are intangible soft assets. And Chris's second demo which is the one called commercial paper is an example of an intangible asset, an application that uses intangible assets on a blockchain. So that's a construct of an asset. The second, there are five constructs I'll take you through. The second one is one of a ledger. I've already described that a little bit to you but think of the ledger, what your historical know a ledger to be. Here's the transaction. It goes down on one side for a one party. Here's how it goes down where another party on the other end of the same transaction. And then you can look at the transaction from a life cycle perspective and I come to an example of buying a car, a new car or a used car and then you use it for a few years and then you sell it and somebody else buys it and exchanges hands through four owners. You get the idea. Eventually it goes to a junkyard, right? So there's a complete life cycle and every step of the way there is a transaction that is happening and those transactions are getting recorded. The transactions are not just exchange of money but also represent exchange of transactions of course associated to that could be exchange of value, exchange of currency, could be associated, all right? And then I clubbed the last three constructs over here and that is participants, transactions which I already a little bit described and then contracts. Everybody understands participants in the ecosystem and in a relationship when a transaction is happening and the contracts are what govern the rules of relationship and operation of the participants in order to conduct the transactions. I talk about contracts a little bit more formally in just a few slides. So if you relook at this picture and I build upon it with that's a generic picture and I build upon it with a more specific picture, you see the life cycle in a car as an example of an asset that a car goes through, right? And think about all the paperwork that is involved in the transactions of the life cycle of a car as a property or as an asset. Who owns the asset? What is its licensing certification? State licensing, DMV kind of papers, ownership, insurance, so on and so forth, right? Who is driving it? Who is borrowing it? There are a lot of aspects to it. There could be telematic aspects also to it. I am not touching on necessarily the telematic aspects over here but you could also look at that as another digital chain that happens in automotive. So this is something that you can relate to. This is an example of a tangible asset and these kind of transactions can go on a blockchain and each of the entities in that each of the nodes represents an entity and the entity records the transaction depending on the movement and the stage of the life cycle of the vehicle. So that was a car use case. This is an IOT use case, probably closer to a consumer connected home kind of an IOT but you can think of it similarly in other IOT situations where the devices, so these don't just have to be financial transactions. Financial finance could be an element of it, right? So the devices that are talking to each other could be nodes on a blockchain which now become homogenous, meaning the blockchain and the user is agnostic to the individual devices. The reason I point out the word homogenous is because that's one of the barriers to large scale adoption of connected home. Heterogeneous devices, they don't talk to each other and so on and so forth but how do you take that problem away by lifting it into a layer which we call the blockchain and then having the rules and the transactions and the trust between devices through the blockchain. And now you can begin to look at a car talking to the vision that it really has seen, painted in the industry, can come closer to reality where you now get not a device centric experience but you get a user centric experience with trust between devices and governance that you can apply through the blockchain. There are several other examples, several other use cases but the most important point in providing only a very short sample of the use case list over here is to compel you to understand that it's going to touch all of you regardless of what your industry is because the nature of transactions that we are talking about which can come into the scope of a distributed ledger is basically anything and everything for the large part. Now of course there's more mechanics and design aspects to it meaning public versus permission and scale and certain design points that I'll talk about in just a moment but there are use cases and actual execution happening in the market, this is not just visionary around land rights in countries where land rights aren't very well developed and property ownership of land is put on a blockchain and it stays there and there is no dispute about it and it's very clear when hand off an exchange of land or property transaction happens. Providence is when somebody wants to know exactly, a company wants to know exactly where its individual component parts of a product are coming or service is coming. Think about pharmacy, think about aviation, think about luxury goods, think about healthcare. Those ecosystems are very sensitive to where the supply is coming from, where the supply chain is coming from, how do you get the right governance and the right provenance around that? All those are examples and use cases for the blockchain. So I'm stepping into kind of my second section which is to begin to give you, now that we painted a picture around the blockchain and by the way I forgot to mention one of the key words, once you get a little bit deeper into this, there is a whole language and terminology that is developing. The transaction and what is saved in the blockchain database is immutable. So it is different from typical databases where you can go and do a delete and distributed ledgers, decentralized ledgers you cannot delete. So once you save something in it, it is saved in there for life. So now you can begin to see not just does everybody have an identical copy but what is in it is immutable. So I'm going to move into the architecture view and this is the model view controller pattern that I alluded to earlier and if you begin to think of your stack, a typical stack on the left side, begin to think of that and I'm going to basically build it up and try to relate it to a blockchain based stack and you have transaction systems in your environments today, the middle portion of the platform stack. So think of this, think of blockchain based stack, very similar to the stacks that you have but of course very different in its own unique and differentiating ways where you look at it as another transaction system that is part of your environment. Just like cloud became part of your environment and beginning to expand and legacy begins to shrink similarly think of your transaction systems and opportunities for new transaction systems, either existing ones moving or new ones being built, being built with applications built on the blockchain. So I'll step you through real quickly through these layers and starting from, well let's just start from the bottom. The point being that security is of course not just hardware but also security at the hardware layer and there are hardware companies that are doing a lot of work, both at the chip, right at the chip level in terms of security and then you come into consensus which is a really important point and the reason I flagged that out is because it sets me up to talk about on the next slide which is devoted only to a certain sample of consensus protocols for you to kind of keep, take under your belt for further consumption. So blockchain the core fabric, right, is abstracted out from the consensus capability. So from the IBM point of view and increasingly from the community in the Hyperledger project, Chris will talk a little bit more about that, you begin to see consensus as a service. So it is not loaded and wired into the Hyperledger core and now you get to pick and choose which consensus protocol you use. Park that thought in your mind for a moment because I'm going to come back to it, why the choice of a protocol and having flexibility in which choice for your use case and for your market conditions is important. I'll talk a little bit more about that in the next slide. Then of course your crypto capabilities, messaging capabilities across blockchain nodes and then smart contracts is the other layer that I will highlight a few slides down and built on top of smart contracts or applications which in this world are called the apps and I'll elaborate a little bit more about that in just a moment. So here are some terms that you probably never heard of. Quite frankly even I had not heard of until you know started having into under the hood of this engine. On the top left is something called BFT or Byzantine fault tolerance or PBFT for practical Byzantine fault tolerance. Praxis is another, let me just throw the words at you and then I'll elaborate rafters is another one and sieve is another one. Now to make the connection for you these are the protocols which stand in the layer over here that you see called consensus or consensus protocols. There are lots of choices. This by itself is becoming a very vibrant subspecialty in computer science schools today. A lot of research happening in new kinds of consensus protocols are evolving. Now some of these are new and some of these actually have existed for 20 years. Byzantine BFT has been sitting on the shelves from MIT or somewhere for the last 20 years really hasn't gone into wide-scale application but the Hyperledger project which is the open source blockchain project IBM is significantly invested in that is going to use at least for the first release the BFT protocol. If you're familiar with Bitcoin which I'm sure all of you are and underneath of Bitcoin is also the blockchain which is where all this innovation and disruption started but the distinction to note is that the Bitcoin blockchain is vertically integrated for Bitcoin so think of Bitcoin as the application think of Bitcoin as the application and the blockchain underneath of Bitcoin as a vertically integrated specific to Bitcoin that's the blockchain for it and the consensus protocol that it uses is proof of work which is not shown over here. So the choice of the protocol affects significantly the use cases the market behavior and also the fairness of a blockchain market so that nobody corners power and of the transactions matters significantly. I won't elaborate too much just in the interest of time. RAFT is another very popular protocol and actually you may not even know this is something that is used in the Zookeeper Hadoop HBase world so see some heads that are nodding. PAXOS has been around for some time I believe but it's also very complex SEVE has some more refinements on top of BFT for eliminating or minimizing non-deterministic behavior. I'll skip this but the main idea is here is there are certain design points that are important when you're designing a blockchain node meaning which node should take what entities and what roles there are different roles as you can see that nodes have. A node first by default boots up as a validator node and then issues a request a broadcast saying are there other validators over there and then it finds out whether there are other validators or not and then takes on there's an exchange and a protocol communication that happens and then nodes take on different roles based on the protocol on certain security and privacy services. How many transactions can be run on a node? So there are a lot of design aspects that come into play when you're designing a blockchain network besides just picking which protocol it is. I'm going to skip the letter of credit use case but it's the idea is you begin to see the movement of documentation and goods across a set of parties. I spent a few minutes on smart contracts and DApps and leave sufficient time for Chris in a few minutes. Everybody knows what a contract is so I'm recapping what the lawyers have told us. So it is an offer as a meeting of mine it has to be accepted by both parties it is a promise to perform and because it's a promise to perform there has to be consideration meaning value has to be exchanged there's usually a timeline and an exploration associated with it there has to be proof of performance so the consideration can be exchanged within the timeline and there has to be remedies if somebody does something bad then how do you do mediation and recovery and those kind of things somebody breaches. That's a contract. In many sense the smart contract is not different but you should not expect it to be just a codification of traditional contracts into software code because there is more optimization you can get more granularity and features and control on the contract you can release payments on much shorter intervals depending on movement of a cargo from country A to country B depending on the progress of exchange of tangible assets you can have more finesse, more control a richer contract if you have it in terms of a smart contract. Smart contracts run on nodes certain privileges nodes will have which ones can run what kind of smart contracts and if you think about the stack diagram we looked at smart contracts are what invoke the submission on to the blockchain they invoke a request on to the blockchain and therefore also invoke the consensus protocol underneath of it. Back to our car ownership problem real quick the current state where the databases are different and each has an in-house database and the idea being now everybody has a yellow identical shared distributed ledger the reason I put up that slide is to begin to introduce you to the concept of dApps and there are three things in the dApps if you look at it holistically one is of course the application per se and in the middle you will see something called chain code think of this as the layer in the stack diagram of the smart contracts in the hyper ledger project in the IBM term chain code is basically the implementation paradigm for smart contracts in go Chris can elaborate a little bit more on that that's chain code and then chain code writes to the distributed ledger the blockchain at the bottom so those are the three essential constructs of dApps on how new kind of apps are built and here are some more properties I'll leave these mainly for you this is just a narrative around the previous graphic around the characteristics actually just real quick this last point over here and you look at the characteristics of dApps and you think of them to be abstraction this is a new form of programming of abstraction you are now looking at so you think of contracts not in terms of objects you think of contract oriented programming as opposed to object oriented programming there is no entity that controls the majority of the tokens protocols as I described is as the consensus is as a service dApp adaptive based on use case of the market and you avoid any you know central points of failure and if you think about it on the right side the 12 factor the 12 factors the 12 factor app everybody's familiar with this builds upon that this is not in conflict everything underneath of this is intrinsically in the 12 factor application constructs as well alright so let me give it to Chris to take you through a couple of demos thank you let's see alright so the first one I'm going to show here is marbles so we've written a couple of sample apps on the hyperledger hyperledger fabric platform I should say to demonstrate essentially what's going on in the internals and each of these samples sort of gives you a sense of you know how to actually create an application that leverages the blockchain in this particular case we have a very simple demo we have Bob and Leroy and they have and can trade marbles right so I can move a marble from Leroy to Bob and as you can see down below that's getting recorded in the blockchain as a specific transaction I can create a new marble I can give it a color I can say I like this one I'm going to have a green one I'm going to make it blue alright and I'm going to make that large and give it to Leroy and boom we see another block get added to the blockchain where did it go hello alright that's not good it's not getting validated as everything was going on here it hasn't been validated why isn't it showing up create another one give this to Bob there we go now the show up and then I can trade them but you notice that this is immutable so you know once a trade is recorded it's recorded for both I have two nodes in this particular demonstration and it gets recorded on each and I can go through and I can inspect the blockchain there the second demo that I want to show is sort of the commercial paper so this is an application where you know one company may put out an offer to give a loan to a customer so that they can buy their product right so this is something we call commercial paper and so I have myself and then I have Gurri all logged in here and we're going to trade some commercial paper so I'm going to create XXX $100,000 note so I've just created a $100,000 note put it in there and that's now available for Gurri to pick up so he can actually purchase that note right there so that he can buy something from me and so we've just executed a trade and if we come down here we can see that all of those are then recorded in the blockchain so again these examples essentially give you all the tools that you need to be able to write a note application that interacts with the blockchain shows you how to write the smart contract and go and deploy it to the ledger and so forth let's get back to the demo since I think we have very little time hello, Moes okay so when we started exploring all of this one of the things that we recognized was this is the perfect type of thing that's suitable to open source at its essence you know blockchain is going to be something that's going to be I think as fundamental as the web if everybody runs off and implements their own blockchain technology that doesn't interoperate we're never going to be able to create these various use cases that you saw if we're going to have supply chain transparency you're not going to have a single vendor solution across an entire supply chain so it's very important to us that we actually created an open source project and so this brings us to the hyper ledger so I worked with Jim Zemlin some of the other guys at the Linux foundation and we recruited a bunch of friends and I have 48 friends in the hyper ledger project we started out with a total of 30 and we've had two in just the past three months we've had two additions one of 10 and one of 8 just last week new additions, new members of the hyper ledger project we have sort of monthly hackathons where we get the community together community developers together to either to start hacking on and creating hyper ledger hyper ledger based projects solutions and or to hack on the platform itself to bring new members into the fold sort of it's not quite exactly the same thing as the cloud foundry dojo model but again there's an awful lot of pairing and stuff that goes on as we start bringing people into that community of development we've got a number of activities ongoing we're building requirements in use cases this is sort of exploring you know the landscape of use cases that Guri was sort of hinting at we've got an architecture working group that's sort of exploring how we want to compose this from a pluggable perspective identity working group that's focusing on the various schemes that we have to manage identities in the blockchain and we've got a group working on creating a white paper that's giving us a point of view across all the different types of things we're essentially you know if I were to net it out I would say that the project is intending to be the analog for blockchain that the Linux kernel is for Linux we expect there to be one kernel and then many distros and many various solutions building off of that kernel so again that sort of reflected in the white paper we have two incubators we have the fabric incubator which is based on the IBM contribution in collaboration with digital assets and then we also have the sawtooth lake incubator which is a project that was contributed by Intel it implements a blockchain and it introduces a new and very novel form of consensus something they call proof of elapsed time it's a little bit more complicated to get into but basically it sort of replaces the notion of proof of work and we're looking at just in fact just this week we've been working on getting the whole release integration process up and running so that we can potentially be able to cut a couple of releases in the June timeframe I've left a couple of links here so we have obviously Bluemix all the demos that I was showing you were actually running on Cloud Foundry Node.js applications that interact with the blockchain peer network that was running in a Docker swarm cluster with two validating peers so we've got that you can check those demos out they're also available on GitHub you can go to github.com slash IBM dash blockchain we've got a number of other additional demos and samples there you can toy around with and some additional links here to various resources including the Hyperledger project hyperledger.org again it's open source it's free for anybody to come and contribute and we'd love to have come and hang out and that's basically it any questions any questions yes right so the question is can I give an example of how the choice of consensus protocol would affect the nature of the application that I wanted to build an important point that I think again this is a half an hour is very too short to cover a lot of this stuff but if you think about Bitcoin, Bitcoin is a permissionless network anybody can join and the choice of consensus is important because it this proof of work notion is what assures that that everybody is paying the same picture right it's fairly complex but basically because anybody can join you have to sort of pay to get in and the way that you pay is to do this is to solve a puzzle solving the puzzle requires that you chew up an awful lot of CPU and the thinking is well if you're chewing up CPU you're actually spending a good deal of money paying to the electric utility to actually to do that when we think about some of the use cases there those are going to be in what we call permissions networks those are going to be where maybe a collection of banks or participants in a particular supply chain we get together in a closed network if you will and because you know who the members are of that you're less likely to fear that one of your one of the members of your supply chain or one of the members of your banking consortium is a bad guy that's going to try and do some bad things with the shared ledger and so as a result of that we can choose one of those other consensus algorithms like PBFT or SIV or something or RAFT and because we know the set of members in that network we know how large the network is then we can figure out whether or not we've achieved consensus just by counting and so as a result you would choose some of these different algorithms to essentially achieve greater throughput in those kinds of networks and again there's additional exploration ongoing to figure out we can have some where we have a collection of validating and non-validating peers that participate in that way you can even constrain further the number of validating peers helps to increase the throughput because it takes less time to achieve consensus and there's additional research that's ongoing about various other forms of consensus that we might choose to use R3 came out with something called CORDA very recently and their notion of consensus is just the two members participating in a given transaction are the only two that have to achieve consensus so if they do then we're good so there's an awful lot of different approaches depending on again the nature of the kind of network that you're creating okay yep I collect money over the web for anything so I can't store for example credit card or something and I need to be PCI compliant and all those things so how do you see hyper ledger or blockchains easing that pain for let's say commerce over the web so so as I mentioned so the hyper ledger project is focused on sort of the core implementation technologies that you can use to construct a blockchain it's not a specific solution I would expect that the people the building is sort of on the solution layer on top of that technological capabilities are the ones that are going to answer that particular question I mean obviously those use cases and requirements feed down into how we build this technology but it's going to be the solution itself that determines that okay why would how would you convince me to go with hyper ledger and not Ethereum okay so that's a good question so the question is you know choosing between one of the other implementations of blockchain like Ethereum or even Bitcoin itself there's a number of others ripple and the answer to that question is we're actually in the process of collaborating with members of the Ethereum community and one of the things that we're looking specifically at is being able to take the Ethereum VM approach doing smart contracts and porting that and writing that in into the context of the chain code example that we just showed and the Ethereum community is very excited about collaborating with us so I don't think it's necessarily going to be a choice I think it's more likely that these things start coming much more together under the umbrella of the hyper ledger project alright I think there's another yeah thanks Chip thanks for saving me so thank you