零知识证明(五)——区块链应用场景上

326 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第17天,点击查看活动详情

有帮助的话请点个赞吧~

零知识证明根据其特点在区块链中实际应用之一。

零知识证明要证明者在不透漏任何额外信息的情况下,向验证者证明某个论断有效(通常是持有某知识这件事)。
针对于定义中的两个关键点,结合区块链场景的需求,会有两个应用场景,今天基于不透漏任何额外信息讲述区块链隐私保护的应用:

隐私信息保护

  • 基于账本的公链里,各个账号的交易信息都被公开记录在链上,虽然这样使得每一笔交易过程都很清晰、可追溯,防止货币双花(两次花费),确认账户余额充足。但是这些内容被记录得过于细致,一旦交易得某一方被攻破,那么该用户的所有交易记录、以及所有与他交易过的人的信息都将全盘泄露。
  • 那么就可以借助零知识证明,在不泄露交易的具体细节的情况下证明该交易有效:
    • 将交易双方以及金额均进行加密;
    • 产生额外的证明,包括余额充足、资产转移过程有效等;
    • 交易双方可以查看密文内容,该内容不公开;
    • 证明公开在链上,所有人都可以进行验证;
    • 在后续文章中会有一个完整的私密交易过程的例子,基于zk-SNARK。
  • 这里还可以引出一个概念——混币,就是把你的钱和别人的混起来,只能证明你往里放了钱,但是哪一笔是你的无法辨别。目前比较新的虚拟货币都是这个思路,这样使得货币完全匿名,且无法查看该货币之前的交易记录,不可追踪溯源。
    • 匿名:混币实现的是真匿名,不是像Bitcoin一样给你一个假名,假名被攻破就直接GG。混币的匿名是每个人有多个“假名”(密钥对),很难把所有的“假名”都和本人关联起来,从而获得所有的交易历史。
    • 不可追溯:让货币不要过分透明化,只作为单纯的等价交换衡量标准。
      • 否则用户都将拒绝“黑钱”,也就是有过不好的交易的货币,因为收了这样的货币可能会被要求检查之前的各种交易历史,来证明不好的交易无关于他,那么这些“黑钱”所具有的实际价值将会变低,最终“黑钱”越来越多,好的货币变少可能使得其价值飞升。此时,货币本身也成为了一种商品,又需要建立新的价值衡量标准。
      • 那么索性就使货币本身的交易记录不可见,只要记录数字而不关联货币就好了。
    • 零知识证明就用来切断货币和交易之间的联系,在不泄露货币的各种信息的情况下,证明这几个货币是我的,你只能看到我有这么大数字的钱,而不知道具体是哪些货币。

参考

[1] 零知识证明介绍 - 知乎 (zhihu.com)


对区块链研究浅显、部分名词描述使用可能不太恰当
欢迎指正与讨论!