Today it’s the Celer code review, this one intends to “Bring Internet Scale to Every Blockchain”.
I wonder how much the Internet can scale. Seems like a lot. I have no idea how I would even test that. How many TPS does the Internet have?
So, what is Celer doing? Off-chain trust-free, secure, and private transactions.
What does that mean?
Thought you were going to get an explanation weren’t you? Well you can go look at the full Celer ICO review, you lazy dog, if you want the business model, or just keep reading for the code analysis because that’s coming up next.
We start off easy enough, deposit, and withdraw. Straight forward, let’s keep digging.
We open a channel, we add the peers, and we set withdrawal timeout. So the channel exists on-chain.
Ok, so we have deposited ETH (on-chain), and now we have opened a channel (on-chain).
transferFrom, not sure when authorize is set, maybe I missed it.
Ok, the picture is starting to come together. We deposit our ETH (or ERC20 tokens), we create a channel (some interaction between the two, or three+ of us), and then we start signing messages between us to confirm some state.
Let’s use a basic example, I have 1 ETH, you have 1 ETH: I send you 1 ETH, you now have 2 ETH… I go back to the channel and say I still have 1 ETH, you can dispute and prove that you have 2 ETH and I have 0 ETH. I’ve oversimplified, but that’s the concept. This could be applied to any underlying state, even just messages we transfer between each other.
So much code here, nothing specific to point out, just a lot of solid code.
The value proposition here is really what is built around this. The channels themselves are generic, so they could be used for anything between two or more parties, it doesn’t have to include value transfer. The use case makes sense for value transfer, but it can technically be anything.
Does this allow for micro transactions? Yes, it does.
Is depositing funds and creating channels annoying? Yes, it is.
Perfect for building a crypto based bank.
Celer Code Review Conclusion:
This code is good, but it’s not the sexy part. I really want to review their Android code and their SDK, letting people leverage this to create value backed apps that can scale is sexy.
You do have to give them your private key though. I would assume it’s stored locally though and not a KMS setup.
So what can you do with this? Any app you want really, want to create an old school arcade style game where people have to pay every time they play until game over? Sure, go for it.
The key is going to be their SDK though, I really want to review it. The solidity code is solid though, so they have that covered. Let’s see how easy they can make building apps for developers.
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.
Celer Code Review Timestamp: July 9th 2018
Full Crypto Briefing Celer ICO Review here.