Echo | 如何理解多副本共享账本的意义

Ajian   |     |   2288 次阅读

编者注:本文为 Richard G. Brown 用账本来解释共享账本意义的文章。中文世界里早已有过中译本,见此处


Echo | 白话资产负债表


想了解分布式账本的重要性,并不需要通过“数字货币”。

在本文中,我会从第一性原理出发,探讨多副本共享账本。我对本文的定位是一份“学习指南”,并非单纯阐述某个所谓的解决方案,而是基于实际的商业问题对新技术展开介绍,尤其适合从事金融行业的人士。因此,在这篇文章中,你不会看到有关数字货币等等的字眼,事实上你并不需要通过这些概念来了解分布式账本技术。

(敬告读者:如需了解文章背景,请阅读本文结尾)

以银行系统为例

让我们从 当代 的银行系统进入话题吧。接下来我以银行存款和支付为例。但稍后我会提到,其他方面也同样如此。假设这个世界只有三家银行和两个客户:银行 A、银行 B 和银行 C,以及客户 A 和客户 B。每家银行都使用它们自己的 IT 系统来追踪账户余额。这就跟现实世界差不多。

因此,银行 A 的系统记录的是银行 A 的客户的余额,银行 B 的系统记录的是银行 B 的客户的余额,以此类推。

如图所示:

1

-三个银行和两个客户的账本-

我们一眼就可以看出以下两点:

  • 首先,观察银行 A 和银行 B。根据银行 A 的系统记录,它对银行 B 享有一百万英镑的债权。同时银行 B 的系统记录也显示了它欠银行 A 一百万英镑的债务。因此,同样的信息被两个独立开发、维护和运作的系统记录了两次。下文我们会提到,在其他领域,这种重复记录涉及的信息量更大,成本也更高。
  • 接下来,让我们观察客户 A。客户 A 是银行 A 以及银行 C 的债权人,同时是银行 B 的债务人。换句话说,银行 A 和银行 C 欠了客户 A 的钱。谁记录了这一信息?银行 A 和银行 C!我们想当然地以为应该如此,然而在这种情况下,客户 A 必须相信银行 A 和银行 C 会好好保管且如实记录这笔债务,这就很反人性了。毕竟,这里面确实存在利益冲突......

因此出现了两个很有意思的现象:存款方必须相信他们的银行会好好保管 同时 如实记录他们的存款。银行则需要花费大量的时间和金钱来开发系统,记录几乎完全相同的信息——然后花更多的时间和金钱和 其余银行 进行核对,以确保所有系统储存的信息一致。

即使是简单如我们所举的例子,也有七对债务债权记录需要核对。

2

-“真实的银行账务信息”通常要由至少两家不同的实体记录,并且需要通过成本高昂的对账流程来确保每一个体的记录都是相同的-

不仅银行存款,证券和金融衍生品市场也是如此

虽然我们是以银行存款系统为例,但证券系统和金融衍生品系统也存在同样的问题。事实上,后面两种情况下呈现出的问题可能更加严重:我们不仅要确保所有人就交易关系的记录达成共识,还要确保各个系统就交易方应履行的义务达成一致——它们还得遵守同一套 商业逻辑

想想在整个金融领域中存在多少像这样大同小异的系统吧,每个系统的工作方式可能有所不同,得出的结果也会略有不同,需要一个一个进行核对和解决。 这样的代价非常高昂。

回到银行系统的案例

让我们现在重新看一下有关银行的案例。

利用上文提到的五个账本,我们可以做一些很有意思的事情。你可以换一种方式将分散在五个账本中的信息重新汇总到一个表格中:

3

-左边五个独立的账本可以被改写为右边的汇总表——反之亦然。两边可以互相推导。唯一的区别是右边的表格多了一列,用以记录资产的发行者和持有者-

换句话说,除了每个银行都拥有自己的一份账单外,我们也可以使用一份独立的表格记录所有账目,从而得出相同的结果。

为什么不创建一个全球共享的银行账本呢?

这是一个有趣的问题。既然每个银行单独运行一套只存储已方账目的系统都非常昂贵和复杂,还要与其他银行系统核对相同的账目信息,为什么不直接花钱开发运行一个所有银行都认可的总账本呢?

毕竟,就像我们刚刚展示的那样,有了这样一个可以记录所有账目的汇总表,任何银行想要根据总表推出自己的账本都是小菜一碟。

当然,我们必须考虑如何分配对总帐本的访问权限——谁有资格查看或更新哪些记录——不过我们已经想好该怎么解决了......这不是什么了不得的难题。

你是疯了吗?!

看到这里,你可能会觉得我的想法太过疯狂:想象一下,得多么强大的公司才能 运行 这样一个系统。如果系统出现故障,会造成怎样的世界灾难!虽然我们现在使用的系统成本高昂而且容易出错,但是为了它的去中心化和强健性(抗脆弱性?),这是值得付出的代价。

然而,一个更加有趣的问题出现了:有没有办法既保留全球共享系统的优点,又避免要控制一个强大的运营机构所引发的政治难题,并且规避这样一个重要的中央基础设施失控的风险呢?

也许我们真能做到这一点...

多副本共享账本

还记得我们根据上图得出的结论吗?我们创建了一个记录 所有 银行账户余额的共享汇总表:不同的参与者拥有不同的权限来更新表格的不同部分。

然而,上文提出的一点担忧是,如果这个共享的全球账本是由某个强大的实体控制,这样一个中心化的系统可能存有系统性风险。那么我们是否可以对这个全球共享账本模型做出两点调整?

  • 首先,为什么不 大量 复制账本?不仅仅是复制一份,而是复制很多份。每家银行都应掌握一份副本。这样就不会出现单点故障的问题。当然,还需要解决的一个问题是:如何让这些副本保持同步;大量复制账本并不能保证百分百“无故障”,不过每个银行拥有一个副本能够使银行现有基础设施的集成变得更加简单。这也有助于降低采用的难度。
  • 其次,为什么不让系统参与者——可以仅对银行开放,也可以面向客户开放——也共同承担维护和保护系统的责任?毕竟,我们知道系统中其他参与者的身份,如果发现有人作弊,我们也知道谁应受到惩罚。因此,我们需要的不是一个强大的实体,而是一个 人人 都致力于维护系统安全性的模型。

经过调整之后,会出现下图所示的情景:

4

如果只有一个全球共享账本的模型并不理想或存在风险,那就将其复制给所有可以充分利用其全球化和可分享性质的参与者。现在的问题是,如何实现系统自动同步,不再需要手动调整并处理分歧。

上图是不是很像文章开头的图片。但是,需要注意的是,二者有一个很大的区别。在这一模型中,所有参与者都拥有总帐本的副本,不过仅有权修改与自身相关的账目。因此,这个模型兼具 可复制性共享

这就是为什么我把这一概念称为 “多副本共享账本” 的原因。我认为这一说法比起“分布式账本”之类的名称更加具有辨识度。

而根据不同的需求,可以为余额、其他资产甚至是多方协议创建模型,已经有许多创业公司正在研究这类项目。我去年写了一篇文章,分析了不同参与者的情况——那之后又出现了更多参与者。

“智能合约”

在多副本共享账本中引入 商业逻辑 这一观点是值得探讨的:被记录的 “信息” 可以不仅仅是个人的资产持有情况,还可以包括各方之间的协议。

这新增了一种有趣的可能性:在进行金融衍生品交易的过程中,交易双方同意以一段共享的代码来代表他们彼此之间达成的协议,并且在多副本共享账本上执行这段代码——也许可以完全免去各参与方单独建立、维护、运营和协调衍生品平台的需求? 甚至可能通过代码将资产托管在账本上,自动管理现金流和利润率?

突出问题

不过我还要强调一点,这种方法还有许多技术问题尚待解决:这不是一个完美无缺的设想。例如,底层的复制技术是否会按上述那样实现?是否考虑到了所有可能的风险场景? 我们怎样才能确定一家银行(或客户)无法看到(或修改......)其他银行(或客户)的信息?这样一个系统能够容纳多少数据?它能扩容吗?用代码协议代替纸质协议 真的 是个好主意吗?!

总结

银行系统的各个领域都存在很多系统冗余的情况,因而造成了巨额成本。共享 账本的概念很有前景,而允许参与者持有 副本 的机制可以降低风险并增强互操作性。但是,这个想法是否能投入实际应用仍需要进行测试。因此,我非常希望在未来几个月和几年内看到越来越多的银行和其他参与者对此进行实验。

致谢:非常感谢 Lee Braine 对本文论点的补充及评论。

敬告读者

为了避免产生误解,本文没有涉及比特币——我随后会另外发表一篇文章,基于比特币的设计来实现一些似乎合理的现实要求,我将这篇文章所涉及的领域称为非“比特币”领域,正如这篇文章中定义的那样。)


原文链接: https://gendal.me/2015/04/27/how-to-explain-the-value-of-replicated-shared-ledgers-from-first-principles/
作者: Richard Gendal Brown
翻译&校对: 周瑾 & 闵敏


你可能还会喜欢:

干货 | 区块链经济学:制度加密经济学入门指南
干货 | 关于 UTXO 的思考
观点 | 关于通胀,交易手续费和加密货币的货币政策

 
0 人喜欢