怎样从基本原理解释复制型共享账本的价值
“数字货币”的概念对解释分布式账本的重要性不是必须的。在这个文章中,我提出了一个由基本原理导出的复制型共享账本的论点。这篇文章出发点是作为一个“教育文”,目标是针对那些在金融产业的、喜欢将对新技术的解释扎根于一些现实世界商业存在问题的描述中,而不是作出对一个假想解决方案的描述。因此,在这篇文章中,你找不到任何提到数字货币的地方。因为显然地,你不需要它们也能得出分布式账本技术有前景的结论!
我们从银行系统开始
从思考今天的银行系统开始入手。接下来,我会用一个银行存款和支付的例子。不过同样的逻辑你在都能看到,迟些我会进行证明。
让我们想象世界上有三个银行:银行A,银行B和银行C,以及两个顾客——顾客A和顾客B。每一个银行运营它们各自用来跟踪余额的IT信息系统。这与今天的世界非常接近。
银行A的系统为自己的顾客记录余额,而银行B的系统为自己的顾客记录余额,如此类推(译者注:银行C的系统也为自己的顾客记录余额)。
如果用图形来表示的话,或许会像下面的样子:
在三个银行中为两个顾客维护的余额。
通过观察会马上得出两个结论:
-
首先,看一下银行A和B。银行A的系统记录下它被银行B欠下了100万英镑,银行B的系统同时记录下了它欠银行A的100万英镑债务的事实。所以同样的信息由两个独立开发、维护和运作的系统记录下两次了。如果在其他领域,这样的副本更大、更昂贵,就如我们下面要讨论的一样。
-
其次,看一下顾客A。他被银行A和C欠钱了(译者注:存款到银行就等于银行欠你的钱),而在银行B透支了(译者注:顾客A的500英镑记录是红字,即透支)。用另一种方式来说,银行A和银行C欠了顾客A的钱。谁记录下这些事实?是银行A和C!我们觉得这种事情很平常的,但这确实有点奇怪,因为顾客A必须同时相信银行会有偿还能力和有准确的记录。这感觉是有一种利益冲突的关系。
所以我们有两种很有趣的现象:存款者必须相信它们的银行有偿还能力,并正确记录下各项来往数据。银行自身也得花费很多的时间和金钱去开发一个这样的系统——而且它们花更多的时间和金钱与各银行之间互相检查,以确保它们的系统在共同的事实上达成一致。(译者注:即银行的系统之间要对账)。
即使像我们这么简单的例子,也有7个独立的记录需要去验证。
银行业的“事实”通常由至少两个的不同实体去记录,而且为了确保各方的观点都是一样的,需要有昂贵的对账过程。
并不只是银行存款。证券和衍生品市场有同样的特征
上面的故事是关于银行存款的。不过同样的故事在证券系统和衍生品系统里也存在。确实,在后者的例子里,问题可能更严重:我们不仅应该确保所有人都同意“谁与谁进行了交易”这个事实,我们同时也得确保他们的系统同意由此产生的义务——他们同样需要就商业逻辑达成一致。
想一下,在金融领域里面有多少近乎相似的系统,每一个系统的工作方式有细微差别,从而产生有细微差别的不同结果,这些都得要进行调查和解决。这是一个十分昂贵的费用。
回到银行的例子
不过我们先来关注银行的例子。你可以用我们正在尝试的五个账本去做一些有趣的事情。你可以用不同的方式将将相同的信息存储到一个单一的表格上,而不是将这些信息分不到五个不同的表格上。
左边的五个独立账本可以书写成右边的单一表格的形式,内涵是完全一样的——反过来也是如此。你可以从一个推演出另一个。唯一的不同点是,右边的表格有一个额外的栏目,我们可以用来记录一个债权的发行者和持有者。
换句话说,我们可以有一个单一的表格用于记录所有的事情和达到相同的结果,而不是由每一个银行持有一部分(不完整)的记录。
世界上为何不能有一个单一的银行账本呢?
这带来一个有趣的问题。如果每个银行运行自己的“片面系统”是这么昂贵和复杂的话——而且在某些涉及双方的事情上还要彼此互相检查的话——为什么不直接找人做一个单一的账本,让每个人都承认它的合法性?毕竟,就像我们上面展示的一样,任何银行想这样做的话可以轻易地从这个超级表格里面推导出自己需要的数据,而且能做到非常细致。
当然了,我们必须对如何访问这个账本的过程进行调解——谁允许观察或者更新记录——不过我们知道怎样去实现,而且也不是不可能的。
你疯了吗?!
现在,你可能想说这样的一个东西是疯狂的:想象一下运行这样系统的公司该是多强大。同时,想象一下如果这个系统故障的话对世界会造成多大的影响!或者一个昂贵的、容易出错的但本质上去中心化和健壮的(不容易损坏)的系统是一个值得付的价码。
不过这带来一个有趣的问题:如果有一个方法,能够实现一个全球共享的系统的好处,但不用担心单一的控制者或系统中断的问题,这样的一个重要的基础设施作用会很大。或许我们可以实现这点。
复制型、共享的账本
回忆一下我们在上面的图表里达成的任务:我们创造了一个单一的表格,可以用来描述所有银行的余额,它有内在的共享性——不同的参与者有不同的权限去更新其中的某个部分。
不过上面关于一个全球共享账本的问题有一个担忧,就是怕它会被单一的强大实体去控制,而这个中心化的系统会是一个系统风险。所以,我们能对这个模式进行两个修改吗?
-
首先,为什么不在大范围内复制账本。有很多个复制副本,而不只有一个。或许每个银行都有一个副本。所以就不存在单点故障了。我们应该去担忧这些副本如何保持同步的问题,这并不是一个明显的“胜利”,不过在每一个银行存有副本的话会让与现有基础设施的整合更加简单。或者这同样会增加采用率。
-
其次,为什么不让那些参与系统的人——或者只是银行和顾客——同时负责维护账本和保卫它的安全。毕竟我们知道这个体系里面每一个人是谁,所以他们如果作弊的话我们就知道应该惩罚谁了。因此,我们用每个人都可以为系统安全进行贡献的方式取代了一个单一的强大实体。
如果是这样的话,会是下面的图形描述的情况:
如果一个单一的全球共享账本是不受欢迎的或高风险的,那么将它复制给所有的参与者则能达到最佳的效果。现在的问题就是如何让各个系统的账本自动进行同步,而不是手动进行(毕竟可能带来差错和中断)。
上面的图片看上去很像本文开头的那个图片。不过有一个重要的不同之处。在这个模式里,所有的参与者都有账本的备份,但只能修改与他们自己相关的记录。所以这既是复制型,也是共享的。
这也是为什么我称这更个概念为“复制型、共享的账本”。我想这比“分布式账本”更贴切。
取决于你是否想模仿各方之间的余额、其他资产甚至是协议,有初创企业正在做一个相关的项目。我去年写过一个文章去描述这里面的玩家们——后来还出现了更多。
“智能合约”
增加商业逻辑到这个概念里是值得关注的:被记录的“事实”不再只是谁拥有什么的问题,而是一个在双方之间达成的协议。
这带来了“智能合约”的无限可能:衍生品的对手方认可一个共享的代码段代表他们之间达成并在共享的、复制型账本上执行的协定——这或许会完全消除建造、维护、运营自己的专有衍生品平台和对账的必要性?甚至让代码去监管账本上的资产以自动管理现金流和保证金?
未解决的问题
不过我必须强调这个方案带来了很多技术问题:这并不是一个完全清晰的好主意。例如,我们知道底层的复制型技术真能按照描述那样在一切可能的威胁下如常工作吗?我们怎么确保一个银行(或顾客)不能看到(或者修改)其他人的信息?这个系统能保存多大的数据量?能扩展吗?用代码去管理法律协议真的比用英语(译者注:即用文字)好吗?
结论
银行业的不同领域确实有一些昂贵的复制型系统的例子。共享账本的主意有前景,由参与者进行的复制可以成为降低风险和互相调节的机制。不过这个论点在实际上是否靠谱还有待验证。所以我完全准备好去看到更多的银行在未来的几个月甚至是几年间在这方面进行的实验。,
参考:http://gendal.me/2015/04/27/how-to-explain-the-value-of-replicated-shared-ledgers-from-first-principles/