原標題為:《乾貨|三式記賬法(上)》

摘要

帶有數字簽名的收據,作為金融密碼學的一項創新,向傳統的、可疑的複式記賬提出了挑戰。但它們之間更多的不是競爭關係,把兩者結合在一起能創造一個更強壯的系統。將會計的使用擴展到廣泛的數字現金領域,會使交互的三個角色每個都在本地留下三個條目,結果就是我所謂的“三式記賬法”。

這樣的系統為激進的(aggressive)用法和用戶創建了無懈可擊(bullet proof)的會計系統。它不僅通過提供可靠並且是支撐性的會計工作降低了成本,也讓更健壯的治理成為可能,因為它會積極影響未來對公司會計和公共事業會計的需求。

引言

本論文將金融密碼學上的創新(比如帶簽名的收據(Signed Receipt))和標準的會計技術(複式記賬(double entry bookkeeping))結合在了一起。

本文的第一章會提供一些簡要的背景資料來解釋複式記賬的重要性;這一章是為技術人員準備的,專業的會計人員可以跳過這一章。第二章會解釋帶簽名的收據是如何產生的,以及為什麼說它挑戰了複試記賬方法。

第三章會將前兩章的內容整合在一起。 “結論” 一章則試圖預測這項技術對治理(Governance)的廣泛影響。

致謝

本文從Graeme Burnett 和Todd Boyle 的評論 1 中受益良多。

會計學簡史

從今天來看,會計學(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 2。在他的論文中,Pacioli 記錄了許多標準化的技術,其中包括了專論會計的一個章節。在很長一段時間裡,該論文都是複式記賬的基礎文本。

同時,複式記賬也是隨著由威尼斯的商人開創的現代形式企業的興起而興起的。歷史學家們也在辯論,到底複式記賬是新型的合資公司急劇膨脹的會計需求的產物(當時這類企業正圍繞著城市國家如威尼斯的擴張而遍地開花),還是複式記賬賦能了商事的擴張。

經驗使我們傾向於賦能這一方的見解。我以電子貨幣發行者的經驗為例。我們部署的第一個系統是一個單式記賬系統。即使編碼很嚴格,其錯誤率也很高,賬戶還沒超過20 個,會計錯誤就開始潛滋暗長,系統也開始失去凝聚力。這在初步測試的幾週內就發生了,根本就沒能實際派上用場。而替代的複式記賬系統在1996 年上半年推出後,迄今從未丟失過一筆事務(雖然也有相當驚險的時候 3)。

類似地,荷蘭的DigiCash BV 公司也為美國的一家銀行引入了一套初步的電子現金系統。在測試期間,最初設計的單式記賬系統就不得不換成複式記賬系統,原因完全相同—— 錯誤暗生,讓基於數字現金系統的會計工作變得不可靠。

另一個主要電子貨幣系統在單式記賬系統的基礎上存活了很多年。但是,那家公司也知道,這只是僥倖。某個黑客成功找到一個漏洞時,TA 一夜之間就膨脹出了幾百萬美金。這個金額太大,完全超出了當時該銀行的合同價值;攻擊導致銀行的資產負債表出現了誇張的扭曲,包括使之陷入了違反用戶合同、面臨用戶擠兌的風險。幸運的是,那名黑客只是把創造出來的價值存入了一個網絡遊戲的賬戶中,而該遊戲很快就失敗了,所以這些數字也能清零,沒有曝光,也沒有醜聞。

至少在筆者看來,單式記賬無法支撐比家庭更複雜的企業。所以,我主張,複雜企業若要演化出來,就得以復式記賬的出現為前提。

在計算機上快速實現複式記賬

複式記賬一直是計算機會計系統的基石。檢測、釐清和糾正錯誤的能力,對計算機來說比對人類更重要,因為計算機運行時,使用人力干預是很奢侈的;用戶與計算機數據的距離,比會計人員離TA 的賬本上的墨水印的距離要遠得多。

如何實現複式記賬是一個元問題。

計算機科學引入了諸如 事務(transaction)這樣的概念,來表示滿足 原子性、一致性、獨立性和持久性 (簡稱為ACID)的工作單元。對計算機科學家來說,核心的問題是:如何能夠先為資產端加入一條記錄,然後為負債段加入一條記錄,並且不會中途崩潰;或者更糟糕地,在一條事務還沒處理完成之時,就有另一條事務插隊。一台計算機可能要管理幾百萬條記錄,而且即使概率很小也總有可能出錯;再加上,最終出錯時,計算機並不善於處理這種性質的錯誤;想到了這些,你會對這個問題更有感覺。

大多數時候,這些概念都可以簡化為“如何實現複式記賬法”。鑑於這個問題在文獻中已經有完備的回答了,我們在此就不贅述了。

(稍微複雜一點的)帶簽名收據簡史

金融密碼學的最新進展給複式記賬的概念提出了挑戰。數字簽名能夠相當可靠地創建一條記錄,至少能滿足上述的ACID 要求。我們可以依賴一個數字簽名來保證一條記錄的安全,記錄的數據發生任何更改,都會導致對應的簽名無法通過驗證程序。

如果我們可以假設,每一條記錄在一開始創建的時候都是正確,那麼事後我們就可以(靠數字簽名)揭露錯誤,無論錯誤是偶然出錯還是有心欺詐。 (計算機很少會偶然出錯;而且,真的出錯的時候,一般來說也更像打翻墨水瓶(把許多數據搞壞),而不會精確地只改動幾個數字)。如此,對記錄的任何更改,只要有會計或者語言上的含義,都幾乎可以確定是欺詐;數字簽名,就可以做到這樣的效果。

數字簽名和電子現金

數字簽名給了我們一種特定的屬性,那就是證明:

“在特定的時間點,某條信息被簽名計算機看到了,並且打上了標記。”

這一屬性有多種多樣的變形,既有更弱的也有更嚴格的。舉個例子,帶有糾纏(entanglement)的消息摘要(message digests)就構成了一種簡單但有效的簽名形式,而公鑰密碼學使簽名可以有額外的屬性:簽名者持有私鑰,而驗證者只需持有簽名者的公鑰4。也有很多方法來攻擊這種基本屬性。在本文中,我不會詳細比較這些數量,我僅僅假設基本的屬性就是:數字簽名是證明一台計算機在某個時間點看到了某條消息的可靠標記。

數字簽名代表了一種新的創建可靠、可信記錄的辦法,可以用來建構會計系統。一開始,有人提出了一種叫做“盲簽名”(blinded signature) 的變種,來支持電子現金系統 5 (譯者註:就是密碼朋克David Chaum 提出的DigiCash)。後來,有人提出,憑證(certificates)可以像產權或者合約那樣流通,就跟以前的股份憑證的流通方式相同,因此可以替代集中式的會計系統 6。這些想法都以金融密碼學為道路、為橋樑。不過,雖然他們展示瞭如何明確地驗證每一筆事務,他們沒能把數字簽名置於會計和治理的整體框架之中。一個必要的步驟是像複試記賬法所暗示的那樣,加入冗餘,以保護事務的參與者和系統的運營者免疫欺詐。

收據(Receipt)的基本作用

互聯網的特性、密碼學的功能和治理的需要,將我們引向了 帶簽名收據 7 技術的開發。為了講清楚這個概念,我們先假設一個簡單的、三方參與的支付系統,而且每一方都持有一把授權密鑰,可以用來為他們發出的指令生成數字簽名。為方便起見,我們以Alice、Bob 和Ivan 來分別指稱兩個交易者和一個數字化價值的發行者(管理員)。

當Alice 想要給Bob 轉讓由Ivan 管理的一些價值單位或者合約時,她就寫出自己想要的支付指令,並用自己的密鑰生成數字簽名,就跟現實世界裡簽發支票的過程類似。她把支付事務的數據和數字簽名一起發給Ivan 的服務器。假設Ivan 同意了,並在內部的賬本中完成了轉移,然後他就發出一條收據,並用自己的簽名密鑰籤上數字簽名。再然後,(作為這套協議的一個重要部分),Ivan 通過可靠的方式,將這條帶有數字簽名的收據發給Alice 和Bob,然後Alice 和Bob 就可以分別更新自己的內部賬本了。

收據即事務

我們的數字化價值系統(digital value)想要盡可能地消除風險。而實際上,這個要求只是衍生自另一個更高層次的要求:能夠盡可能高效地發行價值(issuance of value)。數字化發行的效率基本上是由支撐成本(support cost)決定的,而支撐成本的一大決定因素又是欺詐和盜竊的成本。

所有以合理的成本實現的高效數字化價值系統,都持續面臨著一種風險,就是 內部的欺詐。在我們這個有很多用戶、但只有一個集中式服務器的模型中,數字化價值單位的發行者(作為合同的簽字人)以及任何治理合夥人(例如服務器的運營者),都有可能製造內部欺詐。過去幾年中出現的時間,比如共同基金的醜聞和“股票門” 事件,就是我們所面臨風險的典型案例。

為了解決內部欺詐的風險,書面的收據一直被當成是主要的證據來源。現在出門買東西的人大多都已經忘記了:在普通的零售買賣中,書面收據的作用不是允許消費者退貨和投訴,而是讓客戶參與一項書面的協議,讓店員老實地保管這些錢。好的顧客會注意到店員的欺詐,並提醒店老闆當心收據上標明的數額。其實收銀機也是同樣的道理,一開始發明的時候,它只是一個盒子,用來將店主的收入和店員的荷包分開。我們想把這種模式複製到數字化的世界中,用帶簽名的收據,將數字化價值的發行者約束在一套與用戶簽訂的治理協議上。

我們還要走得更遠。首先,為了實現完備的約束力,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

翻譯: 阿劍