内部区块链的优缺点

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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

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

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

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

一些概念:

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

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


内部区块链实验

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

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

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

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

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


对数据安全的考虑

数据读取

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

数据写入(添加)

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

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

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

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

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

数据修改或删除

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

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

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


存档和备份

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


适应性

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


跨境时的数据隔离

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


数据隐私

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

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


第三方访问

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

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


速度

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

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

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


结论

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

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



原文发布时间为:2018-03-13
本文作者:伊泽小王子
本文来源:腾讯云 云+社区,如需转载请联系原作者。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
消息中间件 存储 Kafka
|
消息中间件 存储 负载均衡
|
存储 供应链 安全
谈谈构建区块链的五项重要原则和区块链的典型应用场景
什么是区块链?从科技层面来看,区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。
谈谈构建区块链的五项重要原则和区块链的典型应用场景
|
区块链 数据库 数据安全/隐私保护
如何理解区块链的运行原理?
通过今天的武侠故事聊了比特币区块链,其中包括区块链中公开记账、创建创世区块、交易、打包 Transaction、广播交易的几个步骤。
173 0
如何理解区块链的运行原理?
|
存储 分布式计算 算法
区块链开发中的9类共识机制,你知道多少
区块链开发中的9类共识机制,你知道多少
355 0
|
存储 JavaScript 算法
从概念到底层技术,一文看懂区块链架构设计!
区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与 VR 虚拟现实等比肩的热门技术之一,本身不是新技术,类似 Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。 无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产品。与此同时,梳理与之相关的知识图谱和体系,帮助大家系统的去学习研究。
1268 0
从概念到底层技术,一文看懂区块链架构设计!
|
安全 区块链
2区块链底层技术-逻辑架构
区块链因为比特币而为大家熟知,随之而来衍生出一些优秀的项目,比较有代表性的有以太坊(Ethereum)、锯齿湖(Sawtooth Lake)、超级账本(Hyperledger)、比特股(bitshares)、瑞波(Ripple)、小蚁等,根据不同的应用场景分为应用于公众的公有链,需要授权使用的私有链和联盟链,还有在原有区块链基础上进行扩展的侧链等,随着区块链的发展,相信还会有其他形式的应用出现,任何的应用都不是绝对的,应该按实际的业务需求来定。
3529 0
|
存储 算法 关系型数据库