 Thank you. Thank you. Hello everyone. Thank you for being here. So I have all of the open technology at IBM. I'm an open source open standard specialist. And for the last over the years I've worked on many different projects, primarily around web technologies. And for the last four years I've actually worked on hyperledger. And I'm currently, I'm actually contributed to hyperledger fabric, which is one of the framework developed within hyperledger that we'll talk about today. And then I'm actually elected member of the technical steering committee, which is responsible for overseeing the technical direction of the project in general. And I'm currently elected as the chair of the TSE. So, let me talk about blockchain. First, what is blockchain exactly about what we are talking about here? The notion of ledgers is nothing new. Businesses have been using ledgers for hundreds of years to basically keep track of all the transactions they are operating when they transact with their business partners, whether they're suppliers or customers. What is new is the notion of shared ledger, which is a new system that we have actually introduced around the notion of blockchain. So, if you look at it traditionally, the way business have been keeping track of their information is by having different systems of records that are being maintained independently from one another. Each participants has its own system of records and as they transact with their customers and suppliers they record new transactions. This system is inefficient and can be expensive to operate. Especially, everything is fine until something goes wrong. When something goes wrong, then you're facing what we call the reconciliation exercise where essentially you say, oh, something didn't go well. What happened exactly? Then different participants involved in the transaction that has a problem will have to compare essentially their notes because you all have a different system of records so each participant is going to have their own view of what happened and you have to find if something didn't go well where the problem comes from and reconcile the different views of what happened. So what blockchain brings us is essentially a system that enforces what I call reconciliation upfront. So now we have a system where we can all still have our own ledger but the system ensures that the different instances of the ledger are kept in sync with one another and so only transactions that have been approved by their group as a whole is recorded in the ledger. Once that happens, we now have a universal source of truth so that we don't have to figure out what went wrong and compare notes when something goes wrong because we can all look at the ledger and we all see the same thing. It provides us with a system based on this consensus process which gives us the provenance of the information it gives us immutability so you cannot unilaterally change the information that's stored on the ledger if you have to fix, correct an error, you can do so but you will actually submit another transaction to undo the first one. It's very similar to what you see with what happens with your bank account. If you go to a store and you make a transaction, you return the item you don't just delete the previous transaction, right? You actually record another transaction that basically undo the first one. And we have a notion and finality so that once it's recorded in the system, it's there to stay. There are actually different types of blockchain. The fundamental point that blockchain provides us with is this notion of irrefutable proof. It's a system that you cannot question. We've all agreed to the information that's in it up front so that you can actually rely on the information that's there and the system using cryptography will ensure that nobody can alter that information. Bitcoin, of course, is very well known because it's the system that actually started it all. This is at the origin of the whole blockchain technology movement. However, Bitcoin is only one application of blockchain. There are many different cryptocurrencies out there and usually when you say blockchain, they think about cryptocurrency. But when you think about it, Bitcoin was designed to allow the exchange of the currency within the network, without intermediaries. But fundamentally, underneath, we have a system of records that's generally applicable to all kinds of assets. It doesn't have to be a digital currency. And this is what got IBM interested in blockchain technology. It's that we realized that, essentially, blockchain is a new type of database which at the very core is applicable to store any kind of information. So that's highly useful to all sorts of industries. So what is Hyperledger Fabric? Hyperledger Fabric is an application framework, is a blockchain framework for the enterprise application based on blockchain. There are many different characteristics that makes Hyperledger Fabric different from other blockchain out there. When IBM started it and then we contributed to Hyperledger, we didn't start by designing, oh, we're going to develop our own blockchain. We actually spent a whole year doing investigation of all the different blockchain technologies that were already available out there. And we had to come to the conclusion that none of them really meet the needs of the enterprise. Especially when we looked at how business functions, we found that, well, businesses, they like to do work, they don't work with anonymous participants. They actually know the people they are working, the entities they are trading with. On the other hand, they like privacy. They honestly want to know, you know, the world to know what transactions they have with whom. This is only at odd with all the public blockchain networks that exist today, which are anonymous and are actually providing no privacy or legal privacy. In addition to this, public networks have the cost of protecting themselves against everybody because they don't know who they are, they are anonymous players. And this is a very expensive process called proof of work, or, you know, coin mining, depending on what you want to call it. And we have actually found that once you're in a permission network where you actually know the identity of the participants, you can better control who is in the network. You don't have to protect the system as much against everybody. There are other means. If somebody were to be a bad player, you can actually get them out of the network because you control access. You can revoke access. And then if it's your business partner who is really trying to alter the information in a way, you know, that's illegal, you can even eventually sue them. They are legal means because they are known entities. So we can actually use different types of mechanism to come to consensus that are actually a lot more efficient and it gives us much greater performance, which obviously business wants. Then there are different aspects related to this notion of smart contracts. Smart contract is kind of the equivalent of store procedures in traditional databases. It's a piece of information, a piece of program that runs on the network that will ensure the logic of the application. Implement the logic, ensure that the data that is submitted to the network is valid and that transactions that are being submitted are acceptable at that particular given point in the process flow of the application. When it comes to smart contracts, there are different approaches out there depending on the different technologies you might consider. In the case of hyperledger fabric, we decided not to constrain the application developer. We support general purpose programming languages to develop your smart contract. So hyperledger fabric is written in the Go language and so for smart contracts, you can write your smart contract in Go but we also support other different languages. We support Node.js, Java and others. We actually have no mining or no built-in cryptocurrencies because again, when we talk to businesses, a lot of them are actually experienced with Ethereum for instance. All of this is actually a distraction to what they are doing. Businesses that run on the type of networks we're interested in do not try to make money by running a blockchain network. They're making money by trading whatever they are doing their business does and the blockchain network is only a means to enact. So we actually don't have any of this. And then I'll talk a bit more about this. We have a new type of processing model which is based on the Execute Order Validate which is totally different from what is typically done in blockchain networks like Ethereum or Bitcoin which actually provides us finality and I'll talk a bit more about that. But last point about hyperledger fabric is that from the very beginning we realized that we would not be able to develop an application framework that would actually work for all use cases. So we developed one that was highly flexible and modular so that you can actually change things and adapt things based on the use case. So for instance, if you think of the consensus algorithm this is the process by which the network has to come to agreement on the order of the transaction that has been submitted because your peer-to-peer network and transactions come from different parts of the network and at some point you need to agree what is the exact order. This is a research field. There are people who actually actively work on coming up with new algorithm that are more efficient, that have different characteristics. So we actually made the consensus part of the process pluggable so that you can actually change the consensus algorithm if you'd like if there are new techniques that are available. And that's one of the examples. I talked about the programming languages. We actually have machine layer, we have different SDKs available with different programming languages. We can use different programming languages for the smart contract as well. And so Hyperledger Fabric is one of the projects the Linux Foundation has been talked about earlier. I'm not going to say much more about this. It's mostly to say that the project just started four years ago and it started in 2016. It was announced late 2015 and started in 2016 and it's been one of the fastest growing project in the Linux Foundation. Jim is no longer there, I have news for him. We're not a third 350 members anymore because there was a big hype in the blockchain space as you probably know and we did go over 300 for a while. It has come down a little bit so we're closer to 280 now which you may not like but that's not true. But it remains very good. Hyperledger Fabric is actually hosted by all the major cloud providers today. So if you go to Amazon's AWS or if you go to Azure and Microsoft cloud you will find Fabric as a service and the service channel is available. So what are some of the applications that actually are in use today that we have developed with Hyperledger Fabric? I'll just give you two examples. These are systems that actually are in production today so we're no longer talking about playing with this and trying to do proof of concept. So TradeLens is a platform that IBM started with Maersk. Maersk is the biggest shipping container company in the world and the challenge they have is not only to make sure that a container gets shipped from point A to point B but they also have to deal with the paper trail associated with the container which follows its own route obviously. Shipping a container from one point to another around the world might actually require up to 30 different signatures and stamps from different parties along the way. What we're talking about is people like port authorities, customs, tax authorities, insurance companies. There are different players all along the way who are going to have to endorse added information. What we do with TradeLens is that when the container starts we can identify each container by an ID. There's a record that gets started on the blockchain and all the information, all the signatures can be added associated with that ID so they come in the form of new transaction, get submitted to the blockchain and at any given point you can query the blockchain and you find for that container all the information associated with this container. This obviously increases speed in terms of access to the information, transparency, auditability and it actually allows everybody to access the information and that's a key aspect that I'm going to take a little bit of time talking about but right now it's that people say, well I could have done that with the traditional centralized database. The answer is yes. The problem is if MERSC were to host the database they would give an interface for all the different agencies to access the database through their web interface. Nobody would be able to completely trust MERSC. They would have to trust MERSC not to alter the information you need later on. With the blockchain network we know that neither MERSC nor any of the other participants in the network can do that. That's the added value of blockchain is that you actually share the control with all the network so no single party has full control of the information. Another example is called IBM Food Trust. It's a similar idea but in the food industry. The idea is that we can trace the provenance of all the different food items across the supply chain. So you take the example of chickens. We can actually tag the chicken of the farm, record where that chicken comes from and then we're going to be able to trace that chicken throughout the supply chain, all the distribution channels, all the way to the shelf in the store. When there is food contamination today, they have to do a recall. They actually don't know which chicken on the shelves come from the farm that has contamination. So what do they do? They take all the chicken out and they waste a lot of food. Nobody gains from this. Not even the competitors because when there's food contamination on one type of product, people don't just select other competitors' products. They just stop buying this kind of food. So there's a huge incentive to add transparency. By having this kind of system, we can identify which chicken on which shelf have the chicken from the farm that's contaminated. And obviously this applies to all sorts of food items. So Walmart is a big player of this. They started with the prototype we have now drawn into a full-blown production system and all the major players are actually participating in the platform. Car4 has also adopted the system. They actually did an experiment and added a QR code on the product in the shelf so you can actually scan the QR code with your phone and you can see the provenance of the item. And they actually saw an increase in sales immediately because customers nowadays want more transparency. They want to know the provenance of what they eat for good reason. And so this has actually motivated them. They have a plan to, throughout the next year, to add all of the other products in their store. So let me now give you a little bit more insight as to what's in fabric. And I'm not going to get too much into the detail because we don't have enough time for this today. But I want to highlight some of the key components of what the Hyperledger fabric architecture is made of. So at the top first you have membership services. This is a key element in permission networks. Obviously we have to control the access to the network so people, participants have to be identified. We have this notion of membership services where you start from, you first go and roll with the membership services, you get some ID, and with this you're going to be able to participate in the network. We have designed membership services in fabric so it actually integrates with legacy systems so you don't have to create new ID. If you have an LDAP server in your system you're going to be able to leverage this. Then on the left side we have the application which connects to the network through some node and through an SDK. We have different SDKs available in different languages. Node.js is the most popular one but there is one in Go. There is one in Python and Java and there can be more. Then one particular really of fabric that I touched on earlier which touches on this notion of the process flow is the fact that we have actually split the node in two parts. There is a part that only focuses on the sorting of the transactions which we call the ordering service. The ordering service doesn't care but the nature of the transaction all it cares about is listening to all the transactions that are submitted to the network and through a consensus process agree on the order of the transaction. This is where the new block is being created and once the block is created it's being distributed to the whole network and it guarantees that there is only one order for everybody and that's final. Then there is the other part of the node that the application talks to which has to do with the endorsement so that's when you start to transaction you first seek endorsement by different nodes and how many, this is all application specific there is a policy language that defines who you need to have endorsement from and once you have enough endorsement it actually runs the chain code, the smart contract which essentially is a simulation of the transaction once you have received enough endorsement you can then send it to the ordering service. The ordering service casts a new block and sends it to everyone. When the ordering has been done the node actually will get the new block and commit it to the ledger. There's a validation process there I'm not going to get into detail but there's a final check there and then there are events being sent out to the network so that everybody knows what happened so you can listen and every time there's a new block you will be informed. These are the main aspects of the system From an application developer though you don't have to worry about all these details Essentially there are two parts that you need to worry about as an application developer there's the application obviously the application front and on the back end again the smart contract These are the two pieces that you need to worry about From the smart contract point of view we don't have as a developer we don't have to deal with all the details of the blockchain Hyperledger Fabric actually does the handling of the blockchain itself What the application developer only does is dealing with the whole state through simple operations like get, put and delete possibly How this translates into transaction that needs to be sent and all that is hidden from the application developer you don't have to worry about this and obviously you do put and it doesn't actually write it because it's immutable and it will actually go through the whole consensus process and all that but it's from an application developer as if you were just writing to a local database So we have now been four years into the project and we have actually adopted a monthly release cycle we have a release schedule where every month we release a new version there are minor releases throughout the year and we had some major ones that I will highlight 1.4 was released earlier this year at the very beginning of the year and it was the first long-term support release so it's worth mentioning and we're in the process of finalizing version 2.0 we actually just tagged version 2.0 beta last week and the goal is to have fabric 2.0 final release published earlier in 2020 probably earlier in January after the holidays The one thing I do want to highlight is the kind of changes we have actually been making that we have been making to the system It focuses on some key aspects privacy and confidentiality we started with some assumptions and over the years we realized as we were actually engaging with customers in real application we had to make more decentralization we have more and more decentralized aspects to it serviceability so initially for instance if you had to make a change you would have to shut down the system and then make the change and restock that does a working production now it's much more dynamic there is a lot less out of band information that's needed performance and scalability we keep making improvements in that regard and ease of use it used to be a bit rough and it's getting easier to use even from an application point of view or from a natural operator point of view what is the IBM offering why are we doing this in open source when we make money well at some point we need to make money so the IBM blockchain offering basically builds a hyperledger fabric we don't have our own version a different version we use this very same hyperledger fabric that's available from the Linux foundation but what we do is we have a set of tools that we have developed that are available on top of fabric that will allow you to develop your application deploy your network and manage your network and we do that in a completely hybrid cloud way so you can deploy to any cloud providers you want different parts of your network can run on different networks that all works and the operator will have console administrative consoles that provide seamless view of all the network independently of where they run you will see everything as if they were all running in the same data center and it can also be on premises so if you have computers already like if you're back and you bought a few of those multi-million mainframes you can also leverage those and finally I will end with this for the IBM blockchain extension for Visual Studio Code so Visual Studio Code is a freely available tool a developer environment and we have actually made an extension that's also freely available and it allows you to actually develop your application and your smart contract locally on your machine it will actually run a very small Hyperledger Fabric Blockchain Network very local to your machine you can do everything locally you can debug your smart contract and once you're ready you can then deploy independently of the IBM Blockchain Platform all this is freely available and it's a good way to get started once you're ready and you want to develop and deploy to a network then you can connect to the IBM Blockchain Platform and connect to do your deployment so this is the end of my presentation thank you very much