零知识证明(六)——区块链应用场景下

282 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第19天,点击查看活动详情

有帮助的话请点个赞吧~

零知识证明根据其特点在区块链中实际应用之二,简单描述具体可根据给出的思路与实例进一步自行深入。

零知识证明要证明者在不透漏任何额外信息的情况下,向验证者证明某个论断有效(通常是持有某知识这件事)。
针对于定义中的两个关键点,结合区块链场景的需求,会有两个应用场景,今天基于证明某个论断有效讲述区块链的扩容与压缩:

兼顾安全的效率提升

区块链火爆起来,其中运行的数据量也逐渐大到离谱,那公链的算力是越来越不够的,所以就要考虑能够增加算力的方法,也就是提升计算效率的方法,同时还要维持原本的安全特性。
那么可以想到两个思路——链下扩容、链上压缩。

链下扩容

  • 把一些计算放到链下算,算完把结果给链上,顺便附带正确计算的证明。
    • 链上的算力有限,所以把一些不是特别重要的计算放到链下,但需要证明这些计算可信。
    • 主链只进行重要数据处理,以及简单的验证。
  • 扩容方案:zk-Rollup
    • 主链保证安全、去中心,全球共识;扩展层追求性能,仅形成局部共识。
    • 其所生成的证明极小,验证时间几乎为常数级别,无关于交易大小,所以可以大幅提升单位时间内的交易处理量。

链上压缩

  • 把链上的大量重复计算结果存下来,避免中心化运行。
    • 比如,要同步以太坊全节点要花费大量时间,需要下载然后验证同步到本地区块是否正确,其中还会有恶意节点发送无效区块。而且要从创世块开始重放所有区块,这个过程之前的很多节点也都做过,其实是一种资源浪费。 image.png
    • 零知识证明可以校验每个区块的交易是否正确执行,此时就只需要验证较为精简的零知识证明。
  • 压缩方案:Coda
    • 采用零知识证明的方式将区块大小控制在22kB在,且这个大小固定,与区块数目无关。
    • 因为它基于递归零知识证明,这一次的证明输入是上一次的证明和新产生的节点。 v2-495dda71f0f385627de0069843cff479_720w.jpg

参考

[1] 零知识证明介绍 - 知乎 (zhihu.com)


对区块链研究浅显、部分名词描述使用可能不太恰当
欢迎指正与讨论!