目录
一.区块链的定义
二.区块链核心技术
三.区块链的特点
四.区块链的成功应用
五.比特币
六.区块链对我们的影响
正文
一、区块链的定义
定义一:
区块链就是把加密数据(区块)按照时间顺序进行叠加(链)生成的永久、不可逆向修改的记录
定义二:
区块链本质上是一个分布式的公共账本
二.区块链核心技术
1.哈希算法(大学学计算机的必然学过)
2.公钥加密技术
3.工作量证明
三.区块链的特点
1.去中心化
这是区块链颠覆性特点,不存在任何中心机构和中心服务器,所有交易都发生在每个人电脑或手机上安装的客户端应用程序中。
2.开放性
区块链可以理解为一种公共记账的技术方案,系统是完全开放透明的,账簿对所有人公开,实现数据共享,任何人都可以查账
3.安全性
区块链采取单向哈希算法,每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性、不可撤销导致任何试图入侵篡改区块链内数据信息的行为易被追溯,导致被其他节点的排斥,造假成本极高,从而可以限制相关不法行为。只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更
4.独立性
基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预
5.匿名性
除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行
四.区块链的成功应用
比特币和以太坊。区块链处于技术的萌发期,没有太多合适的应用场景。
五.比特币-- BitCoin
比特币:是一种P2P形式的虚拟的加密数字货币,点对点的传输意味着一个去中心化的支付系统。与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。
比特币值值钱吗,好赚吗?我不知道,我查到的一点数据可以供大家了解一下:
2017-12-17:一个比特币=19850刀, 人民币136591.82
2019-5-14:一个比特币=8000刀, 人民币55049.6
总数比特币2100W:168000000000刀, 人民币1156041600000
比特币的技术构成
比特币的系统包括三层:底层技术——区块链;中层链接——协议;上层——货币。
货币指的就是比特币;
协议就是基于区块链的资金转账系统;
底层技术就是区块链,即去中心化、分布式记录的公开透明的交易记录总账,其交易数据 全网节点共享。矿工负责记录,全网监督;
1. 金融清算不在依赖于某个第三方
2 . 区块链的溯源对我们生活会起到非常重要的作用
3 . 区块链技术还在懵懂时期,对于普通人真没啥太多直接的影响。如果有,那就是炒币,股价,诈骗
仅此而已。新的技术出现都会第一时间被骗子用来进行产品的包装
区块链中的hash哈希算法
Hash算法早于区块链已经存在无数年了,是密码学的重要算法。
例子:
比较 hello 和 hellp是否相等, 字符串很少,可以循环一个一个字符串比较。
同上比较 hello...hello 和 hello...hellp, 字符串很多,如果循环一个一个比较,效率会很低。
把每一位字符转换为数字,并根据所在位数乘以10的次方,然后计算各位数字的和。
hello ==> h(104) e(101) l(108) l(108) o(111)104*10^4 + 101*10^3 + 108*10^2 + 108*10 + 111= 1152991
hellp ==> h(104) e(101) l(108) l(108) p(112)104*10^4+101*10^3+108*10^2+108*10+112= 1152992
通过比较 1152991 != 1152992 ,可以判断这两个字符串不同。
哈希算法,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数
应用场景:
1 传输或下载的文件有没有在传输下载过程中遭到破坏?计算一下,看看和官方的Hash值是否相同(MD5)。
2 领导已经签章过的文件,是不允许修改的。这个是做数字签章。
3 比特币的区块链要保证不可修改。每个区块都计算生成了一个唯一的数字。
在区块链中如果需要验证交易的信息是否未被篡改,就是通过hash的算法,将很大的文件或者字符串转化成一个数字,直接进行一次数字比较效率就变得很高了。
A要交易比特币给B,交易中包含3部分信息:
1- A的比特币地址(A的公钥)
2- 交易的比特币数量
3- B的比特币地址(B的公钥)
4- 数字签名文件:是A通过自己掌握的私钥对自己的比特币地址(公钥)和他向B发送的交易比特币数量的组合的哈希值进行加密得到的
A将这些数据以及加密数字签名都会通过网络发送进行全网验证。当矿工收到这个数据后,就会进行验证,并同时做两项工作:
1- 把所有公开数据(交易金额、两个人的公钥)放入哈希算法中,得到一个哈希值(例如为Hash1)
2- 使用A的公钥对数字签名进行解密,得到一个哈希值(例如为Hash2)
对比Hash1和Hash2,如果两者相同,那么它就是一个合法的交易
工作量证明机制
区块链中每个人都平等的账本,那么谁来向区块链添加区块?如何信任这个人呢?
为此,有了工作量证明POW这个概念,可以理解为解一道复杂的题,需要付出大量的计算。他们的工作就是验证交易并解决与创建块相关的复杂数学难题。
每一个区块都有一个哈希值,是几项数据的组合,包括:
前一个区块的哈希值交易数据的哈希值nonce,最终的哈希值必须以指定数量的0开头才行。
举个例子,字符串Hello World!,我们给出的工作量要求是:可以在这个字符串后面添加一个叫做nonce的整数值,对变更后的字符串进行SHA256哈希算法,如果得到的哈希结果(以16进制的形式表示)是以"0000"开头的,则通过验证。
为了达到这个工作量证明的目标。我们需要不停的递增nonce值,对得到的新字符串进行SHA256哈希运算。
按照这个规则,我们需要经过4251次计算才能找到恰好前4位为0的哈希散列。
说明:本文部分内容来源于转载莫法