今天下午请了半天假去银行办事,气到现在还没消。

事情是这样的:我要开个存款证明,办签证用。本来以为很简单,结果柜员说:“先生,您需要提供近半年的工资流水。”

我说:“我就开个存款证明,证明我有这么多钱在账上就行了吧?为什么要流水?”

她说:“规定。”

我说:“那我只打印工资入账那几行行不行?其他消费记录不想给别人看。”

她说:“不行,系统打出来就是全部。”

我站在那儿,心里一万只羊驼跑过。我就想让签证官知道我账户里有钱,结果柜员要把我每天点外卖、充话费、买咖啡的记录全打出来。这感觉就像你去面试,HR不光要看你学历证书,还要翻你小学作业本。

办完出来,在地铁上刷手机,突然看到Midnight的介绍。看着看着,我靠,这不就是刚才银行那破事的解药吗?

数据不上链,那存在哪儿?

我之前一直没搞懂一个问题:如果Midnight说数据不上链,那数据存哪儿?

今天仔细看了下官方文档,原来是存在本地。就是你自己的手机、电脑、或者你公司的服务器上。区块链上只存一个东西——证明。

打个比方:你有张身份证,原件在自己钱包里。去酒吧,保安要看年龄。你不用把身份证原件给他,只需要让他扫个码,机器显示“已成年——是”。这个“是”就是证明。身份证原件还在你兜里,没离开过你。

Midnight也是这个逻辑。你的交易金额、合约内容、个人信息,都在你自己设备里存着。需要验证的时候,本地生成一个零知识证明,把这个证明提交到链上。网络节点看一眼证明——哦,没问题——然后交易就过了。

整个过程,你的原始数据从来没离开过你的设备。

两种数据,两条轨道

Midnight把数据分成两条轨道跑。

一条叫公开状态,跑的是那些必须让全网知道的信息。比如交易有没有被验证、时间戳对不对、合约代码是什么。这些就像银行给你的回执单,所有人都能看见,也得看见。

另一条叫保护性状态,跑的是加密数据。交易金额、合约内容、你的个人信息,都在这条轨道上,而且是以加密形式存在你的本地。

这两条轨道是同时跑的。就像地铁有快慢线,互不干扰,但共同构成整个系统。

我理解了半天才明白:公开状态保证的是“可验证”,保护性状态保证的是“不泄露”。两者缺一不可。

想给谁看、给看多少,你自己定

Midnight还有个功能叫选择性披露。就是你可以在特定情况下,向特定对象公开特定数据。

比如今天我去银行这事。如果Midnight被用起来,流程应该是这样的:

柜员说:“需要证明您账户余额足够。”

我说:“好的。”

然后我在手机上一按,生成一个“这个人账户余额大于10万”的证明,发给她。她验证一下——哦,是真的。

至于我这10万是工资存的、还是别人转的、还是昨天卖股票赚的,她不知道,也不需要知道。我的消费记录、转账记录,统统不用给她看。

数据还在我自己手机里,只是给她看了一眼局部。

官方把这叫“数据最小化原则”——只披露必要的信息,不多给一个字。

听说已经有人在用了

查资料的时候看到,Midnight已经在跟一些机构合作了。

有个土耳其的医疗公司,管理着300万患者的医疗记录,正在探索用Midnight生成患者病历的证明。什么意思呢?就是比如你去新医院看病,不需要把以前的所有病历都传过去,只需要生成一个“这个病人做过这些检查”的证明。新医院验证一下,就能接着治,但看不到你以前的详细病历。

还有加州的医院在谈跨临床试验的数据共享。临床试验涉及很多敏感信息,但又需要多个机构协作。Midnight这套正好对路——数据不上链,只上证明,既保护隐私又能验证真实性。

(写到这儿手机响了,银行发短信说我的存款证明办好了,可以去取。我心想:是啊,办好了,但我的消费记录也都被打印出来了。算了,不想了。)

今天这事让我想明白一个道理:隐私不是要把所有事都藏起来,而是只让该知道的人知道该知道的事。

我去银行办业务,银行只需要知道我账户里有多少钱,不需要知道我每天几点起床、几点睡觉、买了什么东西。Midnight这套“数据本地存储+证明上链”的设计,正好解决这个问题。

可惜它还没普及。不然今天下午我就不用站在银行柜台前,看着柜员打印我的消费记录了。

@MidnightNetwork #night $NIGHT