为何需要零知识设想一种场景: 1)Alice声称自己研发出了一种可以解所有高考数学题的万能公式,任何题目10秒内都能计算出答案,并愿意以10eth的价格出售; 2)数学成绩一般的Bob表示非常有兴趣。 两人一拍即合。 然而,在交易之际却发生了问题,进入了一个死循环: 1)Alice表示,Bob必须要先付款,不然公式给到了Bob后他偷偷记下,然后拒不支付怎么办? 2)Bob则表示要先验货,如果自己付了钱,拿到的根本不是什么万能公式,Alice割完韭菜卷款跑路,那怎么办? 两人你来我往,尽管双方都有强烈的交易想法,但因为潜在的对手方风险,无人可以让步。最终这笔交易不了了之。 这正是一个典型的例子,“知识的保护”与“证明拥有知识”之间,Alice与Bob未能找到一个调和的方案,最终进入了死锁。 零知识证明(zero-knowledge proof,zk)正是应对这样一个场景而生的技术,即证明某个论点(Alice拥有万能公式)的同时,又不泄露论点中蕴藏的知识(万能公式本身)。 将其衍生到区块链中,数据上链后不可篡改的同时,也牺牲了一定程度的隐私性:用户的某些资产也许并不希望被大众所熟知。...