公开可验证密文账本场景方案

VCL解决方案优势

公开可验证密文账本(Verifiable Confidential Ledger, VCL)具有以下核心优势:

  • 全密文记账,满足企业级安全和性能要求
  • 账目密文数值之间的算术、逻辑全关系证明
    • A + B = C, A * B = D
    • A > B, A != B

其典型的应用场景如下:

  • 涉及数字化资产流通的场景
    • 支付、清算
  • 涉及多方之间共享账本信息的场景
    • 供应链金融
    • 跨境金融服务

其重要功能和指标如下:

  • 功能特性(以支付类应用为例)
    • 支持任意数据类型的资产或权益类型(数值型和非数值形)
    • 交易者身份和交易金额隐匿
    • 基于零知识证明算法
    • 不依赖可信硬件执行环境
    • 不依赖可信第三方服务
    • 国密算法和监管支持
  • 性能指标
    • 百字节记录大小
    • 微秒级交易处理延时
    • 万级每秒交易并发量

VCL目标场景业务痛点示例 – 支付中的隐私风险

实习生美丽终于毕业啦!来到新城市工作的美丽决定不时去花店买几束花装饰自己的出租屋。

美丽每次都会在楼下花店买玫瑰和桔梗。买了几次之后,每次美丽准备第二天再去采购的时候,就会收到了花店发来的短信:“美丽小姐您好,明早新到一批您喜爱的玫瑰与桔梗,欢迎前来选购”。美丽一边惊喜一边又诧异她怎么知道我的买花习惯,于是去花店的时候和店员聊起这件事。店员自豪地说她们会定期整理花店账本,并对每个顾客的支付记录进行分析,就可以提前“贴心”提醒顾客啦。美丽听完恍然大悟,才知道原来自己日常的买花喜好及行为仿佛已经完全被花店“监控”了。不仅是花店提醒短信,自从买花以来美丽就经常收到花瓶推荐广告、驱虫广告等,美丽心想应该也是花店账目信息出售或泄露导致的吧,心里有种说不上来的滋味,决定利用自己穿越时空的超能力改变这一现状。

美丽之前在花店的支付,泄露了所有支付明细,包括买花类别、数量、消费金额、消费时间等。花店及入侵者通过账本记录,配合大数据分析等手段,分析出了美丽的消费习惯:一般什么时候来买花、喜欢什么花、消费水平等,及由此推测出的其他日常行为,导致了严重的美丽隐私泄露问题。

美丽心想,花店其实只需确定她每次支付完成后,账本记账是正确的就可以了,于是这次美丽选择采用WeDPR-Lab提供的方案进行支付。这次,美丽实现了对自己交易内容的完全隐匿,花店记账时再也无法看到美丽具体的支付细节内容,但又可以验证美丽本次的支付是有效且正确的,也能通过将本次消费与历史账目加和来更新得到最新账目,也就是说在保证美丽隐私的同时又能保证正常的记账规则。而且,由于花店账本也没有记录美丽的消费具体内容,所以即便有黑客等入侵,得到的也只是一堆密文,无法获得任何有用的信息。美丽再也不会担心自己被花店监控而收到花店的“关怀”提醒短信,也不用担心自己的消费信息泄露而被其他服务商“热心”推荐了。

在传统支付方案中,隐私保护需要完全依赖于信任一个第三方平台,譬如上述场景中的花店支付系统,但这个第三方平台的安全性又如何保证呢?公开可验证密文账本VCL方案,完全不依赖支付中间服务商的信任,仅依靠密码学困难性理论,通过密码学承诺、场景化高效零知识证明,在遵循账本记账规则的同时,既能保证账本维护者甚至外部监管机构对账本正确性的验证,又能有效保护用户支付明细的隐私安全。

VCL核心算法组件特性

WeDPR-Lab开源社区版中提供了VCL解决方案的核心算法组件和使用示例,具体包括:

  • 公开可验证密文账本的Demo示例
  • 明文账本数据向密文凭证转换的通用方法
    • 明文账本数据转换为密文凭证
    • 密文状态下证明密文凭证的所有权
  • 密文凭证之间的代数约束关系的零知识证明
    • 密文状态下证明v1 + v2 =? v3
    • 密文状态下证明v1 * v2 =? v3
  • 密文凭证的范围约束关系的零知识证明
    • 密文状态下证明v1 > 0
  • 其他基础工具代码

VCL示例快速体验

完成安装步骤之后,进入示例目录,运行公开可验证密文账本Demo。

cd WeDPR-Lab-Core/solution/verifiable_confidential_ledger
cargo run

cargo run之后按照demo指引,设置中文或英文作为演示语言,按步骤输入即可进行体验。

具体流程描述如下:

  1. 用户对于自己输入的数值金额v1, v2, v3,生成密文凭证c1, c2, c3。
  2. 在密文状态下,用户生成三类金额的数值关系的零知识证明,具体包括:
    • 加法关系证明:v1 + v2 = v3;
    • 乘法关系证明:v1 * v2 = v3;
    • 非负数证明:v1 > 0
  3. 验证以上三类零知识证明的正确性。
  4. 与明文账本对比,体验密文账本数据效验的隐私保护效果。

VCL示例流程图

范围证明:

../_images/prove_range.png