这篇文章的作者Balaji S. Srinivasan是Coinbase的前首席技术官,Andreessen Horowitz的董事会合伙人以及CoinDesk顾问委员会的成员。 这篇文章最初发在Consensus杂志上,专门分发给CoinDesk的2019年共识活动的与会者。 有一种开发人员声称区块链只是糟糕的数据库。正如市场故事所述,为什么不只将PostgreSQL用于你的应用程序呢?它成熟、强大、性能卓越。与相关的数据库相比,怀疑论者声称,区块链只是缓慢、笨重和昂贵的数据库,无法扩展。 虽然对这种批评的一些评论已经有了(1,2),我还是要提出了一个简单的反驳:公链对存储共享状态来说是有用的,特别是当该共享状态代表着有价值的数据—-用户想要毫无错误地输出/输入—-就像他们的钱。
数据输出/输入问题 看看Amazon Web Services,Microsoft Azure或Google Cloud的云图,有负载平衡器、转码器、队列和lambda函数的图标。 天南海北的VPC和每种类型的数据库都有图标,包括新的亚马逊管理区块链服务(与公链不同,但在某些情况下可能有用)。
只有帐户之间的共享状态没有图标。也就是说,这些云图表都隐含地假设,单个实体及其员工(即,具有访问云根帐户的实体)是唯一布置体系结构图并读取或写入其所支持的应用程序的实体。更确切地说,这些图表通常假设存在单个经济参与者,即支付云账单的实体。*
但是,如果我们不是仅为一个企业经济参与者提供云图,而是为一百个企业经济参与者提供,那么就会产生一些直接的问题。这些参与者可以互操作吗?他们的用户可以将数据提取出来并将其带入其他应用程序吗?鉴于用户本身就是经济参与者,如果这些数据代表货币价值,那么用户是否可以确信他们的数据在所有这些输出和输入过程中都没有被修改?
当我们把从每个实体的应用程序输出和输入数据作为一级需求时,就会出现这些问题。而且(除了我们将要讨论的例外情况),一般来说,今天这些问题的答案通常都是否定的。
不!—-不同的应用程序通常没有可互操作的软件,或允许其用户以标准形式轻松输出/输入其数据,或让用户确信他们的数据在所有输出和输入过程中未被故意篡改或无意中损坏。
究其原因,是激励问题。对于大多数主流互联网服务而言,根本没有经济激励使用户能够输出他们的数据,更别提使竞争对手能够快速输入这些数据。虽然有人将此称为数据可移植性问题,但我们将其称为“数据输出/输入问题”,以便将注意力集中在输出和输入的特定机制上。
当前的数据输出/输入问题的方法 尽管对于数据输出/输入问题的一般解决方案,尚没有财务激励措施,但在许多重要的特殊情况下,机制已被创建。这些机制包括API,JSON / PDF / CSV输出,MBOX文件和(在银行业务环境中)SFTP。 让我们依次看一下,以便了解当前的事态。
1.APIs。
输出/输入数据的最常用方法之一,是通过应用程序编程接口(Application Programming Interfaces),即API。有些商家会让你获取部分数据,或者让你能够将数据写入你的帐户。但这里存在一个成本。
首先,它们的内部数据格式通常是专有的,而不是行业标准。其次,有时API不是核心业务的核心,会被关闭。第三,有时API是其核心业务的核心,价格会大大提高。
通常,如果你正在读取或写入托管API,那么你将受到API提供商的支配。我们把这个称为平台风险,并且,被毫不客气地“去平台化”已经损害了许多初创企业。
2.JSON。
另一个相关的解决方案是允许用户或脚本下载JSON文件,或者将它们读/写到上述API。当它运行时,这样挺好,但JSON是非常自由的格式,几乎可以描述任何东西。例如,Facebook的Graph API和LinkedIn的REST API处理类似的事情,但会返回非常不同的JSON结果。
3.PDF。
另一个非常局部的解决方案是允许用户输出PDF。这适用于文档,因为PDF是一个开放标准,可以被其他应用程序读取,如Preview,Adobe Acrobat,Google Drive,Dropbox等。但PDF应该是一个供人类阅读用的最终产品。除了PDF浏览器之外,它并不能成为输入给任何应用程序。
4.CSV。
简洁的逗号分隔值文件更接近我们想要的数据输入/输出问题的普遍解决方案。
与专有API的后端不同,CSV是 RFC 4180的标准格式。与几乎可以表示任何内容的JSON不同,CSV通常仅代表一个表格。与PDF不同,CSV通常可以由用户通过电子表格在本地编辑,或者用作本地或云应用程序的机器可读输入。
因为大多数类型的数据都可以在相关数据库中表示,并且,因为通常可以输出相关数据库作为一组可能的庞大CSV,所以,它也非常普遍。
但是,CSV在某些方面仍有不利之处。
首先,与专有API不同,它们不是托管的。也就是说,没有单一的规范场所来读取或写入代表(比方说)交易记录或地图元数据表的CSV。
其次,CSV不具有防篡改功能。如果用户从服务A输出交易记录,修改这些记录,并将其重新上传到服务B,则第二个服务对篡改情况仍然一无所知。
第三,CSV没有内置的完整性检查来防止意外错误。例如,CSV的列没有显式类型信息,这意味着,如果一列中包含了一年对1-12月份,那么可能在输入时其类型就被自动转换为简单整数,从而导致混淆。
5.MBOX。
MBOX格式虽然不如CSV有名,但它被用于表示电子邮件消息集合,是最接近于为主流平台和独立应用程序之间的输入和输出而构建的标准化数据的结构。实际上,有些论文曾建议在电子邮件之外的环境中使用MBOX。
与CSV表示表格数据不同,MBOX表示的是一种日志结构数据。它本质上是按时间顺序排列的单个庞大的电子邮件纯文本文件,也可以通过MIME表示图像/文件附件。
与CSV一样,MBOX文件是开放标准 ,并且可以在本地输出、编辑和重新输入。
和CSV一样,MBOX的缺点是没有规范的主机或内部数据完整性检查。
6.SFTP。
还有一个值得一提的数据输出/输入机制:安全文件传输协议(secure file transfer protocol)或简称SFTP。它实际上是个人与美国自动清算中心ACH之间发送付款的方式。从本质上讲,金融机构是在使用SFTP服务器,以特殊格式的文件接收电子交易数据,并每天将其传输到美联储,以便相互同步ACH借方和贷方。
*唯一的例外是亚马逊和其他云服务提供的所谓“请求者支付”功能。这是一个很酷的功能,允许有人付钱写入你的S3 栏中。但它需要获得许可 - 它仍然需要每个想要的作者开设一个AWS账户,并且栏的所有者必须愿意让他们写入他们的栏中,所以仍然只有一个尊贵的所有者。
未完待续
原作者:Balaji S. Srinivasan 翻译:爱乐牛 原文链接:https://www.coindesk.com/yes-you-may-need-a-blockchain 【区块链中文字幕组】 致力于前沿区块链知识和信息的传播,为中国融入全球区块链世界贡献一份力量。 如果您懂一些技术、懂一些英文,欢迎加入我们,加微信号: w1791520555。点击查看项目GITHUB,及更多的译文… 【译者简介】 我是爱乐牛,欢迎关注我的主页; 微信号hofolht,欢迎交流。
—-
编译者/作者:爱乐牛
玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。
|