Balaji S. Srinivasan是Coinbase的前首席技术官,Andreessen Horowitz的董事会合伙人和CoinDesk顾问委员会的成员。

以下文章最初出现在共识杂志上,专门分发给CoinDesk的共识2019年活动的参与者。


有一种开发人员声称区块链只是糟糕的数据库。正如叙述所述,为什么不将PostgreSQL用于您的应用程序呢?它成熟,强大,性能卓越。与关系数据库相比,怀疑论者声称区块链只是缓慢,笨重和昂贵的数据库,无法扩展。

虽然对这种批评的一些批评已经存在( 1 2 ),但我提出了一个简单的一句话反驳:公共区块链对于存储共享状态很有用,特别是当该共享状态代表用户想要导出/导入而没有错误的有价值数据时- 比如他们的钱。

数据导出/导入问题

查看 Amazon Web Services Microsoft Azure Google Cloud 的云图。有负载平衡器,代码转换器,队列和lambda函数的图标。

在太阳下有VPC和各类数据库的图标,包括新的管理区块链服务(与公共区块链不同,但在某些情况下可能有用)。

帐户之间没有共享状态的图标。也就是说,这些云图都隐含地假设单个实体及其员工(即有权访问云根帐户的实体)是唯一一个列出架构图并阅读或写入的实体。它所支持的应用程序。更确切地说,这些图通常假设存在单个经济行为者,即支付云账单的实体。 *

但是,如果我们一次只为一个企业经济参与者而不是一百个企业经济参与者想象云图,就会产生一些直接的问题。这些演员可以互操作吗?他们的用户可以将数据提取出来并将其带入其他应用程序吗?鉴于用户本身就是经济参与者,如果这些数据代表货币价值,那么用户是否可以确信他们的数据在所有这些出口和进口期间都没有被修改?

当我们考虑从每个实体的应用程序作为一流需求导出和导入数据时,会出现这些问题。而且(我们将会遇到例外情况),一般来说,今天对这些问题的回答通常是否定的。

否- 不同的应用程序通常没有可互操作的软件,或者允许用户以标准形式轻松导出/导入他们的数据,或者让用户确信他们的数据在所有情况下都没有被故意篡改或无意中被破坏出口和进口。

之所以归结为激励机制。对于大多数主要的互联网服务而言,根本没有经济激励使用户能够导出他们的数据,更不用说使竞争对手能够快速导入所述数据。虽然有人将此称为数据可移植性问题,但我们将其称为数据导出/导入问题,以便将注意力集中在导出和导入的特定机制上。

数据导出/导入问题的当前方法

尽管对于数据导出/导入问题的一般解决方案尚未提供财务激励,但已为许多重要的特殊情况创建了机制。这些机制包括API,JSON / PDF / CSV导出,MBOX文件和(在银行业务环境中)SFTP。

让我们依次通过这些来了解当前的事态。

  • 的API。 导出/导入数据的最常用方法之一是通过应用程序编程接口,更好地称为API。有些商家会让您获取部分数据,或者让您能够将数据写入您的帐户。但这是一个成本。首先,它们的内部数据格式通常是专有的,而不是行业标准。其次,有时API不是核心业务的核心,可以关闭。第三,有时API是其核心业务的核心,价格可以大幅提升。通常,如果您正在阅读或写入托管API,那么您将受到API提供商的支配。我们将此平台称为风险,并且毫不客气地解除平台 启动
  • JSON。 另一个相关的解决方案是允许用户或脚本下载JSON文件,或者将它们读/写到上述API。这是好的,但JSON是非常自由的形式,几乎可以描述任何东西。例如,Facebook的图谱API 和LinkedIn的 REST API 处理类似的事情,但返回非常不同的JSON结果。
  • PDF 另一个非常局部的解决方案是允许用户导出PDF。这适用于文档,因为PDF是开放标准,其他应用程序可以读取,例如Preview,Adobe Acrobat,Google Drive,Dropbox等。但PDF应该是人类阅读的最终产品。除了PDF查看器之外,它并不是对任何应用程序的输入。
  • CSV 简洁的逗号分隔值文件更接近我们想要的数据导入/导出问题的一般解决方案。与专有API的后端不同,CSV是由 RFC 4180 描述的标准格式。与几乎可以表示任何内容的JSON不同,CSV通常仅代表一个表。与PDF不同,CSV通常可以由用户通过电子表格在本地编辑,或者用作本地或云应用程序的机器可读输入。因为大多数类型的数据都可以在关系数据库中表示,并且因为关系数据库通常可以导出作为一组可能巨大的CSV,所以它也很通用。但是,CSV在某些方面处于不利地位。首先,与专有API不同,它们不是托管的。也就是说,没有单一的规范场所来读取或写入代表(例如)交易记录或地图元数据表的CSV。其次,CSV不具有防篡改功能。如果用户从服务A导出事务记录,修改它,并将其重新上载到服务B,则第二个服务将更加明智。第三,CSV没有内置的完整性检查来防止意外错误。例如,CSV的列没有显式类型信息,这意味着包含1-12中年份的月份的列可以在导入时将其类型自动转换为简单整数,从而导致混淆
  • MBOX 虽然不如CSV知名,但用于表示电子邮件消息集合的 MBOX格式是最接近于为主要平台和独立应用程序之间的导入和导出而构建的标准化数据结构的东西。实际上,已有论文提出在电子邮件之外的环境中使用MBOX。虽然CSV表示表格数据,但MBOX表示一种日志结构数据。它本质上是按时间顺序排列的单个巨大的电子邮件纯文本文件,但也可以通过MIME表示图像/文件附件。与CSV一样,MBOX文件是开放标准,可以在本地导出,编辑和重新导入。和CSV一样,MBOX的缺点是没有规范主机或内部数据完整性检查。
  • SFTP 在我们继续之前,还有一个值得一提的数据导出/导入机制:安全文件传输协议或SFTP。虽然令人尊敬,但这实际上是个人向对方发送ACH付款的方式。从本质上讲,金融机构使用SFTP服务器在特殊格式的文件中接收电子交易数据,并每天将其传送到美联储,以便相互同步ACH借方和贷方(见此处这里这里,和这里)。

广泛使用这些机制中的每一种。但它们不足以实现在任意经济参与者之间进行防篡改导入和导出有价值数据的一般情况 – 无论是企业实体,个人用户还是无头脚本。为此,我们需要公共区块链。

公共区块链通过激励互操作性来实现共享状态。公共区块链将许多类型的数据导入/导出问题转换为一般的共享状态问题类。他们通过结合上述机制的许多最佳特征来实现这一点。

  • 公共区块链为托管公司API提供了读/写访问的规范方法,但没有相同的平台风险。没有任何一个经济参与者可以关闭或拒绝为像比特币或以太币这样的分散式公共区块链的客户提供服务。
  • 它们还使个人用户能够将关键数据导出到他们的本地计算机或新的应用程序,如JSON / CSV / MBOX(通过发送资金或导出私钥),同时提供数据完整性的加密保证。
  • 它们为任意经济参与者(无论是公司,个人用户还是程序)提供了无缝互操作的手段。从公共区块链中读取的每个经济行为者都会看到相同的结果,任何有足够资金的经济行为者都可以用同样的方式写入公共区块链。不需要设置帐户,也不能阻止任何actor进行读/写访问。
  • 也许最重要的是,公共区块链为互操作性和数据完整性提供了财务激励。

最后一点值得详述。像比特币或以太币这样的公共区块链通常记录货币价值物品的转移。这件事可能是链条的内在加密货币,在链条上发布的令牌,或其他类型的数字资产。

因为与公共区块链相关的数据代表了一些货币价值,它最终为互操作性提供了财务激励。毕竟,任何想要接收(比如说)BTC的网络或移动应用都必须遵守比特币区块链的惯例。实际上,应用程序开发人员别无选择,因为设计的比特币具有单一的,规范的最长工作证明链,并对该链中的每个块进行加密验证。

所以,这是进口的经济激励。

至于出口激励,特别是在金钱方面,用户要求能够以非常快的速度完全保真地出口。这不是他们的老猫照片,他们可能因为不便或技术问题而失去踪迹。这是他们的钱,他们的比特币,他们的加密货币。任何持有它的应用程序必须在它们想要撤销时才能导出它,无论这意味着支持发送功能,提供私钥备份,还是两者兼而有之。如果没有,申请不可能首先收到存款。

因此,这是出口的经济激励。因此,公共区块链经济地激励与其交互的每个经济参与者使用与每个其他参与者相同的导入/导出格式,无论他们是公司,用户还是程序。换句话说,公共区块链是开源之后的下一步,因为它们提供开放数据。任何人都可以通过阅读公共区块链来编写自己的块浏览器,任何人都可以创建自己的钱包,能够写入公共区块链。

这是一个真正的突破。我们现在已经有了一种可靠的方法来激励共享状态的使用,同时允许数百万个人和公司访问同一数据存储(并且成千上万写入),同时执行通用标准并保持高信任度。数据的完整性。

这与现状非常不同。您通常不会在互联网上共享数据库的root密码,因为允许任何人读/写的数据库通常都会被破坏。公共区块链通过加密而不是权限来解决这个问题,大大增加了同时用户的数量。

确实,今天的公共区块链通常专注于货币和金融应用程序,其中底层数据集表示具有不可变记录的仅附加事务历史记录。在解决数据导入/导出问题的所有不同版本方面,这确实限制了它们的一般性。但是,OpenStreetMaps,Wikipedia和Twitter等公共区块链版本以及Filecoin / IPFS等系统正在不断发展。这些不仅仅代表不可变性是一项要求的金融交易记录,而且可以代表经常更新的其他类型的数据(如地图或百科全书条目)。

如果做得对,这些新型的基于公共区块链的系统可以允许任何具有足够资金和/或加密凭证的经济参与者不仅可以读写,还可以编辑自己的记录,同时保持数据完整性。鉴于这种能力,没有理由不能在公共区块链上放置一个SQL层来处理它提供的共享状态,就像一个老式的关系数据库一样。这导致了一种没有特权所有者的新型数据库,全球所有70亿人(及其脚本!)都是授权用户,任何有足够资金的实体都可以写入。

那天还没到。我们仍然可以推动公共连锁的使用案例。扩展挑战比比皆是。但希望很明显,虽然公共区块链确实是一种新型数据库,但它们提供的东西与传统数据库提供的东西截然不同。


*一个例外是亚马逊和其他云服务提供的所谓“请求者支付”功能。这是一个很酷的功能,让有人付钱写入你的S3桶。但是它获得了许可 – 它仍然需要每个想要的作者打开一个AWS账户,并且桶拥有者必须愿意让他们都写入他们的桶,因此仍然只有一个尊贵的所有者。

数据库图像通过Shutterstock

                    

LEAVE A REPLY

Please enter your comment!
Please enter your name here