# Understanding Mina from a client's view

**URL:** <https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606>\
**Category:** Community\
**Created:** [March 16, 2022, 2:25am UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606 "2022-03-16T02:25:07Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ineiti](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.minaprotocol.com/ineiti/32/1709_2.png) [@ineiti](https://forums.minaprotocol.com/u/ineiti)\
**Post date:** [March 16, 2022, 2:25am UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606/1 "2022-03-16T02:25:07Z")

</div>

Hi there,

I’m following blockchains on a technical level for quite some time now, and I think it’s really exciting what you did with Mina. I’m trying to understand the protocol, and even though I skimmed the whitepaper and looked at some medium posts, I would like to verify that I understand correctly:

- The zk-SNARK size is 1kB, and the inclusion proof of my account with that zk-SNARK as basis is 22kB
- Every time a new zk-SNARK is produced, I need to get a new inclusion proof for my account

And a more difficult question: how does this compare to something like DFinity? From my understanding, DFinity uses a unique, never-changing public key that can verify the block signature. So if I have the block-header, the signature, and the public key, I also just need the inclusion-proof for my account.

I hope I wrote correctly,

Ineiti

---

<div class="post-metadata">

**Author:** ![Pete](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.minaprotocol.com/pete/32/1225_2.png) [@Pete](https://forums.minaprotocol.com/u/Pete)\
**Post date:** [March 16, 2022, 10:07am UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606/2 "2022-03-16T10:07:39Z")

</div>

hey there, thanks for the question and interest in the project. Have you tried the Mina Protocol discord channel? That may be a better place to ask these questions just at the moment. [Mina Protocol](https://discord.gg/UmhcEU4Xfz)

---

<div class="post-metadata">

**Author:** ![ineiti](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.minaprotocol.com/ineiti/32/1709_2.png) [@ineiti](https://forums.minaprotocol.com/u/ineiti)\
**Post date:** [March 16, 2022, 2:59pm UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606/3 "2022-03-16T14:59:31Z")

</div>

Thanks for you answer. I don’t like discord channels for technical discussions, as it’s difficult to search it with a search engine like Google. But if there is nothing else, I’ll try there.

---

<div class="post-metadata">

**Author:** ![Pete](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.minaprotocol.com/pete/32/1225_2.png) [@Pete](https://forums.minaprotocol.com/u/Pete)\
**Post date:** [March 16, 2022, 7:30pm UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606/4 "2022-03-16T19:30:50Z")

</div>

no problems, I think once we have some working zkApps this place is going to be a lot busier. Right now all the work is being done behind the scenes at the moment, but watch this space… great to have you on board!

---

<div class="post-metadata">

**Author:** ![MisterF](https://avatars.discourse-cdn.com/v4/letter/m/b77776/32.png) [@MisterF](https://forums.minaprotocol.com/u/MisterF)\
**Post date:** [March 23, 2022, 4:11pm UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606/5 "2022-03-23T16:11:33Z")

</div>

Can you link to some explanations of dfinity? To me it sounded like a normal PoS BFT based on a VRF.

Also, I think the complete proof is more like 10kb, but it’d be cool to have more accurate stats

---

<div class="post-metadata">

**Author:** ![ineiti](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.minaprotocol.com/ineiti/32/1709_2.png) [@ineiti](https://forums.minaprotocol.com/u/ineiti)\
**Post date:** [April 6, 2022, 7:35am UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606/6 "2022-04-06T07:35:43Z")

</div>

Here is a somewhat technical introduction to how DFinity works:

> **[Chain Key Cryptography: The Scientific Breakthrough Behind the Internet Computer](https://medium.com/dfinity/chain-key-technology-one-public-key-for-the-internet-computer-6a3644901e28)**
>
> Chain Key cryptography is a set of cryptographic protocols that orchestrate the nodes that make up the Internet Computer.

Besides holding 100$ of ICP I’m not affiliated to them 🙂 But I like the idea of having a unique public key to verify transactions, instead of having to follow a list of blocks. Also because I’ve been involved in a similar effort with skipchains here: [CHAINIAC: Proactive Software-Update Transparency via Collectively Signed Skipchains and Verified Builds | USENIX](https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/nikitin). But DFinity’s effort is even more elegant, IMO.

As far as I can tell, DFinity is not based on a VRF, but rather on threshold-signing of new blocks. Does that make sense?

---

<div class="post-metadata">

**Author:** ![MisterF](https://avatars.discourse-cdn.com/v4/letter/m/b77776/32.png) [@MisterF](https://forums.minaprotocol.com/u/MisterF)\
**Post date:** [April 6, 2022, 3:23pm UTC](https://forums.minaprotocol.com/t/understanding-mina-from-a-clients-view/5606/7 "2022-04-06T15:23:23Z")

</div>

Thanks for sharing! It looks really interesting but a bit scary if I’m honest (although I might be misunderstanding the design).

It looks like each subnet has a threshold key that’s not generated via a DKG, but via some variant of shamir secret sharing (verified via a ZKP). This means that there’s some point in time where someone has the actual secret, and needs to be honest and dispose of it (like some toxic waste). It seems to be enough that at least one of the validator does their job honestly, which is perhaps a fine threat model, still it would have been nicer to use a DKG. I presume a DKG is too hard even with a blockchain? (I thought Shoup was working on that there)

BTW this does not preclude a PoS consensus driven by a VRF. It’s just that the VRF can be built using a threshold signature.
