生成证明的速度可以从软件和硬件两个方面来优化:
软件层面,在语言层面上,ZK更友好的格式,也会带来加速生成的过程,比如Aleo的Leo语言。再就是算法本身的优化,虽然说有一定的优化空间,但是要想有大的突破需要非常多的时间,毕竟牵涉到很多数学问题。
硬件层面,也就是所谓的硬件加速, CPU、GPU、FPGA、ASIC。CPU与GPU相比在大数据多任务处理上,肯定GPU更占优势。FPGA与GPU相比,在兼顾了灵活性的基础上,无论是计算能力和功耗性能上都要更强,缺点是性价比太低。ASIC是的,其他的硬件形态都是无法比拟的。
证明生成的过程中,约有60%的时间花在MSM上,其余时间由NTT/FTT主导。MSM和NTT都存在性能挑战,通常的解决办法:
●MSM可以在多线程上执行,从而支持并行处理。然而,当处理大型数据向量时,例如6700万个参数,乘法运算可能仍然很慢,并且需要大量的内存资源。此外,MSM存在可扩展性方面的挑战,即使在广泛并行化的情况下也可能保持缓慢。
但是Aleo从开始的设计共识就是POS,也就是说其实本质上它是POS链,这一点上和其他项目有本质差别。其实对于某些人来说他们不太明白为什么Aleo一定要有PoW,完全用POS就可以了,很多业内知名ZK项目都是只有POS。关于这点可以看一下我们之前的文章:Aleo的PoSW、证明和委托代理计算到底是什么关系?“PoW”会不会消失?