MetaHash Code Review: Blockchain 4.0 Cryptocurrency
This MetaHash code review wouldn’t be complete without noting that marketers can do and say what they want, but I still don’t know what Blockchain 4.0 is or when it replaced Blockchain 3.0.
I guess incremental gains in TPS is it. Anyway, here we are, “the fastest and most secure blockchain” which (if “pick two from speed, security, and scalability” is correct) means that it can’t scale.
But apparently it can, and all the while be more decentralized than the competition. Lots of big claims.
Also, I hate a website that starts like this. Call to action is buying the tokens. That is not a good focus. Still, they’ve changed it now, let’s move on. I will note that the team was super friendly and helpful though.
[UPDATE, 10/21/2018: The #MetaHash team has sent a comprehensive reply to this review, which can be seen at the bottom of this page.]
“validation rate under 3 seconds. Performance is over 50,000 TPS”
“protected by 5 different consensus algorithms”
“anyone can add transaction nodes”
That last statement is interesting, not nodes, but transaction nodes.
“information in Blockchain with 4k crypto protection and multi-signature”
But wait, there’s more, for this limited time only you can get “up to 3 seconds to approve <transactions> inside the network and outside”, wait, outside?
“all digital assets in the wallet use the ERC20 token in all exchange services”, what am I reading?
“here is what you want to know about <metahash>”
“What is our market cap?”
Ok, so this is “clearly” a very “tech” focused team… Also, I refuse to do the # garbage.
They are forking Ethereum and Bitcoin. How do you fork two chains? You can fork one, and then give balances of the other, that’s not forking though. Although I have a lot to say about this forking website.
What is forging? Literally, I go to the FAQ that is suppose to explain forging, and instead it explains to me how much MHC I’m going to earn by having arbitrary numbers of MHC. Is this just a crypto economic project?
From what I can understand, using MetaGate (the wallet?) and having tokens, give you more tokens. So standard dilution models. This is the classic, buy tokens so you can earn more tokens model (but totally ignore that people are dumping the token and your overall value is actually decreasing).
Far too much focus on the token here.
Another whole page on marketcap.
Another whole page on ICO economics.
Oh, finally, Multi-PoS
“a new consensus type called multi-PoS”
“decentralized AI builds the optimum network synchronization map based on test and actual network operations” …
So, BFT with a gossip knowledge graph on top. Cool. So Tendermint.
This is an infrastructure project, not a blockchain project. “Decentralized”
Ok, whatever, let’s see if the code is good.
Repo spam. The strategy to try and make it look really busy with some randomly named repo’s that sound vaguely crypto.
I’m shocked, are you shocked? I’m shocked. It’s empty. I was not expecting that.
Ignoring the php part for a second, there is actually something here, let’s have a look.
Import crypto, create address out of ECDSA15, send transaction via CURL as JSON RPC.
Generating icons for addresses. I actually thought this was kind of cool, but no worries, it was just copied from Blockies
(Without credit of course)
Another php library, so we can actually expect code again.
Grabs server stats and draws network topology. Very basic code.
Was getting bored, so had a quick look at the token contract
if msg.sender == ownerContract, addrSender = ownerContract, else addrSender = msg.sender
So…. msg.sender = msg.sender? But with an additional 6 steps?
So, the owner can change the address of the contract owner, but it doesn’t update the owner and instead changes another variable so that the original owner is the only one that can ever update the change in owners…
Infinite minting for the owner, because, why not?
Let’s get back to the real code.
Ok, so the public code is really just for show at this point. But my review has been quite mean, so instead, let’s give the private code a chance.
I don’t really know what I’m looking at, let’s jump into main.
Definitely better than the public repo at least.
Standard priv/pub key stuff. Let’s move on.
No real new code here, mostly from other libraries. All given attribution though. So good on them.
Not a lot going on in core, but let’s see blockchain and transactions at least.
Interesting. Using time, normally a no no in decentralized world. block is just a file that gets written out. Updating balances is a bit loose. Not seeing any checks and balances.
Lot of code here, but it’s not very good. Well, the code is good, well written, but it doesn’t feel like the writers know too much about blockchain.
Think my previous statements might have been a bit premature. meta-node-torrent looks like the real meat. I think the rest are just tests and tools. Let’s dive into this guy.
Yeah, this finally looks like the real stuff. Let’s see
Looking much better. Still a traditional blockchain though.
Trying to understand how the graph and the chain play with each other. Right now I don’t see the correlation.
The graph is used for the p2p knowledge graph I mentioned earlier. Not the blocks.
MetaHash Code Review Conclusion:
Started rough, but we ended with some fair code. No secret sauce here, and nothing really wow. But fair code. C++ isn’t easy to do well, but the writers have a good grasp of the language. Not seeing any of the massive claims they are making being validated by the code though.
I really don’t like all the hype focus, makes them feel very scammy, and the promises are not validated. But there is semi good code supporting this. Is it what is being promised on the website though? No, definitely not. Does it at least have some code? Yes, yes it does.
You can chat about MetaHash in our Telegram group.
Disclaimer: Crypto Briefing code reviews are performed by auditing what is on display in the master branch of the repo’s made available. This was performed as an educational review and any comments in the article are the opinion of the writer. It is normal for code to change rapidly, hence we timestamp our code reviews so that they present a snapshot at a moment in time. Information contained herein should not be used as any comment or advice on the project as a whole.
MetaHash Code Review Timestamp: September 9, 2018
Update: response from the MetaHash team, republished in full without commentary.
For some reason you use the outdated screens of the web-site and the opening part of the code review posted on October 11 is dedicated to the web-site’s look back from end of August/beginning of September. At the end of August we were completing ICO and a bunch of materials were for investors. In September we removed that information. So judging by the review people may think that our project has rather a sale-ish focus, which is not true. On October 11 (even 1 month before that) the look of the web-site was different. Moreover, while heavily highlighting economics and marketing aspects, the review does not even mention Yellow Paper which is there from August 10.
Quote from review “So, BFT with a gossip knowledge graph on top. Cool. So Tendermint. This is an infrastructure project, not a blockchain project. “Decentralized”
Unfortunately, looks like this conclusion comes from the web-site and not from Yellow Paper which would obviously make more sense for a tech/ code review. #MetaHash is a classic PoS blockchain in its structure, the main difference of our consensus from other projects is the multiple verification of blocks before user gets it which makes transactions irreversible much earlier.
Quote from review: “The strategy to try and make it look really busy with some randomly named repo’s that sound vaguely crypto”
The public repo includes the wallet’s code, examples of interaction with the network for devs in various languages, code of parts of the project which are already public. There are no directories which have been added just to make it look busy.
Quote from review: “I’m shocked, are you shocked? I’m shocked. It’s empty. I was not expecting that”
One of 24 directories is really empty. This a live git where devs are publishing in real time. One of the devs reserved this name for further publishing.
Quote from review: “Generating icons for addresses. I actually thought this was kind of cool, but no worries, it was just copied from Blockies (Without credit of course)”
This statement is not true. Wallets icons are created with the help of neural networks. All the libraries used for their generation are credited. The difference between Blockies and planets in #MetaHash can be easily understood just at a glance:
Yes, all used libraries are credited. As you know, in open source projects it is a common courtesy not to “reinvent the wheel” if there is a good library, but rather help to develop it.
Time is used only for speeding up the synchronization and is validated for possible manipulation risks. The creation of blocks uses numbers, not time. Validation functions are performed not by all nodes, which is explained in Yellow Paper in details. Unfortunately, it looks like the author didn’t fully understand that the network’s functions are distributed among various micro-services, which is the key ideology of the project.
#MetaHash is a traditional blockchain with accelerated synchronization. This is what we basically declared from the very beginning.
We have officially declared that the code will be released in Q1 2019, but it is already available in private git – it functions and provides the speed we declared. The quality of the code can be identified by the load it can support. The network is open now for such tests, so to see how much “wow” is there it makes sense to load the network and see how it works.