前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >读懂区块链核心—你才真正懂区块链

读懂区块链核心—你才真正懂区块链

作者头像
机器思维研究院
发布2019-11-14 18:53:04
9740
发布2019-11-14 18:53:04
举报
文章被收录于专栏:AI机器思维AI机器思维

作者Nature

出品AI机器思维

区块链文章满天飞,人们更多的是看到区块链的官宣与技术概念,真正深入了解区块链的核心技术才能真正读懂区块链的内涵,了解其本质,才能对标其业务场景需求,真正下决心让区块链落地生根。

用科技限制人性——人性都是趋利的,有利益就会有造假,区块链核心技术通过加密学技术防范了人为泄露与造假,通过哈希函数的设计防范了数据篡改;通过分布式网络的点对点模式防范了单个中心的权利过大,避免其不受控制的为所欲为,实现了民主投票的机制;通过智能合约实现了法律约定,避免了法律纠纷,避免了人情关系。

整个区块链体系都是在用科技手段解决人性问题,实现了信用价值互联网,避免第三方中介的参与背书,提升了生产力,从而把生成关系变得简单极致,把生产效率大大提升。

区块链这套核心技术体系的组成并不是简单的几个概念和花图形象说明就能深入理解其原理。虽然大家都知道区块链是运用了密码学技术提升数据的安全性、防篡改,利用分布式技术实现了去中心化,防范单个人的权利过大以及为所欲为,提升了信用价值共识的达成,但这些核心科技其实由来已久,每一项技术都比较复杂,只有深入了解其核心技术内涵才能真正读懂区块链原理。

本节重点给大家深入讲解密码学技术原理在区块链上的应用价值,读懂密码学才能理解区块链的威力之处。

区块链上诞生的比特币这个数字货币产物天然结合了密码学技术,在金融领域已经感知到期技术应用的安全性便捷性等。其应用了密码学哈希函数,这个哈希函数其实是一个数学函数,由于其具有如下特性

1.输入可以为任意大小的字符串

2.产生固定大小输入

3.对于n位的字符串其哈希值计算的复杂度为O(n)。

关键点在于通过哈希函数加密的可以创建数据结构,其创建的数据结构有一种哈希指针,通过哈希指针指向数据存储位置及其位置数据的哈希值的指针;哈希函数创建的数据结构中其价值点是其安全哈希算法(如比特币应用的是安全哈希算法SHA-256),哈希指针防范了人为篡改行为。

究竟怎么实现数据安全和防篡改?

区块链上的数据安全和防范篡改这些功能的实现,靠的是哈希函数。哈希函数的威力在于其具有碰撞阻力,也就是两个值x 和y,x不等于y时通过哈希函数运算H(X)=H(y)实现了不同的输入得到相同的输出。由于其输入控件包含任意长度的任意字符串,其输出空间有限,这样人为找到碰撞值概率很小。

其二哈希函数具有隐秘性,如果我们仅仅知道哈希函数输出y=H(x),我们没有可行的办法计算出输入值x。正如我们抛一个硬币的实验,如果抛硬币的结果为正,我们会说此结果哈希为“正面”;如果结果为反面,我们会说哈希为“反面”。

但在我们没有见到抛硬币时,而只见到哈希函数的输出结果正面或反面时,我们如果问对手输入的哈希字符串可能对手能猜出x输入字符串,但如果我们把x从两个可能放大到取值来自一个非常广泛的集合,这时x输入难度就很难猜出,同时仅仅通过几个特点x就能找出输出值将不会在发生,其概率分布难度系数加大。

1、碰撞阻力:如果无法找到两个值在输入x和y且x≠y ,而H(x)=H(y) 的情况,则称哈希函数H具有碰撞阻力。目前比特币使用的 SHA256 算法,会有 2^256 种输出,如果我们进行 2^256 + 1 次输入,那么必然会产生一次碰撞,事实上,通过理论证明计算2的128次幂都需要至少花费10的28次幂多年时间。人类迄今每台电脑在整个宇宙起源时便开始计算,到目前为止,他们找到碰撞的概率仍然无穷小。

2、隐秘性:如果我们仅仅知道哈希函数的输出y=H(x),由于x的输入集合非常广泛,我们没有可行的办法算出输入值x。这成为哈希函数的隐秘性。

3、通过哈希函数的复杂度,我们可以看出很难通过一个结果值y找到其对应的输入值x。

通过上面哈希函数三个特性大家就能感知到哈希函数带来的威力有多大。

哈希函数依靠哈希指针及数据结构的特性防范人为的造假,从而避免做坏事。任何对数据篡改的篡改都是有记录可以寻找到的。哈希函数是密码学中的锋利尖刀,在众多应用中找到了一席之地,尤其在数字货币领域得到广泛应用。不同的安全级别会要求不同的哈希函数特性。

下图中的哈希指针是一个不但可以指向数据存储的位置,还可以帮助确认某个时间戳下该数据的哈希值的指针。这个特性对防数据篡改很有价值。哈希指针构建的数据结构特性决定了其防数据篡改的特性。哈希指针不但可以告诉你数据存储在什么位置,并且还可以让你验证数据有没有篡改过。如下图1-1所示。

图1-1哈希指针

区块链是借助哈希指针生成的一个链表,而不是通过普通指针生成的,通过哈希指针构建的一个链表,将这个链表称为区块链,如下图1-2所示区块链。

图1-2区块链

在普通链表中有一系列区块,每个区块既有数据也有一个指向上一个区块的指针,但在区块链中,上一个区块指针被置换为哈希指针,这是区块链与普通区块的区别。通过这个区块链上的哈希指针不仅能告诉你上一个区块的值在哪里,还包含了该值的摘要信息,从而使我们能够验证那个值有没有改变。在区块链链表头部存储的第一个数据区块也就是创世数据区块。

区块链的这种数据结构设计其价值就是“防范篡改日志”。如果我们建立一个存储很多数据的日志数据结构,我们就可以将数据附加到日志的末尾。

如果有人不怀好意,为了个人利益,要作恶,改变日志前的数据,我们可以监测到。假设有人要篡改区块链某个B区块的数据,虽然坏人改变了某区块B的数据,但区块B+1的哈希值(即整个区块B的哈希值)将不会再匹配。

原因是哈希值具有碰撞阻力。我们可以监测到新的哈希值与改变后的内容不会匹配。这样人为篡改后会监测到区块B中的新数据以及区块链B+1中的哈希指针存在不一致性。

如果坏人同时尝试篡改下一个区块的哈希值来掩盖这次篡改数据的行为,他虽然可以这样做,但由于区块链到达链表的头部时也就是创世区块时,这个方式会失败。原因是创世区块链是区块链诞生的地方,其链头部的哈希指针存储在坏人无法改动的地方,这样就不能做到数据块在不被监测的前提下,篡改任何区块。

通过上面的分析大家可以看出,如果恶意破坏区块链中的任意部位的数据,那么将会导致下一个数据块的哈希指针不正确。如果在区块链中锁定创世区块链的头部数据,那么即使恶意破坏的人修改了所有哈希指针使其与篡改过的数据一致,他也无法修改创世区块链头部数据,从而防范了坏人做坏事的篡改行为。

区块链防篡改的核心科技技术在于其设计的创世区块(也就是诞生的第一个区块,时间开始的地方)这个区块是唯一不能篡改链表头部的指针。仅通过记住一个哈希指针,整个区块链上链表上的防篡改哈希值也同时被记住了。

区块链核心技术原理设计解决了人性作恶的可能,更多的是防范人性的为所欲为。同时限制了权利过大。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器思维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档