区块链技术落地商业世界难题之一数据大爆炸区块链

张希 2018-07-18 10:55
分享到:
导读

随着区块链技术的普及,大家对区块链的技术特性越来越了解,而区块链重要的技术特征之一数据的不可篡改性,也广为人知,但是区块链是如何做到这一点的呢?

图片1.png

区块链数据的不可篡改性

随着区块链技术的普及,大家对区块链的技术特性越来越了解,而区块链重要的技术特征之一数据的不可篡改性,也广为人知,但是区块链是如何做到这一点的呢?

在计算机密码学中有一类计算函数叫做哈希函数(Hash Function),也称为散列函数或杂凑函数。而哈希算法就是以哈希函数为基础构造的,常用于实现数据完整性和实体认证,一般具有以下特点:

正向易计算性:给定明文和 Hash 算法,在有限时间和有限资源内能计算出Hash值。

单向性:从哈希输出无法倒推输入的原始数值,这是哈希函数安全性的基础。。

变动敏感性:原始输入信息修改一点信息,产生的 Hash 值看起来都有明显不同。

抗碰撞性:在给定的时间范围内,很难找到两段内容不同的明文,使得它们的 Hash 值相同,从而发生冲突。

下面就是使用 SHA-256 算法的例子:

第一步:输入明文

SHA256. ComputeHash(“第一块.”);

第二步:获得输出的Hash值

faf37d1f0af753c5b5eea6ab10f2223c5191ec1acd9e23c6a66be2e0ef28d5e5

(为了展示Hash函数对输入明文的变动敏感性,去掉第一步明文最后一个字符,即计算SHA256. ComputeHash(“第一块”); 可以看到输出的Hash值的巨大差异a03b221c6c6eae7122ca51695d456d5222e524889136394944b2f9763b483615)

区块链就是利用哈希Hash函数的这个特性,

Block1Hash = SHA256. ComputeHash(“数据块A”);

Block2Hash = SHA256. ComputeHash(“数据块B” Block1Hash );

Block3Hash = SHA256. ComputeHash(“数据块C” Block2Hash);

。。。。。。

image.png

图1:区块链简易模型

我们可以看到为什么叫链, 就是除了创世块外每一个区块都是依赖之前块的数据,例如第3个区块Block3 的Hash值依赖于之前一系列数据的内容和计算顺序。 假如现在知道了Block3 的Hash值, 别人拿着数据块A,B, C, 无论修改A,B, C的任一点内容还是A,B, C的出现顺序,都无法再次计算出正确的Block3的Hash值,这就是区块链英文 Block Chain概念的由来。

上述只是区块链的简化描述,在实际比特币区块链中要更复杂,比如使用双重SHA-2562, 而且实际Hash计算要加入随机数Nonce,对输出Hash有规则限制就是前导要有多少个零,数据块中使用的是梅克尔树(Merkle)等等。

image.png

图2:区块链实际模型

区块链的去中心化(Decentralization)

而区块链了另一个重要的技术特征之一就是去中心化,与现在主流的中心化系统具有非常大的差异。以太坊创始人Vitalik Buterin于2017年2月发表的《The meaning of decentralization》一文中,详细阐述了去中心化的含义。他认为应该从三个角度来区分计算机系统的中心化和去中心化:架构、治理和逻辑:

架构中心化是指系统能容忍多少节点的崩溃而可以继续运行;

治理中心化是指需要多少的个人和组织能最终控制这个系统;

逻辑中心化是指系统呈现的接口和数据是否像是一个单一的整体;

区块链是全网统一的账本,因此从逻辑上看是中心化的,这一点无可置疑。从架构上看,区块链是基于对等网络的,因此是架构去中心化的。从治理上看,区块链通过共识算法使得少数人很难控制整个系统,因此是治理去中心化的。架构和治理上的去中心化为区块链带来三个好处:容错性、抗攻击力和防合谋。

image.png

图3:传统中心化和区块链去中心化对比

从去中心化的网络中可以看出,区块链是基于对等网络的,就意味中每个网络节点是平等的而且每个节点服务器都保存的全部数据,这是区块链安全性和数据不可篡改性的来源和基石,但是这导致一个很严重的问题,就是数据大爆炸。

截止2018年5月14日,比特币网络全数据已经超过200GB,以太坊超过1.1TB。

image.png

图4:比特币和以太坊区块链数据增长

以上还仅仅是区块链自身的增长,当我们试图将区块链技术与现实商业世界对接的时候,问题就变的更加严重,我们仅仅选取两个不同领域和行业的数据做举例,以下是历史天猫双11一天的交易量和历年中国服装行业年生产量。

image.png

图5:天猫历年支付宝和订单TPS:万次

image.png

图6:中国服装行业年产量:亿件

产品朔源是区块链目前非常火爆的落地应用之一,但是当这些数以百亿计的产品朔源报告上链后会占用以百万GB计的存储空间,而且是每个节点都要重复保存!

而目前业界所讨论的解决方案,还多在压缩数据,扩大区块大小比如从1MB扩大到4MB, 或者建立轻节点等等,这些方案都治标不治本,而且还会带来副作用,比如扩大区块,会提高产生分叉的概率而且会延长达成共识的时间从而进一步降低TPS,轻节点会造成中心化有违区块链的去中心化的主张。

曌链(Mundellian Infrastructure Technology, MIT)的解决方案

曌链通过创新的架构来解决数据大爆炸的问题。

全新的架构,主链 多侧链多子链节点群 各行各业自有的存储服务器集群或数据云

image.png

图7:曌链(MIT)架构

主链

主链的设计思想是保持简单, 主链只负责创建侧链,通证流转和消息派送,共识机制采用我们全新的SDWC分片动态权重共识算法。

侧链

每一个应用开发DAPP都是对应一个侧链(Sidechain),并且系统提供API来创建侧链。侧链本身在技术上是一个完全独立的区块链,可以选择自己的共识机制,数据库,交易类型以及账户系统,依据其业务逻辑决定是否发行自己的token,承载应用的全部商业逻辑,但不保存生产数据,事务数据。

子链

子链是Subchain,不同于侧链,子链可以作为保存各种数据的仓库,也可以是公共服务提供者,比如可以部署IPFS 子链,时间戳子链,真随机数子链等等。

如果应用的数据量巨大,比如很多朔源系统,需要查询商品的朔源报告,但很多商品是有时效的,例如海鲜、进口水果、红酒等等,而区块链的特性之一就是不能修改和删除数据,所以对于这类应用,MIT区块链采用区块链加云端或其他传统数据库相结合的方式,即商品的完整朔源报告保存在传统数据仓库中,但是对其进行HASH计算,将HASH值保存在子链的区块链上,当需要验证的时候分三步,一是从外部传统数据仓库中获取完整朔源报告并计算HASH值;第二步是从子链上获取该商品的HASH值;第三步进行比对并返回验证结果。

至此,我们在区块链上由于仅仅保存了整个朔源报告的Hash值,相比于保存全部数据,我们的方案可以上万倍的降低数据的存储空间大小,以中国服装百亿级别的生产量来说,我们可以将存储空间从百万GB降低到几十个GB,而且还可以保护原有企业对IT方面的投资,更重要的是可以减少将区块链落地时的阻碍,因为很多企业并不愿意将自己数据外泄,而我们曌链不需要他们提供完整数据,仅仅需要他们计算出朔源报告的Hash值上链即可。

区块 数据 Hash 中心 计算
分享到:

1.TMT观察网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.TMT观察网的原创文章,请转载时务必注明文章作者和"来源:TMT观察网",不尊重原创的行为TMT观察网或将追究责任;
3.作者投稿可能会经TMT观察网编辑修改或补充。


专题报道