Emotiq Code Review: Natural Language Smart Contracts
Share this article
Emotiq, next generation blockchain, scalable, private, natural. Natural? Moving along, Emotiq is a next generation blockchain with powerful scalability and privacy, combining the latest research in distributed ledger technology with an innovative natural-language approach to smart contracts.
So that’s the natural, using natural language to describe contracts. Don’t know if I like that choice. Natural language contracts are horrible to read, solidity smart contracts make perfect sense. But I guess that speaks more to my biases than the actual idea.
Oracles (access to the outside world) are natively part of Emotiq. Very interested to see how they implement this, the problem with oracles, they destroy the deterministic nature of blockchains.
So let’s talk about that quickly, to really be a blockchain, you need to be able to replay every event and arrive at the same conclusion as everyone else. Now let’s say my smart contract has an Oracle, that Oracle returns a number+1 every time it is called. So when I execute the Oracle for the first time, my smart contract has an answer of 1, when you execute it (to confirm my smart contract wasn’t lying), you get the answer or 2. How do we agree which one is right?
Emotiq builds on top of OmniLedger. Emotiq follows the BTC UTXO model.
Nothing in the whitepaper or yellowpaper with regards to how they are dealing with Oracles, let’s jump into the code.
Specifically we are interesting in Emotiq core library. There is a lot of development here. This is fantastic to see. David McClain looks like the primary developer. Let’s start digging.
Off to a great start, I love seeing discussion like this in repo’s. Good boiler plate so far, wallet, signing and verification services, good implementation, great commenting.
Lots of strong core functionality implemented, lots of challenging to potential outcomes, very good to see.
I actually hate good code reviews, the problem is there is very little to point out, no faults, no holes, no massive flaws. And it means there isn’t a lot to write about, and then the review seems dumb. Sure I can post all the code, but there aren’t really comments, it’s just good, detailed, well commented code.
Emotiq Code Review Conclusion:
Really not much to say here, it’s just really good code. They are proud of what they have built, and they want others to participate in it as well. Still only a basic blockchain for now, I can see their natural language smart contracts coming out (they are Lisp guys, so it makes sense), I’m not seeing the oracle solution or the sharding just yet. They are raising $60m, I think that’s very steep. But these guys are capable.
Will keep watching as they release new data.
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.
Emotiq Code Review Timestamp: May 8th, 2018 at 09:12 GMT