怎么证明你拥有秘密,却又不会泄漏秘密这就是区块链最近热门的零知识证明(ZKP)技术,在隐私极受重视的今日,更被利用到传统金融。

近期在区块链世界很红的议题,就是Zero-Knowledge Proof(ZKP),媒体通常直翻为零知识证明,但我认为更好的翻译是零泄密证明。

ZKP的发展是为了在区块链分散式帐本结构上,创造一种解决方案,能同时达到交易保密与交易验证的目的。

在现行主流的比特币、以太坊等公链上,从盘古开天以来,每个帐号对帐号的交易都被公开记录。换言之,只要我跟你交易一次,知道了你的帐号,就能查到该帐号中所有交易资料,甚至还可以反推所有你可能控制的帐号,其实​​相当缺乏隐私。

为何要把所有交易资料都记录并公开主要是让任何交易的接受方都可溯源验证,确认现在收到的加密币没有一币二用,也就是所谓双花(double spending),同个帐号里同一颗币被使用两次的问题。

要让交易可被验证,却不泄漏交易细节,传统上很简单,每家银行都可以为客户提供背书保证,但来到区块链的分散世界,必须发展出一套没有中间人也可以进行的体系。

这就是引入ZKP的目的,让公链上任何一位矿工,都能在无法得知交易内容的前提下验证交易。听起来很玄,其实没那么复杂,简单说就是在不泄漏资讯内容下,总结它的特色。

举一个容易解释的例子,假设我需要在不泄漏答案的前提下,对你验证一个数独盘面符​​合游戏规则,那么你可以要我把18排的数字都打乱后分别给你看,应该每排都有从1到9的9个数字,如此,你可以相信这个盘面符合规则,却无法得知盘面上真实的数字排列。

在区块链的世界也能这么做,让矿工可以随时验证每笔交易的特征,却不会因此泄漏内容,也就同时达到验证与保密的目的。

有趣的是,在个资保护日益受到重视的今日,落实于区块链的ZKP也回到传统金融。近期荷兰ING集团就宣布采用「零泄密范围证明」,让到ING申请房贷的客户能证明自己的收入落在某区间,却不需要向ING泄漏确切数字。

换言之,区块链生态发展虽然还在早期,但由于吸引了许多有智者与有志者,已经开始对人类社会带来非常有意义的贡献。