一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第19天,点击查看活动详情。
| 有帮助的话请点个赞吧~ |
零知识证明根据其特点在区块链中实际应用之二,简单描述具体可根据给出的思路与实例进一步自行深入。
零知识证明要证明者在不透漏任何额外信息的情况下,向验证者证明某个论断有效(通常是持有某知识这件事)。
针对于定义中的两个关键点,结合区块链场景的需求,会有两个应用场景,今天基于证明某个论断有效讲述区块链的扩容与压缩:
兼顾安全的效率提升
区块链火爆起来,其中运行的数据量也逐渐大到离谱,那公链的算力是越来越不够的,所以就要考虑能够增加算力的方法,也就是提升计算效率的方法,同时还要维持原本的安全特性。
那么可以想到两个思路——链下扩容、链上压缩。
链下扩容
- 把一些计算放到链下算,算完把结果给链上,顺便附带正确计算的证明。
- 链上的算力有限,所以把一些不是特别重要的计算放到链下,但需要证明这些计算可信。
- 主链只进行重要数据处理,以及简单的验证。
- 扩容方案:zk-Rollup
- 主链保证安全、去中心,全球共识;扩展层追求性能,仅形成局部共识。
- 其所生成的证明极小,验证时间几乎为常数级别,无关于交易大小,所以可以大幅提升单位时间内的交易处理量。
链上压缩
- 把链上的大量重复计算结果存下来,避免中心化运行。
- 比如,要同步以太坊全节点要花费大量时间,需要下载然后验证同步到本地区块是否正确,其中还会有恶意节点发送无效区块。而且要从创世块开始重放所有区块,这个过程之前的很多节点也都做过,其实是一种资源浪费。
- 零知识证明可以校验每个区块的交易是否正确执行,此时就只需要验证较为精简的零知识证明。
- 比如,要同步以太坊全节点要花费大量时间,需要下载然后验证同步到本地区块是否正确,其中还会有恶意节点发送无效区块。而且要从创世块开始重放所有区块,这个过程之前的很多节点也都做过,其实是一种资源浪费。
- 压缩方案:Coda
- 采用零知识证明的方式将区块大小控制在22kB在,且这个大小固定,与区块数目无关。
- 因为它基于递归零知识证明,这一次的证明输入是上一次的证明和新产生的节点。
参考
| 对区块链研究浅显、部分名词描述使用可能不太恰当 欢迎指正与讨论! |