← 寓言剧场夜歌王庭
丝网印风的黑雾王庭:高塔剪影沉在雾中,前景开启的木盒里并排两枚指环,一枚绯红一枚湛蓝

夜歌王庭

国王生来失明。异乡人献上两枚指环:一红,一蓝。谁能让一个瞎子相信颜色?

黑雾中的王庭尖塔剪影,高窗漏出苍白的光

在终年黑雾笼罩的"夜歌王庭",统治者阿拉里克国王自出生起便双目失明。他虽然看不见光线,但凭借着敏锐的听觉、触觉以及铁腕手段,将帝国治理得井井有条。

开启的木盒里并排两枚指环,一枚绯红一枚湛蓝

这一天,一位自称来自远方的异域学者米洛求见。米洛呈上了一个精致的木盒,里面并排躺着两枚金属指环。

米洛恭敬地说道:"陛下,这两枚是指环。其中一枚是'晨曦之环',在光线下呈现出如火焰般的绯红;另一枚是'夜幕之环',呈现出如深海般的湛蓝。它们是世间罕见的异色双子。我愿将它们献给陛下,换取通关的黄金。"

精密天平两端各托一枚指环,横梁水平,两环同色无别

国王伸出苍老的手指,仔细抚摸着两枚指环。它们的分量一模一样,表面的花纹分毫不差,甚至连金属的温凉感都毫无二致。国王让宫廷里最优秀的工匠用最精密的秤去称,用放大镜去观察,结果都证明:这两枚指环在材质、重量、结构上完全一致,没有任何物理上的差别。

高背王座上的国王剪影摊掌持环,阶下远处站着异乡学者

国王生性多疑,他冷笑一声:"异邦人,你莫非是在用两枚一模一样的普通铜环来戏弄朕?你说一红一蓝,但我双目失明,我身边的侍卫也可能被你买通。你无法让我看见颜色,也无法把你的眼睛借给我。你如何向一个瞎子证明,它们确实拥有不同的颜色,而你并没有撒谎?"

高背王座分隔画面,座后双手持环,座前学者远远等候

米洛微微一笑,神色自若地回答:"陛下,这很简单。请您将两枚指环拿在手中,放到您的王座背后。您可以选择在背后将它们交换位置,也可以选择保持原样。然后,请您将它们伸出来展示给我看。我会告诉您,您刚才到底有没有交换过它们的位置。"

一排排伸出的手掌托着红蓝双环重复排列,位置交错变化

国王心中暗自盘算:如果这两枚指环真的是一模一样的普通铜环,米洛就只能靠瞎蒙。他猜对"是否交换"的概率只有50%。

国王不信邪。他连续尝试了二十次,有时交换,有时不交换,甚至故意加快速度。然而,无论他如何扰乱顺序,米洛每一次都做出了100%准确的回答

每一轮,谎言的活路减半;而颜色,分毫未渡
每一轮,谎言的活路减半;而颜色,分毫未渡

如果两枚指环是一模一样的,米洛连续二十次全部猜对的概率是二的二十次方分之一(即大约百万分之一)。在严谨的逻辑面前,如此微小的概率等于零。

上下两幅:学者眼中红蓝分明的双环,国王掌中依然无色的双环

国王终于心服口服,重赏了米洛。因为他确信了米洛确实拥有一种能够分辨两枚指环的超凡能力。而最妙的是,在整个验证过程中,国王自己依然不知道红色和蓝色到底是什么感觉,也依然不知道哪一枚具体是红、哪一枚具体是蓝

他在没有获取任何关于"颜色"本身知识的前提下,确认了"指环确实有异色"这一事实的真实性。

这个充满智慧的博弈故事,展示的是现代密码学与区块链隐私技术中最为核心的皇冠级概念——零知识证明(Zero-Knowledge Proof,ZKP),由 S. Goldwasser、S. Micali 与 C. Rackoff 三位科学家于 1985 年首次提出。

它是指:证明者(Prover)能够在不向验证者(Verifier)提供任何实质性有用信息(零知识)的前提下,使验证者确信某个论断是真实的。 传统的验证要求你交出秘密本身——比如输入密码;零知识证明让你证明"我拥有这个秘密的控制权",而对方从头到尾拿不到秘密的任何蛛丝马迹。在区块链上,链下节点把一万笔交易打包成一个极小的"证明"交给主链(ZK-Rollups)——主链只需验证这个证明的真伪,就像国王看米洛猜指环,无需亲自逐一审核每笔交易的隐私细节;医疗 AI 亦然:你可以向它证明"我的病历数据是真实且格式正确的",而无需把病历的敏感内容暴露给 AI 公司。

故事里的每一样东西,都是概念里的一块零件

  • 盲眼国王阿拉里克验证者(Verifier)——无法或不愿直接获取底层敏感数据,但需要对事实的真实性进行审计
  • 异邦学者米洛证明者(Prover)——拥有秘密数据,需要向外界证明其诚实性
  • 一红一蓝的指环要证明的秘密陈述——'我知道这个私钥'、'这笔交易没有双花'
  • 背后交换指环的 20 次测试交互式挑战(Interactive Challenge)——多次概率对折,将欺骗的空间压缩至无穷小
  • 国王依然不懂颜色,也不知哪枚是红无知识泄露(Zero-Knowledge)——验证通过了,核心隐私信息没有发生任何形式的泄露

讲给聪明的十岁孩子

你的朋友声称他知道一个巨大、复杂的地下迷宫的通关路线。但他不想把路线图画给你(因为那是他的商业机密)。他该如何向你证明他没有吹牛,同时又不泄露路线呢?

办法很简单:你在迷宫的入口看着他,让他一个人走进去,从迷宫另一端的出口走出来。只要他成功从出口出来了,你就 100% 相信他确实知道路线。

在这个过程中,他向你证明了他拥有"知道路线"的能力,但你依然对迷宫内部的具体拐弯路线"一无所知"。这就是零知识证明。