从零开始学习区块链(1)

转自 微信公众号:区块链大师

定义1:区块链(Blockchain)技术是维护一个不断增长的数据记录的分布式数据库,这些数据通过密码学的技术和之前被写入的所有数据关联,使得第三方甚至是节点的拥有者难以篡改。区块(Block)包含有数据库中实际需要保存的数据,这些数据通过区块组织起来被写入数据库。

 

定义2:Hash算法:哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。

哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。

通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许多操作,包括身份验证和数字签名,也称为“消息摘要”。

简单解释:哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。

举个例子,如果你输入一篇论文对并对其使用哈希函数运算得到一串固定长度的哈希值(计算结果),一旦别人抄袭或更改计算结果都会变化。而且哈希函数是不可逆的,这和普通函数有很大不同。

 

定义3:merkel树,

 

Merkle Tree是一种数据结构中所说的树,网上大都称为Merkle Hash Tree,这是因为它所构造的Merkle Tree的所有节点都是Hash值。

Merkle Tree具有以下特点:

1. 它是一种树,可以是二叉树,也可以多叉树。无论是几叉树,它都具有树结构的所有特点;

2. Merkle树的叶子节点上的Value,是由你指定的,这主要看你的设计了,如Merkle Hash Tree会将数据的Hash值作为叶子节点的值;

3. 非叶子节点的Value是根据它下面所有的叶子节点值按照一定的算法计算得出的。如Merkle Hash Tree的非叶子节点Value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行Hash计算所得出的Hash Value。

例如,下图就是一个Merkle Hash Tree形状,如果它是Merkle Hash Tree,则节点7的hash value必须是通过节点15、16上的value计算而得到。

 

目前在计算机领域,Merkle Tree大多用来进行比对以及验证处理。在处理比对或验证的应用场景中特别是在分布式环境下进行比对或验证时,Merkle Tree会大大减少数据的传输量以及计算的复杂度。例如,就拿上图举例,假如是 15,16.......30是一个个数据块的hash值,我把这些数据从A传输到B,并且在数据传输到B后,我想验证下传输到B上的数据的有效性型(验证数据是否在传输过程中发生变化),我只需要验证A和B上所构造的Merkle Tree的Root节点值是否一致即可。如果一致,表示数据是有效的,传输过程中没有发生改变。假如在传输过程中,15对应的数据被人篡改,通过Merkle Tree很容易定位找到(因为此时,节点0、1、3、7、15对应的Hash值都发生了变化),定位的时间复杂度为O(log(n))。

 

最后,我们来了解一下鼎鼎大名的比特币。著名的中本聪论文《比特币:一种点对点(Peer-to-Peer)的电子现金系统》中涉及了几个观点:

(论文下载地址:https://xueshu.glgoo.net/scholar?cluster=9372423383988544578&hl=zh-CN&as_sdt=0,5)

1. 去中心化、去中介化的可靠交易;

2. 反欺诈;

3. 基于密码学原理的电子交易凭证管理;

4. 分布式的时间戳服务器;

5. 足够的安全能力支持系统。

所以,我们可以把比特币理解为一个区块链技术的应用场景。

当区块链技术被发表后,很多人士认为有可能实现DAC。DAC,全称是Distributed Autonomous

Corporation,中文可以翻译为分布式自治系统。所谓DAC,就是通过一系列公开公正的规则、可以在无人干预和管理的情况下自主运行的组织系统。DAC的形态非常多,它可能是某种数字货币,也可能是一个系统或者实体机构,甚至可能是无人驾驶的汽车。作为企业,它们为客户提供有价值的服务,这种服务可以是货币传输(如比特币)、资产交易、域名服务,或者其他任意一种商业模式。

以下是分布式系统的四个突出特点:

1.没有强制性的中心控制;

2. 次级单位具有自治的特质;

3. 次级单位之间彼此高度连接;

4. 点对点间的影响通过网络形成了非线性因果关系。

通过以上介绍,我们大概能够了解区块链技术的概念,而区块链技术现有的应用场景基本如下:

1.存在性证明  :在互联网金融领域可以用于确权,因为区块链真的可以实现证明你妈是你妈。  

2. 智能合约:  保证合约的有效性,如电子签名法所规定的生成、储存或者传递数据电文方法的可靠性;保持内容完整性方法的可靠性;用以鉴别发件人方法的可靠性;其他相关因素。  

3.物联网  :区块链可以让物联网对物体的编码标准交互接口的问题得以解决。IBM认为区块链将在分布式网络中起到至关重要的作用,每一个设备都充当一个矿工,在网络上的节点之间传输数据。在IBM正在开发的被称为“Adept”的项目中,区块链在创建一个可行的分布式网络中起到了至关重要的作用。  

4. 身份验证  :电子签名法所规定的电子签名制作数据用于电子签名时,属于电子签名人专有;签署时电子签名制作数据仅由电子签名人控制;签署后对电子签名的任何改动能够被发现;签署后对数据电文内容和形式的任何改动能够被发现;当事人也可以选择使用符合其约定的可靠条件的电子签名。  

5. 预测市场  :股市预测社区Augur就是一个例子。任何人在世界任何地方都可以访问和使用的Augur,这可能给市场带来前所未有的流动性和交易量。  

6. 资产交易  :Nasdaq OMX Group Inc正在测试区块链技术,纳斯达克认为该技术有机会让传统的金融交易方式变为和比特币类似的交易方式。  

7. 电子商务  :比特币的模式直接套用就可以了,电商是不是有可能变成没有监管但是“和谐”的黑市?  

8. 社交通讯  :Magma VC已经向去中心化社交通信应用初创项目GetGems(原名Gems)投资了40万美元。  

9. 文件存储  :直接冲击甚至颠覆传统的云计算架构。  

10. 数据API  :区块链API服务提供商Chain已经获得由Khosla Ventures领投的950万美元投资,投资者还包括Pantera Capital、Barry Silbert、RRE Ventures、SV Angel、Thrive Capital和500 Startups。华尔街的金融公司正在投资区块链、抢滩布局。Visa、纳斯达克、花旗风投也投资这家旧金山区块链初创公司Chain,涉及融资金额达到3000万美元。  

 

posted @ 2017-06-05 18:43  类人源  阅读(14662)  评论(1编辑  收藏  举报