2

干货 | 三式记账法(上)

 3 years ago
source link: https://ethfans.org/posts/triple-entry-accounting
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

摘要

带有数字签名的收据,作为金融密码学的一项创新,向传统的、可疑的复式记账提出了挑战。但它们之间更多的不是竞争关系,把两者结合在一起能创造一个更强壮的系统。将会计的使用扩展到广泛的数字现金领域,会使交互的三个角色每个都在本地留下三个条目,结果就是我所谓的 三式记账法

这样的系统为激进的(aggressive)用法和用户创建了无懈可击(bullet proof)的会计系统。它不仅通过提供可靠并且是支撑性的会计工作降低了成本,也让更健壮的治理成为可能,因为它会积极影响未来对公司会计和公共事业会计的需求。

引言

本论文将金融密码学上的创新(比如带签名的收据(Signed Receipt))和标准的会计技术(复式记账(double entry bookkeeping))结合在了一起。

本文的第一章会提供一些简要的背景资料来解释复式记账的重要性;这一章是为技术人员准备的,专业的会计人员可以跳过这一章。第二章会解释带签名的收据是如何产生的,以及为什么说它挑战了复试记账方法。

第三章会将前两章的内容整合在一起。“结论” 一章则试图预测这项技术对治理(Governance)的广泛影响。

致谢

本文从 Graeme Burnett 和 Todd Boyle 的评论中受益良多。

会计学简史

从今天来看,会计学(accounting),或者说会计工作(accountancy)可以追溯到文字的起源;现今发现最早的文字,被解释成记录动物和留存食物数量的简单列表。大约 5000 年前,生活在美索不达米亚地区(Mesopotamia)的苏美尔人(Sumerians),使用楔形文字(Cuneiform)或者楔形的标记形成了 60 进制的数学(有些概念如分、秒、平方和角度,我们至今仍在使用)。而之所以要有数学和书写记录,很可能是因为在早期社会中,他们需要记录基本的资产数量和食物数量,而且需要加减数字。

单式记账

单式簿记法,是我们每个人自己记账会用的方法:做一张表格,用一个一个的条目来记录各种资产。再高级一点的技巧,就是分别制作许多不同的列表。每一个列表或者说 “账簿”,都代表一个类目(一种东西),而每一个条目都会记录一个日期,加减的数量,可能还会加一些备注。要转移资产的时候,你就要从一个列表中划掉它,然后写到另一个列表中。

单式记账非常简单,但也很容易出错。最糟糕的问题是,错误可能是偶然出现的,因此很难找出并修正;也有可能是有意为之。因为每一个条目都是独立的,每一个列表之间都没有关联,所以根本没有办法阻止一个恶意的雇员在某个列表上增加条目;即使被发现了,也很难证明这到底是无心之失,还是别有用心。

基于单式簿记的会计也大大限制了簿记人员的范围。比如,某些时代,只有企业所有者的家人,或者其奴隶,才被信任可以保管账簿,由此导致了对家庭和奴隶制作为企业形态的支撑性影响。

译者注:单式记账的例子是你日常给自己记的流水账:

  • 12 月 29 日,- 100,买菜;
  • 12 月 30 日,+ 500,收到货款

复式记账

复式簿记法 为会计系统加入了一个重要的属性:能够用明确的策略来定位错误及消除错误。更棒的是(它有一个副作用),对无论是 意外 还是 欺诈 ,复式记账都有明显的防火墙作用。

这种属性是由复式记账在技术上的三个特征塑造出来的:(1)将所有的账簿都分成两栏(或者说两组),分别称为 “资产” 和 “负债”;(2)重复的 双条目 记账所带来的冗余:每一栏的每一条记录,都在另一栏有一条对应的记录;(3) 资产负债表等式 ,即资产栏所有条目的总和必定等于负债栏所有条目的总和。

因此,一条正确的记录必定会有对应的账本,而其对应账本的条目必定存在于另一栏中。簿记人员可能出于恶意而加入一条错误的记录,但该记录必须指出其对应的账簿,否则,作为一条不完整的条目就大可删去。如果它确实指出了对应的账簿,那就很容易确认,或者检查之后基于正确的含义重新创建一条正确的条目,也就终止了反复跳转的循环。

以前,单式记账的账本中,作弊者只需选择一列,把自己想要的数量加入其中。但是在复式记账的账本中,所有的数目都必须有来源;如果一个数字是无中生有的,那就可以当作意外的错误,直接删去;而如果它有具体的来源,那就可以定位出这个出处了。这样一来,作弊也会留下线索,而对照另一本账本就能揭示其中的因果,因为,那本账本中的价值也必定是从某个地方来的。

这些思辨引申出了一种审计策略。首先,保证所有条目都是完整的,即都有对应的条目;其次,保证所有的价值转移都是准确的。这个简单的策略会产生一份事务的记录,使得会计的工作得以进行,而且无法轻易在账本中藏匿错误。

译者注:在现代,我们用下述的记录来运行复式记账:

12 月 31 日,借:零件,100;贷:库存现金,100;(花费 100 元买入零件)

但作者在上文中的意思可能基于一种形式上不同但实质类似的方法:创建两个账本,一个记录现金,一个记录零件(的价值),(每次交易都)在两个账本中分别留下一条记录,因此,一个条文必定指向另一个账本,所有的数目都必定有来源。

复式记账和企业,到底哪个先出现?

复式记账是商业领域最为重大的发现之一,其重要性说之不尽。历史学家认为,复式记账大概是在公元 1300 年发明的,虽然有人认为早在希腊帝国时期就存在某种形式的复式记账。当前发现最强有力的证据是一份 1494 年的数学论文,作者是威尼斯的教士 Luca Pacioli 。在他的论文中,Pacioli 记录了许多标准化的技术,其中包括了专论会计的一个章节。在很长一段时间里,该论文都是复式记账的基础文本。

同时,复式记账也是随着由威尼斯的商人开创的现代形式企业的兴起而兴起的。历史学家们也在辩论,到底复式记账是新型的合资公司急剧膨胀的会计需求的产物(当时这类企业正围绕着城市国家如威尼斯的扩张而遍地开花),还是复式记账赋能了商事的扩张。

经验使我们倾向于赋能这一方的见解。我以电子货币发行者的经验为例。我们部署的第一个系统是一个单式记账系统。即使编码很严格,其错误率也很高,账户还没超过 20 个,会计错误就开始潜滋暗长,系统也开始失去凝聚力。这在初步测试的几周内就发生了,根本就没能实际派上用场。而替代的复式记账系统在 1996 年上半年推出后,迄今从未丢失过一笔事务(虽然也有相当惊险的时候)。

类似地,荷兰的 DigiCash BV 公司也为美国的一家银行引入了一套初步的电子现金系统。在测试期间,最初设计的单式记账系统就不得不换成复式记账系统,原因完全相同 —— 错误暗生,让基于数字现金系统的会计工作变得不可靠。

另一个主要电子货币系统在单式记账系统的基础上存活了很多年。但是,那家公司也知道,这只是侥幸。某个黑客成功找到一个漏洞时,TA 一夜之间就膨胀出了几百万美金。这个金额太大,完全超出了当时该银行的合同价值;攻击导致银行的资产负债表出现了夸张的扭曲,包括使之陷入了违反用户合同、面临用户挤兑的风险。幸运的是,那名黑客只是把创造出来的价值存入了一个网络游戏的账户中,而该游戏很快就失败了,所以这些数字也能清零,没有曝光,也没有丑闻。

至少在笔者看来,单式记账无法支撑比家庭更复杂的企业。所以,我主张,复杂企业若要演化出来,就得以复式记账的出现为前提。

在计算机上快速实现复式记账

复式记账一直是计算机会计系统的基石。检测、厘清和纠正错误的能力,对计算机来说比对人类更重要,因为计算机运行时,使用人力干预是很奢侈的;用户与计算机数据的距离,比会计人员离 TA 的账本上的墨水印的距离要远得多。

如何实现复式记账是一个元问题。

计算机科学引入了诸如 事务 (transaction)这样的概念,来表示满足 原子性、一致性、独立性和持久性 (简称为 ACID)的工作单元。对计算机科学家来说,核心的问题是:如何能够先为资产端加入一条记录,然后为负债段加入一条记录,并且不会中途崩溃;或者更糟糕地,在一条事务还没处理完成之时,就有另一条事务插队。一台计算机可能要管理几百万条记录,而且即使概率很小也总有可能出错;再加上,最终出错时,计算机并不善于处理这种性质的错误;想到了这些,你会对这个问题更有感觉。

大多数时候,这些概念都可以简化为 “如何实现复式记账法”。鉴于这个问题在文献中已经有完备的回答了,我们在此就不赘述了。

(稍微复杂一点的)带签名收据简史

金融密码学的最新进展给复式记账的概念提出了挑战。数字签名能够相当可靠地创建一条记录,至少能满足上述的 ACID 要求。我们可以依赖一个数字签名来保证一条记录的安全,记录的数据发生任何更改,都会导致对应的签名无法通过验证程序。

如果我们可以假设,每一条记录在一开始创建的时候都是正确,那么事后我们就可以(靠数字签名)揭露错误,无论错误是偶然出错还是有心欺诈。(计算机很少会偶然出错;而且,真的出错的时候,一般来说也更像打翻墨水瓶(把许多数据搞坏),而不会精确地只改动几个数字)。如此,对记录的任何更改,只要有会计或者语言上的含义,都几乎可以确定是欺诈;数字签名,就可以做到这样的效果。

数字签名和电子现金

数字签名给了我们一种特定的属性,那就是证明:

“在特定的时间点,某条信息被签名计算机看到了,并且打上了标记。”

这一属性有多种多样的变形,既有更弱的也有更严格的。举个例子,带有 纠缠 (entanglement)的 消息摘要 (message digests)就构成了一种简单但有效的签名形式,而 公钥密码学 使签名可以有额外的属性:签名者持有私钥,而验证者只需持有签名者的公钥。也有很多方法来攻击这种基本属性。在本文中,我不会详细比较这些数量,我仅仅假设基本的属性就是:数字签名是证明一台计算机在某个时间点看到了某条消息的可靠标记。

数字签名代表了一种新的创建可靠、可信记录的办法,可以用来建构会计系统。一开始,有人提出了一种叫做 “盲签名”(blinded signature) 的变种,来支持电子现金系统(译者注:就是密码朋克 David Chaum 提出的 DigiCash)。后来,有人提出, 凭证 (certificates)可以像产权或者合约那样流通,就跟以前的股份凭证的流通方式相同,因此可以替代集中式的会计系统。这些想法都以金融密码学为道路、为桥梁。不过,虽然他们展示了如何明确地验证每一笔事务,他们没能把数字签名置于会计和治理的整体框架之中。一个必要的步骤是像复试记账法所暗示的那样,加入冗余,以保护事务的参与者和系统的运营者免疫欺诈。

收据(Receipt)的基本作用

互联网的特性、密码学的功能和治理的需要,将我们引向了 带签名收据 技术的开发。为了讲清楚这个概念,我们先假设一个简单的、三方参与的支付系统,而且每一方都持有一把授权密钥,可以用来为他们发出的指令生成数字签名。为方便起见,我们以 Alice、Bob 和 Ivan 来分别指称两个交易者和一个数字化价值的发行者(管理员)。

2YrIrmu.png!mobile

当 Alice 想要给 Bob 转让由 Ivan 管理的一些价值单位或者合约时,她就写出自己想要的支付指令,并用自己的密钥生成数字签名,就跟现实世界里签发支票的过程类似。她把支付事务的数据和数字签名一起发给 Ivan 的服务器。假设 Ivan 同意了,并在内部的账本中完成了转移,然后他就发出一条收据,并用自己的签名密钥签上数字签名。再然后,(作为这套协议的一个重要部分),Ivan 通过可靠的方式,将这条带有数字签名的收据发给 Alice 和 Bob,然后 Alice 和 Bob 就可以分别更新自己的内部账本了。

收据即事务

我们的数字化价值系统(digital value)想要尽可能地消除风险。而实际上,这个要求只是衍生自另一个更高层次的要求:能够尽可能高效地发行价值(issuance of value)。数字化发行的效率基本上是由支撑成本(support cost)决定的,而支撑成本的一大决定因素又是欺诈和盗窃的成本。

所有以合理的成本实现的高效数字化价值系统,都持续面临着一种风险,就是 内部的欺诈 。在我们这个有很多用户、但只有一个集中式服务器的模型中,数字化价值单位的发行者(作为合同的签字人)以及任何治理合伙人(例如服务器的运营者),都有可能制造内部欺诈。过去几年中出现的时间,比如共同基金的丑闻和 “股票门” 事件,就是我们所面临风险的典型案例。

Z3YrUzm.png!mobile

为了解决内部欺诈的风险,书面的收据一直被当成是主要的证据来源。现在出门买东西的人大多都已经忘记了:在普通的零售买卖中,书面收据的作用不是允许消费者退货和投诉,而是让客户参与一项书面的协议,让店员老实地保管这些钱。好的顾客会注意到店员的欺诈,并提醒店老板当心收据上标明的数额。其实收银机也是同样的道理,一开始发明的时候,它只是一个盒子,用来将店主的收入和店员的荷包分开。我们想把这种模式复制到数字化的世界中,用带签名的收据,将数字化价值的发行者约束在一套与用户签订的治理协议上。

我们还要走得更远。首先,为了实现完备的约束力,Alice 的初始授权也要包含在记录中。因此收据将包含所有的证据,即包括用户的意图,也包括服务者的响应行动;因此,它能成为这个事件的 决定性记录 (dominating record)。这也意味着,最高效的记录保存策略就是丢掉所有的史前记录,仅仅保证带签名收据的安全。

这种支配既影响发行者,也影响用户,使我们能实现下述原则:

用户与发行者所掌握的信息是同样多的

因为发行者把带签名的收据发回给了两个用户,所以,对每一个事件,所有三方都拥有同样的决定性记录。因为大量减少了由信息差导致的问题,支撑成本也大大降低。

其次,我们在该收据中绑定了一个签过名的发行合约,称为 “ 李嘉图式合约 ”。这一发明是通过 “ 消息摘要 ” 这种独一无二的凭证,将签过名的文档与签过名的收据安全地关联起来(又是通过密码学来实现的)。它为记账的单位、发行物的性质、发行人所作的条款、条件和承诺,以及发行者的身份,都强有力地绑定在一起。

最终,有了这些步骤,我们可以实现又一条原则:

收据即是事务

在带签名的收据所组成的完整记录中,用户的意图得到了表达,也得到了服务器响应的完全确认。所有这些都由数字签名来保证数据的完整、无篡改。所以,像审计员这样的观察者可以比对两组数据并验证签名。

(未完)

脚注

注 1:本论文的一份初稿将 Todd Boyle 也列为作者之一,但后来他请求撤销署名,因为我们有许多意见不同。

注 2:Friar Luca Pacioli, Summa de Arithmetica, Geometria, Proportioni et Proportionalita 1494, Venice

注 3:Ian Grigg " The Twilight Zone ", Financial Cryptography blog 16th April 200。

注 4:“纠缠”的概念可见于:Petros Maniatis and Mary Baker, "Secure History Preservation through Timeline Entanglement," Proc. 11th USENIX Security Symposium, August 2002。

注 5:David Chaum, "Achieving Electronic Privacy," Scientific American, v. 267, n. 2 Aug 1992。

注 6:Robert A. Hettinga " The Book-Entry/Certificate Distinction " 1995, Cypherpunks。

注 7:Gary Howland " Development of an Open and Flexible Payment System " 1996, Amsterdam, NL.。

原文链接: https://nakamotoinstitute.org/triple-entry-accounting/

作者:Ian Grigg

翻译:阿剑


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK