区块链技术的应用场景
区块链虽然是革命性的技术,但是经过以前的文章的介绍,相信大部分读者都知道区块链不是万能的,其实很多企业应用上完全不需要的利用的到区块链技术,区块链技术有其自身的特点,今天为大家介绍区块链适合的几个应用场景。
1敏感核心数据记录场景
区块链不同于传统数据库,大部分性能设计弱于传统数据库。所以你一开始就需要知道什么地方用数据库,什么地方用区块链,数据库适合记录一种结构性的信息,可以是传统的关系型数据库,包括一个或几个表格一样的数据库表。或者可以是最近流行的NoSQL,更像文件系统或者字典。(理论上讲,NoSQL是关系型数据库的子集)
而敏感的核心数据,重要的汇总数据,日志验证数据可以有选择的使用区块链,比如金融资产的总账可以被用于作为区块链技术进行记录,当进行平账处理时,总账由于采用区块链技术进行记录具有较高的权威性,在系统性能和鲁棒性上取得平衡
2多个输入者场景
这个比较简单。区块链是一个支持多个输入者的技术。换句话说,必须有多于一个实体来产生更改数据的场景。同时你可能不知道这些输入者真实情况
3信任的缺失环境
如果多于一个实体的数据输入,那么在这些实体间需要某种程度的不信任。换句话讲,区块链是一个基于数据输入和多个不信任的输入者的场景。
对于不信任的定义是什么呢,指的是一个用户不愿意别人修改自己“拥有”的数据。类似的,当读取数据的内容时,一个用户不会直接接受另一个用户报告的数据,因为每个用户有自己的经济或政治的动机。
4去中介场景
所以这个问题,像之前定义的,是使一个数据和多个不信任的输入者成为可能。已经有一个众所周知的解决方案:一个广受信任的中间人(例如银行和支付宝、各类担保平台等)。这是一个每个输入者都相信的人,虽然他们不见得互相信任。其实,这个数据充满了这种性质的数据库,比如在银行里账户的总账。你的银行控制着数据,保证每笔交易都是有效的,是被参与交易的客户授权了的。无论你费多大劲的请求,你的银行也永远不会让你直接更改数据。
区块链取消了可信任的中间人,通过使得数据可以被多个不可信任的输入者直接更改。没有一个中心的守门人需要校验交易和认证他们的来源。然而,交易的定义延伸包含了授权和可靠的证据。交易可以被每个节点单独的验证和处理,每个节点可以保存一份数据。
但是你需要问的问题是:你是想要还是真的需要去掉中间人?根据你的使用场景,有一个中间人维护授信的数据库和作为交易的验证者真的有错吗?
其实区块链记录数据更倾向于的场景不是不可信任的中间人问题,其中主要的理由包括:成本更低,交易更快,自动调和,新的监管条例或者简单到找不到合适的中间人。
5交易互动场景
所以区块链对有多个互不信任的输入者直接参与修改共享的数据是适用的。但这还不够,区块链真正厉害的地方在于当被多个输入者创造出来的交易有交互的时候。
一般来讲所谓的交互是指被不同的输入者创造的交易是互相关联的。比方说,小红给了小明一笔钱,小明给了小李一笔钱。这种情况下,小明的交易取决于小红的交易,同时我们无法验证小明的交易除非先查看小红的。正因为这种关联性,这些交易自然的属于同一个共享的交易数据。
再往深一层说,区块链一个不错的特征是多个输入者可以互相协作的创造交易,每一方都没有风险。这就使得区块链不需要中间人来担保每方必须实现自己的义务交易才能发生的情形。
还有一个弱一点的应用是不同独立的输入者互相有关系的情形。一个例子是一个不同实体验证客户不同方面的个人身份的身份数据。虽然每一个验证证书是单独的,但是区块链提供了一个把所有东西整合在一起的方法。
6制定规则场景
这不是一个独立的条件,但是是之前论证的自然结果。如果数据可以被多个输入者同时修改,这些输入者并不全部互相相信,那么这些数据必须有内置的规则限定交易的运行。
这些规则从根本上讲不同于传统数据库的约束,因为他们和变换的合法性有关,而不是与数据库某个特定时间的状态有关。每笔交易都会被网络里的每个节点用这些规则检查,检查失败的将会被拒绝,不会传下去。
资产总账包括了这种规则的简单例子,来避免交易无中生有的创造资产。这个规则说总账里各种资产的数量必须在交易前和交易后保持一致。
7选择验证者场景
到现在我们描述了一个交易可以在多个地方发起的分布式数据应用场景,在节点中用点对点的方式传播,被每个节点单独验证。区块链的任务是有权威的最终的交易日志,这个日志的内容所有的节点都可证明的认同。
需要这个日志的原因是它使得新添加的节点可以从零开始计算这些数据的内容,而不需要信任其他节点。其次,它解决了一些节点丢失掉交易的可能性,因为系统的瘫痪或者信息交流的短路。如果没有交易日志,这会导致一个节点的数据和其他节点的有出入,这就有损共享数据的意义。
一般来讲两个交易是有可能有冲突的,导致只有一个可以被接受。经典案例是”一个资产两次成功消费”,这种情况下同一个资产发给了两个不同的接受者。在没有中央权威的点对点数据库中,节点对接受哪个交易是有不同意见的,因为没有客观的正确答案。通过交易在区块链中被“确认”,我们保证了所有的节点达成一致的选择。
另外需要说的是,在类似以太坊的区块链中,精确的交易顺序是非常关键的,因为每一笔交易都会影响到接下来的交易会发生什么。这种情形区块链将定义权威的事情发生的顺序,没有这个交易不能被处理。
区块链从字面上看就是一个区块的链条,在这个链条里每一个区块包括了一群被确认的交易的集合。但谁负责选择进入每个区块的交易呢?在适合企业应用的“私有链”中,答案是一群固定的验证者(矿工)来把它们创造出的区块进行数字签名。这个白名单将和某种形式的分布式可达成一致的方案结合起来,避免少数的验证者控制这个区块链。
不管使用哪种达成一致的方案,负责检验的节点都比传统中心化数据库的拥有者少太多的权利。检验者不能伪造交易,也不能违背规则修改数据。在资产总账中,这意味着他们不能花别人的钱,也不能改变资产的总量。但是即使如此检验者还是有两种方法来影响数据库的内容:
交易审查:如果足够多的验证者恶意串通,他们可以阻止特定的交易在区块链中被确认,使得这个交易永远的打入冷宫。
偏好性:如果两个交易起了冲突,创造下一个区块的检验者将决定哪个交易被确认,另一个就被拒绝。公平的选择是第一个被看到的交易,但是检验者可以根据其他因素做选择,而不显露出谁先来后到这一点。
因为这些问题,在部署一个基于区块链的应用时,你需要清醒的认识到谁是你的验证者和你为什么相信他们。根据场景的不同,验证者可以被选择成为:
(1)一个或多个被一个组织控制的节点
(2)一个维护区块链的一群核心组织
(3)网络上的每个节点
8资产背书场景
如果你已经认真看到这里,你们会注意到我倾向于将区块链描述为共享的数据记录者,而不是通常上讲的”共享的总账”。为什么呢,因为区块链作为一个技术,可以被用于解决比追踪资产所有权更广阔的问题。任何一个有多个互不信任的输入者的数据都可以基于区块链搭建,而不需要一个中心化的中间人。例子有共享的日历,维基百科形式的合作和讨论论坛。
但是目前似乎主要是那些追踪金融资产的流动和交易的人对区块链感兴趣,其主要的两个原因是:
(1)金融业在回应(回想起来,非常小的)类似比特币这样的虚拟货币的威胁。
(2)一个资产总账是一个被多个互不信任的实体创造的互相影响的交易共享数据,这是区块链技术是最简单和自然的应用。
如果你确实想用区块链作为资产总账,你需要回答下一个更重要的问题:流动中的资产的本性是什么,这么说不是表示现金、债券、提货单等,虽然这些也很重要。问题却是:谁是在区块链上为这些资产背书的人,如果数据库上说我有十个单位的什么资产,谁将允许我在现实世界中对那十个资产宣示所有权,我应该把谁告上法庭,如果我不能将在区块链上声明的资产转换成传统的可见的资产,这一切有什么意义呢
当然,这个答案对于不同的场景将不同。对货币资产来说,你可以想象监管的银行接受现金,然后为存款人在一个区块链技术下的分布式总账里面加钱。在贸易金融中,信用证和提货单将会被相应的进口商的银行和船运公司来背书。未来,我们可以想象一个一级市场的公司债券直接在区块链上发行来进行融资的时代。