弹性SNARKs在多样化环境中的应用与实现
1. 流算法与流式预言机
时间高效算法是大家熟悉的概念,而要讨论空间效率,就需考虑流算法。流算法以流的形式接收输入(每次接收一小部分),这样就能设计出使用内存少于输入大小的算法。
- 流的定义 :流是一个元组,由字母表Σ、良序可数集I和序列K∈ΣI组成。
- 流式预言机 :如果K是一个序列,K的流式预言机S(K)接受start和next两个输入命令。预言机对第i个next命令的响应是K的第i个元素;使用start命令可将流S(K)重置到序列的第一个元素,以便再次查看流的早期元素,但流式预言机不允许随机访问K的元素。
2. 流算法
流算法通过流式预言机访问所有输入,并在接收到next命令时产生下一个元素,从而将流作为输出。流算法的复杂度通过时间复杂度、空间复杂度以及对每个输入流的遍历次数来衡量。
例如,对于字母表上的任何二元运算,可将其视为一个流算法,它以同一字母表Σ上由同一集合I索引的两个序列K和K′作为输入。该二元运算作用于K和K′的连续元素对,实时生成新的流。
若有两个流算法A和B,A的时间复杂度为tA,空间复杂度为sA,输入遍历次数为kA;B的时间复杂度为tB,空间复杂度为sB,输入遍历次数为kB。那么A与B组合后的流算法的时间复杂度为tA + kAtB,空间复杂度为sA + sB,输入遍历次数为kAkB。
3. 弹性SNARKs的模块化构建
许多简洁论证分两步构建:
1. 在验证者对证明者消息有
超级会员免费看
订阅专栏 解锁全文
803

被折叠的 条评论
为什么被折叠?



