Coda is a new cryptocurrency project being developed by Izaak Meckler, Evan Shapiro, Brad Cohn, and Brandon Kase. While studying cryptography as a PhD student at UC Berkeley, Izaak learned about the potential of zk-SNARKs. Partnering with longtime friend and CMU roboticist Evan Shapiro, they began working on applying zk-SNARKs to the problem of creating a highly scalable yet decentralized cryptocurrency.
0(1) Labs Medium Post
This piece will not be a normal deep dive in to a piece of software because there just isn’t that much information available about CODA yet, but the idea this group is building might be as important as the development Distributed Proof of Stake (dPoS). In my last piece I developed the idea that dPoS is actually more decentralized than currencies like Bitcoin. The concept of CODA takes dPoS a step further and revolves around decentralization at scale. In mined currencies, a Full Node with a complete copy of the blockchain locally with tens of gigabytes of information is required to verify transactions. This typically requires a dedicated system with decent bandwidth to maintain a Full Node on the blockchain. Rather than requiring the entire blockchain to be downloaded to maintain a Full Node CODA converts the blockchain into a succinct blockchain, a small 20kb Zk-SNARK hash. The hash represents a “certificate of audit” for the blockchain as a whole which can be used to verify transactions. The Zk-SNARK hash is a unique representation of each iteration of the blockchain and can be used to positively verify transactions at a constant cost efficiently.
Resolving transactions at a constant cost low enough to be negligible to a purchase price and cost effective in energy consumption are key to the next generation of cryptocurrencies. Crypto had to stop requiring the energy consumption of a small country to remain a realistic alternative to fiat currency. The absurd mining rigs built to find new blocks for Bitcoin are the antithesis of what is described in Satoshi’s abstract. I’m, however, not sure he truly saw what was to come when he built Bitcoin. Clearly he saw bits and pieces of the future, but he didn’t envision the whole ecosystem and negative consequences wrapped up in his code. I can’t really blame him and probably would have been blinded to the down side by the immense beauty of the idea as a whole as well, but that doesn’t hide the fact that the future holds more advancement for crypto. The latest generation of crypto, dPoS systems, are inexpensive to use and energy efficient, but they still have large stakeholders controlling the resolution of blocks and validation of transactions. CODA is still tied to block producers but it uses the Zk-SNARK certificates to validate the ledger’s gigabytes of transactions on any device quickly. CODA is a step closer to the peer to peer vision Satoshi started with Bitcoin. The hash is a zero knowledge proof created as a unforgeable certificate that can be verified without a knowledge of the ledger supplying the data. This provides a full node level of security that can be run on any device. Izaak Meckler did a great youtube at hack summit 2018 describing how CODA functions. For a more detailed explanation of Zk-SNARK Vitalik Buterin wrote a description of its function, “Zk-SNARKs: Under the Hood” that requires some time and a high level of cryptographic math skills to really understand it, but it is still worth looking at even if you can’t understand the mathematical functions in the piece. Both are worth looking at for more information about Zk-SNARK hashes.
Originally the idea of cryptocurrency was to create a unique digital representation following the principle of the CIA triad of confidentiality, integrity, and availability. This is the cornerstone of the InfoSEC process. Satoshi envisioned a trustless system of repudiation that complied with the CIA triad to prove transactions when Bitcoin was created. I don’t believe he felt that Bitcoin was the completion of his idea, but the beginning of a revolution. The abstract begins with, “A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.” The development of the Crypto market has became exactly what Satoshi was attempting to abolish, a financial institution. Most currency’s accounts essentially have a third party institution in their current form including Bitcoin resloving “customer’s” transactions. To verify transactions directly on bit coin you have to be running a full node to verify transactions. It’s no longer possible to mine blocks as a small operation and make a profit. Every aspect of transaction validation has become a competitive economy of scale. Centralization of the mining process and the size of the resulting blockchain have defeated the Peer to Peer vision of Bitcoin. Crypto is becoming a “Central Bank” of their own making. The problem lies in the competitive advantage for mined currencies is derived from larger and larger mining pools increasing the chance to resolve a block through the application of processing power. Satoshi did not take the idea to its logical extreme and envision the capitalistic nature of the minds designing a profitable means to resolve time into work where time is measured in petaflops of processor calculations. This is where CODA has advanced an ambitious idea, resolve the blockchain with a hash of the blockchain reducing the overhead down to a few kilobytes with the Zk-SNARK proof. The overhead is reduced from the gigabytes of data down to an easily resolvable packet. The CODA State Explorer explains the transactions like this:
It is possible to watch the protocol resolving blocks at the CODA State Explorer
- Once a client has a protocol state and a succinct blockchain certifying that state, they can get their account information with a small amount of additional data. Namely, they need a merkle-path from the protocol state’s ledger hash to their account.
- The succinct blockchain, protocol state, merkle-path, and account information are altogether just a few kilobytes, so Coda can provide a full proof of the state of an account with just this tiny amount of data.
- The zk-SNARK proof serves as a succinct blockchain, validating the entire protocol state just as a heavy blockchain does in existing cryptocurrencies.
- The staged and locked ledger hashes are the merkle roots of two versions of the database of accounts. Changes to accounts are reflected immediately in the staged ledger hash. The locked ledger hash is set from the staged ledger hash periodically, as zk-SNARK proofs are computed.
Bullet points are quoted from the test explorer page.
The test explorer runs a script inside your browser to resolve the blockchain with a hash the size of a few tweets. The whole concept is to resolve a blockchain that can support millions of users and thousands of transactions a second while being calculated on a desktop, in a browser, or on a cell phone. This project is realizing original intent of Bitcoin before it grew to a centralized system where only those that can afford the hardware can participate in mining blocks. What I found to be really captivating about the idea are the new methods cryptocurrency is adopting to resolve transactions. Just as EOS used dPoS to improve on the ideas developed with Ethereum and NEO as the next generations of block resolution the development team of CODA are attempting compress the data required to resolve blocks to size where any connected device could quickly resolve the transaction and every account is essentially a full node on the chain.
Everybody participating in a transaction is able to validate blocks and sends the resolution hash to be verified on the merkel-path to establish the protocol’s new state of the ledger for the participating accounts. Currently the CODA coin is not yet in the ICO stage of distribution, but the work provides an interesting possibility for the future of blockchain. These advancements are what crypto projects require to remain competitive and develop a true crypto economy. I don’t see Bitcoin and Ethereum in their current forms as the future of crypto, I see them as the catalyst for the advancement of the crypto economy. One issue that I think is not often considered is that developers cannot make the investments in their projects valueless, but must also have the latitude to strengthen the cryptocurrency. A huge investment in hardware to build an organization to mine crypto becomes the weakness that moves a currency to the dustbin of math history. Heated arguments about forks driven by mining operations to prevent the changes required to keep currencies viable weaken projects. Currencies must evolve to support the new challenges faced in the market. Bitcoin purists are fools crippling their own investment. The best examples of this are Bitcoin’s failed fork last year or Ethereum’s fight to upgrade its protocols to move to some version of dPoS. The biggest friction for Bitcoin and Ethereum are the mining consortiums’ hobbeling advancement to slow the obsolescence of their hardware investment. The large scale mining operations threaten to stop deriving blocks for the currencies shaping the conversation of where the protocol is heading. Crypto has to break free of large scale block production organizations to regain the strength it had as a fledgling currency.
The problems we face in the crypto community is a failure to understand that nothing is static in cyber security and we attempted to shortcut the capitalization of projects through institutional investments. Many of the projects are becoming vassals of the very institutions that the original investors were trying to evade. These projects found their initial capital from individuals that wanted to escape the grip of the central banking cartel only to have the projects sell the technology right back to the big money investors. Even EOS tried to prevent investment by American an Chinese investors, but now has most of its block producers based in China and the United Stated. If I wanted central banking involved in crypto I would invest in XRP. XRP is a great project, and many people are unaware that ripple actually began before Bitcoin. I’m not disparaging the projects value to some part of the crypto economy, but I don’t think a central authority really has a place in every chain. There has to be a chain or group of chains that are strictly peer to peer as well as efficient. Ideally there would come a cross breed of CODA and Bitcoin or EOS where block resolution can also be expanded to a peer to peer level, but CODA is definitely a major step in the right direction. Maybe it really comes down to Dan Larimer’s view that competing Blockchains create enough diversification in the market to evade centralization of the markets. In that case, a EOS token built with the technology CODA uses to resolve transactions or a fork where EOS implements CODA’s technology to resolve transactions might be a monumental step forward. Even if that is true, with the markets in their current weakened state whales can make transactions that drive the whole market up or down. The currencies will not decouple from the movements of Bitcoin without a true grassroots economy of their own. Until that happens all of these ideas are just science projects.
While the investment money is a big problem, cryptocurrency is still the essence of applied cyber security theory. The first rule of cybersec is security is not an achievable goal, but a process that requires vigilant attention. The real power of Bitcoin was the grass roots investment by enthusiasts to develop an idea converting time into proof of work. Bitcoin was created as a peer to peer method of commerce that grew organically as a culture of its own. EOS on the other hand was a derivative of the ideas prototyped in Ethereum that spawned a whole community on its own. In that way EOS is by far making the most advancements towards creating its own economy and I believe it will eventually decouple from Bitcoin and the rest of the market. I had already pointed out in previous work that I have invested in several ideas that I find promising, but the ideas I find captivating behind CODA are at the same time revolutionary and a return to the roots of cryptocurrency. A whole new way to resolve a peer to peer network that could never have been envisioned by the originators of cryptocurrency without the realization of the state of the industry to come.
I personally believe the inventors of cryptocurrency are as surprised as anyone else that the idea actually worked. I see Satoshi Nakamoto as a group of guys coding with pizza boxes and beer bottles piled up on every available surface pontificating on the meaning of money. The fact that it took off had to have been astonishing for them too. We need to stand on their shoulders to keep these projects moving forward. A rolling stone gathers momentum.
Just my personal belief…
Bitcoin: A Peer-to-Peer Electronic Cash System
Abstract: A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they’ll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.