 In the previous video, we talked about the basic workings to the original blockchain concept. But over the past years, it's been evolving fast, from the original Bitcoin protocol, to the second generation Ethereum platform, to today, to where we're in the process of building the third generation of blockchains. In this evolution, we can see how the technology is evolving from its original form as essentially just a database, to becoming a fully fledged globally distributed cloud computer. In this video, we're going to trace the past, present and future of blockchain technology. The first blockchain was conceptualized in 2008 by an anonymous person or group known as Satoshi Nakamoto. The concept and technicalities are described in an accessible white paper termed Bitcoin a peer-to-peer electronic cash system. These ideas were then first implemented in 2009 as a core component supporting Bitcoin where it served as the public ledger for all transactions. The invention of the blockchain for Bitcoin made it the first digital currency to solve the double spending problem without the need of a trusted authority or central server. It was only later that we came to really separate the concept of the blockchain from that of its specific implementation as a currency in the Bitcoin. We came to see that the underlining technology had a more general application beyond digital currencies in its capacity to function as a distributed ledger tracking and recording the exchange of any forms of value. The Bitcoin design has been the inspiration for other applications and has played an important role as a relatively large scale proof of concept. Within just a few years the second generation of blockchains emerged designed as a network on which developers could build applications essentially the beginning of its evolution into a distributed virtual computer. This was made technically possible by the development of the Ethereum platform. Ethereum is an open-source, public, blockchain-based distributed computer platform featuring smart contract functionality. It provided a decentralized, Turing-complete virtual machine which can execute computer programs using a global network of nodes. Ethereum was initially described in a white paper by Vitalik Buterin in late 2013 with the goal of building distributed applications. The system went live almost two years later and has been very successful attracting a large and dedicated community of developers, supporters and enterprises. The important contribution of Ethereum as the second generation of blockchains is that it worked to extend the capacity of the technology from primarily being a database supporting Bitcoin to becoming more of a general platform for running decentralized applications and smart contracts both of which we'll discuss in coming videos. As of 2018 Ethereum is the largest and most popular platform for building distributed applications on. Many different types of applications have been built on it from social networks to identity systems to prediction markets and many types of financial applications. Ethereum has been a major step forward and with its advent it has become ever more apparent where we're heading with the technology which is the development of a global distributed computer a massive globally distributed cloud computing platform on which we can run any application at the scale and speed of today's major websites with the assurance that it has the security, resilience and trustworthiness of today's blockchains. However the existing solutions that we have are like extremely inefficient computers the existing blockchain infrastructure is like a really bad computer that is not able to do much except proof of concepts. Getting to the next level remains still a huge challenge that involves some original and difficult computer science, game theory and mathematical challenges. Scalability remains at the heart of the current stage in the journey that we're on and this is what the third generation of blockchain technologies are trying to solve. The mining required to support the Bitcoin network currently consumes more energy than many small nations being equal to that of Denmark and costing over 1.5 billion dollars a year in electricity. A lot of this is being fueled by cheap but dirty coal energy in China where almost 60% of the mining is currently being done. This high energy consumption is simply not scalable to mass adoption. Ethereum and Bitcoin use a combination of technical tricks and incentives to ensure that they accurately record who owns what without a centralized authority. The problem is it's difficult to preserve this balance whilst also growing the number of users. Currently blockchain requires global consensus on the order and outcome of all transfers. In Ethereum all smart contracts are stored publicly on every node of the blockchain which has its trade-offs. The downside is the performance issues arise in that every node is calculating all the smart contracts in real time which results in no speeds. This is clearly a cumbersome task especially since the total number of transactions is increasing approximately every 10 to 12 seconds with each new block added. The volume of transactions is likewise an existing constraint. With cryptocurrency speed is measured by TPS, transaction per second. The Bitcoin network theoretical maximum capacity is up to 7 transactions per second while the Ethereum blockchain as of 2018 can handle about 15 transactions per second. By comparison a credit card network is capable of handling more than 20,000 transactions per second. Equally Facebook may have about 900,000 users on the site in any given minute meaning that it's handling about 170,000 requests per second. Another issue is that of cost. The fact that it costs some small amount to run the network so as to pay the miners for maintaining the ledger. What we have is okay for a limited number of large transactions such as sending money but making a small transaction like purchasing a coffee could not be done by most blockchains. They simply can't in their existing form deal with a very large amount of microtransactions such as will be required to enable high volume machine to machine exchanges. It would prove too expensive to operate these kind of economies that involve many small exchanges but this is exactly what many people will want to use the blockchain for in the future. In response to these constraints a third generation of blockchain networks are currently under development. Many different organizations are currently working on building this next generation blockchain infrastructure. Such projects include DFINITY, NEO, EOS, IOTA and Ethereum itself. They're each using different approaches to try and overcome existing constraints. Going into the details of how these different networks work is a bit advanced for this course so we'll just give a brief overview to two of them. The Lightning Network is one such project that seeks to extend the capacities of existing blockchains. The main idea is that small and nonsignificant transactions do not have to be stored on the main blockchain. This is called an off-chain approach because small transactions happen off of the main blockchain. It works by creating small communities wherein transactions can take place without each of those transactions being registered on the main blockchain. A payment channel is opened between a group of people with the funds being frozen on the main blockchain. Those members can then transact between each other using their private key to validate the transactions. This is a bit like having a tab or an IOU with a shop where you just mark down what you've exchanged so that you don't have to update the main record in the bank each time you make a purchase. The record stays local between the members involved before at some time setting the finances and updating the main bank record. This only requires two transactions on the main blockchain. One to open the transaction channel and one to close it. All other transactions happen just within the network without it being registered on the main blockchain. This both reduces the workload on the main blockchain and makes it possible to run a very many very small transactions within the sub network. As of the start of 2018 there is a proof of concept running live on the Bitcoin testnet but the system will not be fully operational until later in the year as is the case with most of these projects. IOTA is another example whereas existing blockchains are sequential chains where blocks are added in a regular linear chronological order the data structure of the IOTA system is able to achieve high transactional throughput by having parallel operations. The data structure is more like a network rather than a linear chain wherein processing and validation can take place alongside each other. The other big difference is that there are no specialized miners in this network. Every node that uses the network functions as the miner. In the IOTA network every node making a transaction also actively participates in forming the consensus that is to say everyone does the mining. This means that there is no centralization of mining within the network which is what creates bottlenecks and demands lots of energy. Likewise with this network there are no transaction fees for validation and with IOTA because it is more user generated the more people that use the network the faster it becomes which is the opposite of existing systems and obviously makes it very scalable. There are lots of other possible approaches to overcoming existing constraints but suffice to say the blockchain should be understood as an emerging technology whose existing implementation is like a large scale proof of concept running on a very inefficient system but through lots of experimentation and iteration will hopefully in the coming years evolve into this global distributed computer. As Melny Swan writes in her book first there was the mainframe PC, personal computer paradigms and then the internet revolutionized everything mobile and social networking were the most recent paradigm. The current emerging paradigm for this decade could be the connected world of computing relying on blockchain cryptography. To understand this better in the next section we're going to talk about the blockchain in the context of the broader technological changes that are currently underway as we build the next generation of the internet what we call the decentralized web or web 3.0. How we understand the blockchain and where we are with it today is extremely transitory. In this respect what we're talking about in this course when we talk about the blockchain is really this emerging IT infrastructure of a distributed global cloud computer. The next generation of blockchains will take us a step further on that journey. What we call the blockchain today is really just a very limited and often very inefficient version of this. We still have many very difficult problems to solve before we'll get there. Possibly that end state will look something like the blockchain of today but possibly it will look very different.