Basics and team. The mechanics of proof-of-work on blockchain networks.
Komodo KMD is a platform that offers end-to-end blockchain solutions, from concept to implementation. KMD is the platform coin. As of the beginning of 2018, the coin has a market capitalization of about USD$500 million.
The total supply of KMD is fixed at 200 million coins. Out of this amount, the creators of the platform have pre-mined 100 million coins and distributed 90 million during an initial coin offering that has occurred between October 15, 2016, and November 20, 2016. 10 million coins went into Komodo development fund. The remaining 100 million coins are being mined by miners on the Komodo network.
During the ICO, the founders of the platform have collected 2639 Bitcoins, which at the time were worth close to USD$2 million.
Every holder of the KDM token gets a bonus of 5%APR automatically. All KMD holders need to get the bonus is transferred their coins to a new address once a year. Once a user moves the funds, the address gets a credit of 5% of the amount based on how long the amount was stored at the previous address.
The basics of the Komodo platform
Komodo is a fork of ZCash and has the same privacy features as ZCash, including private transactions and transparent transactions. Just like ZCash, Komodo uses zk-SNARK algorithm to hide information about the sender of funds, the recipient and the amount.
Komodo is a part of a very ambitious project called SuperNET, which is a platform that serves as an intermediary between various other blockchain-based projects. The goals of the SuperNET are to allow anyone to create their blockchain and their own token, to enable people to perform atomic swaps directly on the platform and to create a multi-wallet that would allow users control their assets.
SuperNET conducted an ICO in 2014 and has created a MultiGateway exchange and a multi-wallet. The exchange closed in 2017.
The team behind Komodo
The team behind Komodo is anonymous. The lead developer of the project calls himself jl777. Jl777 was involved in SuperNET ICO and has worked on the SuperNET multiwallet. The code that jl777 created as a part of the SuperNET project is open-source and anyone can download and inspect it.
Because the lead developer does not reveal his real name, the entire team chose to stay anonymous and does not use real names or real photos on its website.
Trust in decentralized networks. The mechanics of proof-of-work
To reach consensus on the network, Komodo uses algorithm called delayed Proof of Work or dPoW.
Bitcoin was able to become a major successful digital currency because it was the first digital currency to solve the issue of trust on a network. The main problem with trust that the Bitcoin network solved was the issue of double spending. Double spending is when a user is able to send the same funds several times. At the core of the issue is the ability of computers to endlessly create and duplicate information.
With financial value, there are three main parameters that a network needs to record and maintain: the owner of the value, the time at which the user owns the value and the unique identifiable address for the value. Satoshi Nakamoto created the Bitcoin network in a way that allowed it to store and modify all these factors in a secure and trustworthy way so that when a user A sends money to a user B, A can’t send the same money to user C as if he didn’t send it to user B.
There are several reasons why proof of work consensus has been working so well on Bitcoin and other cryptocurrency networks. The first reason is the mechanics of the protocol, which include use of hashes and cryptography algorithms. A hash is a string of data that is shorter than the original data. A cryptography algorithm returns one and only one hash for one set of data. For example, if a set of data is (1, 1, 1, 3, 4) then its hash under some algorithm could be s3. Changing the data even slightly would return a very different hash. For example, if the set was (1, 1, 1, 3, 5), then the hash could be W999 instead of s3.
What’s important here is that it doesn’t matter who runs the data through the algorithm. Because the data can only have one hash when the algorithm is used, several parties will obtain the same hash. Because the hashes look so dramatically different even when the data is changed only slightly and one set of data can only have one hash, parties can also quickly compare if they have the same data without actually looking at data and comparing hashes instead. On the Bitcoin network, miners create hashes for sets of data that include information about transactions that occur on the network. Both the sets of data and hashes are much more complex than in the example above, but the principle stays the same. For example, block #510062 on the Bitcoin blockchain contains information about 2435 transactions on the Bitcoin network and the hash for the data about these transactions is 000000000000000000043dd19da37f77807f37b5dc0a6a5cabf2363114dfca21.
Hashes, nonces, and security of the Bitcoin blockchain.
To create hashes, the Bitcoin network uses cryptography algorithm called SHA-256, which was created by the United States National Security Agency. A hash of a block on the Bitcoin blockchain serves as a stamp that seals the block.
The task of creating a hash for a set of data even using a very strong cryptography algorithm is a trivial task for modern computers, which is why the Bitcoin network also has a parameter called difficulty. Difficulty means that a hash that miners come up for a block needs to be smaller than the hash for the previous block. Practically speaking, this means that hashes of the blocks on the Bitcoin blockchain have a lot of zeros in the beginning. For example, hash for the block 510059 is 0000000000000000003e74b1ab42a63511a27ea6f9e98b822a3e2cfa15f3d950 and hash for the block 510062 is 000000000000000000043dd19da37f77807f37b5dc0a6a5cabf2363114dfca21. Coming up with hashes that have all the zeros is the reason why miners need to buy expensive equipment to create blocks of the Bitcoin blockchain. To incentivize miners to create the blocks, the Bitcoin blockchain rewards them with block creation rewards. These rewards are the way for the network to add new Bitcoins to circulation.
Satoshi Nakamoto has designed the Bitcoin network in such a way that it can only have 21 million bitcoins total. When he launched the network in 2009, the reward for block creation was 50 bitcoins. The reward stayed the same for 210,000 blocks. Then, it divided in half and became 25 bitcoins. After the next 210,000 blocks, it decreased again and became 12.5 bitcoins.
The Bitcoin network aims to create a block of the Bitcoin blockchain every 10 minutes, which means that the next division of the reward will occur approximately in June of 2020. The speed at which the Bitcoin network adds coins to circulation also means that out of all Bitcoins that the network will ever create, over 80% of the coins are already in circulation (over 16.5 million out of 21 million). As of the beginning of 2018, the total amount of bitcoins that would be created in the future was close to 4 million coins. You can see the current up-to-date information about the number of bitcoins in circulation as you are reading this article by visiting http://www.bitcoinblockhalf.com/
How can miners come up with various hashes if one set of data can only have one hash in the same cryptography algorithm and the goal of the Bitcoin blockchain is to preserve information about transactions and not modify it? They do so by adding a number to sets of data. Sets of data include information about transactions and miners don’t change this information. However, they are free to add a number to this information. Because hashes of sets of data change dramatically when even a tiny part of the data changes, this allows miners to come up with an infinite number of hashes.
The number that miners add to the data is called nonce, which is short for number used once. The goal of the miners, therefore, is to choose a nonce that will result in the creation a required hash.
Once a miner on the Bitcoin network comes up with the winning hash, both the hash and the nonce become a part of the Bitcoin blockchain. This means that anyone can examine the data about transactions, the hashes and the nonces. You can see all this information if you visit Bitcoin blockchain explorer at https://blockchain.info/
For example, block #510066 has information about 1127 transactions. The total volume of these transactions has been close to 500 bitcoins. The winning nonce was 1817214810. The winning hash was 0000000000000000005cabc1047747a12e81bcd18bdb7e8e41e6a4a1ed450244. The miner to come up with this nonce for this block was F2Pool.
Reasons for popularity and problems with proof-of-work.
Other reasons for the popularity of proof-of-work have to do with what is known in the science of economics as “network effects.” On the Bitcoin network, the difficulty parameter of its proof-of-work algorithm changes every 2016 blocks. The parameter goes up or down based on the laws of supply and demand. If there are more active miners, the parameter goes up. If the number of miners goes down for some reason, the parameter goes down. In practical terms, this means that as more users and miners join the network, the more secure it becomes. The more secure the network, the more attractive it is for new miners and users and the more both the miners and the users trust the network, which means that more of them will be joining it and so on. The more users the network has and the more popular the currency of the network, the higher the price of the currency, which, again, attracts more miners and the cycle continues.
This is the same “network effect” that applies to social network, ride-sharing platforms, online dating sites and so on. If Facebook had only a few users, then there is very little incentive for new users to join the platform because there won’t be a lot of new and interesting content. However, as the number of users increases, the amount of content also increases. When a platform does have a lot of users, then people are also not likely to stop using it because all their friends are on it. For example, if everyone in your social circle is on Facebook and uses Facebook messenger to communicate, then it is highly unlikely that you will stop using Facebook. It works with Bitcoin and other cryptocurrencies in the exact same way. If all your friends and business partners were using Bitcoin to send payments, you would also be more likely to use Bitcoin than if no one in your social circle was using it.
Problems with proof-of-work in its current form
While the Bitcoin network is a testimony to the fact that proof-of-work algorithms can be very effective, the algorithms do have a number of issues.
The first issue is that the algorithms are extremely energy ineffective. On the Bitcoin network, miners burn a lot of electricity to run the computers that create hashes.
According to an article in Forbes magazine, in 2017 miners just on the Bitcoin network used up to 20,000 gigawatt hours of electricity, which is about 0.1% of global usage of electricity. For comparison, this is the amount that the entire country of Ireland uses in a year. Mining equipment, such as, for example, Antminer S9, that you can buy at Wal-Mart for $8,250, uses the same amount of electricity as two refrigerators and one large TV set.
Essentially, mining coins on proof-of-work networks is like playing a lottery. The system works because blockchain networks are transparent, honest, and the chances of winning are significant.
Most people do not realize that in regular lotteries it is almost impossible to win. For example, chances of winning a Powerball jackpot have gone from one in 175 million in 2015 to one in 292 million in 2017. This happened because the total number of balls that players can choose went up from 59 to 69.
When looking at the numbers 59 and 69 and thinking about choosing 5 balls, people start intuitively dividing 59 or 69 by 5 and think that the chances are someone between one out of ten and one out of twenty. In reality, the chances have to do with choosing a subset of numbers from a set of numbers and involve not simple division, but doing factorial math. A factorial, described with an exclamation point, for example, “5!” is equal to a product of all the positive integers up to five, including five, so 5!=1 x 2 x 3 x 4 x 5 = 120. This number is important when calculating chances because in a set of N objects the number of ways to arrange these objects into a sequence equals N!. This means that there are 120 ways to arrange numbers (1, 2, 3, 4, 5) into a sequence. They would be (1, 2, 3, 4, 5), (1, 2, 4, 3, 5), (2, 1, 3, 4, 5) and so on. Even with a set this small, there are more combinations that people realize.
In practical terms, this means that winning a regular lottery such as Powerball is roughly the same as being chosen out of all living residents of the United States. This chance is actually smaller than a chance of being hit by a plane randomly dropping from the sky (chances of this happening are 1 out of 10 million), crushed by a vending machine (1 out of 112 million) or being hit by a lightning (1 out of 10 million).
While on the Bitcoin network and other cryptocurrency networks winning is possible and attainable (otherwise, no one would be investing in mining equipment), it is also all about math. For example, as of the beginning of 2018, running one Antminer S9 for a year would allow you to mine approximately 0.85 bitcoins. In addition to buying Antminer S9, you will need to pay for electricity. At 3 cents per Kwh, running Antminer for a year will cost USD$600. At 9 cents, the price will be 3x that, or USD$1,800, which is still profitable at the price of bitcoin fluctuating around USD$10,000 – USD$11,000.
The problem will all of the above is that while individual miners and miner pools are turning a profit, buying equipment and burning energy do not add any value to society, which is something that many of the visionaries in the cryptocurrency space are not comfortable with.
Problems with proof-of-work, Latency, Absence of commitment and forks.
Another big problem with proof-of-work algorithms is latency. It takes time for miners to create blocks of the blockchain and if a cryptocurrency were to become a common payment method with millions of users, adding transactions to the blockchain in the way that proof-of-work networks do it would simply not be realistic. Transactional capacity of the Bitcoin network is between 3 and 7 transactions per second while Visa Payment Network can process tens of thousands of transactions per second.
Another issue with proof-of-work is that miners do not have a commitment to a network. They are always looking for better, more profitable opportunities to make money. For example, for a period of time in November 2017 the majority of the Bitcoin miners have switched to mining Bitcoin Cash. This happened because the developers behind Bitcoin Cash recognized the fact that the miners would switch to a different network if it were more profitable and for a period of time it was more than 65% more profitable to mine coins on the Bitcoin Cash network than it was on the Bitcoin network.
When something like this happens and a network doesn’t have enough miners, the transactions would start taking a lot of time to confirm. The longer they take, the more likely it is that users will start using another cryptocurrency. This is also known as a “death spiral.” The death spiral is the complete opposite of the network effect. When a death spiral begins, a network starts to experience problems, causing users to leave, which increases the number of problems, causing more users and miners to leave and so on.
Bitcoin Cash was only able to surpass Bitcoin in terms of the power of miners for a short time, but the incident proves an important point that the miners are not tied to Bitcoin and could switch whenever they wanted. The miners are free to use their hardware to process transactions and create blocks on any network they choose.
Finally, proof-of-work networks are prone to forks. A fork is when a number of users decide to modify the software of the network in a way that changes how the network works.
Some of the most famous forks in the history of blockchain technology are Bitcoin Cash and Ethereum Classic.
The main difference between Bitcoin Cash and Bitcoin is the size of the block of the network blockchain. Bitcoin has a block size of 1 megabyte, which is one of the reasons why Bitcoin’s transactional capacity is only between 3 and 7 transactions per second. Bitcoin Cash is a modified version of the Bitcoin software, with the block size being equal to 8 megabytes. Bigger blocks mean that the network can process more transactions quicker, between 24 and 60 transactions per second.
The last block of the Bitcoin blockchain that Bitcoin and Bitcoin Cash had in common was block 478558. Starting with the next block, block 478559, Bitcoin would reject the blocks created by Bitcoin Cash and vice versa.
The second famous fork is Ethereum Classic that occurred as a result of the hack of “The DAO” (not to be confused with a dao, which is an abbreviation for decentralized autonomous organization). The DAO was a name of a project on the Ethereum platform. The goal of the project was to provide businesses and non-profits with a way to create decentralized stateless organizations with rules specified by smart contacts on blockchain. The DAO ran a crowd sale beginning on April 30 of 2016 and has quickly become the largest crowd sale on the Ethereum platform to date. By May 10, the creators of The DAO have raised more than USD$34 million worth of Ethereum network’s currency Ether. By May 12, this number has surpassed USD$50 million and by May 21 it was over USD$150 million. The users of the Ether have essentially given the creators of THE DAO around 14% of all Ether in circulation at the time.
The attack started in June of 2016. By June 18, the hacker (or the hackers) was able to move about 3.6 million Ethers into a “child DAO” that the hacker had control over. The “child DAO” had the same structure as The DAO. The difference was that the hackers were in control of the “child DAO.” This event caused the price of Ether to go down from about $20 to under $13.
Because the “child DAO” was identical to the main “The DAO”, it also had a restriction that prohibited anyone from withdrawing funds for 28 days. The founders of “The DAO” have included this condition because they wanted the initial funding period to be about collection of funds only.
On June 17, Vitalik Buterin, the creator of Ethereum Network, has issued a critical update which introduced a change to “The DAO” and prevented hackers from accessing the funds that they channeled into the child DAO. However, there was a percentage of users on the network that disagreed with the decision to issue the update.
They said that the fact that a central authority issued an update was going against the decentralized nature of the Ethereum network. The network that didn’t accept the update became known as Ethereum Classic.
Two facts about the Ethereum Classic fork are worth mentioning. The first one is that it is very likely that the attackers have made a lot of money by shorting the price of ether because if someone was to know about the attack, it would not be hard to predict the significant drop in the price of ether. The second one is that someone who posed as a hacker wrote an open letter to the Ethereum community. The person (or group of people) claimed that they didn’t do anything illegal and didn’t violate any laws. From their perspective, they found a vulnerability issue on a stateless, decentralized network and used the vulnerability to gain profit, which is not something that is described by any laws as a crime. They viewed the funds they have channeled into the child DAO as a reward for discovering the issue, not as a crime or as a theft.
Benefits of Komodo’s delayed proof-of work over PoW. How dPow works.
Komodo’s delayed proof-of-work algorithm functions in a way that prevents forks from happening.
It works using Komodo technology called Iguana Core. Iguana Core is the software code that enables different pieces of the Komodo Network to work together.
The Komodo delayed proof-of-work algorithm uses a chosen secure proof-of-work blockchain network to store backups of transactions on the Komodo network. This way, if there is an attack on the Komodo network, the network will be able to restore itself by using a secure proof-of-work backup.
The mechanisms of proof-of-work networks are based on the longest chain rule, meaning that they would recognize as legitimate a network that has the longest blockchain. An event during which hackers could take over the longest blockchain on a decentralized network is also known as “the 51% attack.”
With Komodo, the longest chain rule does not apple because the dPoW consensus algorithm doesn’t need to compare blockchains. All it needs is access to a backup.
Just like the main network can create backups on other secure networks, asset chains based on Komodo network can choose where to create their own backups. This doesn’t necessarily need to happen on the Komodo main blockchain.
This means that to successfully perform an attack on the Komodo network or any of the asset chains on the network, a hacker would need to destroy all copies of the network or the asset chains and the security network that stores backups. These factors make the Komodo network as secure as Bitcoin but don’t come with the same financial and energy costs.
Nodes on the Komodo network are free to choose proof-of-work networks they want to use for backup storage, which means that not only does the Komodo network have a backup, but the backup can also be located in a number of different secure locations, making the Komodo network extremely secure, yet very flexible at the same time.
The process of choosing, creating and storing a backup on a different PoW blockchain is known on the Komodo network as “notarization.” The name of the process is very fitting because a notary is an official that verifies the integrity of information and performs a series of fraud-preventing tasks when it comes to important documents.
The duties of a notary public include screening for free will of the parties signing documents, verifying the identity of the parties and performing the act of notarization itself.
The notarization process on the Komodo network works in a very simple way. About every 10 minutes, special nodes on the Komodo network, called Notary Nodes, create a unique hash on the Komodo network. They also make a note of the number of blocks in the Komodo blockchain (on a blockchain network this number is also known as “height”.) Then, notaries process the block of which they’ve recorded the height of in a way that the block includes the signatures of the notary nodes. They then mix these three pieces of information into one. For example, if the hash is 12345 and the block # is 15 and the name of the blockchain is KMD, then the resulting number could be 69345A23B02. Fundamentally, this one number is a reflection of everything that has happened on the Komodo network up until the point when the number was created, including all the transactions, blocks of the blockchain, hashes and so on. Because of the way cryptography algorithms work, if an attacker was to change even one symbol in any transaction that happened on the Komodo network prior to the creation of the number, the number would change very significantly.
For this reason, numbers created by notaries on the Komodo network are a useful form of backup provided they are stored in a secure, yet public location, where any user can gain access to the numbers and verify their validity.
Having even one such number in a secure storage allows the Komodo blockchain to identify itself to the Komodo network as the true version of the blockchain because only the intact data can provide the exact same number.
Obviously, it is better to store these numbers in the locations with the highest possible levels of security. As of the beginning of 2018, Bitcoin blockchain is such a location. Because of this, Notary Nodes on the Komodo network perform a transaction on the Bitcoin blockchain and record the backup number into the Bitcoin blockchain as the “OP_RETURN” parameter in the transaction data on the Bitcoin blockchain.
Notary Nodes on Komodo Network. Protection from attacks.
When Satoshi Nakamoto launched the Bitcoin network in 2009, he included a message from the Times newspaper into the first block of the Bitcoin’s blockchain in a similar way to how Komodo network includes its backup numbers into Bitcoin transactions.
To include his message, Nakamoto used a function called Coinbase. Komodo uses “OP_Return.” The main difference between the two functions is that the former is available to miners and the latter is available to all users engaging in transactions on the Bitcoin network.
The most important conclusion here is that just like the message by Nakamoto is viewable by all and available to all (you can see it by visiting Bitcoin Blockchain explorer and looking at block #1, the Genesis block, here: https://blockchain.info/block/00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048), so are the backups of the Komodo network.
The fact that the Komodo network stores its backups on the Bitcoin blockchain means that in case of a devastating event, the network could use the Bitcoin blockchain to rebuild itself and there could be no argument about which Komodo blockchain is the original one.
The final step of the notarization process on the Komodo network is making a record about where the network has stored a backup. The network makes these records on its own blockchain. This serves as a way to let the users on the network know where to look for backups in case an incident occurs. The Komodo network does it by combining the information about the first step of notarization (in which it combined the height of the block with the name of the network and the hash) with the information about the transaction on the bitcoin network. The result, again, is a long computer-friendly number, such as 234234fg23k32s22W86b. Just as all other similar numbers on the Komodo network, this number is created with the help of a cryptography algorithm. Because this number is linked to all the other numbers, changing even one digit in the information about transactions on the Komodo network that have occurred prior to the creation of this number would result in the mismatch of the data. As the last part of the process, this last number becomes a part of the Komodo network itself, fundamentally interlinking the network with the Bitcoin network for added security.
Benefits that notary nodes get on the Komodo network
Notary nodes on the Komodo network don’t just perform additional work. As a reward for doing the work, they get a privilege that incentivizes them to keep doing the notary work on the network. Each notary node on the Komodo network periodically gets a chance to create an easy block. Once the notary node uses this opportunity, the opportunity becomes unavailable to this particular node for the next 64 blocks. After the 64 subsequent blocks, the notary node can again try and get an opportunity to mine an easy block on the Komodo network.
This means that while all other miners on the network are compiling transactions into blocks according to the network-wide difficulty level that works in the same way as on the Bitcoin network, the notary nodes get a chance to play by much easier rules. Practically speaking, this means that a chance that a block out of every 64 blocks on the Komodo blockchain has been created by a notary node and not a regular miner is 75 to 25. This will not change if more miners join the Komodo network as there will always be 64 elected notaries and the rules for notary nodes will be different than the rules for regular miners.
The software code behind the dPoW allows the network to elect the notary nodes based on proof-of-stake algorithm with voters on the platform getting stake-weighted vote according to how much KMD they own.
At the same time, the Komodo network removes the ability to create easy blocks from the notary miners every 2000 blocks and does so for 64 blocks. When this happens, all miners on the network play by the same rules. This means that while notary nodes do play a very important role on the Komodo network, at the same time they do not control the history entirely and at times the entire Komodo ecosystem takes over the elected few.
Defense of the Komodo network against the 51% attack and the Genesis Attack
The 51% attack is when an attacker or a group of attackers gain control over 51% of the block-creating nodes on a blockchain. In Komodo’s case, for someone to successfully perform a 51% attack would mean that the attacker would have to take over the majority of the elected notary nodes and then be able to control over 51% of the entire network during the period when the notary nodes don’t get the privilege of creating easy blocks.
If a hacker were to take control over the elected nodes, in the best-case scenario the hacker would be able to prevent the backups going forward, but not do anything to the existing blocks of the Komodo blockchain.
Because of this, 51% attack is even less possible on the Komodo blockchain than it is on the Bitcoin blockchain.
Another potential attacking method that hackers could use to take control over a blockchain network is the Genesis Attack. During the Genesis Attack, attackers recreate the Genesis Block of a blockchain and create a blockchain that is longer than the original chain. If the network uses a proof-of-work algorithm to reach consensus, it will most likely accept the longer chain as the true one and get rid of the original blockchain deeming it a false copy. With the Komodo network, this attack is simply not possible because the Komodo network doesn’t even compare the chains. It restores backups using another blockchain and the information it stores in its own blockchain.
If an attacker were to try and create a modified copy of the Komodo blockchain starting with the first block, the network would simply ignore the newly modified blockchain as if the new blockchain didn’t exist. These security features do not just apply to the Komodo network itself. They also apply to all the asset chains that developers may build on the Komodo network. This way, the Komodo network provides its users with Bitcoin-level security and stability, yet does so at a tiny fraction of Bitcoin’s costs.