通俗讲解

通俗讲解 · 第 2 部分,共 7 部分

为什么谁都不必被信任

大多数时候,有人告诉你某件事是真的,你只能选择相信他的话。一个网站说某份文件是在某个日期提交的,你就信这个网站。一家公司说你的发明最先完成了登记,你就信这家公司。可只要你设想一下这个网站关停、或者这家公司改口,问题立刻就暴露了:你所依赖的一切都藏在他们的门后,而现在门关上了。

Label 309 的设计思路恰恰相反。它的两条核心规则,让信任变得多余:任何人都可以发布一份记录,而且验证器从不必信任发布它的人。 标准把这两点称为不依赖签发者(issuer-agnostic)和可独立验证(standalone-verifiable)。

一份处处都在、而非藏于一处的记录

想想一本私人账本是怎么运作的。一家公司保管着这本账。你想知道上面写了什么,就得去问他们,还只能指望他们如实回答、并且一直经营下去。账本只存在一个地方,而这个地方就是单点故障。

公开的区块链恰恰与私人账本相反。设想同一本账被复制到全世界成千上万台彼此独立的计算机上,没有谁说了算,所有节点都在不停地相互核对。要想改动账本上的内容,你就得在所有人都盯着的情况下,悄无声息地同时把成千上万处的同一行字改掉。实际操作中,这做不到。

当一份 Label 309 证明被发布时,它的指纹和记录下来的那一刻,会被写进那本公开的账本,归在元数据标签 309 之下。它们不存放在你用来制作它的那个网站上,也不存放在任何一家公司的服务器上,而是一份记录的组成部分,这份记录由成千上万素不相识的人共同保管、达成共识。标准刻意在记录里完全不设「签发者」字段:既没有什么官方发布者需要信任,也没有谁能被冒名顶替。

自己动手,从头验证

「谁都不必被信任」落到实处是这个意思。假设有人递给你一个交易引用,类似一个回执编号,外加一份文件,说这是有史以来最好吃的派的食谱,标注的日期是好多年前。你不必相信他的话,完全可以靠自己来确认:

  • 自己选一扇看向链上的窗。 Cardano 有许多公开的区块链浏览器,都是开放的工具,任何人都能借助它们读取区块链。用哪一个由你说了算,没人会把你引到那个提出主张的人自己运营的专用站点。
  • 自己去查那张回执。 浏览器会把当时发布的指纹,连同网络对它达成共识的确切时刻,一并展示给你。
  • 拿文件去比对。 用发布者用过的那套简单运算去处理这份文件。如果算出相同的指纹,那么这就是那份记录背后的那一份文件,而且它最迟在那一刻就已存在。

留意一下,你自始至终都不必去问谁:不必问那位厨师,不必问那个网站,不必问任何公司。你用自己选定的工具读了一份公开记录,亲手完成了核查。Label 309 甚至一步步写明了验证器究竟必须核查哪些内容,因此任何人都可以自己造一个验证器,得到同样的答案。

哪怕所有人都消失了

正是这一点,让这个理念经得起时间。设想制作这份记录的人都已不在了:发明者另有去向,公司倒闭了,连你当初用来发布它的那个站点也消失了。这份证明依然成立。

它之所以成立,是因为它从来没有哪个部分藏在某台私有服务器后面。Label 309 不在任何服务器上保留验证器会用到的秘密,因此没有什么东西是一家消失的公司能一并带走的。指纹和它的时间戳都摆在明面上,存在一条不依赖任何当事人是否还在线的链上。只要这条公开的区块链还在,而它由成千上万台没有单一所有者的计算机维系着,那么任何人、在任何地方,就都还能做同样的核查,得到同样的答案。

这也正是为什么用哪个区块链浏览器都无所谓。它们读的都是同一本共享账本。一个诚实的浏览器和一个不诚实的浏览器,只能向你展示同一份记录,因为这份记录不归它们所有,它们改不了。一个心怀不轨的浏览器可以拖延,也可以假装某份记录不存在,但它无法伪造一份记录,因为它手里没有任何人的密钥。要是你谨慎,大可换两个浏览器分别核查,看看结果是否一致。

相信数学,而不是信使

一份 Label 309 证明只要求你信任两样东西:一项你可以自己运行的运算,以及一本没有任何一方能控制的公开 Cardano 账本。发布者、网站、公司,统统只是信使,而你不必信任其中任何一个,照样能核查这条消息。验证器所遵循的精确规则,见规范