Mina Protocol — A Succinct Blockchain

  • The first cryptocurrency with a succinct blockchain.
  • Blockchain compressed from 100s of GBs (as seen in existing protocols) down to kBs in size.
  • Scalable, secure, and decentralized.
  • Allows for verification of the blockchain on a mobile phone.
hack.summit(“blockchain”) 2018 — Izaak Meckler — co-founder and CTO, Mina Protocol
The growth rate of the Bitcoin blockchain in megabytes from ‘09–’18. (https://www.blockchain.com/en/charts/blocks-size?timespan=all)

Preface

Why can’t everyone be a full node? Before diving in, we should first establish an understanding of the basic setup of a typical cryptocurrency protocol — a processor, otherwise known as a miner or staker (PoW vs. PoS respectively), applies a transaction to the database. A full node then observes these transactions, to ensure they’re acting honestly. End users typically due no checking independently — instead, they delegate trust to willing network participants. Why is this?

  • Resource requirements & complexity of running a full node discourages end users to do so.
  • It is intensive to run a full node on a computer, impossible on a mobile phone.
  • Easier to trust third parties to complete this validation.

Introduction To Mina

#243 Izaak Meckler & Evan Shapiro: Coda — A Succinct Blockchain — Epicenter
  • Utilization of zk-SNARKs — effectively compressing blocks into a single proof or certificate.
  • End-users check this proof instead of checking the entire transaction history of a block.
  • Recursive composition of these SNARKs/certificates— enabling a constant sized blockchain.

How Mina Works

zk-SNARKs in Mina

At the core of the Mina Protocol, is the usage of zk-SNARKs which can be used to certify any computation.

  • Transactions are signed.
  • They are valid.
  • Consensus rules (total hash power + chain strength for PoW, and the Variable Random Function/other rules for PoS).
a SNARK processor creating a SNARK/certificate of validity for a block which could be passed on as a proof, without including all of the transactions.

Replacing each block with a SNARK isn’t a complete solution.

Initially, it was thought that we could simply create a SNARK for each block, shrinking each block to about a kilobyte, and call it day. However, this would still result in linear growth over time as SNARKs pile up, albeit to a much lesser degree than existing blockchains.

How can we fix this?

Well, we know that a SNARK can be used to certify any computation. Creating a SNARK is a computation in itself — so what if we created a SNARK of multiple SNARKs?

Multiple certificates/SNARKs, each verified by an end-user.

A Recursive Composition of SNARKs in Mina

As previously mentioned, we can chain these certificates together in a recursive composition and allow the blockchain to remain a constant size of ~20kB (SNARK + tail-end Merkle path).

Multiple certificates/SNARKs placed into a single certificate/SNARK.

To simplify this idea, let’s say you have:

  • One certificate stating you can go from Block 0 to Block 2.
  • An additional certificate stating you can go from Block 2 to Block 4.

A validating node in Mina will comprise of:

A recursively composed zk-SNARK (1kB) which proves the validity the entire past history of the blockchain and merkle root path of the current state (20kB); together proving the validity of a user’s balance. All of which takes only milliseconds to sync up to.

End-user verifying a SNARK of the current state which includes all past certificates, as well as a merkle path. All of this comes together allowing a user to validate their balance.

Applications, Decentralization, and Scalability

Applications

The construction of the Mina protocol allows for the blockchain to be easily accessible to end users through your browser and in applications without downloading hundreds of gigabytes and without delegating trust.

Decentralization

As mentioned, end users in today’s existing cryptocurrency protocols end up delegating trust to services such as online wallets or light clients in the case of mining. This could become problematic in the event of something like a 51% attack as the duty of verifying transactions is often concentrated in the hands of these service providers.

Scalability

In terms of enhancing scalability, increasing throughput to thousands of txns/sec in existing protocols would produce an increased amount of data needed for verification. You would inevitably end up with a blockchain that grows faster than it can be verified.

Takeaway

By creating a blockchain which remains at a constant size, Mina enables end users with a low barrier to entry way to verify transactions on their own.

  • No need to delegate trust to those willing to keep up with the requirements to operate a full node — as is the case in traditional blockchains.
  • Obtain full node level security on virtually any device by downloading a single SNARK which acts as a certificate for the entire blockchain & a tail-end merkle path.
  • Using a recursive composition of SNARKs, the blockchain size is able to remain ~20kB.
  • Having a broad network of validating nodes increases decentralization as more end users are equipped to participate in network verification.

Bonus Thought:

You can think of Mina as a blockchain compressed into a PokéBall. Instead of a cramming a Snorlax into a Pokéball, Mina compresses the blockchain into a SNARK.

From ZCon0 Presentation — Izaak Meckler — https://www.youtube.com/watch?v=qCVACpgQSjo

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store