零知识证明是一种基于概率的验证方式,验证的内容包括“事实类陈述”和“关于个人知识的陈述”。验证者基于一定的随机性向证明者提出问题,如果都能给出正确回答,则说明证明者大概率拥有他所声称的“知识”。
Zerocoin(零币协议)将零知识验证用于铸造零币和赎回零币过程中,以隐藏了一笔交易对应的发送方和接收方信息,Zerocash(零钞协议)采用更新颖的zkSNARKs技术,将需要验证的交易内容转换成证明两个多项式乘积相等,结合同态加密等技术在保护隐藏交易金额的同时进行交易验证。缺点在于若网络收到攻击超发零钞,则无法发现或采取措施;Zerocoin和Zerocash均需要进行预先的“信任设置”,没有达到真正的“去信任”。英特尔SGX、zkSTARKs等新技术有可能解决上述问题,但仍需经过实践的检验。