零知识证明(ZKP)允许证明者向验证者证明某个陈述是真实的,而无需泄露证明它的基础秘密或数据。在区块链中,ZKP通过zk-rollups等方法增强了网络的隐私和可扩展性。ZKP的核心原则包括完整性、可靠性和零知识性。ZKP有两种类型:交互式ZKP和非交互式ZKP(NIZK)。
https://www.horizen.io/academy/zero-knowledge-proofs-zkp/
想象一下,你正在咖啡馆里闲逛。你把钱包放在桌子上。
一个朋友过来问:
“嘿,能借我点钱吗?”
如果你信任他们,你会简单地: 拿出你的钱包,
拿一些现金,
递给他们。
完成。
现在想象一下,如果他们抓住你的钱包,开始查看里面的所有东西:
你有多少钱
你的借记卡和信用卡
你的身份证,甚至可能是你的驾照
你所有的个人信息都在你的控制之外暴露了。
但他们只需要一件事:
确认你能给他们一些钱。
暴露你钱包里的所有东西是不必要的,而且无关紧要。
更糟糕的是,你暴露的信息越多,被滥用的风险就越高。
---
什么是零知识证明 (ZKP)?
零知识证明 (Zero-Knowledge Proof, ZKP) 允许一方(证明者)向另一方(验证者)证明某个陈述是真实的,而无需泄露证明它的底层秘密或数据。
---
在区块链中,ZKP 允许在不泄露交易细节的情况下验证交易,通过像 zk-rollups 这样的方法增强了网络的隐私性和可扩展性。
这个过程加速了交易并减少了网络拥堵,而没有牺牲安全性。
简而言之,ZKP 是一种密码学协议,它允许你证明一个声明,而无需泄露其背后的数据——使用安全且高效的数学交互。
---
1. 完备性 (Completeness):
如果该陈述是真实的,并且证明者遵循该协议,那么验证者将被说服其有效性。
2. 可靠性 (Soundness):
如果该陈述是错误的,那么不诚实的证明者无法说服验证者。
3. 零知识 (Zero-Knowledge):
除了该陈述是真实的事实之外,验证者不会获得任何额外的信息。
---
1. 交互式 ZKP (Interactive ZKP)
涉及证明者和验证者之间的来回通信。
由于需要持续交互,因此对于区块链的效率较低。
2. 非交互式 ZKP (Non-Interactive ZKP, NIZK)
使用特殊的算法和随机性(如哈希函数)。
只需要提交一个可以被直接验证的证明。
更适合区块链系统。
---
验证者发送一个挑战。
证明者用一个数学上证明他们知道秘密的答案来回应,
而不泄露秘密到底是什么。
---
在区块链中的用例:
1. 私有交易 (Private Transactions)
ZKP 让用户可以证明交易是有效的,而无需披露其详细信息。
例子:
Zcash 使用 zk-SNARKs 来隐藏发送者、接收者和交易金额。
Aztec 协议(在以太坊上)使用 ZKP 实现私有但可验证的交易。
2. 通过 Rollups 实现可扩展性 (Scalability via Rollups)
ZKP 通过在链下进行计算来减少主网的负载,
并仅向主网提交一个证明。
例子:
zk-Rollups(例如,StarkNet,zkSync)在链下处理数千个交易,
并在链上提交一个 ZK 证明来验证该批次。
3. 可验证计算 (Verifiable Computation)
ZKP 允许用户证明计算已正确完成,而无需泄露输入。
例子:
用于去中心化投票系统,因此选民可以验证他们的投票已被计算在内,
而无需透露他们投票给谁。
- 原文链接: coinsbench.com/zero-know...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!