到底要不要使用区块链,这篇文章回答你

最近,关于区块链的炒作其实已经完全超出了它真实的能力和应用。这种疯狂让企业、技术开发人员以及投资者都不能真正理解区块链应用场景的要求,并且他们也很难认知到区块链或者说分布式账本技术真正的意义是什么,这可如何是好?

最近,来自苏黎世联邦理工学院的Karl Wüst和Arthur Gervais针对于这个问题,提出了非常给力的判断方法。我们来一起看看,他们到底是如何解决的?

技术对比

图:不同解决方案的技术性能对比

总体来说,区块链技术是分布式状态存储的账本。这些状态可以是转账信息,或者数据,又或者是加密文件等任何需要保存的信息。其实,类似的传统数据库已经发展了几十年了。区块链只是代表了可以用来存储状态的新型技术,其中还包含了很多新的功能,例如电子签名和防止篡改等。

在上述表格中,列出了数据库、许可性区块链以及非许可性区块链这三种技术,它们之间究竟有何不同,我们又该如何进行选择?

数据库

首先,数据库(单行,并行,或者分布式)已经存在了几十年,而且它们的作用就是用来进行状态存储以及数据查询的。这几十年来的研究,已经可以让数据库进行多层的数据查询处理和状态存储。

·对于吞吐量和转账延迟,传统数据库拥有最强的性能。

·但是,一直以来,数据库都是中心化管理的,因此其中也没有所谓的共识机制。

非许可性区块链 (Permissionless Blockchains)

非许可性区块链,也就是我们常说的公有链,其中的公开账本(状态)不会被中心化主体所控制,而是分布在网络。

·中本聪设计了比特币系统,它可以让分布式网络的节点之间达成共识,从而完成点对点转账,而不需要任何第三方介入。

虽然非许可性区块链或者说公有链可以有很强的去中心化,但是这也导致网络吞吐量低,交易延时长。例如比特币网络就存在这样的性能问题,因为工作量协议本身的设计导致整个网络转账速度很慢。和传统的数据库相比,在任何非许可性区块链项目中,性能问题是难以想象的。因为为了维持整个网络状态的一致性,其中的任何不同节点之间都需要沟通。

许可性区块链(Permissioned Blockchains)

许可性区块链,也就是我们常说的联盟链,它其实是一种混合型解决方案。具体来说,许可区块链并不是完全中心化的,而是由一些提前选出的可信主体作为节点来将状态写入系统。

由于在许可区块链的案例中,网络中不会牵涉到大量的公共节点。所以相对而言,许可性区块链的吞吐量和延迟情况会好很多。

虽然如此,但是它的性能和中心化数据库还是没办法比的。

认识到这些不同的系统之后,其实很容易就会发现,我们并不能获得通用的解决方案。以上三种解决方案都会有自己的缺陷,不同的应用会有不同的需求,因此我们需要因地制宜,找到最合适的方案。

流程图告诉你, “是否真地需要区块链?”

如上图所示,我们可以看出如何选择最合适的技术方案。TTP的意思是可信的第三方,这里的“作者”的意思那些可以在数据库和区块链上写入状态的个体,也就是我们经常说的节点。

如果你的应用场景中都不需要存储状态,那么这很显然是不需要区块链或者任何数据库的。

类似地,如果场景中只有单个状态写入的主体,即单个节点的需求,那么在这种情况下,区块链不会比数据库更有优势。相反,数据库可能会更合适,因为性能更好。

如果场景需要多个状态写入的主体,即多个节点,那么我们就要选择其他的解决方案。于是问题来了,这个应用是否需要有TTP(可信第三方),或者换句话说,该应用是否需要防篡改功能。如果这个应用无法依赖于单个可信任的节点,那么我们就可以继续探究这是否真地需要区块链。否则,区块链技术就是不需要的,因为就性能来看,中心化的数据库效率更高。

下个问题是“网络中所有节点的身份都是公开可知的吗?” 如果像是在互联网中那样都是非公开的,那么无需许可的区块链就是正确的解决方案。

如果身份都是公开可知的,那么下个问题就是“这些节点是否互相信任?”答案如果是肯定的,那么就不需要区块链技术,有共享权限的数据库就足够。如果这些状节点不是互相信任的,那么解决方案就是选用许可型区块链。

最后还要取决于是否需要公开验证,是否能公开链上的信息(公共许可区块链)或者链上信息权限需要受到限制(私有许可区块链)。

应用案例

接下来,就让我们来看看对于哪些应用案例来说,区块链是有意义的,以及为什么需要区块链。

不需要区块链的应用

供应链管理系统

很多人都认为,供应链管理是区块链很好的应用。究竟是不是这样呢?我们跟着上文的流程图来一起看看。

供应链系统当然需要存储数据。

供应链上会有很多参与的主体,因此其中会包含多个节点。

供应链管理系统需要TTP(可信第三方)参与。

但是,供应链管理中存在个本质的问题,那就是数字世界和实物世界的对接。当某项产品到达仓库的时候,如果产品质量没问题,需要有人或者机器去将这些状态写入区块链。如果这些操作者都不可信,那么整个供应链上的信息都是虚假的。换个角度来看,如果所有的状态写入者都是可信的,那么就不需要区块链,因为普通的数据库就足够满足要求。

不过,我们也要注意,以后可能通过某些技术方式,将数字世界和现实世界安全对接,那么我们上面所说的理论就会改变。

物联网:很多人都在说,物联网可能是区块链的应用场景,通过将智能合约嵌入其中,提供资源的人会自动获得奖励。确实,物联网系统是去中心化的,而且其中的参与者开始也不会是相互信任的,这么说区块链确实是个很好的解决方案。但是,就好像在供应链管理系统中存在的问题,现实和数字世界的对接始终会有问题。如果计算机提供的数值是传感器读取的,那么区块链本身是无法确保这些数据是正确的。假设我们只想获得自动化的功能,那么区块链也许并不必要,我们完全可以使用一个可信的第三方作为替代。

适用于区块链的应用场景

银行间业务以及国际支付:对于金融应用,区块链技术是很适合的,因为银行都是想规避风险的,并且不希望承担信任风险。

在银行间支付系统中,各个银行可以成为其中的节点,并且他们想要进行交易,所以其中的状态需要存储。

既然银行是作为系统中的节点,那么节点就肯定不止一个。

对于单一的金融系统,央行可以作为TTP(可信第三方)。

如果央行不想为每笔转账做认证,它也可以作为证书颁发机构,为系统中参与的银行发布证书。这意味着整个系统的节点都是公开的,所以我们可以使用许可性区块链。

贸易和公平交易协议:电子产品的交易在没有可信第三方的情况下也是可行的,因此这就非常适用于区块链的应用。但是实物交易仍然需要第三方作为见证,以防止有欺诈。

电子投票:区块链技术可以助力电子投票,一方面,投票需要是匿名的,所以隐私非常重要。另一方面,电子投票需要提高公开的可验证性。综合来看,区块链很适用于电子投票的应用场景。

结论与展望

其实,和我们想的不同,区块链并不是万金油,它不能解决所有的技术问题。区块链更加适合于已经满足某些需求的应用场景,特别是那些牺牲某些性能,来为了获得去中心化和防篡改功能的应用。虽然如此,但是很多场景还不适用于区块链,例如,供应链管理。有时候我们虽然对区块链抱有很大的热情,却仍然要注意这究竟是否合适。现在看来,区块链最适用于需要信任的数字资产交易场景。

https://hackernoon.com/to-blockchain-or-not-to-blockchain-45004a23e8a7

作者:Mohammed ElSeidy

编译:俊杰

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180910A1LTXH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券