DBA女神讲解区块链原理

2018年初“去中心化”、“比特币”、“挖矿”、“矿工”成为各大技术、金融公众号首推话题。近期达沃斯论坛的发起人之一施瓦布先生认为区块链是第四次工业革命的重要组成部分。

央视:区块链是第四次工业革命

第四次工业革命的重要组成会包括人工智能、区块链、3D打印、智能制造等相关技术,其中区块链是连接各个技术的重要桥梁

区块链在不同领域的人眼里,是不同的东西:

搞金融的人认为区块链是一个分布式的去中心化的记账账本。

搞安全和密码学的人说区块链是基于密码学构建的对等网络。

搞技术的人认为区块链一个保证最终一致性的分布式数据库。

对于区块链深度研究者,区块链是一种思想,一种信仰

区块链作为数字货币的底层技术到底是什么?通俗易懂版本已经轰炸一个月,现从具体实现方式解读区块链、Hash算法及挖矿原理。

区块链

DBA女神

区块链到底是啥玩意?

一句话,区块链是一种特殊的分布式数据库。

传统的数据库MySQL、Oracle都是有DBA管理员来管理维护的,区块链是一个无人管理的分布式数据库,没有中心节点,无国界,任何人都可以加入区块链网络,成为一个节点。

区块链运行机制:

用户创建交易并签名发送给P2P网络

矿工验证交易后将一批交易打包成新区块并获取挖矿奖励

其他节点验证并接受或者拒绝该区块

每个新区块都指向前一个区块并形成区块链

全网所有账户余额与全部交易历史记录都保存在区块中

DBA女神说

“区块”到底是样子呢?

区块链是有一个个区块构成的链,每一个区块记录交易记录。每一个区块都指向前一个区块,从而形成一个链条。

区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。类似于我们mysql数据库里面的字段及对应数值,存储相关信息。

区块结构由区块头和区块体构成。

区块头由区块Hash、上一块区块的Hash、交易记录的Merkle Hash、时间戳、目标值和随机数构成。

区块体记录交易记录,包括矿工奖励、用户地址及交易金额.

区块参数含义如下:

区块HASH:每个区块上都一个唯一的HASH标识

上一个区块的HASH:上一个区块的区块HASH

Markle Hash 交易记录的Merkle hash数值

区块体记录交易记录,包括矿工奖励、用户地址及交易金额.

DBA女神

区块Hash算法到底怎么回事?

区块链不可篡改有hash算法保证

(不懂没事,姐给通俗点一下)

对于HASH算法只要知道以下几点

1 如果两份数据的HASH相同,那么两份数据相同

2 修改任意数据任一bit,HASH数值都会变动

3 HASH具有不可逆性:

给一份数据可以算出对应的Hash

给一个HASH不能算出对应的源数据

常用hash算法如下表

比特币用的HASH算法是SHA-256和RipeMD160

比特币用的HASH算法是SHA-256和RipeMD160

一种是两次SHA-256:

hash256=sha256(sha256(data))

一种是 先计算SHA-256,再计算RipeMD160

hash160=ripemd160(sha256(data))

其中区块Hash是按照这个来算的

Mercle Hash是按照交易数量来算,若交易数量为偶数直接按照下图,若交易数量为奇数,找最后一个交易复制版做替补转换成偶数交易。

就像多米诺骨牌效应一样,如果有人修改了区块链上的任意一个交易记录,Mercle hash数值会改变,那么区块hash就会改变,下一个区块hash也要改变,所以区块链就有不可篡改性。如果想要篡改,需要篡改全世界的区块hash数值。

伪造区块链需要全网51%的算力。

DBA女神

"挖矿" 和“矿工”到底是啥?

在比特币的P2P网络中,时刻有这样的节点时刻进行计算,试图把新的交易打包成新的区块,打包成区块的矿工,可以获得一笔比特币作为奖励,所以打包新区快,被称为挖矿,挖矿是工作量证明机制(POW proof of work)。

姐,通俗点好不

比如你们班,全班1个女生,10个男生,男生都争先恐后约妹子单独看电影

......大伙一起

女生出考题,哪个男生解答对了,女孩就跟谁一起看电影

请出题

最快解答并且结果女生验证正确的男生看电影走起

......

10个男生就是矿工,算题是挖矿,跟妹子看电影是挖矿奖励

比特币的工作量证明机制

不断尝试计算区块头 hash256(区块头)直到计算出 区块哈希值小于难度值。

例如比特币要求,必须计算出连续17个0开启的Hash数值:

矿工先确定上面的prev HashMerkle HashtimestampBits,不断变化Nonce来确定hash数值大约需计算16 的17次方,合计计算2.9万亿次。

ps:若真要人算,根本不可能有人算出来,还是租个男生看电影吧,哈哈

比特币的难度值是在不断调整的

难度值保证大约每10分钟产生一个区块

难度数值在每2015个区块调整一次

如果区块平均生成时间小雨10分钟 全网算力增加

如果区块平均生成时间大于10分钟 全网算力减少

难度数值随着全网算力的增减来动态调整

DBA女神

总结一下

区块链是一个无人管理的分布式数据库;

区块链有一个个区块构成;

区块有区块头和区块体组成;

区块链Hash算法保证所有的区块链不可更改;

比特币挖矿是一种带经济激励的工作量证明;

技术版本的区块链讲解完毕,大家看懂了么?

近日比特币狂跌了,有跌有涨才有韭菜割

关注币圈、链圈、应用圈的宝宝们留言交流

下期解读去中心化交易和具体支付实现形式

敬请期待

关注网易乐得DBA

精深数据库神功

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180202G191F600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券