
狗狗币价格创下第二低点
SBT 可以更好的帮助用户验证某个属性,但极易泄漏隐私。使用零知识证明技术来保证用户数据的安全可能是一个重要的选择。
在这篇文章中,我们将讨论ZK如何可能成为增加SBT用户数据隐私的关键技术以及如何项目应用零知识灵魂绑定代币。
1.什么是零知识证明
2.ZK 证明如何与 SBT 一起使用?
3.什么是zk-SNARK?
4.ZKSBT 工作原理的解释
4.1.1 生成随机 Lambda
4.1.2 生成证明密钥和验证密钥
4.1.3 证明和验证密钥的共享
4.1.4 证明的生成
4.1.5 用户属性验证
5.高级示例
5.1 链上与链下算法
6.zkSBT 的实现
6.1 电路创建
6.2 设置阶段
6.2.1 密钥生成
6.3 证明生成阶段
6.4 验证程序阶段
6.4.1 项目如何在其 SBT 中使用 Verifier.sol?
6.4.1.1 风险:防止重放攻击
6.5 实现架构
7.ZKSBT(zk-SNARK SBT)与Counter Party Soul的可组合性
7.1 单一方法:SBT 发行人承担责任
7.2 多重方法:每个项目都承担责任
8. 结论
零知识证明允许一方(证明者)向另一方(验证者)证明一个陈述是真实的,而不会透露任何超出陈述本身有效性的信息。
证明者必须让验证者相信他拥有满足某种关系的秘密参数(称为证人)的知识,而不向验证者或其他任何人透露该证人。
项目可以通过使用ZK证明来验证灵魂的属性(例如,它具有某些成员资格)。还可以通过允许用户验证任意的断言,而不需要给出除声明本身之外的任何进一步信息。
例如,在一个政府文件和其他证明可以加密证明的世界里,有人可以证明这样一个声明:"我是新加坡公民,年满18岁,拥有计算机科学的大学学位,还没有在这个系统中申请账户。"
还有其他 ZK 技术;然而,zk-SNARKs 是在 Dark Forest Eth、Tornado cash 和 ZK-Rollups 等应用中使用的最突出的 ZK 技术。
zk-SNARK 是 ZK-proof 技术的一种实现,它代表零知识简洁、非交互式知识论证。
首字母缩略词的各个部分具有以下含义:
简单地说,这基本上意味着证明是一个数据的集合,可以在没有证明者参与的情况下独立验证。
举例来说,SBT 的用户是证明者,向用户发放 SBT 的项目方是验证者。
假设一个项目正在查看用户是否具有某个属性“secret_attribute”。用户必须证明他们有属性 `secret_attribute` 而不会泄露他们的秘密 `s`,它用于将属性 `secret_attribute` 散列到 `hash_attribute`。
通常情况下,用户会通过向项目提供秘密`s`来证明这一点,之后项目可以计算出哈希`hash_attribute`。然而,在zk-SNARK中,用户可以只提交他们拥有属性`secret_attribute`的证明,而不透露他们的秘密`s`。
我们可以用下面的程序C来描述用户的情况。
换句话说:该程序接受一个公共哈希值`hash_attribute`和一个秘密值`secret_attribute`,如果`secret_attribute`的SHA-256哈希值等于`hash_attribute`,则返回true。
使用函数`C(hash_attribute,secret_attribute)`,用户需要创建他们拥有`secret_attribute`的证明,而不需要透露`secret_attribute`。这就是zk-SNARKs解决的一般问题。
为了实现这个证明和验证系统,该项目首先要进行以下操作。
生成 lambda 是证明的第一步。记下生成器的秘密参数 lambda。任何了解此参数的人都可以在不知道秘密“w”的情况下创建评估为真的假证明。
因此,运行生成器需要一种非常安全的方法,以确保没有人在任何地方发现和存储参数。这就是 Zcash 团队在确保参数 lambda 在此过程中被销毁的同时生成证明密钥和验证密钥的极其复杂的仪式的基本原理。
免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。
和全球数字资产投资者交流讨论
扫码加入OKEx社群
industry-frontier