与比特币形成鲜明对比的是:传统银行业如何在技术上防止双重支出?数据库事务必须符合ACID属性才能防止双重支出吗?
发布于 2022-11-29 17:58:40
有两种可能的方式:
这是一个集中一致的数据库。与比特币非常相似,尽管比特币设法以分布式方式创建了一个一致的数据库。
发布于 2022-11-29 19:15:58
传统银行业务以传统会计为基础,所有日记账分录至少有两个账户,借方和贷方必须平衡到零。
检查一致性的最基本方法是不断检查系统的余额,通常是一个工作日一次。因为平衡每天都在进行,所以调查错误的范围通常不会比当天的事务更大。
还定期进行外部和解。例如,计算现金,并确保手头的实物金额与会计系统规定的金额相匹配。
计算机最早的一些商业应用是在银行业。我相信这始于60年代初,甚至早于关系数据库理论(EF Codd,1970)。
但是,只要计算机本身工作正常,并且在关系数据库之前就有数据库技术,就不难设计出正确执行会计工作的算法。
在计算机错误方面,银行最初制作和保存纸面记录的时间尽可能长,以涵盖计算机所做的任何处理。这也是为何直至最近为止,在银行进行的大部分交易,都是由一张纸条所涵盖的,而有关的详细资料则输入电脑终端机,并保留在抽屉内,直至该日完结为止。
如果计算机出现故障,如果在恢复正确操作时不平衡,银行工作人员将核实从上一次系统正确平衡(可能是前一个工作日的晚上)开始的所有情况,以及此后的主要纸面记录。
在遥远的过去,计算机通常不会保留一个长期的帐户历史。旧记录不再与处理有关,要么定期打印出来,要么用缩微胶片拍照存档。当然,除了向客户发送一份书面声明外,如果不及时查询其内容,一旦银行清除了旧记录,就会永远具有约束力。
值得一提的是,过去大多数银行的主要数据处理站点都是分行。每个分支机构最初都会有大量的工作人员,后来会有自己的计算机,这样就可以或多或少地自主地为当地社区服务。只有汇总数字集中报告。
这就是为什么“银行经理”最初是一个具有相当大信任和地位的职位,因为虽然他们不太可能逃脱像账簿不平衡这样根本的事情,但他们在大多数问题上拥有相当大的自由和最终权力(包括监督保险箱内的实际现金,与账簿上所说的相符,以及记录的差额在可接受的范围内!)
我不知道传统上,取款是如何在一个不同的分支机构处理的,而那个分支机构的账户是保存着的。可能是由一位银行经理给另一位银行经理打电话,每一位都在电话结束前做必要的账户记录。
总之,您可以看到,对于核心银行业务,一致性的主要保证是会计本身的标准方法,而不是任何特定的计算机技术。
https://softwareengineering.stackexchange.com/questions/442535
复制相似问题