user41513: Normally, in zk-SNARK, we need to generate two public keys: one for prover and one for verifier. However, the input parameter of this generator algorithm must be secret, meaning that it must be hidden for both prover and verifier. 
And because of this, the process of those public generation is done by a trusted third party. 
Since using a trusted third party is not desirable for decentralized blockchain, I am looking for a decentralized approach of those public key generation. Is there ? or it's impossible to have a decentralized zk-SNARK ?
P.S. More information about zk-SNARK is found here: https://media.consensys.net/introduction-to-zksnarks-with-examples-3283b554fc3b

user38618: Here's Zcash's multi-party parameter calculation code, which...

... used a multi-party computation protocol with the property that the resulting parameters are secure unless all of the participants were dishonest or compromised during the ceremony.

By the way, you might find Bulletproofs more interesting which is newer and doesn't require a trusted setup.

41513: <p>Normally, in <code>zk-SNARK</code>, we need to generate two public keys: one for <code>prover</code> and one for <code>verifier</code>. However, the input parameter of this generator algorithm must be secret, meaning that it must be hidden for both <code>prover</code> and <code>verifier</code>. </p>

<p>And because of this, the process of those public generation is done by a <strong>trusted third party</strong>. </p>

<p>Since using a <strong>trusted third party</strong> is <strong>not desirable</strong> for <strong>decentralized</strong> blockchain, I am looking for a <strong>decentralized</strong> approach of those public key generation. Is there ? or it's impossible to have a <strong>decentralized</strong> <code>zk-SNARK</code> ?</p>

<p><strong>P.S.</strong> More information about <code>zk-SNARK</code> is found here: <a href="https://media.consensys.net/introduction-to-zksnarks-with-examples-3283b554fc3b" rel="nofollow noreferrer">https://media.consensys.net/introduction-to-zksnarks-with-examples-3283b554fc3b</a></p>
 38618: <p>Here's <a href="https://github.com/zcash/mpc" rel="nofollow noreferrer">Zcash's multi-party parameter calculation code</a>, which...</p>

<blockquote>
  <p>... used a multi-party computation protocol with the property that the resulting parameters are secure unless <strong>all</strong> of the participants were dishonest or compromised during the ceremony.</p>
</blockquote>

<p>By the way, you might find <a href="https://crypto.stanford.edu/bulletproofs/" rel="nofollow noreferrer">Bulletproofs</a> more interesting which is newer and doesn't require a trusted setup.</p>
