内部区块链的优缺点

我经常转发与银行或大型企业实施的区块链实验有关的新闻,并提出这样的疑问:”他们为什么会在这种内部场景使用区块链呢?“

区块链的作用是取代可信赖的第三方,或者是在不完全相互信任的实体之间建立信任关系,如此看来,内部区块链似乎是矛盾的。

然而,许多公开发布的实验,试验性项目和针对应用的验证性测试都着重于区块链的内部使用案例,即区块链中可能有一个或多个节点,但是都由同一组织控制,且通常局限在一个区域内。

虽然最近有许多对比公有型(非许可型)与私有型(许可型)联盟区块链的讨论,但是却鲜有人思考内部区块链的优点。

一些概念:

公有型(非许可型)意思是任何人都可以对交易进行校验,以及添加新的区块,同时,任何人都可以读取区块链中的数据,例如比特币和以太坊。

私有型(许可型)意思是在区块链中,可以添加区块的实体对象对整个区块链网络的其余部分来说是已知的,并且得到了它们的许可。这种类型的区块链可以分为两大类。第一类即区块链的参与者是同一类型的实体,例如产业区块链。第二类则是内部区块链,即所有区块的添加者都由同一组织控制。


内部区块链实验

使用内部区块链进行实验的主要原因似乎是:

(1)在实施内容与区块链有关的情况下对工作压力和预算的考虑

(2)相比于同外部组织(通常是竞争对手)进行合作,内部设置更加简单

(3)可以亲自动手体验一些最新的技术

以下是一些关于内部区块链解决方案相较于传统数据库的优缺点的想法。我非常欢迎有这方面技术知识的读者,例如数据库管理员,对这些想法进行补充或指正,因为我并不是一个技术专家。


对数据安全的考虑

数据读取

目前,对非区块链式数据库的读取访问往往记录在日志文件中。而区块链的读取特点是,你可以自由地读取区块链中某一节点的数据(通常储存在一个固定的数据库中),只需要通过与其相连的节点。基于区块链的数据库本身并没有任何内置机制可以改善这个问题。因而你仍然会使用日志文件来记录谁读取了你的区块链,所以在这一方面,区块链式数据库和普通数据库的解决方案几乎没有什么差别。

数据写入(添加)

非区块链式数据库通常使用用户名和密码对用户进行身份验证,同时根据用户权限来决定他是否可以写入数据,并使用日志文件记录新数据写入行为。

区块链在添加数据时通常需要额外使用数据签名。数据签名的使用首先在交易层面,其次则是添加区块时(针对私有链)

在交易层面,例如在比特币交易中,你通过在支付信息中添加数字签名来证明你是这笔钱的所有者。尽管用于储存非交易性数据的区块链不需要使用此机制,但是许多用于数字资产转移的区块链都在使用它。区块链节点的软件理论上可以接收来自任何人的数据并将其添加到区块中,而不需要来自数据发送者的数字签名。

在增加区块的层面上,对于私有链的区块添加者来说,一种获取许可的机制就是在要添加的区块上使用数字签名来证明他们的身份,这样其他验证人员就会接受这个区块。但这种情况并不适用于公有链,例如比特币。在比特币区块链中,你完全可以在没有明确表示你是谁的情况下进行挖矿,尽管你的IP地址和你通过挖矿获得的比特币地址都会泄露你的信息。

数字签名能够在人们写入更改时在安全性和不可否认性上添加额外的一层保障。所以区块链能够在数据写入这个方面为数据库增加使用价值。

数据修改或删除

非区块链式数据库通常使用用户名和密码对用户进行身份验证,同时根据用户权限来决定他是否可以修改数据,并使用日志文件记录数据修改行为。

区块链包含许多节点,数据一旦写入,拒绝更改,除非你得到了绝大部分或者所有节点的同意,或者你滥用旨在解决区块创建的同步问题的“最长链规则”。这意味着你可以降低流氓管理员更改历史数据的风险,通过让区块链运行在不同数据中心的节点上,每个数据中心都配备不同的数据库管理团队。如果要更改历史数据(假设私有区块链设定不能在单一节点连续添加多个区块),那么需要多个团队合谋,共同协作才能办得到。

从这方面来看,区块链式数据库比传统数据库更安全。对于没有存档和业务连续性需求的不受监管的对象来说,区块链可能是一个极佳的解决方案。但是对于金融机构来说,频繁地备份以及长期保存这些备份是必须的,因此,不难想象,对于一个银行来说,比较各个备份来检测数据是否发生了更改可能更为直截了当。但是,在这种方式下每个数据库你都需要构建相应的比较方法,区块链则不然,你可以直接获得这种不可变性。


存档和备份

尽管如上所述,区块链不如存档简单,但我可以想象,未来区块链将会代替存档。如果你的区块链在全球范围内有多个复制这些不可变数据的节点,你还需要额外的定期备份吗?


适应性

添加一个新的节点并使其与现有区块链同步是非常容易的。只需要安装相应软件,输入区块链上其他计算机的地址,让它开始下载区块并校验新出现的交易和区块就可以了。在我看来,这比传统企业数据库提供的解决方案更容易操作,也更经济实惠。但也有可能我是错的。


跨境时的数据隔离

区块链在各个节点之间进行数据的复制。如果你的某些数据需要保留在特定的司法管辖区内(例如新加坡的客户数据),那么你需要找到适合的方法来解决这个问题。找到解决方案是相对比较简单的,只需要认真思考一下。这些数据和常规数据库中的客户端数据,以及内部区块链上的交易数据是十分相似的。


数据隐私

是否要考虑交易中的中国墙问题呢?如果需要,鉴于区块链的实现需要不断复制数据,那么使用区块链可能不会是一个好的解决方案。虽然隐私问题可以通过加密来解决,即将密钥安放在需要的地方,但是,数据需要在加密以及保持一定可见性用于校验这两者之间实现动态变化,尤其是交易数据。

思考一下:你在某个区块链中并添加了一些表示A(你)和B(交易另一方)之间交易的数据。同时,C也在这个区块链中。那么,交易数据添加到区块链上后,C就可以看到A在与B通信。此外,C也可以在没有攻破A和B的系统的情况下,用自己的时间尝试解密或者分析所有A和B之间的通信信息。从敏感的商业视角来看,这难道也可以接受吗?


第三方访问

对于为何使用内部区块链,有时我会听到这样的理由:监管机构或审计人员获取访问权限十分简单 - 他们可以很容易地接入区块链并从那里开始获取他们想要的数据。确实如此,但是,让他们从常规数据库中获取数据真的比这个要难吗?

另一个可能更好的理由是互操作性 - 当你希望其他的参与者也可以写入数据时,如果你有一个以区块链形式构建的内部数据库(即添加的数据记录中包含了块哈希的值,并且安装有有一些能够和外界通过对等网络进行交互的服务器软件),那么数据库接入其他参与者会更加简单。但你必须注意那些你与外部参与者共享的数据和元数据(参见上面的数据隐私部分)。


速度

区块链中数据的读取速度很快。同时,鉴于区块链节点复制的数据用传统数据的格式存储,你可以向读取普通数据库一样进行读取。

但如果写入速度对项目来说十分重要,或者你需要处理大量的数据,那么区块链的性能还不如常规数据库。

不过,我经常听到关于比特币区块链交易速度受限问题的担忧。但这种速度受限并不一定会体现在内部的,私有的,使用工作量证明协议的区块链上:内部区块链如果位于具有良好通信能力的数据中心,其交易处理速度可以达到比特币的3倍以上。


结论

尽管最开始我们并没有任何令人信服的理由能说明为什么要在解决内部问题时使用区块链,但从技术的角度来说,两者的结合是有利的。毕竟,这是一次实践,一次试验,是在创新和改良现有的技术以寻求更出色的解决方案。鉴于创建私有型区块链并不需要挖矿开销,也不复杂,在区块链技术还在发展的这个阶段,如果有人问:“为什么要用区块链呢?”,那么正确答案可以是:“为什么不用呢?”

请对上述关于在解决内部问题时使用区块链代替传统数据库的理由发表您的看法!

本文的版权归 五条 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

去中心化支付系统 Stellar

在这一篇文章中,我们将介绍去中心化的支付系统 Stellar,它被设计与实现的目的就是在区块链和传统中心化的金融机构之间构建一个桥梁;其目的并不是创建一套完整的...

552
来自专栏区块之恋

区块链学堂——预言机、预言机网络、预测市场预言机预言机网络预测市场

1827
来自专栏区块链大本营

谁说高颜值女神做不了技术?她偏做,还是百万级主链!

1563

数字令牌的入门介绍

最近数字令牌已经出现,首先是对比特币等加密货币兴奋不已,然后用数字令牌来代表区块链上的不同资产。他们是什么?你如何数字化一个令牌?它为什么如此重...

5817
来自专栏区块链技术指北

什么是闪电网络?

这是「区块链技术指北」的第 31 篇文章 闪电网络 ---- 闪电网络是一种基于区块链的支付协议。这种协议可以用在即时支付的场景。从设计上来说,中本聪实现了快速...

3317
来自专栏智能计算时代

区块链101:为什么要使用区块链

随着人们对这一发明的理解,区块链技术出现了一定的炒作。 这可能是因为它很容易想象高级用例。但是,这项技术也受到了严密的审查:在过去的几年中,已经花费了数百万美元...

2765
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–资产会计(162)-11在建工程-AS01创建资产

4.6 在建工程 在建资产 (AuC) 是有形资产的一种特殊形式。它们通常作为单独资产负债表项目显示,因此需要单独的科目确定和资产类。在建资产在建设某项资产的...

2795
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–自建资产(资本投资订单)(164)-4 KO88在建工程结算

4.6 KO88在建资产结算 与评估相比,不能执行跨会计年度的结算。系统使用过帐期间的最后一天,自动决定过帐期间/会计年度中的过帐日期。结算的处理类型有三种...

3578
来自专栏区块链资讯

我需要运行自己的节点吗?

我们都听说过全节点数量越多,网络安全性越高,也就越去中心化。对于用户来说,运行一个全节点也就拥有更多的自主权和安全性。因此有些用户就会选择自己运行一个完整节点。...

1376
来自专栏BestSDK

从工作方式到云端应用,一文读懂“区块链”

区块链的定义 在最基本的层面上,区块链解决对手之间缺乏信任的问题。通常被称为“数据操作系统”,区块链是一个概念而不是技术。 区块链不是一个集中式结构,其中所有...

28812

扫描关注云+社区