Arthur Breitman , the chief technical officer at Dynamic Ledger Solutions – which is currently leading development for the Tezos project, has been considering implementing some form of Zcash’s zk-SNARKS cryptography into the Tezos protocol.
At present, the Tezos community is expecting the first protocol amendment vote and some developers believe that substantial progress has been made – which could potentially lead to successful zk-SNARKS integration with the Tezos blockchain.
New OCaml Binding For Interfacing W/ zk-SNARKS Library
On November 29th, Tezos’ developers made a commit to the project’s public Gitlab – which revealed a new OCaml binding that has been created for interfacing (communicating) with Zcash’s zk-SNARKs libary. This will allow developers to add shielded transactions to the Tezos chain.
Shielded transactions provide verifiable proof that a particular set of transactions were processed, without having to disclose details about the the transactions themselves. Information kept private by shielded transactions typically includes: a user’s associated accounts, transaction logs, and/or the amounts transferred in transactions.
How Do zk-SNARKs Actually Work?
zk-SNARK stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.”
zk-SNARKs effectively enable “one party (the prover) to prove to another (the verifier) that a statement is true, without revealing any information beyond the validity of the statement itself.” So, a transaction(s) with this feature are/is verified without disclosing the details mentioned above.
When the sender of a transaction generates a proof (a zk-SNARK) – which involves solving a mathematical proof (equation(s)) in order to prove that the transaction occurred – then this confirms that the sender signed off on the transaction. Moreover, it also confirms that the transaction cannot be changed by a third party – which was not involved in the actual transaction.
In other words, at the time when the sender initiates a shielded transaction, a zk-SNARK is generated from the sender’s address – which then permanently resides on the blockchain. This zk-SNARK can then be referenced by anyone to mathematically prove, without disclosing transaction details, that the transaction occurred.
Notably, Sophia Gold has prepared a document along with a Gitlab commit that includes a new native OCaml library – which may be used to program the the latest version of Zcash’s improved (much faster processing, much less memory requirements) zk-SNARKs algorithm called Sapling.
Tezos’ developers are now planning to use Sapling by integrating it into the Tezos protocol. Once complete, the integration will allow the Tezos network to support shielded transactions. The Sapling version allows proofs to be generated in seconds.
However, the Tezos community will reportedly be voting on this. So, the decision (ultimately) regarding if/when the upgrades/integrations will be performed is a community-led, majority-consensus type decision.