Aleo设置仪式的技术解释

尊敬的用户您好:

欢迎来到Aleo中文社区,该系列是Aleo中文社区通过官方动态及外部资料整理的项目报告,希望帮助Aleo中国用户更深入的了解Aleo项目动态及信息。

在这篇文章中,我们想花时间解释为什么 Aleo 社区对成立仪式的贡献如此宝贵。这种多方计算 (MPC) 被称为“Tau 的力量”,是提供Aleo证明系统的关键安全基础之一的技术骨干。Aleo成立仪式目前的贡献超过了之前的记录,Tornado Cash的仪式的1114个贡献! 

如需转载或引用请标明出处。


零知识证明

Aleo 使用零知识证明 (ZKP) 来实现隐私和可扩展性。Aleo 链上的原生交易是 ZKP。具体来说,Aleo 使用一种称为 zkSNARK 的 ZKP(代表零知识、简洁的非交互式知识论证)。为了完全去信任,我们的 zkSNARK 必须在生成证明期间使用随机数。

这个数字是随机的,这一点非常重要。如果用户可以在需要它之前推理出他们的方式(因为它是由逻辑决定的,而不是随机性的),他们可以伪造证明并危及安全性。

人们通常认为随机性是理所当然的,因为它是由“受信任的第三方”提供的。但是,如果他们不值得信赖怎么办?Tau 的力量消除了这种不确定性。Aleo 的设置不信任任何一方,而是对任何人开放,鼓励多个独立贡献者。如果其中任何一个是诚实的,则生成的数字是/保证是随机的。

仪式完成后,我们可以开始使用证明系统中的参数并生成安全证明。这是主网之旅中一个非常重要的里程碑。


承诺计划

zkSNARKs 需要这种随机性有几个原因。例如,零知识证明中的交易需要“承诺方案”或两阶段协议,允许系统承诺选择的价值而不泄露所述价值。尽管有多种类型,但Aleo的承诺方案使用多项式(x的函数,其中所有幂都是整数,正数,例如f(x)=x²+x+3),因为如果2个多项式不同,它们的概率在正确的条件下,评估到相同的值是不切实际的低。在下面将解释这个多项式承诺方案。

任何加密承诺方案都需要两个特征。首先,一旦提交的多项式必须被“锁定”——即证明者或其他方不应该能够改变它,否则他们可以简单地改变多项式以使其看起来像他们的输入是正确的。这称为绑定属性。其次,承诺不应该透露有关多项式的任何信息,并且没有人应该能够使用承诺来找出有关多项式的任何信息。这称为隐藏属性。

在 zkSNARKs 中应用的多项式承诺实际上保证了具有正确输出的人因此必须具有正确的输入。

请注意,多项式承诺以一种无法博弈的方式创建是非常重要的。为了做到这一点,解决方案需要使用随机性。但这又提出了一个问题:Aleo怎么能相信多项式是在随机点上计算的呢?例如,如果证明者要做的第一件事就是提交一个他们想要保密的多项式怎么办?此时唯一可能是随机的就是他们创建的多项式,如果他们使用它来生成随机性,那么他们必须展示多项式,这正是Aleo试图避免的。

在实践中将承诺多项式,

n次的一般多项式

和一个曲线点P。承诺方案涉及找到f(τ)p;这将是承诺。将是一个未知值。因此,实践中的随机性是以未知值评估f(x) 。如何在没有人知道的情况下找到f(τ)p?

解决方案是 Tau 仪式的权力。

离散对数假设

您可能已经看到Aleo的区块链和证明系统经常使用椭圆曲线来运行。出于解释的目的,这些曲线的内部工作原理是无关紧要的,除了下面解释的一个细节。

假设椭圆曲线上有一个点P,可以将点P添加到自身并返回2P。您可以在下面看到如何执行此操作的视觉效果(在P处画一条切线,注意它与曲线相交的另一个位置,然后在x轴上反射)。

将椭圆曲线点加倍

将P添加到2P,得到3P。您可以在下面看到如何添加不同点的视觉效果(在两点之间画一条线,注意这条线与曲线相交的第三个位置,然后反映在x轴上)。

将两个不同的椭圆曲线点P 和 Q 相加得到 R

我们可以不断地将P添加到自身以获得一些k的kP。现在想象有人带着某个点R来找你,他们说它等于27P。您将能够计算27P并检查它是否相等。但关键是,如果您收到R并想找到P乘以得到的结果,那么就没有简单的方法可以做到这一点。本质上,您必须计算2P并进行比较,然后是3P,然后是4P,依此类推。

这称为离散对数假设 (DLA)。从k和P中计算出kP很容易,但从kP中找到k实际上非常困难。

有一种方法可以让这个问题变得更容易。如果k可以介于1到100之间,我们可以将计算简化为在1到10之间找到一些k'的问题(但我们只能将其变小一次,因为我们只能利用一次对称性)。

具体来说,如果n是上限,我们可以将其缩减为n的平方根。因此,如果您看到一些R=kP,其中k介于1和10,000 之间,我们可以将其简化为k'介于 1 和什么之间的问题?

也许您不相信这种随机性方法,而且似乎人们能够计算出k的值。让我们举一个例子来证明那是多么不真实。

在 Aleo,我们使用 BLS12-377 曲线,其中k可以介于 1 和p之间,我们有

p=8444461749428370424248824938781546531375899335154063827935233455917409239041,

这意味着p'约为91893752504881257701523279626832445440,约为 1038。现在想象一下,你可以每秒检查一百万个可能性,106,这非常快。让我们看看检查一半的可能性需要多长时间。

(1038÷2)÷(106)÷(60×60×24×365) ≈1024年。

宇宙仅存在了138亿年(1010),我们开始看到,无论出于何种意图和目的,找到k'变得不可能。


基于DLA的承诺方案

让我们结合以上两种思路,介绍一下Kate(读作Kah-tay)承诺方案。

证明者有一个他们想要提交的多项式f(x)=x²+x+ 1。他们可以创建椭圆曲线点P =(τ²+ τ+1) G。通过上面讨论的 DLA,没有人可以从P中计算出 τ²+ τ+1的值;所以我们有隐藏属性。一旦值P被广播,我们似乎就拥有了绑定属性。这是一个非常优雅的方案,并且此属性进一步用于 Marlin 证明系统(我们的 Universal SNARK)。

有趣的是,我们可以创建这样的场景,证明者将能够创建P =(τ²+ τ+1) G而无需向任何人提供的知识;他们只需要知道G、τG和τ²G是什么。

这一点非常重要,因为如果人们知道,它会破坏我们天真地认为可以保证的绑定属性。我们的推理在哪里滑倒了?

稍后在证明系统中,我们将希望证明者使用f(x)来做某事,并且我们可以通过承诺P检查他们是否真的在使用f(x)。但是,如果证明者知道,他们可以创建另一个多项式g(x)并使用它。只要g(τ) = f(τ),证明仍然有效,这破坏了我们证明系统的安全性。

你看,我们认为通过创建P,我们致力于多项式f(x)。实际上,我们致力于在点处具有特定值的多项式。如果有人知道τ是什么,他们可以自由使用任何他们想要的多项式g(x) ,只要它在 (即g(τ)= f(τ)具有与f(x)相同的值。如果您知道𝜏 是什么 ,那么制作这样一个多项式g(x)实际上真的很容易。

因此,我们需要一个人们不知道但知道τ和τ ² G、τ ³ G等等的场景。这正是 Tau 仪式的力量。

注意:我们上面使用的示例多项式中的最高功率f(x) = x ²+ x +1 是x ²。如果最高功率是x ³⁰,我们需要知道τG 和τ ² G , ...,τ ³⁰ G。实际上,我们预计τ的最高功率将在2.5亿左右,所以这就是设置仪式的内容。


插曲:随机性的类型

就随机性而言,这里有一个有趣的情况。一般情况下,可能会要求一个1到100之间的随机数,得到的答案是50;但是一旦给出答案50,将无法再次使用它,因为它不再是随机的。

但是,请注意实际上是一个特定的数字,它永远不会改变。然而,每次计算出f(τ)G时,实际上都相当于在随机点计算f(x)的值,因为没有人知道。因此产生了随机性,但出于奇怪的原因,仍然可以继续使用它。


多方计算

注意:Aleo从使用τ切换到使用x,因为它是更常见的表示法。

假设有两个人想要为上述的 Kate 承诺方案生成系数。人 1 将随机选择一个x ₁,并广播x ₁ G但不广播x ₁(请记住,由于DLA ,没有人可以从x ₁ G中计算出x ₁)。然后人2 取x ₁ G,并将其添加到自身x 2 次,产生x ₁ x ₂ G并广播。现在每个人都可以看到x ₁ x ₂ G = xG,但唯一的方法是计算出x是如果人 1 或 2 与另一个人分享他们对xᵢ的知识。

如果第 1 个人或第 2 个人是诚实的,他们将在不再需要x ᵢ 时将其删除,从而保证其协议的安全性。

就是这样,这就是仪式的核心思想;如果仪式中的一个人是诚实的,则可以保证安全。每个参与者贡献他们的分片x ᵢ,然后在他们不再需要时将其删除。为了最大化诚实参与者的可能性,我们希望最大化参与者的数量。

为了实现这一目标,Aleo向任何希望参加的人开放了仪式。

仪式上会发生什么?

第 1 个人随机选择一个x ₁,然后广播:

第2个人 选择一个随机的x 2,并广播:

第3个人至 ( n -1):……

第n个人选择一个随机的x ₙ,并广播:

至此,我们完成了,我们将x定义为:

在完成他们的工作后,参与者删除他们的分片xᵢ。假设至少有一个人这样做了,那么每个人都会知道xᶦG的幂,但没有人会知道x(并且由于 DLA无法合理地找到x)。当单个xᵢ被删除时,参与者串通并相互分享他们的xᵢ的可能性变得不可能。


他们会诚实吗?

仔细想想,如果一个破坏者想找到x,参加仪式是没有意义的。假设x将被分成k块。如果一个坏演员参加了仪式,他们将不会学习任何k个必需的密钥(他们将学习他们通过参与创建的额外密钥k+1);那为什么还要打扰呢?

任何增量参与者都更有可能是诚实的,如果让很多人参加仪式,那么他们中没有一个人是诚实的机会很低。


为什么要举行这么多仪式?

不同的证明系统有不同的要求,这取决于它们如何使用核心思想。Marlin 有一个通用的参考弦,这意味着为其生产的 Powers of Tau 可以用于任何内置 Marlin 的电路。相比之下,Groth16对每种类型的电路都需要一个独特的设置仪式,利用这两种证明系统在Aleo的区块链中实现一些不同的属性。

此外,在Aleo使用的 ZEXE 模型中,使用1深度证明递归来获得额外的可扩展性和功能隐私。所有这些都是说Aleo需要建立几个不同的证明系统,其中一些比其他更容易做到。因此,Aleo将设置仪式分为三个部分。

# 感谢阅读#

后续我们将持续更新关于Aleo的文章及动态,对Aleo感兴趣的用户可关注我们的公众号,以便第一时间了解Aleo最新动态,感谢您的阅读与关注!

如果对Aleo有其它疑问,可添加我们的V:AleoChina 进行咨询,感谢您的阅读与关注!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值