搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 乐晴智库精选 > 区块链深度分析报告:比特币区块链核心技术详解

区块链深度分析报告:比特币区块链核心技术详解

乐晴智库精选 2018-02-28



区块链的出现主要解决的是传统中心化网络部署方式所带来的众多问题,包括:


1) 交易非公开化,中心节点掌握分布节点信息,分节点不掌握其他节点信息;


2) 系统安全性取决于中心节点安全性,中心节点存在道德风险,可利用大数据进行数据变现,存在隐私泄露风险;


3) 系统风险性随着网络规模扩大而上升;


4) 中心节点维护系统运行涉及较高成本等。


区块链深度分析报告:比特币区块链核心技术详解


源于比特币,区块链利用分布式部署P2P网络和同步更新完成了对于以上问题的解决:

1) 分布式方面:


区块链每个节点掌握各个节点信息,信息可以采用匿名化原则,但交易公开,且系统内交易批准取决于所有节点共识性原则,规则对于所有节点公平且强制,因此,随着网络规模扩大,系统风险性反而下降;

2) 同步更新方面:


由于每个节点都存有过去所去所有交易的历史记录,且每10分钟交易所组成的比邻区块之间存在逻辑嵌套关系,故随着时间推移,交易增多,每个节点内同步更新的链条愈发变长,愈发难以被篡改。

区块链深度分析报告:比特币区块链核心技术详解

区块链深度分析报告:比特币区块链核心技术详解

比特币完成了区块链“从0到1”的诞生,比特币区块链交易简易流程:


区块链深度分析报告:比特币区块链核心技术详解


1) 交易定义


公共钥匙加密(PublicKeyCryptography)。比特币区块链PKC目前为每位网络参与者提供两把钥匙,一个为其他用户所知的公匙(相当于用户用户名),一个只为用户自己所知的私匙(相当于用户密码),任何有你公匙的参与者可以给你发送一条加密信息,该信息只有你可以读到。


使用私匙,发信人可以在加密信息中进行数字签名,向收信人证明发信人是你自己。KPC采用椭圆不对称加密技术,安全性较强。



A在信息中利用私匙对信息进行数字签名,向收件人证明身份。信息发送后,A等待比特币区块链网络对于信息进行验证和确认。


下载本文完整报告,请在PC端访问乐晴智库网站: www.767stock.com


区块链深度分析报告:比特币区块链核心技术详解


2) 单节点交易核查


A的交易信息发送后,当比特币区块链网络内任一节点(矿工)上的机器收到了信息,其开始做以下处理:



如果以上检查没有问题,节点将交易标注成有效,将其列入“未确认交易”名单。


然后将信息广播至网络内其它节点,网络内众节点开始对交易进行节点共识验证,并在网络中进行广播。进行单点验证的矿工可以获得一小部分比特币获得奖励。

区块链深度分析报告:比特币区块链核心技术详解


3) 加入区块,区块创造


该笔交易被一个挖矿节点验证,验证成功后会被添加到区块中。每个节点要正确无误的给这十分钟的每一笔交易盖上时间戳并记入最新的区块中,所以每个区块包含过去十分钟的所有交易。


4) 节点共识验证


每个矿工节点需通过解SHA256的算法来竞争过去十分钟区块的合法记账权,并争取得到12.5个比特币的奖励(该数量基本是每四年递减一半,目前已挖出1600万以上比特币)。


若一个矿工节点解开了这十分钟的SHA256难题,其将向全网公布其这十分钟区块记录的所有盖时间戳交易,并由全网其他矿工节点核对。


区块链深度分析报告:比特币区块链核心技术详解


5) 区块成链


全网其他矿工节点核对该区块记账的正确性(因为他们同时也在盖时间戳记账,只是没有竞争到合法区块记账权,因此无奖励),没有错误后他们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账的区块单链,也就是比特币支付系统的总账—区块链。


一般来说,每一笔交易,必须经过六次区块确认,也就是六个十分钟共计60分钟,才能最终在区块链上被承认合法交易。

区块链深度分析报告:比特币区块链核心技术详解


比特币区块链本身是一种全球分布式数据库,最大的特点是没有中央管理员,因此无法被单一方所控制,但同时可以做到交易传输数据的可信性。


网络节点(nodes)为矿工,负责承载网络运输任务,同时其负责交易的验证以及信息记录储存。


个人用户,商家等可以通过钱包和交易所形式介入比特币区块链网络,但其不涉及区块链的交易验证和记录储存。


区块链深度分析报告:比特币区块链核心技术详解


区块链核心技术之一:数学加密



由于每笔交易需一个有效签名才能被处理存储,因此拥有密钥相当于拥有了帐户中比特币的所有和控制权。


区块链深度分析报告:比特币区块链核心技术详解


区块链核心技术之二:P2P网络


拥有去中心化、抗攻击、协助传输、韧性强的特点。

区块链深度分析报告:比特币区块链核心技术详解


区块链核心技术之三:区块和链


区块链深度分析报告:比特币区块链核心技术详解


挖矿流程(1/2)


挖矿由矿工型节点共同参与,由于需要保证节点之间的同步,所以新区块的添加速度不能太快。


因为每个区块的后面,只能跟着一个区块,矿工永远只能在最新区块的后面,生成下一个区块。


因此若区块添加速度过快,就会出现刚刚同步了一个区块并准备基于其生成下一个区块,别的节点又有新区块生成的情况。因此比特币区块链白皮书协议中设置故意让添加新区块变得较困难—平均每10分钟,全网才能生成一个新区块。


需注意,这种产出速度并非由白皮书硬性命令规定,而是通过使海量计算成为得出有效Hash的先决条件,从而控制区块产生时间约为10分钟。


区块链深度分析报告:比特币区块链核心技术详解


目标值(TheTarget):


解密的过程为各个矿工在区块头所包含的叠加内容(参见“区块头”部分)基础上放置随机数字链(工作量,ProofofWork),经过SHA256反复计算后达成目标值。


矿工解密运算Hash的有效性跟目标值密切相关,只有小于目标值的Hash才有效,不然则无效,必须重算。


每个区块头包含一个难度系数(Difficulty),此值决定了计算Hash难度。区块链协议规定,使用一个常量除以难度系数(Target=TargetMax/Difficulty),可得到目标值。难度系数越大,目标值就越小。


随着全网算力提升,难度系数快速上升。例,第10000个区块难度系数为14,484.16,而第504,000个区块难度系数已上升为2,227,847,638,503.63。


区块链深度分析报告:比特币区块链核心技术详解


为了将产出速率恒定在十分钟,比特币区块链白皮书内设计了难度系数的动态调节机制。难度系数每两周(2016个区块)调整一次。


若2周内,区块平均生成速度是8分钟,就意味着比法定速度快了20%,因此难度系数就要调高20%;若平均生成速度是12分钟,就意味着比法定速度慢了20%,难度系数就要调低20%。


随机数(TheNonce):


随机数为只能使用一次的密码数字,若矿工通过哈希运算产生了一个大于目标数的哈希值,则其需选择随机值重新进行计算,直到找到小于或等于目标数的哈希值。


区块链深度分析报告:比特币区块链核心技术详解


更具体和直接解释整个流程(3)挖矿流程(2/2)


MerkleRoot是区块头部分内的Hash值,代表了区块体部分内的所有交易。在比特币区块链中,每笔交易产生后,都已经被Hash成一段代码并广播给各节点。


在各节点的区块中,可能包含数百笔到数千笔的交易,因此,为节省储存空间并减少资源耗费,比特币区块链的设计原理採用MerkleTree机制,让这些数百到数千笔的交易Hash值经由两两一组形成一个新Hash值的方式,不断重複进行,直到最后产生一组最终的Hash值,也就是MerkleTreeRoot,这个最终的Hash值便会被记录到BlockHeader中,只有32Bytes的大小。


MerkleTree机制可大幅减少资料传输量与运算资源消耗,验证时,只需验证这个MerkleTree的Root值即可。


区块链深度分析报告:比特币区块链核心技术详解


分叉和六度认证


分叉:


区块链中,每个子区块只有一个父区块,但当不同的矿工发现不同的区块时(两个矿工同时解出了SHA256算法,并进行全网广播),会出现一个父区块暂时拥有很多子区块的情况,这种情况被称为分叉。




所以比如说矿工A的CoinBase是“A获得了12.5比特币”,矿工B的CoinBase是“B获得了12.5比特币”。



由于每个矿工的区块数据皆不同,所以他们解题得出的结果也是不一样的,都是正确答案,只是区块不同。


由于距离远近,不同的矿工看到这两个区块是有先后顺序的。通常情况下,矿工们会把自己先看到的区块复制过来,然后接着在这个区块后开始新挖矿工作。


从分叉的区块起,由于不同的矿工跟从了不同的区块,在分叉出来的两条不同链上,算力存在差别,形象地说,就是跟从两个链矿工的数量是不同的。


由于解题能力和矿工的数量成正比,因此两条链的增长速度也会不一样。一段时间后,总有一条链的长度要超过另一条。


当矿工发现全网有一条更长的链时,其就会抛弃他当前的链,把新的更长的链全部予以复制,在这条链的基础上继续挖矿。所有矿工都这样操作,这条链就成为了主链,分叉出来被抛弃掉的链就消失。


最终网络内只有一条链会被保留,成为真正账本,其他分链皆为无效。交易区块所引伸的区块“长度”越长(包含算力越强),越不容易被网络内其他节点所改变或否认,一般来说一笔交易要经过6次确认才会被最终记录下来,“六级”是比特币用户所认可的最终确认等级。(乐晴智库收集整理自互联网)




1. 获得更多行业深度报告:

请访问乐晴智库网站 www.767stock.com


2. 探索乐晴智库:

微博/雪球/新浪财经/头条号:乐晴智库

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《区块链深度分析报告:比特币区块链核心技术详解》的版权归原作者「乐晴智库精选」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注乐晴智库精选微信公众号

乐晴智库精选微信公众号:lqzk767

乐晴智库精选

手机扫描上方二维码即可关注乐晴智库精选微信公众号

乐晴智库精选最新文章

精品公众号随机推荐