Blockchain : Pressure Before the Burst.
“I’m a Blockchain expert.”
“We offer Blockchain consulting services.”
Everyone is curious about this new piece of technology — Blockchain — its implementation, and where it will drive us in the future. After spending an ample amount of time researching it, writing a whitepaper on it, and from a technical perspective playing with what I consider to be the three main implementations (Multichain, EVM, and Hyperledger), I can assure you that the pressure for Blockchain is definitely building up. The question that remains is: Will this pressure ever burst?
In this short post, I am going to aim for a couple of clear goals. For my tech friends who love to see demos running, I want to point to the correct implementation that would benefit you in learning and understanding this new technology. Furthermore, I would like to stress the importance of having basic ideas on hashing techniques, as well as a basic understanding of cryptology. For people who are attempting to understand what this technology buzz is about, I want to provide a clear, rudimentary understanding of what this is and what the current landscape is like.
From a technical perspective, I encourage fellow programmers to have an intimate knowledge of OOP. Most of the time spent in this area will be with Java and Python, and C++ is always going to be a great aid as many of the libraries do support C++. I will be talking about Go in a later post, but in my opinion at this time, Python and Java are best to get a layer of Blockchain up and running.
Blockchain was and is the underlying piece that governs Bitcoin. It is essential to understand that Bitcoin and Blockchain are fundamentally different and not the same. bitcoin is merely a cryptocurrency, and Blockchain is the technology-based model that acts as a solution to how cryptocurrencies would be handled. I highly encourage readers to take a look at this link to understand the history of why and how Bitcoin was governed the way it was. I want to focus on the key components that are integral to Blockchain, so we will focus on the proof-of-work concept understanding, as well as the transparency that makes Blockchain an incredibly lucrative choice for several solutions. Then, I will also touch on the “distributed systems” theory that provides the security for Blockchain and will write a more in-depth post on all of these theories.
Proof of Work: A great tool in order to understand this algorithm is the internet student life-saver, wikipedia, and can be found here. If you don’t want to read it, though, then a TLDR; an algorithm allowing for digital currency to be only spent once, the token expires once it is used and can not be spent again. Why is it important? This is because the Proof of Work algorithm’s products are used in order for the blockchain verification to work seamlessly. Simply put, let us take the concept of people mining to make money. Each mining rig consists of several GPU’s that solve complex problems, including things like monetary transactions. In Blockchain, the way that “Blocks” are linked together is by verification of a prior block transaction — the block that is being created looks at the block before it, says “hey, here’s a transaction whose cryptkey I will use as my verification in the current block”. This is why the Proof of Work algorithm’s concept is essential to the blockchain process — blockchain won’t be able to create a new “block” if the transactions aren’t verified, which proof of work allows for [COME BACK TO THIS LATER]
Transparency: The transparency relies to an extent, to the proof of work algorithm and vice-versa. Transparency will allow for a clear money trail in organizations that are larger in size. (In this case, I used money as it is a clear and concise example. Could have Enron been prevented if they decided to use blockchain internally? I’m not saying 100% yes, but I am leaning towards a yes). Basically, the transparency is lucrative as there is a trail to trace whatever is being sent through the chain, whether it is money or some sort of data. In the Blockchain design, there is a “general, decentralized ledger” — in simpler terms IMO, a distributed ledger. The ledger is a record of all the transactions that have taken place and been verified, and having it distributed adds a layer of security to the ecosystem by using distributed data. The data in the ledger is distributed across a bunch of nodes, and each node is simply a computer. Since each computer only has a piece of the overall data, even if a single computer is breached, there is no way that a hacker could retrieve all of the data that is present (theoretically). This means that all of the computers in the network need to be hacked in order to get all the data which would require an extravagant amount of computational power. The data is verified by the aforementioned proof of work algorithim.
Blockchain helps successfully impement both of these ideas, and is built on them. There are currently 3 ways to get blockchain up and running locally, and I am a fan of the work at Multichain. I will update this blog when I get some time on my hands with pictures of how inlcusive this technology is — there’s even a super nice (but super tedious to setup) web interface, but it can exemplify how easy this technology is to use for a Proof of Concept. You can find Multichain here. It is super easy to write applications for and to access as long as you know the basics behind setting up a local web-server!
EVM, in my opnion, requires an amount of technical know how. I haven’t spent too much time with it, but it is indeed seperate from the hyperledger project that I’ll be talking about next — that is, in the future, hyperledger and the EVM will be working in coalition with one another as far as I can understand. You can find an excellent Medium post speaking about the mechnics of the EVM and the Ethereum Network Written by the Ethereum Founder here, and can find the Github here. While I don’t want to go much more into building Decentralized Applications here, this is also an area in which the EVM (and the theory upholding it) is a disruptor, making this fantasy come true.
Finally, the Hyperledger — the Linux Open Source Foundation’s answer to blockchain, and perhaps the most likely to be used and implemented in the future. I haven’t had too much time to play with this, but it runs on the JVM. I will try to post screenshots and such when I have time. To me, this is the most robust solution due to the sheer force of the people upholding it. It is worth being frustrated and spending the most time learning this if Multichain does not satisfy your thirst for writing the actual code behind Blockchain.
For now, I’ll have to run to class, but I hope this helped a few of you wrap your heads around this technology.
Keep a lookout for the next blog post!