赞
踩
什么是区块链?目前没有看到很好的定义和介绍,网上要么是讲一些区块链意义的空泛文章,比如“区块链技术颠覆谁谁谁”,又或“互联网已颠覆世界,区块链要颠覆互联网等等”,要么就是通篇介绍比特币,矿工,挖矿等。那么区块链到底是个什么东西?它跟比特币又有什么关系呢?
其实区块链本质上是一个去中心化的分布式账本数据库。其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次交易有效确认的信息。而比特币就是基于区块链技术的一个应用。
这里先抛出几个问题:
1,什么叫去中心化的分布式数据库?
2,数据区块里都有什么?
3,如何利用密码学保证区块里数据不会被篡改?
4,数据是不断增加的,怎么保证新增的数据被其他节点认可?
先看一个中心化与分布式案例,搞IT编程的都知道,目前版本控制软件最流行的一个是SVN,一个是git的那它俩有什么区别呢,如下图:
svn是一个集中式的服务器,代码版本变更信息都存储在svn server服务端,每个客户端磁盘里只有众多版本中的其中一个版本,假如服务端坏掉了,那我们就丢失了版本变更记录。
而GIT中不一样,它是没有中心服务器的,每个人机器上都是一个完整的库,里面就有各个版本的变更信息,我们开发完代码以后先提交到本地仓库,在推推送到远程服务器,假如远端服务器坏掉了,只需要把本地仓库重新推一次即可,版本变更记录还在。
区块链也是这样,没有中心,分布在全球各地,能够协同运转的数据库存储系统,任何有能力架设服务器的人都可以参与其中。来自全球各地的掘金者在当地部署了自己的服务器,并连接到区块链网络中,成为这个分布式数据库存储系统中的一个节点。一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化,分布式的特征)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又依次的同步,从而实现在区块链网络中所有节点的数据完全一致。
。区块作为区块链的基本结构单元,所有游戏由数据元型态区的块头所有游戏状语从句:交易数据的区块主体构成区块头所有游戏三组元型态数据:
用于连接前面的区块,索引自父区块哈希值的数据;
挖矿难度,杜撰(随机数,用于工作量证明算法的计数器),时间戳;
能够总结并快速归纳校验区块中所有交易数据的梅克尔(默克尔)树根数据。
大概每隔10分钟,就会有一个新的页(区块),所有的参与者都可以在这页(区块)上记账,谁先最快记完账,就可以把这个页(区块)添加到账本(主链)里,并得到一笔奖励(比如比特币,这就是所谓的挖矿)。而其他没完成的参与者手里的页(区块)就会作废,只能继续等待另一个区块产生,然后重新开始记账。挖出每个区块中也包含了前一个区块的ID(识别码),这使得每个区块都能找到其前一个节点,这样一直倒推就形成了一条完整的交易链条。从诞生之初到运行至今,全网随之形成了一条唯一的主区块链。如下所示
这里用到密码学里两个东西:哈希算法和非对称加密。
哈希算法有两大特点:不可逆和无冲突。所谓不可逆,就是当你知道x的哈希值,无法求出x; 所谓无冲突,就是当你知道x,无法求出一个y,使x与y的散列值相同。而且只要X稍微有一丁点变化,计算出的哈希值与X的散列值完全不一样。
常见的加密算法有两种:对称加密和非对称加密。
对称加密:该算法在加密和解密时使用的是同一个秘钥,常见算法有DES,AES等特点:加密解密简单,速度快,一般用在数据量大又不太注重安全的场景。
非对称加密:非对称加密需要两个密钥来进行加密和解密,这两个秘密是公开密钥(公钥,简称公钥)和私钥(私钥,简称私钥)。加密除了用户信息加密之外,还有一个作用就是,身份验证。过程如下,消息发送者先对消息做哈希运算,接着用私钥加密处理。最后再把原消息和加密后的消息及公钥发送出去,消息接受者先对消息做哈希运算,然后用公钥解密消息得到哈希值,如果两个哈希值相同就代表消息没有被篡改过。常见算法有RSA,DSA等特点。 :加密解密速度慢,但是安全性较高,非对称加密最经典的应用就是数字签名。
上面的内容属于密码学基础知识,接下来我们就看下在区块链里的应用:
第一个创世区块被创建以后,里面有什么无所谓。从第二个区块开始,区块头包含前一个区块的哈希值,及这段时间内全网索引交易记录(10分钟左右),且每笔交易都有签名,可以保证没有被篡改过,区块一旦被挖出,区块里的数据就不会在改变。否则区块的哈希值就会改变,而如果哈希值改变,整个区块链条就不再完整。
区块链的逻辑很简单,就是比谁更快。谁先计算出并添加到张波就给谁一定的奖励。那如果有人做假账,搞故意破坏怎么办,我们来看一下区块链如何解决作弊行为:
1,交易数据验证:上面介绍了非加密算法,交易信息都是使用非对称加密算法在节点之间传输,可以保证数据不会被篡改。
2,区块验证:区块是前后相连的,修改之前区块之后哈希值变化无法再连到主链上,如果伪造最后一个,后面所有区块都要伪造,工作量太大。
3,分布式存储:任何一个节点都拥有全部交易数据,假如有人修改了某页数据,必须得到51%以上节点的认可。
4,链有效性:如果有两个节点同时计算出,这时候区块主链会分叉,但是区块链规定,谁先挖出6个区块,就以谁为准,其他分叉作废。
区块链优缺点:
优点:1,去中心化,不需要第三方权威机构。2,数据不可篡改,数据一旦存入区块,将永久存储,数据具有极高的稳定性和可靠性。(此特点也是缺点,数据不可撤销。)3,自制性,算法公开透明,人为干预不起作用。4,开放性,数据完全开放,任何节点都可以查询区块链内所有数据。(此特点也算缺点,可以查询个人账户所有交易数据。)5,匿名性,交易时无需公开身份让对方相信自己。(此特点也算缺点,由于无需公开身份交易,又无需担心交易过程,受到不少不法分子的喜爱。)
缺点:1,效率低,每次数据添加到数据库至少十分钟,第一次使用要下载历史所有交易数据。2,延迟性,由于交易数据需要被其他节点认可,记账周期长,交易不及时。
根据以上特点,区块链应用场景并不是很多:
1,对信息安全要求高但是对速度要求不高的金融,保险领域。2,电子货币行业,比如比特币,火牛币等,这些币种央行并不承认,无法兑换人民币,投资有风险,购入需谨慎。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。