比特币区块链核心技术详解

当前位置:首页 > 币圈百科 > 比特币区块链核心技术详解

比特币区块链核心技术详解

2023-01-02币圈百科338

区块链的出现主要解决了传统集中式网络部署模式带来的诸多问题,包括:

1)事务不开放,中心节点拥有分布式节点的信息,子节点没有其他节点的信息;

2)系统的安全性取决于中心节点的安全性,存在道德风险。大数据可以用来实现数据,存在隐私泄露的风险;

3)系统风险随着网络规模的扩大而增加;

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

起源于比特币。区块链利用P2P网络的分布式部署和同步更新解决了上述问题:

1)在分布式方面,区块链的每个节点都有每个节点的信息,信息可以匿名,但交易是公开的,系统内交易的审批依赖于所有节点的共识原则,规则对所有节点都是公平的、强制的。因此,随着网络的扩大,系统风险反而降低;2)在同步更新方面,由于每个节点都有过去所有事务的历史记录,并且每10分钟交换一次组成的相邻块之间存在逻辑嵌套关系,随着时间的推移,事务的数量越来越多,每个节点中同步更新的链条越来越长,被篡改的难度越来越大。

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

1)交易定义公钥加密(public key encryption)比特币PKC目前为每个网络参与者提供两个密钥,一个是其他用户知道的公钥(相当于用户的用户名),一个是只有用户自己知道的私钥(相当于用户的密码)。任何拥有您的公钥的参与者都可以向您发送只有您能阅读的加密消息。使用私钥,发送者可以对加密的消息进行数字签名,以向接收者证明发送者就是你自己。KPC采用椭圆非对称加密技术,安全性强。比特币怎么发?示例:A向比特币区块链网络发送一条或多条消息,A在消息中列出发送方和接收方的地址。对于每个收件人地址,A会指定发送的比特币数量。使用私钥对信息进行数字签名,以证明收件人的身份。发送信息后,A等待比特币区块链网络验证并确认信息。区块链深度分析报告:比特币区块链核心技术详解2)单节点交易验证A的交易信息发出后,比特币区块链网络中任意节点(矿工)上的机器收到信息时,开始做如下处理:检查机器本身是否处理过该交易(确定交易的唯一性);检查交易涉及的地址是否合法有效;检查数字签名,确保原始发件人是输入地址的合法有效所有者;检查汇款人的比特币是否在别处被消费和提现;检查发送方的比特币数量至少与接收方提前收到的比特币数量相同(InputOutput,任何差异都是处理费)。如果上述检查没有问题,则该节点将该交易标记为有效,并将其列入“未确认交易”列表。然后将信息广播给网络中的其他节点,网络中的所有节点开始通过节点共识来验证事务,并在网络中广播。进行单点验证的矿工可以获得少量比特币作为奖励。

3)加入块,块创建。该事务由挖掘节点验证,验证成功后将被添加到块中。每个节点要正确的给过去十分钟内的每笔交易打上戳,记录在最新的块中,这样每个块就包含了过去十分钟内的所有交易。4)节点共识通过求解SHA256的算法验证每个矿工节点需要在过去的十分钟内争夺区块的合法记账权,争取12.5个比特币的奖励(这个数字基本上每四年减少一半,目前已经挖出了1600多万个比特币)。如果一个矿工节点解决了10分钟的SHA256问题,它将向整个网络宣布其10分钟块中记录的所有带时间戳的事务,并且它将被整个网络中的其他矿工节点检查。

5)块被链接。全网其他矿工检查分块记账的正确性(因为也是时间戳记账,只是不争夺合法的分块记账权,所以没有奖励)。如果没有错误,他们将争夺合法区块后的下一个区块,从而形成一个合法记账的单一区块链,即区块链。一般来说,每笔交易都要经过六次大宗确认,也就是六次十分钟共计60分钟,才能最终被认定为区块链上的合法交易。

比特币区块链本身就是一个全球分布式数据库。它最大的特点是没有中央管理人,所以不能被单一一方控制,但同时又能达到交易传输数据的可信。节点作为矿工,负责承载网络运输任务,同时负责交易验证和信息记录存储。用户、企业等。可以通过钱包和交易所介入比特币区块链网络,但不涉及区块链的交易验证和记录存储。

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

比特币的所有权通过数字密钥、比特币地址和数字签名来确认。比特币钱包只包含密钥,不包含比特币。由于每笔交易都需要一个有效的签名来处理和存储,因此拥有一个密钥就相当于拥有了账户中比特币的全部和控制权。公钥和私钥成对出现,公钥相当于用户名,私钥相当于密码,私钥是随机生成的数。通过不可逆椭圆曲线运算的加密函数计算公钥,通过公钥的哈希函数运算得到一个比特币地址,可以公开和共享。

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

具有去中心化、抗攻击、传输辅助、抗攻击能力强的特点。

区块链第三核心技术:块和链[X] [X] [X] [X] [X] [X] [X] [X]采矿过程(1/2)采矿涉及矿工节点。因为每个块后面只能跟一个块,所以矿工总是只能在最新的块后面生成下一个块。所以,如果块添加速度过快,就会出现一个块刚刚同步好,下一个块准备基于它生成,其他节点又有新块生成的情况。因此,比特币区块链白皮书协议中的设置故意增加新块的难度——平均来说,整个网络每10分钟就能生成一个新块。需要注意的是,这个输出速度并不是白皮书中硬性命令规定的,而是通过将海量计算作为获得有效Hash的前提条件,从而将块蓑衣网小编2022生成时间控制在10分钟左右。

目标值:解密过程是每个矿工在块头包含的叠加内容的基础上放置一个随机数链(工作证明)(见“块头”一节),通过SHA256反复计算后达到目标值。矿工解密哈希的有效性与目标值密切相关。只有小于目标值的哈希才有效,否则无效,必须重新计算。每个块头都包含一个难度系数,决定了计算Hash的难度。区块链协议规定,目标值可以通过将一个常数除以难度系数(Target=Target max/难度)来获得。难度系数越大,目标值越小。随着全网计算能力的提升,难度系数迅速上升。比如第10000块的难度系数是14484.16,而第504000块的难度系数已经上升到了2227847638503.63。

为了保持十分钟的输出速率不变,比特币区块链白皮书中设计了难度系数动态调整机制。难度系数每两周调整一次(2016块)。如果2周内平均块生成速蓑衣网小编2022度为8分钟,说明比法定速度快20%,那么难度系数会提高20%;如果平均生成速度是12分钟,就意味着比法定速度慢了20%,难度系数也就降低了20%。随机数:随机数是只能使用一次的密码。如果挖掘器生成的散列值大于目标数thro

更具体更直接的解释整个过程(3)挖掘过程(2/2)

Merkle Root是块头部分的哈希值,代表块体部分的所有事务。在比特币区块链中,每笔交易生成后,都会被散列成一个代码,并传播到每个节点。每个节点的块可能包含数百到数千个事务。因此,为了节省存储空间,减少资源消耗,比特币区块链的设计原理采用了Merkle Tree机制,使得这几百到上千个交易的哈希值通过成对形成一个新的哈希值的方式反复重复,直到最终生成一个最终的哈希值,即Merkle TreeRoot,这个最终的哈希值会记录在块头中,只有32个。MerkleTree机制可以大大减少数据传输量和计算资源的消耗。验证的时候只需要验证这个Merkle树的根值。

分支和六度认证

分支:在区块链,每个子块只有一个父块,但当不同的矿工找到不同的块(两个矿工同时求解SHA256算法并在全网广播)时,一个父块临时拥有多个子块,称为分支。任何一个块,第一个都没有转出地址,也就是所谓的CoinBase (mining transaction)。没有人付给矿工这笔钱,但矿工只是正确地写道,他们得到了12.5个比特币。如果所有节点都批准矿工这样写,矿工就获得了采矿收入。不同矿工填块的时候,数据肯定是不一样的,因为每个矿工的第一条规则肯定是不一样的,矿工只会把开采所得转到自己的地址。所以比如矿工A的CoinBase是“A获得12.5个比特币”,矿工B的CoinBase是“B获得12.5个比特币”。

因为每个矿工的块数据不一样,所以他们解题得到的结果也不一样。都是正确答案,只是块不一样。由于距离的原因,不同的矿工依次看到这两个区块。通常,矿工会先复制他们看到的区块,然后在这个区块之后开始新的采矿工作。从分叉的区块开始,因为不同的矿工跟随不同的区块,在分叉的两条不同的链中,计算能力存在差异。形象地说,跟两个链的矿工人数是不一样的。因为解决问题的能力和矿工人数成正比,所以两个链条的增长速度会不一样。一段时间后,总有一条链比另一条长。当一个矿工发现整个网络中存在一个更长的链时,他会放弃他当前的链,复制所有新的和更长的链,并在这个链的基础上继续挖掘。所有的矿工都这么做,这个链就成了主链,分叉被抛弃的链就消失了。

最终网络中只保留一条链,成为真正的账本,其他子链全部无效。事务扩展的块的“长度”越长(涉及的计算能力越强),它被网络中的其他节点改变或拒绝的可能性就越小。一般来说,一笔交易要确认六次才能最终入账。“6级”是比特币用户认可的最终确认级别。

比特币区块链核心技术详解 | 分享给朋友: