主页 > imtoken怎样充值 > 从零认识区块链(6):比特币是如何交易的?

从零认识区块链(6):比特币是如何交易的?

imtoken怎样充值 2023-02-25 07:51:45

比特币网络每天产生数千万笔交易。 这些交易是如何进行的? 如何保证交易的正确性和安全性? 矿工如何受益?

文字 | 王颖

图 | 艳艳

比特币网络每天产生数千万笔交易,只有正确解决比特币系统设置的谜题的节点才会参与记账。 这些节点被称为“矿工”。 如果每产生一笔交易,矿工就记录一次,那么多交易都交给矿工去完成比特币怎么携带切割怎么交易,工作量太大了! 因此,一般都是矿工将这些实际交易者每隔一段时间批量向全网广播的交易信息进行打包。 所以一次记账(也就是一个新区块的产生)可能对应一千笔交易,或者更多。 广播交易信息的正确性由网络节点共同负责。 矿工只负责信息录入。

比特币交易时间_比特币交易风险_比特币怎么携带切割怎么交易

比特币交易风险_比特币怎么携带切割怎么交易_比特币交易时间

下面以爱丽丝(A)和鲍勃(B)的交易为例,说明比特币的交易过程:

提交交易:A想发送2个比特币给B比特币怎么携带切割怎么交易,从B那里买一杯。A将自己的交易信息(资金来源、目的地址、支付金额、手续费金额)提交给比特币网络,生成交易ID。

等待打包:A提交给网络的交易ID被一些矿工接收,这些矿工将验证这笔交易。 例如A的账户状态、资金来源、地址是否合法等。如果验证通过,矿工愿意将这笔交易打包到一个新的区块中(矿工可以选择接受或拒绝打包请求某些交易),然后将交易ID连同其他交易(一般一共约2000笔交易))一起,放入矿工的等待包内存数据中,并根据这些交易数据计算新的随机数Nonce堵塞。 在计算随机数的时候,这些交易不会再发生变化,因为任何变化都必须重新计算Nonce值,之前的所有计算都没有用。

挖矿:当矿工Tom找到一个合适的Nonce值,即找到一个合适的随机数,使得打包出的区块的哈希值满足系统的难度要求时,矿工就成功挖到了一个新的区块。

同步:矿工汤姆将挖出的区块信息发布到网络。 其他矿工确认Tom挖出的区块数据,即对这些打包的交易、时间戳、找到的随机数等信息进行哈希计算,验证计算结果是否小于系统值指定的目标哈希值。 验证通过后,其他矿工将汤姆找到的区块添加到自己本地的区块链数据库中,并以此数据库为基础计算下一个区块。

比特币交易风险_比特币交易时间_比特币怎么携带切割怎么交易

此后每次添加新块时,Tom 发现的块称为确认。 当添加 6 个区块时,Tom 的区块被固化,交易信息无法更改。 汤姆将获得挖矿奖励。

完成6次确认后,A发送的交易信息永久写入区块链网络,不可更改。

B验证A提交的交易ID,验证交易6次验证,即交易信息被大多数节点认可,则认为交易不可更改,A发送的2个比特币to B居然已经到了。 B可以安排送货。

比特币交易时间_比特币交易风险_比特币怎么携带切割怎么交易

从上面的过程可以看出,每个区块可以打包的交易数量是有限的,可以由矿工自己选择。 当交易过多时,可能不会打包成一个区块,矿工会按照这个原则进行优先排序:

比特币交易时间_比特币交易风险_比特币怎么携带切割怎么交易

交易时间:即交易产生时,先转账优先。

手续费:每笔交易都需要支付手续费,手续费越高,越早处理。 矿工可以选择优先处理哪些交易。 所以支付更多的费用可以使交易尽快确认。

比特币怎么携带切割怎么交易_比特币交易时间_比特币交易风险

以下是某三个区块的交易量和手续费数据,其中蓝色部分为挖矿收益,绿色部分为该区块所有交易的手续费收入之和。

比特币交易时间_比特币交易风险_比特币怎么携带切割怎么交易

比特币交易风险_比特币怎么携带切割怎么交易_比特币交易时间

但是在比特币系统中,只有50k的内存空间给高优先级的交易,所以即使你不支付交易手续费,你仍然有机会进入交易池进行打包,并有可能被打包成一个区块24小时内。 因为每个区块的总大小为1M,除了80字节的区块头和50k的高优先级交易内存池外,大部分存储空间都是为普通交易预留的。

比特币交易风险_比特币交易时间_比特币怎么携带切割怎么交易

矿工在打包交易时,获取的是暂时保存在自己内存中的交易信息。 一旦内存被释放,交易信息就会被清除。

为了解决这个问题,比特币钱包需要不断地检查自己发起的交易。 如果发现没有被打包到最新的区块中,就必须向网络广播,这样这笔交易就会在网络中不断被提及,矿工们可以将这笔交易写入自己的内存中暂存起来。 下次打包时,选择是否打包。

比特币交易时间_比特币交易风险_比特币怎么携带切割怎么交易

比特币交易风险_比特币交易时间_比特币怎么携带切割怎么交易

区块生成后,并不是立即可信的。 网络上的节点始终相信最长的区块链。 当一个交易记录被打包成一个区块时,有一个确认,这个区块位于链的后面添加一个区块,这就是第二次确认。 这样下去,如果一笔交易有6次确认,我们就认为这笔交易已经确认,将永远记录在区块链中。

为什么要 6 个确认? 因为每次确认都是一个挖矿过程,需要提供非常严格的计算。 所以这6个区块是同一个矿工创造的可能性很小(可以说是不可能的),所以矿工伪造交易基本上是不可能的。 . 而且,经过6次确认,可以保证交易进入主链,而不是进入孤块,这是最终会被系统抛弃的无效信息。

比特币怎么携带切割怎么交易_比特币交易风险_比特币交易时间

由于比特币平均出块时间为10分钟,一笔交易需要1个小时左右才能保证成功。 在6次交易确认之前,可以随时暂停交易,修改交易信息。 6次交易确认后,交易写入区块链,此信息不可修改。

这次我们讨论了比特币的交易过程,下一次我们将从技术概览层面分析比特币使用的底层区块链技术。 欢迎大家继续关注,谢谢!