Coda 101 - An introduction to the blockchain protocol

in #blockchain4 years ago (edited)

coda-blockchain-bloat.jpg

One of the mandates we've set for YieldWallet.io is to keep up with the latest and greatest technologies in the Blockchain and Crypto space. While this is not always possible due to the sheer pace of innovation, once in a while we get the privilege of not only learning about a new Blockchain technology, but also participating in its incubation to Mainnet.

The YieldWallet.io team was recently invited to participate in the Coda testnet as a Validator, by O(1) labs. We had the opportunity to learn about this new technology and also prep the YieldWallet infrastructure to participate as a validator on the Coda mainnet. In the spirit of Coda, we decided to create a succinct explanation of the technology, the network roles and it's economics.

What is Coda?

In the words of the O(1) team themselves,
Coda is a new cryptocurrency protocol that reduces the size of the blockchain from gigabytes down to the size of just a few tweets.

Let's dive in a bit deeper. Most blockchains start off small before growing to a few gigabytes in size. Eventually with mass adoption and usage they grow ever larger and it becomes ever more difficult from a hardware standpoint to run a Validator or a Blockchain Node.

Coda attempts to solve this problem by compressing the entire blockchain. It does this with the help of zk-SNARKs to construct a tiny snapshot of the blockchain. This means that no matter how big the blockchain gets or how many transactions, the cost to verify transactions remains constant, inexpensive and importantly, accessible to almost anyone.

The validity of a blockchain's sequence of transitions is proved using a SNARK. The blockchain proof can therefore omit the detailed list of blocks since verification of the SNARK implies verification of the embedded blocks. This ensures the succinctness of the blockchain.

As new blocks keep getting added, a new SNARK proof is computed that validates the new blocks as well as the previous SNARK. This notion of a SNARK proof that verifies another SNARK proof is called an incrementally-computable SNARK, and this ensures that the blockchain stays succinct even as blocks and transactions are added.

A slightly more technical definition of Coda is thus
A Succinct Blockchain Using Incrementally Computable SNARKs.

Much more detailed technical treatment of the subject can be found in the Coda whitepaper. It should be noted that the constructions and approaches described in the whitepaper are meant for a wide variety of blockchain applications of which Coda, a payment system, is the first.

Consensus

Interestingly, the Coda consensus protocol is also based on Ouroboros, like Cardano and seems to borrow heavily from the foundational work already done by the IOHK team. In their words, Ouroboros is a provably-secure PoS consensus protocol that is adaptively secure and offers bootstrapping from genesis.

Here's a link to the Ouroboros research paper for those interested in a deep dive of the consensus aspect of the protocol.

Network roles

The main network roles in the Coda ecosystem are those of Verifiers, Block producers and Snarkers.

Verifier: As described earlier, Coda uses recursive zk-SNARKs to continuously prove state validity. Full node security can be achieved by just downloading the zk-SNARK, which is around a few kilobytes and takes milliseconds to verify. A verifier (typically a Coda account holder) can verify the zk-SNARK and then request merkle paths to the parts of the state that it cares about e.g. It's account balance, and confirm that this merkle path is indeed part of the ledger that is certified by the zk-SNARK.

Block producers: Block producers are similar to miners or stakers in other protocols. They construct blocks of transactions and append them to the ledger, and are incentivized to do so by the block reward and fees for each block that they add to the blockchain. One of the aspects of Block production that is unique to Coda is that the Block producers need to take on the responsibility and cost of computing SNARK proofs for an equivalent number of transactions as those they add to a block. In fact, this equality is a consensus rule and the failure of this test will result in the Block being rejected by the network. Block producers may produce these SNARKs themselves or offload the responsibility to Snarkers who will perform the service, for a fee.

Snarkers: Snarkers perform a specialized role in the Coda network: Compute SNARK proofs for transactions on behalf of block producers, for a fee. Snarkers publish their fees to a marketplace (or snarketplace as the Coda team puts it) and Block producer choose whom to delegate the work to, from this marketplace. It should be noted that Snarkers only get paid when the transactions that they have computed SNARKs for get included in the Blockchain.

Here's a link to the Coda economics whitepaper, that describes this in greater detail.

Pictures!

Here are a couple of pictures (From the Coda Whitepaper) that describe the workflow that a Coda transaction goes through, and the Economics of Coda vis-a-vis the various Network roles.

coda1.png

coda2.png

Funding

O(1) Labs and Coda are backed by an extremely impressive set of investors. According to their website, they have raised a $3.5M seed round from investors including Coinbase Ventures, MetaStable, Polychain Capital, Electric Capital, Naval Ravikant, Elad Gil, Linda Xie, Fred Ehrsam, Kindred Ventures, and SciFi VC.

YieldWallet.io plans

We had a good showing in the Testnet participation stage, which has now concluded. It appears that there may be a few of these after which the Coda genesis program participants will be chosen and seeded with an initial 66,000 Coda. We hope to be a part of that initial Cohort and would be happy to welcome Coda holders to delegate towards us, when the Mainnet is LIVE. Stay tuned for more announcements on that.

Learn more about the Coda Genesis program here.

Connect with us

Join our communities and participate in the ongoing discussion.

Twitter, Facebook, Telegram, Email, Medium, LinkedIn

Please leave your comments and questions about Indra Crypto Capital, YieldWallet or anything else you’d like to talk about and we will be sure to get back to you.

Coin Marketplace

STEEM 0.26
TRX 0.25
JST 0.040
BTC 92903.81
ETH 3331.70
USDT 1.00
SBD 3.29