主页 > imtoken钱包官方下载最新版 > 区块链深度分析报告:比特币区块链核心技术详解

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

来源 | 乐清智库,作者入选 | 深入的行业研究,

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

,区块链的出现主要解决了传统中心化网络部署方式带来的诸多问题,包括:,1)交易不公开,中心节点掌握分布式节点信息,子节点不掌握掌握其他节点的信息。;,2) 系统的安全取决于中心节点的安全。中心节点存在道德风险,大数据可用于数据变现,存在隐私泄露风险;,3)系统风险随网络规模增大而上升;,4)@ > 中心节点维护系统运营涉及成本较高等,源自比特币,区块链采用分布式部署P2P网络,同步更新解决上述问题:,1)分布式方面:,区块链的每个节点都掌握着每个节点的信息,信息可以采用匿名的原则,但交易是公开的,系统中的交易审批取决于所有节点的共识原则。这些规则对所有节点都是公平且强制性的。因此,随着网络规模的扩大,系统风险降低;,2) 同步更新:由于每个节点都有自己过去去过的所有交易的历史记录,相邻节点之间存在逻辑嵌套关系每 10 分钟由交易所组成的区块,随着时间的推移,交易数量增加。每个节点内的同步更新链变得更长,更难被篡改。, 并且信息可以采用匿名的原则,但是交易是公开的,系统中的交易审批依赖于所有节点的共识原则。这些规则对所有节点都是公平且强制性的。因此,随着网络规模的扩大,系统风险降低;,2) 同步更新:由于每个节点都有自己过去去过的所有交易的历史记录,相邻节点之间存在逻辑嵌套关系每 10 分钟由交易所组成的区块,随着时间的推移,交易数量增加。每个节点内的同步更新链变得更长,更难被篡改。, 并且信息可以采用匿名的原则,但是交易是公开的,系统中的交易审批依赖于所有节点的共识原则。这些规则对所有节点都是公平且强制性的。因此,随着网络规模的扩大,系统风险降低;,2) 同步更新:由于每个节点都有自己过去去过的所有交易的历史记录,相邻节点之间存在逻辑嵌套关系每 10 分钟由交易所组成的区块,随着时间的推移,交易数量增加。每个节点内的同步更新链变得更长,更难被篡改。, 这些规则对所有节点都是公平且强制性的。因此,随着网络规模的扩大,系统风险降低;,2) 同步更新:由于每个节点都有自己过去去过的所有交易的历史记录,相邻节点之间存在逻辑嵌套关系每 10 分钟由交易所组成的区块,随着时间的推移,交易数量增加。每个节点内的同步更新链变得更长,更难被篡改。, 这些规则对所有节点都是公平且强制性的。因此,随着网络规模的扩大,系统风险降低;,2) 同步更新:由于每个节点都有自己过去去过的所有交易的历史记录,相邻节点之间存在逻辑嵌套关系每 10 分钟由交易所组成的区块,随着时间的推移,交易数量增加。每个节点内的同步更新链变得更长,更难被篡改。, 随着时间的推移,交易的数量会增加。每个节点内的同步更新链变得更长,更难被篡改。, 随着时间的推移,交易的数量会增加。每个节点内的同步更新链变得更长,更难被篡改。,

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

比特币的核心技术

,

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

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

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

比特币的核心技术

,1) 交易定义,PublicKeyCryptography。比特币区块链 PKC 目前为每个网络参与者提供了两个密钥,一个为其他用户所知的公钥(相当于用户的用户名)和一个只有用户知道的私钥(相当于用户的密码)。),任何拥有您的公钥的参与者都可以向您发送只有您可以阅读的加密消息。, 使用私钥,发件人可以对加密邮件进行数字签名,向收件人证明发件人就是你。KPC采用椭圆非对称加密技术,安全性强。,如何发送比特币?示例:A 向比特币区块链网络发送一条或多条消息,A 在消息中指定发送方和接收方地址。对于每个收件人地址,A 指定发送的比特币数量。, A 使用消息中的私钥对消息进行数字签名,以证明接收者的身份。信息发送后,A 等待比特币区块链网络对信息进行验证和确认。,2) 单节点交易验证,A的交易信息发送后,比特币区块链网络中任意节点上的机器收到信息后,开始做如下处理: , 检查机器本身是否已处理通过交易(判断交易的唯一性);检查交易涉及的地址是否合法有效;检查数字签名以确保原始发件人是输入地址的合法有效所有者;检查发送方的比特币是否在其他地方已经被消费和提现;

, 如果以上检查没有问题,则节点将该交易标记为有效,并将其添加到“未确认交易”列表中。,然后将信息广播给网络中的其他节点,网络中的节点开始验证节点对交易的共识并在网络中广播。进行单点验证的矿工可以获得一小部分比特币作为奖励。,3) 加入区块,创建区块,交易经过挖矿节点验证,验证成功后加入区块。每个节点必须正确地为这十分钟内的每笔交易打上时间戳,并将其记录在最新的区块中,因此每个区块包含过去十分钟内的所有交易。,4)@>节点共识验证,每个矿工节点需要在过去十分钟内解决SHA256算法争夺区块的合法记账权,争取获得12.5比特币奖励(数量基本每四年减半,且已经开采了超过 1600 万个比特币)。, 如果一个矿工节点解决了十分钟 SHA256 问题,它将把十分钟区块中记录的所有带时间戳的交易发布到全网,并被全网其他矿工节点检查。,5) 区块变成链,全网其他矿工节点检查区块记账的正确性(因为他们也是时间戳记账,但不存在合法的区块记账权竞争,所以没有奖励),如果没有错误,它们将争夺合法区块之后的下一个区块,从而形成合法的记账区块单链,即比特币支付系统的总账——区块链。一般来说,每笔交易都要经过六次区块确认,也就是六次十分钟,一共需要60分钟,才能最终被确认为区块链上的合法交易。,

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

, 比特币区块链本身就是一个全球分布式数据库。最大的特点是没有中央管理员,所以不能被单方控制,但同时可以做到交易传输数据的可信。,网络节点(nodes)是矿工,负责承载网络传输任务,负责交易验证和信息记录存储。,个人用户、商家等可以通过钱包和交易所介入比特币区块链网络,但不涉及区块链上的交易验证和记录存储。,比特币的所有权由数字密钥、比特币地址和数字签名确认。比特币钱包里只有钥匙,没有比特币。, 由于每笔交易都需要有效的签名来处理和存储,因此拥有密钥就相当于拥有和控制账户中的比特币。,公钥和私钥以1对1的形式出现,公钥相当于用户名,私钥相当于密码,私钥是一个随机生成的数字,公钥由不可逆椭圆曲线运算加密函数,公钥通过散列函数传递。计算产生一个比特币地址,可以公开和共享。, 私钥是一个随机生成的数字,公钥是通过不可逆椭圆曲线运算加密函数计算出来的,公钥是通过散列函数传递的。计算产生一个比特币地址,可以公开和共享。, 私钥是一个随机生成的数字,公钥是通过不可逆椭圆曲线运算加密函数计算出来的,公钥是通过散列函数传递的。计算产生一个比特币地址,可以公开和共享。,

比特币的核心技术

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

,具有分散、抗攻击、辅助传输、韧性强等特点。,

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

,

比特币的核心技术

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

从而控制10分钟左右的出块时间。,目标值(TheTarget):,解密过程根据包含在其中的叠加内容,为每个矿工放置一个随机数链(workload,ProofofWork)块头(见“块头”部分),目标值是经过反复 SHA256 计算得到的。目标值密切相关。只有小于目标值的Hash才有效,否则无效,必须重新计算。每个区块头都包含一个难度系数,它决定了计算 Hash 的难度。区块链协议规定用一个常数来划分目标值,可以通过难度系数(Target=TargetMax/Difficulty)得到。目标值(TheTarget):,解密过程根据区块头中包含的叠加内容(见“区块头”部分),为每个矿工放置一个随机数链(workload,ProofofWork),重复 SHA256 计算后达到目标值。目标值密切相关。只有小于目标值的Hash才有效,否则无效,必须重新计算。每个区块头都包含一个难度系数,它决定了计算 Hash 的难度。区块链协议规定用一个常数来划分目标值,可以通过难度系数(Target=TargetMax/Difficulty)得到。目标值(TheTarget):,解密过程根据区块头中包含的叠加内容(见“区块头”部分),为每个矿工放置一个随机数链(workload,ProofofWork),重复 SHA256 计算后达到目标值。目标值密切相关。只有小于目标值的Hash才有效,否则无效,必须重新计算。每个区块头都包含一个难度系数,它决定了计算 Hash 的难度。区块链协议规定用一个常数来划分目标值,可以通过难度系数(Target=TargetMax/Difficulty)得到。ProofofWork)是根据区块头(见“区块头”部分)所包含的叠加内容为每个矿工放置的,经过反复SHA256计算达到目标值。目标值密切相关。只有小于目标值的Hash才有效,否则无效,必须重新计算。每个区块头都包含一个难度系数,它决定了计算 Hash 的难度。区块链协议规定用一个常数来划分目标值,可以通过难度系数(Target=TargetMax/Difficulty)得到。ProofofWork)是根据区块头(见“区块头”部分)所包含的叠加内容为每个矿工放置的,经过反复SHA256计算达到目标值。目标值密切相关。只有小于目标值的Hash才有效,否则无效,必须重新计算。每个区块头都包含一个难度系数,它决定了计算 Hash 的难度。区块链协议规定用一个常数来划分目标值,可以通过难度系数(Target=TargetMax/Difficulty)得到。只有小于目标值的Hash才有效,否则无效,必须重新计算。每个区块头都包含一个难度系数,它决定了计算 Hash 的难度。区块链协议规定用一个常数来划分目标值,可以通过难度系数(Target=TargetMax/Difficulty)得到。只有小于目标值的Hash才有效,否则无效,必须重新计算。每个区块头都包含一个难度系数,它决定了计算 Hash 的难度。区块链协议规定用一个常数来划分目标值,可以通过难度系数(Target=TargetMax/Difficulty)得到。

难度系数越高,目标值越小。, 随着全网算力的增加,难度系数迅速上升。例如,第 10000 个区块的难度系数为 14,484.16,第 504,000 个区块的难度系数已升至 2,227,847,638,503.63。,为了保持输出速率恒定在十分钟,比特币区块链白皮书中设计了难度系数的动态调整机制。难度系数每两周调整一次(2016 个区块)。,如果2周内平均出块速度为8分钟,则表示出块速度比法定速度快20%,因此难度系数会增加20%;如果平均生成速度为 12 分钟,这意味着该块比合法速度快20%。如果慢 20%,难度系数将降低 20%。,TheNonce:,随机数是只能使用一次的密码数。如果矿工通过哈希运算产生大于目标数的哈希值,则需要随机选择一个值并重新计算,直到找到小于或等于目标数的值。等于目标数的哈希值。, 更具体更直接的解释整个过程(3) 挖矿过程(2/2),MerkleRoot是区块头部分的Hash值,代表区块体部分的所有交易。在比特币中区块链,每笔交易产生后,都经过哈希处理成一段代码,广播到各个节点,在各个节点的区块中,它可能包含成百上千的交易,因此,为了节省存储空间,减少资源消耗,比特币区块链的设计原理采用了MerkleTree机制,使这成百上千的交易的Hash值形成成对形成一个新的 Hash 值,一直重复到最后一代。一组最终的 Hash 值比特币的核心技术,即 MerkleTreeRoot,这个最终的 Hash 值会记录在 BlockHeader 中,BlockHeader 的大小只有 32 Bytes。重复直到最后一代。一组最终的 Hash 值,即 MerkleTreeRoot,这个最终的 Hash 值会记录在 BlockHeader 中,BlockHeader 的大小只有 32 Bytes。重复直到最后一代。一组最终的 Hash 值,即 MerkleTreeRoot,这个最终的 Hash 值会记录在 BlockHeader 中,BlockHeader 的大小只有 32 Bytes。

, MerkleTree 机制可以大大减少数据传输量和计算资源的消耗。验证时,只需验证 MerkleTree 的 Root 值即可。,在区块链中,每个子块只有一个父块,但是当不同的矿工发现不同的块时(两个矿工同时求解SHA256算法并广播全网),就会出现一个父块的情况暂时有很多子块的称为分叉。, 在任何一个区块中,第一项都不会转出地址,这就是所谓的 CoinBase(挖矿交易)。2.5 个比特币。, 如果所有节点都同意矿工这样写,矿工将获得挖矿收益。不同矿工填块的时候,数据肯定是不一样的,因为每个矿工的第一项肯定是不一样的,并且矿工只会将挖矿收益转移到自己的地址。, 所以比如矿工 A 的 CoinBase 是“A got 12.5 个比特币”,矿工 B 的 CoinBase 是“B got 12.5 个比特币”。, 由于每个矿工的出块数据不同,解题得到的结果也不同,都是正确答案,只是出块不同。, 由于距离的关系,不同的矿工依次看到这两个区块。通常,矿工复制他们首先看到的区块,然后在这个区块之后开始新的挖矿。他们解决问题得到的结果也不同,都是正确的答案,只是积木不同。, 由于距离的关系,不同的矿工依次看到这两个区块。通常,矿工复制他们首先看到的区块,然后在这个区块之后开始新的挖矿。他们解决问题得到的结果也不同,都是正确的答案,只是积木不同。, 由于距离的关系,不同的矿工依次看到这两个区块。通常,矿工复制他们首先看到的区块,然后在这个区块之后开始新的挖矿。

比特币的核心技术

,从分叉的区块来看,由于不同的矿工遵循不同的区块,所以两条分叉链上的算力存在差异。形象地说,跟随着两条链的矿工数量是不一样的。的。, 由于解决问题的能力与矿工数量成正比,所以两条链的增长率也会不同。一段时间后,一条链总是比另一条长。, 当矿工发现全网有一条更长的链时比特币的核心技术,他会放弃他当前的链,复制所有新的更长的链,在这条链的基础上继续挖矿。所有矿工都这样做,该链成为主链,而被放弃的分叉链消失。,

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

, 最终只有网络中的一条链会被保留并成为真正的账本,其他所有子链都将失效。交易区块扩展的区块“长度”越长(包括计算能力越强),被网络中其他节点更改或拒绝的可能性就越小。一般来说,一笔交易需要经过 6 次确认才能最终被记录下来。下来,“六级”是比特币用户认可的最终确认级别。,更多精彩内容,关注

链闻公众号(id:chainnewscom),或来微博