Skip to content

Why would you want to Create a Blockchain?

Create a Blockchain

Why would you want to create a blockchain, when everyone is thinking of creating cryptocurrencies? Well, the reason you would do that is so that you will have greater freedom in the features that the blockchain can support. Let’s look at it this way, blockchains are not just the foundation of cryptocurrencies, they are also the foundation of other distributed applications – DApps.

DApps require platforms and while they can be launched and hosted from servers, they are better used and optimized to work off decentralized nodes. This is where the blockchain comes in.

If you remember about P2P systems where apps back in the ‘90s, similar to Napster, would open a port on a computer and allow you to share files in that folder with anyone in that network. Think about that for a minute. A computer in Dubai could connect directly to a computer in Auckland and pull the data needed. In the days of Napster, the files were typically music files, and at that time they were typically pirated music. Let’s forget the issue of entertainment piracy, but look at the ability of one computer to store data on another computer. The way it worked back then, the node would only allow access to what was in a particular folder and nothing else. So it was safe.

Now advance that idea a little more. Napster had a registry or a file search that kept track of where all the files were located. so let’s say you were looking for a particular song – Metallica’s “Enter Sandman.” If you typed that into the search, it would give you a list of all the computers that were online at that moment and had that song in its sharing folder. You could pick any one of those, click on it, download the folder and then store it in your folder. You could either leave it there to share with others or you could take it out. But it was that simple.

Now let’s take this one step further than P2P concepts. What if you wanted to place a folder that you created in someone else’s drive, maybe as a backup? And what if someone wanted to leave something in your drive as well. What would be the problem?

Well, the problem would be that you could go and read the content of that file that didn’t belong to you. Right? So the way we solve that is to encrypt the data. But before we encrypt it, how about we break that file up into multiple pieces, like a jigsaw puzzle. Imagine taking a picture and breaking it up into tiny jigsaw pieces, encrypting that, and then flinging the small pieces across the network of nodes. So once a fragment of that file enters your computer, not only is it encrypted, it is also just a fragment. Even if you were to find some way to decipher the encryption (and this is next to impossible), all you have is just a fragment of jumbled-up pieces of the original file. It will not make any sense to you.

Now imagine that to be a form of monetizing your spare hard drive space, and in return for opening your node to storage, you receive a coin or a token (the amount would vary). The DApp would be the application that lived on top of the blockchain, and the coin would be the one that was between the blockchain layer and the DApp layer. The blockchain would host the immutable record of where all your files are located in a series of hashed public keys, which only your private key could unlock. So in essence your information would be spread across the globe, and in the event of a wipeout somewhere, there would be a backup of the file in a number of places that could just back it up from there.

Now imagine you were planning to write a blockchain that did that. You see, it is a lot more than just one cryptocurrency; it’s an entire platform for an ecosystem. So it’s a big deal and you can’t write it in Java or Python.

For this kind of project, you can see why you would have to get your own blockchain and code it from scratch. What you can also see is the sudden emergence of an appreciation for a blockchain that only seemed to have been useful to support cryptocurrencies.

Blockchains, while unarguably the backbone of cryptocurrencies has a lot more potential. They are in essence the core of a decentralized system that allows consensus building and permission. When you pair that with strong cryptography – you could even require SHA512 instead of the current SHA256 – then you would see that blockchains become even more robust and longer-lasting.

We mention longer-lasting because, at this point in time, one of the few risks in blockchain integrity comes from the rate of increase in processing power. When they first started mining, it would be done on CPUs in home computers. Then it needed something more powerful because there were more miners. We’ve seen that the more miners there are, it increases the more chances that the solution to the puzzle is found sooner, and so to keep the time at a constant 10 minutes or thereabouts, the program has to increase the difficulty of the solution. This is what spawned harder and harder solution requirements.

As it increased in difficulty, miners found more ways to get the processing power and even resorted to using GPUs. After that, manufacturers started making ASICS, powerful processors that only perform one operation – hashing. But all this is predicated on the same processor technology. No doubt we have faster processors, but they are still limited by a design ceiling.

But within the next decade, the way we compute is going to change as quantum computing comes online, and what now takes hours to hash, will take seconds to complete. In essence, the ability to mine faster will skew the POW formula as it stands and that could affect the integrity of the blockchain itself, like blocks that do not conform to standards, could still be included in the chain and things like double spending could reduce the efficiency of the platform. So for those of you even considering the possibility of building your own blockchain for an application that you envision, do keep this in mind and find a solution for it now so that you don’t have to face the problems tomorrow when quantum computing hits the market.

If you are indeed thinking of create your own blockchain, here are some of the things you need to consider. They are the starting points you need to think about, reflect on, and solve before you key in your first line of code.

Language

In our experience, the best way to code blockchains is to do it in C++. Here is why. First off, if you are making this open-source, C++ assures you a simple fact: only solid programmers know the best C++ and that makes it a barrier in itself! You really do not want to use a language that a lot of problems could arise from. By using C++ you create a natural barrier.

Secondly, the reason you want to use C++ (and by the way, Bitcoin is based on it), is that it allows powerful resource management more so than most of the other more recent and hip languages. Remember, C+ is built on the original C programming and still carries a lot of its power in addition to the improvements that were made when C++ was developed. It is also a language that has been around for some time, giving it the necessary street cred to make it work.

Other than that, the power of C++ to harness the necessary resources across the various operating systems that will inevitably be part of the node population, makes it an obvious choice for the language that is the most versatile in overcoming challenges of scalability, control, and responsiveness over a wide-ranging and far-reaching landscape.

You should be aware that developing your own blockchain is a lot harder than just forking it from Git somewhere. In that case, you are just taking someone else’s concept and making it your own. There is nothing wrong with that but be aware that it will not contain all the features and attributes that you will want. But nonetheless, it is a good place to start.

Security

The first thing you need to remember is that the best form of blockchain programming and building you can do is the one that is open source if you are planning to have it as widespread and robust as possible. Open source provides you with the widest possible technical ability and it gives you the best path to a robust product. It also gives your competitors a launching platform, but no need to worry about that. The best development projects are done in open source and there is more to just having code that makes something duplicable.

To be the open source you have to have mechanisms that deter bad actors and to be self-correcting. You should think of best practices in open source deployment before you can move forward.

Your first goal is security, and this is not done by placing anti-viruses or anti-malware code. No. This is accomplished by the structure of your ideas and implementation concepts that are then conceded. The first thing you need to design before you get coding is how the process of the blockchain will work. Any changes to that post-deployment should be blocked.

You should also consider using something more powerful than SHA256 and keep in mind that quantum computing is around the corner, so your blockchain should be robust enough to keep up with the change in technology. This is not to say that you have to develop something that can withstand any and all technologies yet to be developed. Instead, you have to build a system that is modular and has scalability in terms of loads as well as technology. C++ in open-source format with modules is one of the best ways to accomplish this.

What’s even better is that C++ is one of the easier languages to host a scripting language on top of it. Consider the Arduino microcontroller. It is a small but versatile microcontroller board that is driven by a program called Sketch, but it is actually based on C++. That makes it simple to execute and easy for anyone to learn, yet powerful enough to withstand the harshest environment. Ethereum does this as well. They have a programing language to write the smart contracts on top of the Ethereum blockchain. It’s called Solidity and it is really simple to use even if you do not know C or any other language.

nv-author-image

Era Innovator

Era Innovator is a growing Technical Information Provider and a Web and App development company in India that offers clients ceaseless experience. Here you can find all the latest Tech related content which will help you in your daily needs.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.