Skip to content

Commit

Permalink
feat(arbitrum): 2024.12.28 learning
Browse files Browse the repository at this point in the history
  • Loading branch information
Yi-fantasy committed Dec 28, 2024
1 parent 4feff19 commit 3c30b56
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions Yi-fantasy.md
Original file line number Diff line number Diff line change
Expand Up @@ -784,4 +784,47 @@ coin mixing实际实施起来比较复杂,如果coin mixing设计的不好,

另外,一般来说,加密货币的交易所也天然的具有coin mixing性质。但是有个前提,这个交易所不会泄露这些提币、存币的记录。

### 2024.12.28

#### 零知识证明

零知识证明,是指一方(证明者)向另一方(验证者)证明一个陈述是正确的,而无需透露除该陈述是正确的之外的任何信息。

例如,在比特币交易中,需要证明自己拥有该公钥对应的私钥,但是又不能将自己的私钥公布出去。证明者可以使用该私钥制作一个签名,验证者可以通过证明者的公钥验证这个签名的合法性。

#### 同态隐藏

零知识证明的数学基础是同态隐藏。

同态隐藏的三个性质:

- 如果 x,y不同,那么它们的加密函数值 E(x) 和 E(y) 也不相同(即不会出现碰撞)。
反过来,如果两个加密函数值E(x) = E(y) ,那么加密前的两个输入值 x = y。

- 给定 E(x) 的值,很难反推出x的值(即不可逆性)。

- 给定 E(x) 和 E(y) 的值,我们可以很容易的计算出某些关于x,y的加密函数值:

- - 同态加法:通过 E(x) 和 E(y) 能够计算出 E(x+y) 的值

- - 同态乘法:通过 E(x) 和 E(y) 能够计算出 E(xy) 的值

- - 扩展列多项式



例如:Alice想要向Bob证明她知道一组数x和y使得 x + y = 7,但是同时又不让Bob知道x和y的具体数值。

操作方式:

- Alice把 E(x) 和 E(y) 的数值发送给Bob(同态隐藏性质2)

- Bob通过收到的 E(x) 和 E(y) 计算出 E(x+y) 的值(同态隐藏的性质3)。

- Bob同时计算 E(7) 的值,如果 E(x+y) = E(7),那么验证通过,否则验证失败(同态隐藏性质1)。



在实际操作中,虽然以上方式没有将x、y透漏给Bob,但是Bob可能通过蛮力方式遍历x、y的数值,和E(x)、E(y)验证,从而获取到x、y的具体值。所以如果想要安全,Alice在将E(x)、E(y)送给Bob前,需要对输入做一些随机化的处理,同时要保证处理过后的 x+y=7。

<!-- Content_END -->

0 comments on commit 3c30b56

Please sign in to comment.