正确性
安全性
信任假设
性能:用于衡量zkVM的能力
效率
速度
简洁性
(1)基线:正确性、安全性和信任假设
在评估关键任务应用程序的zkVM时,应该将正确性和安全性作为基准。需要有足够的理由对正确性有信心,并且需要有足够强的声明安全性。此外,对于应用程序来说,信任假设需要足够弱。
如果没有这些属性,zkVM对应用程序来说可能比毫无用处更糟糕,因为它可能无法按照指定的方式执行,并使用户暴露于黑客攻击和漏洞攻击之下。
正确性
VM必须按预期执行计算
证明系统必须满足其声称的安全属性
正确性包含三大属性:
稳健性:证明系统是真实的,因此它所证明的一切都是真的。验证者拒绝接受虚假陈述的证据,只接受输入产生实际计算结果的计算结果。
完备性:证明系统是完备的,能够证明所有的真实陈述。如果证明者声称它可以证明计算的结果,它必须能够产生验证者可接受的证明。
零知识证明:与知道结果本身相比,拥有一个证明并不能揭示更多关于计算输入的信息。
你可能拥有完整性而没有稳健性,如果证明制度证明了包括虚假陈述在内的一切,显然它是完备的,但并不健全。而你也可能拥有健全性但没有完整性,如果证明系统证明了一个程序的存在,但不能证明计算,显然它是健全的(毕竟,它从来没有证明过任何虚假陈述),但不是完整的。
安全性
与可靠性、完整性和零知识证明的公差有关
在实践中,所有三个正确性属性都具有非零公差。这意味着所有的证明都是对正确性的统计概率,而不是绝对的确定性。公差是指一个属性失效的最大可容忍概率。零公差当然是理想的,但是在实践中,zkVM并没有在所有这些属性上实现零公差。完美的稳健性和完备性似乎与简洁性并不相容,并且没有已知的方法可以实现完美的零知识证明。衡量安全性的一种常用方法是以安全性bit为单位,其中1/(2^n)的公差称为nbit安全性。bit越高,安全性越好。
如果一个zkVM是完全正确的,这并不一定意味着它是可靠的。正确性仅意味着zkVM满足其声称的公差范围内的安全属性。这并不意味着所声称的公差低到足以进入市场。此外,如果zkVM足够安全,也并不意味着它是正确的,安全性指的是声称的公差,而不是实际实现的公差。只有当zkVM既完全正确又足够安全时,才能说zkVM在声称的公差范围内是可靠的。
信任假设
假设证明者和验证者的诚实性,以得出zkVM可靠运行的结论。
当zkVM具有信任假设时,通常采用可信设置过程的形式。在使用该证明系统生成第一个证明之前,ZK证明系统的设置过程将运行一次,以生成一些称为设置数据的信息。在可信设置过程中,一个或多个个体生成一些随机性,这些随机性被合并到设置数据中,并且需要假设这些个体中至少有一个删除了他们合并到设置数据中的随机性。
实践中有两种常见的信任假设模型。
诚实的大多数信任假设表明,人数为N的一组人中,超过一半的人在与系统的某些特定交互中表现是诚实的,这是区块链常用的信任假设。
1/N信任假设表明,在人数为N的一组人中,这些人中至少有一个人在与系统的某些特定交互中表现为诚实的,这是基于MPC的工具和应用程序通常使用的信任假设。
人们普遍认为,在其他条件相同的情况下,没有信任假设的zkVM比需要信任假设的zkVM更安全。
(2)zkVM三难困境:zkVM中速度、效率和简洁性的平衡
速度、效率和简洁性都是可扩展的属性。所有这些因素都会增加zkVM的最终用户成本。如何在评估中对它们进行权衡取决于应用程序。通常,最快的解决方案并不是最有效或最简洁的,最简洁的解决方案并不是最快或最有效的,以此类推。在解释它们之间的关系之前,让我们先来定义一下各个属性。
速度
证明者生成证明的速度有多快
以挂钟时间计算,即计算从开始到结束所经过的时间
应该根据具体的测试程序、输入和系统来定义和衡量速度,以确保可以对速度进行定量评估。这个指标对于延迟敏感类的应用程序来说是至关重要的,在这些应用程序中,证明的及时可用性是必不可少的,但是它也带来了更高的开销和更大的证明。
效率
证明者消耗的资源,越少越好。
近似于用户时间,即程序代码所花费的计算机时间。
证明者消耗两种资源:内核时间和空间。因此,效率可以细分为内核时间效率和空间效率。
内核时间效率:prover跨所有内核运行的平均时间乘以运行prover的核心数量。
对于单核prover来说,内核时间消耗和速度是一回事。对于在多核系统上以多核模式运行的多核功能prover来说,内核时间消耗和速度不是一回事。如果一个程序在5秒内充分利用了5个内核或线程,那么这将是25秒的用户时间和5秒的挂钟时间。
空间效率:指已使用的存储容量,如RAM。
将用户时间作为运行计算所消耗的能量的代理是非常有趣的。在几乎所有内核都被充分利用的情况下,CPU的能量消耗应该保持相对恒定。在这种情况下,一个受CPU限制的、主要是用户模式的代码执行所花费的用户时间应该大致与代码执行所消耗的瓦时(即能量)成线性比例。
从任何具有足够规模的证明操作的角度来看,节约能源消耗或计算资源的使用应该是一个有趣的问题,因为证明的能源费用(或云计算费用)是相当大的操作成本。由于这些原因,用户时间是一个有趣的衡量标准。较低的证明成本允许服务提供商将较低的证明价格传递给成本敏感型客户。
这两种效率都与证明过程的能量消耗和证明过程所使用的资金量有关,而资金量又与证明的财务成本有关。为了使衡量效率的定义可操作,该定义必须与一个或多个测试程序、每个程序的一个或多个测试输入以及一个或多个测试系统相关。
简洁性
生成的证明的大小和验证它们的复杂性
简洁性是三个不同指标的组合,按证明验证的复杂性进一步细分为:
证明大小:证明的物理大小,通常以千字节为单位。
证明验证时间:验证证明所需的时间。
证明验证空间:证明验证时的内存使用情况。
验证通常是单核操作,因此在此情境中,速度和内核时间效率通常是一回事。与速度和效率一样,简洁性的定义需要指定测试程序、测试输入和测试系统。
定义了每个性能属性后,我们将演示优化一个属性而非其他属性所产生的影响。
速度:快速的证明生成导致证明更大,但证明验证速度较慢。生成证明消耗的资源越多,效率越低。
简洁性:Prover需要更多的时间来压缩证明。但证明验证速度很快。证明越简洁,计算开销就越高。
效率:最大限度地减少资源使用,将减缓证明生成的速度,降低证明的简洁性。
一般来说,针对一方面进行优化意味着另一方面得不到优化,因此需要进行多维分析,以便在逐个案例的基础上选择最佳解决方案。
在评估中对这些属性进行权衡的一个好方法可能就是为每个属性定义可接受的程度,然后确定哪些属性是最重要的。应该对最重要的属性进行优化,同时在所有其他属性上保持足够好的水平。
下面我们总结了各属性及其关键考虑因素:
以上就是zkVM零知识证明是什么?一文详解zkVM的全部内容,望能这篇zkVM零知识证明是什么?一文详解zkVM可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。