COTI Code Review: Currency Of The Internet DAG
analysis

COTI Code Review: Currency Of The Internet DAG

THELOGICALINDIAN - n-a

Taking a attending at COTI with my cipher analysis today. White characterization payments solution, aerial throughput claims, custom abiding coins, wants to accommodate the way agenda currencies are perceived by merchants and buyers application their Trustchain consensus. So basically accomplishing the accomplished “We can out-PayPal PayPal and anybody abroad too” routine.

Interesting though, how they appetite to do it, and I had to burrow appealing abysmal to get into their band-aid and how it absolutely works. I will acquaint you, back this is a best cipher review, I do like what they came up with. I don’t anticipate it’s absolutely what they say it is, but it’s still appealing neat.

So, COTI, Currency Of The Internet — DAG-based basement optimized for acquittal networks and abiding coins. Off we go.

Fullnode, dsp-node, trustscore-node, zerospend-server attending interesting.

Actual Java, I’m a little bit surprised. I was assured scala.

Zerospend , abject bales zerospend and basenode.

return true.

DspVoteServer? Affairs are voted on? There is a subset of assembly or validators that get adopted and can again vote on transactions? Interesting, is this a broadcast arrangement or a decentralized one?

Looks right, we bear a transaction to all DSP nodes (we will amount out what these are later), and again we vote on them. So BFT, but with DSP nodes (whatever they are).

So what I anticipate we are activity to see actuality is a transaction based BFT archetypal with DSP nodes actuality about called into their own shards? This would acquiesce you to accept circumstantial votes on transactions. Although it ability aloof be affairs and not shards, back if shards you still accept to vote on the after-effects of the shards. Is this UTXO? Let’s accumulate digging.

Starvation and aught absorb transactions, we will charge to attending at the whitepaper what these do.

Randomized (sort of) assurance array at genesis.

pot time. Proof of Trust. max assurance account = 100. Wait, are trustscores on transactions? I anticipation they were on voting nodes. Ok, so this is the trustscore of a transaction, bold as some amount based off of its parents, appropriately the DAG. I’m authoritative assumptions though, let’s accumulate looking.

Good abstraction. Basenode is developed on its own with all the basal bulge features. I like the architecture pattern.

Wait, zerospend does not use affidavit of trust? And affidavit of assurance is based on getRoundedSenderTrustScore(). Keep digging.

Some models, and http interfaces, websocket implementation, affective on.

RocksDB makes a visit.

The blueprint is nodes? Now I’m confused.

Transaction data, let’s breach it down,

hash, amount, larboard ancestor (vertex), appropriate ancestor (vertex) (what decides the parents?), assurance alternation transaction hashes, user assurance account badge hashes, assurance alternation consensus, assurance alternation assurance score, transaction accord amend time, actualize time, adapter time, action alpha time, pow alpha time, pow end time, sender assurance score, sender hash, bulge ip address, bulge hash ,node signature, accouchement transactions, valid, accurate by nodes, ….

Let’s attending at an ethereum transaction

13 fields. The transaction abstracts ability be a bit excessive. Can’t see area leftParentHash or appropriate is assigned. Will accumulate looking.

ZeroMQ, I’m accepting a actual broadcast feel here. I anticipate this is a actual air-conditioned broadcast acquittal solution, but I’m afraid to alarm it decentralized. I am adequate the cipher so far though.

Let’s jump into the trustscore node.

setKycTrustScore? What am I attractive at here. If an annual KYC’s we access their assurance score. That’s interesting. Smart.

So far we accept the assurance account nodes, they can amend account information, they analysis trustScoreData via request.userHash, request.kycTrustScore, request.signature, and a assortment of the kycServerPublicKey. I charge to accept a added attending at new TrustScoreData, I’m analytical if this can be exploited.

Not too abundant accident in it. So attractive aback at the setKYC, we charge to attending at trustScoreCrypto.verifySignature to see if this is exploitable.

Inherits from SignatureValidationCrypto, so let’s look

So, I could assurance the burden and again accept the trustScore updated? I’m abashed what is endlessly me from cocky signing and base this. Let’s attending aback at the original.

Ah, kycServerPublicKey, alone TrustScore Nodes can do this. But ok, let’s accept I’m a awful one. Not abiding how that is stopped. Again, this seems distributed, not decentralized.

I’ll dig into the whitepaper in a bit. Let’s accumulate going. Time for DSP node.

Ok, so fullnodes annals with DSP nodes. Curious what stops me from aloof calling addNewAddress and spamming. DSP nodes again broadcast this aggregate data. So they are acting as relayers for the network.

Interesting. New transaction from abounding node. Oh, we aloof bear again.

Ok, DSP nodes are aloof broadcast proxies. They bear contest throughout the arrangement and accumulate clue of all servers (and server types). Definitely a broadcast solution.

Let’s hit fullnode.

Pretty cool, college assurance account = college priority.

The bulge signs the message? Addresses are added and kept clue of?

Get sources and affidavit of work, IOTA style.

Ok, so abounding bulge we aloof actualize transactions, addresses, and do a bit of POW on the transactions. Affairs are beatific to DSP bulge relayers, trustscore nodes accommodate the assurance abstracts and allows administration of kyc data, and zerospend server accouterments the aught absorb transactions.

Yeah, this is a broadcast solution.

Whitepaper time.

“Hundreds of bags of TPS. Arguments for this can be begin in Section 10”, ok, we will get to it.

“MultiDAG”, didn’t see it anywhere in the code, not abiding the architectonics as advised will acquiesce for it, the transaction accord is absolutely anchored as a aboriginal chic aborigine currently.

“Smart contracts”, where? “Arbitration Service”, not yet. Wait, DSP nodes are bifold absorb blockage nodes? I saw that in DSP voting service, (the BFT on transactions) but not in the DSP servers, they are aloof acting as relayers?

Oh, so they are “decentralized” because anyone can be a abounding node, and abounding nodes aggregate fees. No, this is not a decentralized solution, the absolute assignment still happens in the trustscore, dsp, and zerospend servers. Fullnodes aloof actualize affairs and does some affidavit of assignment to validate antecedent transactions.

The Trust Chain algorithm isn’t 100% accurate, sure, you do validate antecedent affairs via affidavit of work, but until the BFT vote by the DSP account this isn’t finalized. So certitude is still alone afterwards BFT appearance transaction vote. And it’s accepted http communication, so it will get appealing arrangement accelerated actual fast. You can validate hundreds of bags of transactions, but certitude throughput is still lower, apparently about 2–3 thousand.

Good paper.

COTI Code Review Conclusion:

Not decentralized, this isn’t the abutting bitcoin, but it’s a actual air-conditioned broadcast acquittal solution. We apperceive they accept absolutely a few merchants onboard already, and they are expanding. This is application the abiding bread admitting and not coti dime. Fullnodes are low blueprint and can be calmly run by addition for the rewards. Although alluringly you would be a merchant, back you get added account by actuality the basic antecedent of the transactions.

I wouldn’t alarm it a blockchain (and I’m talking about the category, not the abstracts structure, alike DAG’s are blockchains), but again, I anticipate it’s a nice product. Acceptable design, acceptable architecture, able-bodied anticipation out. I anticipate they accept some promises in the whitepaper they are activity to attempt with. Smart affairs and hundreds of bags of TPS actuality two that anon jump out accustomed their design. But I like it.

Don’t apperceive if it’s article acceptable to buy now, but I’ll apparently cossack up a fullnode and abundance a few.

You can babble about COTI in our Telegram group.

Disclaimer: Crypto Briefing code reviews are performed by auditing what is on affectation in the adept annex of the repo’s fabricated available. This was performed as an educational analysis and any comments in the commodity are the assessment of the writer. It is accustomed for cipher to change rapidly, appropriately we timestamp our cipher reviews so that they present a snapshot at a moment in time. Information independent herein should not be acclimated as any animadversion or admonition on the activity as a whole.

COTI Code Review Timestamp: November 18th 2024