Alaya隐私计算是什么

Silas
3 min readDec 3, 2020

--

Alaya利用了zk-SNARK技术,也即零知识证明的技术:即使货币的来源与流向信息完全保密,零知识证明技术仍然可以验证花钱的用户确实拥有货币。

  • 公共区块链:Alaya使用公共区块链用于交易的展示,但是它会自动屏蔽掉交易的金额,货币的持有者可以通过查看密钥来观察相关联的信息。

在使用ATP数字货币进行交易时,它会自动加密交易的原数据;同时交易个体并不需要ATP节点来保存数据,只需要zk-SNARK来证明其“消费能力”。这主要体现在交易过程中的两点,一可以让别人在不知道具体交易内容的情况下验证交易(或者是智能合约函数调用)的有效性,二交易的详情也可以在公共区块链上消除掉。

这样交易双方似乎从来没出现,而实际交易已经完成了。作为吃瓜群众只知道有交易发生了,但也无法对货币流向进行跟踪。这样便实现了真正的“匿名交易”。

zk-SNARK中的技术实现

  • 同态隐藏

同态隐藏可以一定程度上实现零知识证明。

举例:

A拥有x和y两个秘密的数字,需要向B证明这两个数字的和是7,只需要执行下面三个步骤:

  1. A计算f(x),f(y),并发送给B;
  2. 因为函数f(x)满足加法同态,B可以通过f(x),f(y)计算f(x+y);
  3. B独立计算f(7),并验证f(x+y)=f(7)。

多项式盲验证

多项式盲验证,即将加法同态的特性利用到多项式中。(此处数学概念比较强,可以只做浅显了解)

假定A知道一个最高d次的多项式P,而B想要知道对应某个s的E(P(s)):

我们希望在验证的过程中,A只知道P,不知道s,B只知道s,不知道P,可以通过下面方式实现:

  1. 对s的每个指数,B计算E(1),E(s),…,E(sd),并发送给A;
  2. A知道多项式的所有系数,可以利用同态特性计算P(s),并回送给B;
  3. KCA(Knowledge of Coefficient Test and Assumption)以及完整的多项式盲验证。
  4. 上面提供的多项式盲验证方式有一个致命的问题,就是B根本没法验证A是真正利用多项式P(s)去计算结果,也就是说无法证明A真正知道这个多项式P(X)。KCA继续完善了上面的验证。
  5. 总之,通过加法同态,我们可以实现加法隐藏,让B在不知道x和y的情况下,校验x+y的值。进一步,通过多项式盲验证,我们可以在不暴露多项式P(X)的情况下,让B校验任意给定s对应的P(s)。
  6. 任意计算转换到多项式证明。
  7. 从多项式推广到任意计算的盲验证。最终我们把原算式的证明转化成为多项式的证明,只要证明多项式,即可验证原算式。
  8. 匹诺曹协议。
  9. 最后一步的验证流程。

--

--

No responses yet