以太坊目前使用零知识证明(ZKP)作为扩展解决方案已成为不可忽视的趋势。零知识证明可以在不改变区块大小或速度的情况下提高区块链的吞吐量,从而使区块链用户实现隐私和安全。ZKP允许验证者确定某些事情是真实的或交易是有效的,而无需知道细节。如果没有 ZKP,则交易数据的验证要求该数据公开可见。
ZKP对隐私的保护是其安全性的**体现。零知识证明(ZKP)提供了一种替代方案。使用ZKP,证明者可以证明对秘密的了解,而不会透露秘密本身。相反,密码是最常见的用户身份验证形式。如果用户可以提供正确的密码,则会授予他们访问帐户的权限。基于密码的身份验证的局限性之一是它要求双方都知道密钥。要验证用户的密码,服务器还需要知道他们的密码(或至少知道其哈希值)。
什么是零知识证明(ZKP)?
想象一下,你有一个患有色盲的朋友,他怀疑红色和绿色实际上是不同的颜色。ZKP对于两个颜色不同但其他方面相同的球,可以在不透露每个球的实际颜色的情况下证明这一点。在这个证明中,验证者(也就是你的色盲朋友)隐藏了两个球。然后,他向证明者展示一个球并再次隐藏它,并询问显示的两个球是否是同一个球。
从理论上讲,证明者能够区分球的唯一方法是颜色。如果证明者说的是实话,他们总是能够说明两个球是否相同。如果他们撒谎,他们每次都有50%的机会是正确的。这是ZKP的一个例子,因为它证明了球是不同的颜色,而没有揭示哪个球是哪种颜色。证明者可以保留秘密,但需要向验证者证明他们知道这个秘密。
图:如果有 10 个可能的答案,证明者猜出每次迭代的答案的概率
区块链的数字分类账技术是完全透明的,这意味着每个人都可以看到一切。验证交易和执行智能合约代码的需求意味着交易的源目标和内容对所有区块链账户都是可见的。因此,区块链上的隐私有限,因为任何人都可以查看帐户钱包的内容及其执行的每笔交易。
ZKP能够通过启用交易验证而不泄露交易内容来提高区块链上的隐私和安全性。例如,如果转账的输入是唯一的,并且输入和输出的总和相等,则金融转账(如发送比特币)是有效的。ZKP可以证明这一点,同时保持输出分配的机密性,从而改善了区块链上的隐私。
ZKP如何改变网络安全?
在基于密码的身份验证和数字隐私的世界中,ZKP可能改变现代网络安全的游戏规则。网络安全中的许多方法都涉及解决以下问题:
- 如何在不输入敏感信息的情况下注册服务?
- 如何在不泄露社会安全号码的情况下证明用户的身份?
- 如何保护用户的密码免受互联网黑客攻击?
ZKP有可能通过允许服务验证必要的信息来解决这些问题和其他问题,而无需用户披露这些信息。这消除了第三方服务在数据库中存储敏感信息的担忧,并且用户不需要通过不安全的网络发送敏感信息。
ZKP有3个属性。首先,完整性:如果陈述是正确的,证明者可以说服验证者。第二,合理性:如果陈述是错误的,证明者就无法说服验证者。第三,零知识:验证者无法获得任何其他信息,除非陈述是正确的。
交互式零知识证明无法满足区块链系统的高性能的要求。于是zkSNARKs系统应运而生,这是一个非交互式的零知识证明系统,满足区块链系统的性能要求。它被一些具有隐私性的加密货币系统广泛使用。
在加密货币系统中,zkSNARKs的工作原理是这样的。首先,项目设计者设计协议。在协议中制定一些合法交易的规则。要证明交易是合法的,用户需要证明交易遵循这些规则。然后,用户可以使用电路语言编写这些规则,并将其转换为QAP系统。然后,开发人员或社区将进行设置以生成验证系统的参数。
当有人想向其他人汇款时,他可以创建加密交易。然后使用证明密钥生成证明 pi,告诉其他人此加密交易是合法的。然后,他可以将加密的交易和证明发布到区块链。然后,每个人都可以验证并接受此交易。
ZKP的风险与挑战
第一,ZKP加密货币中会有实现漏洞。第一种错误是内存损坏。但是,大多数新的ZKP加密货币系统都是用具有内置安全性的语言实现的,例如java,go。因此,似乎不可能在它们上找到内存损坏错误。还有一些是用C++编写的,例如libSNARKs。但是,这些应用程序中的ZKP场景很难被利用。因此,内存损坏错误在这里不起作用。
第二种是逻辑错误。在协议设计、电路实现或应用逻辑中存在许多逻辑错误。此外,在加密方案的实施中也存在许多错误。由于ZKP加密货币系统总是使用一些新设计的加密货币,因此使用新的加密货币,会出现新的错误。设计zkp加密货币的目标是实现隐私,性能和易用性。但是,这些属性彼此冲突,因此协议将始终变得非常复杂。并涉及大量的加密货币。
要构建 ZKP 应用程序,应用程序开发人员只需使用一些 ZKP 库即可。但是,由于对ZKP技术缺乏足够的了解,他们的代码很容易受到攻击。第一个例子是信号量双花攻击。除了逻辑错误之外,ZKP项目的加密实现中也存在许多错误。ZKP项目总是使用很多新的加密方案,而实施这些新的加密方案总是会导致新的错误。
ZKP加密货币的第三个安全风险是信托风险。zkSNARKs系统的基本思想是:提前生成验证者的挑战x。为了解决这个信任问题,我们可以使用安全多方计算(MPC)来生成加密的x。然后没有人知道x的明文,没有人有后门。如果一个轻量级节点想要解密交易,他需要将他的解密密钥交给一个完整的节点。而且ZKP计算总是成本很高,所以它对轻量级节点并不那么友好。因此,我们可以得出结论,轻量级节点几乎没有隐私。
这是因为隐私实际上与易用性相冲突。目前市场上没有好的解决方案。许多ZKP系统在数学上是完美的零知识,但是,完美的零知识并不意味着完美的隐私。在实际使用ZKP时,存在许多信息泄露。ZKP技术相对较新,发展非常迅速。但它正在改进ZKP加密货币可以提供强大的匿名性。
ZKP领域的明星玩家
STARKWARE是ZKR领域的**玩家之一,推出了通用StarkNet,最近以80亿美元的估值筹集了1亿美元,使用了两种主要的 zk 技术:zk-SNARK 和 zk-STARK。STARKs与基于SNARK的算法的优势在于它们不依赖于可信的设置,使得STARKS量子具有抵抗力,并且具有更快的证明时间,这是它们最实际的好处,也是当今近期可扩展性的主要瓶颈。.
对于STARKs来说,证明和验证时间随着计算的复杂性而准线性地扩展,而对于SNARK,它们则线性扩展。由于协议需要更多的规模/计算,STARK将看到越来越大的优势。STARKS的缺点是它们的尺寸比SNARKS大得多,因此需要更多的链上存储并且验证成本更高。
像任何东西一样,zk-SNARK 和 zk-STARK的选择是一种权衡,取决于正在构建的内容。对于需要极大量计算和规模的产品,STARKS将更适合。它们将大大加快速度,并且证明者/验证成本将在更多用户之间分摊。如果构建一些计算强度较低的东西,那么也许你不需要STARKs,而SNARKs更实用。
到目前为止,STARKEx一直是StarkWare的主要产品,但他们现在正在加大力度推出他们的智能合约链StarkNet。我们还没有看到基于ZKP的通用智能合约链的主要原因是,简单地说,它们非常难以工作。EVM是在ZKR成为一个想法之前构建的,因此zkEVM由于对椭圆曲线的支持有限,不同的字大小,特殊的操作码以及更多不能很好地与有效性证明配合使用的问题,因此zkEVM面临着许多设计挑战。
另一个缺点是ROLLUP需要等待在以太坊上进行更改/升级,以保持完全兼容性。虽然可以从庞大的 EVM 开发人员生态系统中受益,但它是一个受约束的环境,其灵活性有限,并且未针对 ZKP 进行优化。虽然StarkWare已经开发了一个名为Warp的Solidity编译器,但这不是他们的重点,而是努力用他们自己的语言针对STARK进行了优化。
正如我们所强调的那样,StarkWare团队没有试图将EVM安装到StarkWare中,这是一个非常具有挑战性的问题,而是专注于从头开始构建一个新的开发人员生态系统,这很难引导,但如果成功,将具有实质性的长期优势。使用针对ZKP优化的语言作为一种没有工具的新语言,这不是一件容易的事,但在2022年已经取得了长足的进步。
该领域的主要瓶颈是证明成本。随着复杂性和计算的上升,它将增加证明时间并需要进一步的硬件加速,这对于试图启动的项目来说是一个重大障碍(取决于以太坊的gas成本〜100万美元/年)。从长远来看,验证行业很可能是专业人士的天堂,并且随着硬件的进步和采用的幅度增加,摊销的证明成本应该会大大降低每笔交易的成本。
正是在这一点上,ZKP需要很多年才能达到最终形式,但即将推出的完全可组合的智能合约链是第一步。围绕他们的设计空间和生态系统发展空间广阔,发展步伐不断加快。它不会在一夜之间发生,但大规模采用的道路是明确的。
文章标题:基于以太坊的零知识证明(ZKP)能否实现块链用户实现隐私和安全
文章链接:https://www.btchangqing.cn/351820.html
更新时间:2022年09月29日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。