当前位置:首页区块链比特币的阻塞机制

比特币的阻塞机制

大部分资料对挖矿过程进行了详细的分析,并介绍了块体是如何产生的。然而,区块的生成并不是区块链的最终目标,区块链的最终目标是保存交易信息。因此,更重要的是要了解交易信息是如何打包到区块链中的。

输入和输出

事务在系统中由输入和输出表示。输入是指要从以前的输出中转移的货币。输出是指货币将被发送到的地址。区块链上的记账并不是告诉你一个账户现在有多少钱,而是告诉你这个账户目前收到了什么产出。例如,对于地址xsw0923sdfew2389dsfw,其相关记录中有a、B和C三个输出目标地址,因此其实际余额是这三个输出量的总和。

但现在这个地址的用户想转账。转移的过程不是取总数量的一部分进行转移,而是分别从a、B、C三个输出中取一部分或全部,加起来等于要转移的货币总数。在这个“取出”过程中,a、B和C成为输入,而转移目标记录是该事务的输出。

这样的设计确保了区块链中的资金来源明确。和会计一样,花一笔钱不仅要记录花在哪里,还要记下钱从哪里来。整个资金链是可追溯的,这也保证了交易不能伪造,资金不会凭空消失,也不会无中生有。

搞砸

将一个事务添加到块中涉及到三个哈希,一个是事务本身的哈希,另一个是当前块中所有事务的Merkle哈希根,另一个是块哈希。

如上所述,一个事务可以包含多个输入和输出。通过对这些输入输出信息进行排列和哈希运算,可以得到事务的唯一哈希值。

一个块包含多个事务,包括挖矿奖励事务。这些事务通过Merkle操作包含在散列根中。对于Merkle,您可以阅读Merkle的“如何使用Merkle树验证事务真实性”

在block all hash操作中,Merkle hash root用作参数。因此,所有事务信息都反映在块的散列中。

挖矿

挖矿过程就是计算上述块的哈希值的过程,几乎所有的机器都可以成功地进行挖矿。关键是谁先挖矿,因为当一台机器挖矿成功时,它会向网络广播。在核实了散列值后,其他矿工停止了自己的挖矿,并开始根据这个区块挖矿新的矿井。每个区块记录的第一笔交易是对挖矿该区块的矿工的奖励,因此,对于矿工来说,抢占第一个成功的挖矿配额是非常重要的。

如上所述,块中包含的事务的Merkle散列根将作为计算过程中的参数。因此,在挖矿时,矿工会事先从本地事务信息中提取Merkle散列根。也就是说,在挖矿之前,对于目前的矿工来说,哪些交易将包括在新区块中已经确定。阅读Merkle tree了解更多关于这个过程的信息。

一揽子交易

挖矿成功后,矿工需要向网络广播整个区块。此时,上述所有对应的事务都打包在这个块中。

现在有三个问题:

在打包开始之前,这些事务是如何在网络上存在的?

打包是否将所有事务打包成块?如何才能确保所有交易都不会错过?

如何防止矿工伪造交易?把假交易打包成块?

服务费

这里我们需要知道另一个概念,即“手续费”手续费由发起交易的节点决定,小费性质相同。例如,a计划转移到b0.5 BTC,a有一个完整的BTC(来自输入)。此时,a将1btc作为输入,输出包括两个。一个用于b0.5btc,另一个用于0.49btc自身(此过程称为“更改更改”)。然后0.01 BTC在该交易中消失,消失的BTC将作为对矿工的提示奖励。

现在我们把角色改为矿工。当我们从内存中收集所有事务并准备打包块时,我们发现有一个事务的tip为0.01btc,所以我把它作为这个包中优先级的事务记录。由于每个区块的大小被限制在1百万左右,所以我只选择那些提供提示的交易打包到这个区块中。对于那些没有交易费的交易,我会考虑在优先考虑有交易费的交易后再加上。

这就是为什么有些交易确认得很快,有些交易确认得很慢。

确认

“确认”的概念也需要解释。生成块后,它不会立即被信任。网络上的节点总是相信最长的区块链。当一个事务记录打包到一个块中时,有一个确认,一个块被添加到块所在的链中,这是第二个确认。这样,确认后有6笔交易,我们认为该笔交易已经确认,并将永远记录在区块链中。为什么要六次确认?因为每次确认都是一个挖矿过程,需要提供非常严格的计算。因此,这6个区块被同一个矿工创造的可能性很小(可以说是不可能的),所以矿工基本上不可能伪造交易。

由于比特币区块的平均生成时间为10分钟,因此交易成功(最快)大约需要一个小时。然而,并非所有系统都这么认为。在接受比特币支付时,一些网站认为四次确认可以向客户交付商品。不幸的是,如果事务在创建时没有打包到最近的块中,它将延迟10分钟。如果交易在几个区块之后没有打包到区块链中,那将是一场悲剧。

广播交易

但别担心,比特币系统只剩下5万个存储空间来处理如此高优先级的交易。即使你不给交易费,它们也可能在24小时内打包成批。然而,有些事务可能永远不会进入块,这并不一定是真的,因为矿工从自己的内存中获取自己的临时事务信息。一旦释放内存,事务信息将被清空。为了解决这个问题,比特钱包需要不断检查自己发起的交易。如果发现事务没有打包到最新的块中,它将被广播到网络。这样,交易会在网络中不断被提及,矿工可以暂时将交易写入自己的记忆中。下次打包时,他或她可以选择是否打包。

摘要

本文解释了事务的“创建(I/O)-broadcast-mine-package-confirm”的整个过程。阅读后,您可以理解事务是如何打包成块的。

温馨提示:

文章标题:比特币的阻塞机制

文章链接:https://www.btchangqing.cn/87828.html

更新时间:2020年08月19日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

比特币的阻塞机制
区块链行情

黑客窃取AWS的登录信息,部署加密并劫持僵尸网络

2020-8-19 2:47:03

区块链行情

2020年下半年,币圈的上升趋势会继续吗?

2020-8-19 2:55:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索