Why do you need cryptocurrency?
We have been often asked with the one big question on how to create your own Bitcoin like blockchain for solving a niche problem. My answer to such visionary entrepreneurs is to focus on building the community because that’s what matter the most when you intend to create a new crypto currency and leave everything else to us. Another important requirement when you plan to launch such a cryptocurrency is to provide an easy to adopt wallet which consumers can download and start using immediately. Mobile apps are the best solutions to achieve this along with the ability to transact over web. It should be very easy for community to adopt to create a disruptive solution.
Other than building a strong community, its very important to build strong community of crypt enthusiasts, because by working together a community of dedicated crypto enthusiasts are much better able to find and address vulnerabilities and security threats, like the 51% attack. Building such protection and showing legitimacy by open availability of code to review builds trust among the community and adopters, something that is hard to do if those involved in the currency are passive spectators looking out for their own interests.
Creating your own blockchain and cryptocurrency?
From a macro-view point, blockchain is a distributed database which has algorithm that ensures new addition to database happen with consensus of miners. The basic building block of database is “Block” itself. In coding paradigm, a block is represented as below:
class Block def initialize(previous_block_hash:, index:, data:, timestamp:) @previous_block_hash = previous_block_hash @index = index @data = data @timestamp = timestamp.to_s @hash = current_block_hash #nonce = ? This is required for proof-of-work end end
Where ‘previous_block_hash’ is hash of block which was just previous to this, ‘current_block_hash’ is current hash, and data is the core of system which can represent code, object, string or just an unsigned float. Here hash is a function which maps any data to a unique value. An example of such a hash function is
def hash hashValue = Digest::SHA256.new hashValue.update @previous_block_hash.to_s + @index.to_s + @data.to_s hashValue.hexdigest end
The initial block is called genesis block and is identified by let’s say h1. Next block added will have mapping of previous block to h1. The hash for this block h2 will be calculated based on data of the block. In this way, blocks keep on added and create a blockchain. In this way, hashing enhances the security and help achieve immutability in the blockchain.
What to take care of if you build it yourself or outsource it to someone?
Surprisingly, every crypto-currency developer you will talk to will give you the same answer regarding coding your cryptocurrency is the easiest part. Currencies could be easily built over Litecoin, Bitcoin, Ethereum open source code available or can be build over existing Ethereum blockchain as ERC20 token. Building over ERC20 token has advantage of inter operability with other applications. The most important part of having your own crypto currency is knowing the modification or changes you would or would not need based on how you envision usage of your currency in long run. Most currencies started with a feature giving a small hype but could not survive in the long term. Market and crypto-enthusiasts have grown mature enough to analyse such features for longevity of existence.
Also, it’s not just about development but ongoing maintenance. If you are planning to contract out your crypto currency and wallet work, you should outsource it to and organisation which will be involved with you for longer term and have incentives ties to the rise of the currency as well. This can fuel maintenance and development of currency as well.