2008年,中本聪首创比特币时,采用将所有交易信息全网广播和链上存储的方式。这种机制极大保证了区块链的安全性,但同时造成了两类问题:性能降低和隐私暴露。那么,是否存在一种算法,让区块链用户无需披露完整的交易信息并存入区块链,就确定全网所有交易记录有效性?答案是有的,这种算法就是零知识证明。
零知识证明算法最早在20世纪80年代由MIT教授Shafi Goldwasser、Silvio Micali和Charles Rackoff提出。2012年,Shafi Goldwasser与Silvio Micali因在零知识证明的重要贡献,获得图灵奖。 零知识证明强调可靠性、完备性和零知识性。即区块链用户的交易信息可以被压缩成证明,无需广播完整交易记录到全网。这些证明、而不是交易记录被存入链上,在保证区块链有效性的同时,极大降低了数据存入量,并极大提升了区块链的交易效率(可扩展性)。进一步的,零知识证明可以通过递归方式进一步压缩,Mina Protocol项目就是凭借这一点使公链大小始终不超过22KB。
目前常用的零知识证明有两类算法,ZK-snark算法发展更早、参与者更多、成本更低、体积更小,但是依赖可信设置和不具备量子抗性。ZK-stark算法则恰好相反。 ZK-snark项目项目中的代表是Layer1解决方案mina protocol。它通过递归零知识证明方式,在保证区块链安全性的同时极大提升了公链可扩展性(TPS)。同时,支持开发者基于递归零知识证明与智能合约开发ZKapp(原名Snapp)。递归零知识证明可以用于:匿名投票系统、(买保险时)健康信息验证、(借贷时)信誉信息验证等。预计未来会有较多ZKapp落地。
ZK-Stark的代表项目是Starkware解决方案。Starkware是以太坊Layer2解决方案的龙头之一,曾获以太坊基金会投资,并被V神看好。本项目基于针对以太坊可扩展性较低的痛点、进行链下扩容,同时摆脱了早期Plasma方案数据可得性问题(以太坊无法直接验证Plasma上交易信息),保证了以太坊跨层交互的安全性,相对于依赖惩罚机制和冷静期的Optimistic Rollup, 可以迅速与主链交互的ZKrollup方案似乎更值得期待。目前,由于zk算法的成本相对较高,且暂未完成EVM(以太坊虚拟机)兼容,zkrollup类解决方案的市占率有待提升,但是随着技术成本的进一步降低和EVM兼容性的完善,预计本项目会成为最佳的以太坊扩容方案。