主页 > imtoken2.0钱包下载 > 在区块链中,交易是如何打包成区块的?

在区块链中,交易是如何打包成区块的?

imtoken2.0钱包下载 2023-04-06 05:16:52

高铁取完票还能改签吗_比特币交易完还能取出来吗_比特币借币交易怎么玩

Filecoin 测试网上线倒计时:33 天 大多数资料都详细分析了挖矿过程,介绍了区块是如何产生的。 但是,区块的产生并不是区块链的最终目的,交易信息的保存才是区块链的最终目的。 因此,更重要的是了解交易信息是如何被打包到区块链中的。

输入输出

交易在系统中由输入和输出表示。 input是指本次交易所要转账的coin来自于之前的哪些output。 输出是指这些硬币将被发送到哪些地址。 区块链上的簿记不会告诉你一个账户目前有多少钱,而是告诉你这个账户目前收到了什么输出。 比如一个地址xsw0923sdfew2389dsfw的相关记录中比特币交易完还能取出来吗,有A、B、C三个输出目的地址,那么它的实际余额就是这三个输出的金额之和。 但是现在这个地址的用户想要转账。 转账过程不是直接取一部分和数进行转账,而是分别取A、B、C三个输出的部分或全部,加起来就是想要转账的总和。 硬币转移。 在这个“取出”过程中,A、B、C成为输入,转账目标记录就是本次交易的输出。 这种设计确保了区块链中的钱从哪里来,到哪里去,一目了然。 就像会计一样,花一笔钱的时候,不仅要记录花在哪里,还要记录这笔钱是从哪里来的。 整个资金链可追溯,也保证了交易不可伪造。 金钱既不会消失也不会凭空产生。

散列

给一个区块添加一个交易需要三个哈希,一个是交易本身的哈希,一个是当前区块中所有交易的默克尔哈希根,一个是区块哈希。 上面已经提到了输入和输出。 一个交易可能包含多个输入和输出。 通过对这些输入输出信息进行排列并进行哈希运算,可以获得一笔交易的唯一哈希值。 一个区块包含多笔交易,包括挖矿奖励交易。 这些交易都通过 merkle 操作包含在一个哈希根中。 对于merkle,可以阅读《区块链如何使用Merkle树来验证交易的真实性》了解。 在区块哈希运算中,以默克尔哈希根作为参数,因此所有的交易信息都体现在一个区块的哈希中。

矿业

挖矿过程就是计算上述区块的哈希值的过程,几乎所有的机器都可以挖矿成功。 关键是谁先拿到矿,因为当一台机器挖到成功后,会向网络广播,其他矿会在验证hash后停止自己的挖矿,并根据这个区块开始挖新的矿。 而每个挖到区块的区块记录的第一笔交易,就是挖到这个区块的矿工的奖励,所以对于矿工抢到第一个成功的挖矿额度是非常重要的。 前面提到,在计算区块哈希的过程中,区块中包含的交易的默克尔哈希根会作为参数进行计算。 因此,矿工在挖矿时,会提前从自己本地的交易信息中提取merkle hash root。 也就是说,在挖矿之前,对于当前的矿工来说,哪些交易会被包含在新的区块中就已经确定了。 关于这个过程,可以看《Merkle Tree》。

打包交易记录

挖矿成功后,矿工需要将完整的区块广播到网络。 此时,上述所有对应的交易都被打包在这个区块中。

比特币借币交易怎么玩_比特币交易完还能取出来吗_高铁取完票还能改签吗

存在三个问题:在打包开始之前,这些交易记录是如何存在于网络中的? 打包会把所有的交易记录打包成块吗? 如何保证不遗漏所有交易? 如何防止矿工伪造交易? 在区块中包含虚假交易?

手续费

这里我们需要知道另外一个概念,那就是“手续费”。 手续费由发起交易的节点决定,与小费相同。 例如,A 打算转 0.5 个 BTC 给 B,A 手里有一个完整的(来自输入的)BTC。 此时A用这1个BTC作为输入,输出包括两个,一个给B0.5 BTC,一个给BTC。 0.49BTC 给自己(这个过程称为“找零”)。 那么这笔交易中的0.01 BTC就消失了,消失的BTC会作为小费奖励给矿工。 现在我们将角色更改为矿工。 当我们从自己的记忆中收集所有的交易准备打包区块时,发现有一笔交易的tip为0.01BTC,所以这次我将其作为优先打包的交易。 记录。 由于每个区块的大小被限制在1M左右,所以我只选择了那些用于提示的交易打包到这个区块中。 对于那些没有手续费的交易,我会在优先考虑这些有手续费的交易后考虑加入。 这就是为什么有的交易确认快,有的交易确认慢的原因。

确认

“确认”的概念也需要解释一下。 区块生成后,并不是立即可信的。 网络上的节点始终相信最长的区块链。 当一条交易记录被打包成一个区块时,就是经过一次确认,另一个区块被添加到这个区块所在的链上,也就是第二次确认。 如此下去,一笔交易有6次确认,我们认为这笔交易已经确认,将永远记录在区块链中。 为什么要 6 个确认? 因为每次确认都是一个挖矿过程,需要提供非常严格的计算。 所以这6个区块是同一个矿工创造的可能性很小(可以说是不可能的),所以矿工伪造交易基本上是不可能的。 . 由于比特币的平均出块时间为10分钟,一笔交易大约需要1小时才能保证成功(最快)比特币交易完还能取出来吗,但并非所有系统都这么认为,有些网站在接受比特币支付时认为4小时。 确认后即可发货给客户。如果交易创建时不幸没有打包到最新的区块中,将延迟10分钟。 悲剧

广播交易

不过不用担心,比特币系统只为这种高优先级的交易预留了 50k 的存储空间。 即使不交手续费,也有可能在24小时内打包成块。 但不一定,有些交易可能永远不会进入区块,因为矿工从自己的内存中获取他们的临时交易信息,一旦内存被释放,交易信息就会被清除。 为了解决这个问题,比特币钱包需要不断地检查自己发起的交易。 如果发现还没有打包到最新的区块中,就必须向网络广播。 你可以把这笔交易暂时写入自己的内存中,等到下次打包区块的时候,再选择是否打包。

概括

本文讲解一笔交易“创建(输入输出)-广播-挖矿-打包-确认”的全过程。 看完之后,你应该能够理解交易是如何被打包成一个区块的。

比特币借币交易怎么玩_高铁取完票还能改签吗_比特币交易完还能取出来吗