主页 > imtoken下载链接 > java比特币交易代码_比特币交易流程

java比特币交易代码_比特币交易流程

imtoken下载链接 2023-04-04 05:25:32

近期,博主正在整理一本通俗易懂的挖矿科普专辑,希望能全面介绍从初始加密货币交易发生到挖矿确认交易的挖矿过程。是什么,哪些环节产生了挖矿收益,我们常说的算力是什么,为什么要这样分配挖矿收益等等。

以比特币为例,我们知道在比特币网络中设计挖矿的目的是为了打包交易,维护比特币网络,所以交易实际上是与挖矿息息相关的第一环节。比特币网络中的交易过程使用了非对称加密技术、数字摘要技术、区块链技术等,其中不乏大神明珠,博主不会丑。这篇文章的主要目的是用比较通俗易懂的语言展示比特币的交易过程,让更多像作者这样的技术外行能够了解比特币。

db3b0188f7320eb6ac2736a51adb0135.png

在开始解释之前比特币的交易代码是什么,我们需要几个概念:

比特币的交易代码是什么

抛开代码,我们来看看比特币的交易流程是怎样的:

如下图,有A、B、C、D四个人,他们都有比特币钱包,钱包私钥是自己持有的。 Generated) 在比特币网络上公开,用于 UTXO 锁定和验证。

比特币的交易代码是什么

9df9294533661727c8fcfce463167db2.png

开始,A to C0.7BTC,比特币网络中的记录是UTXO(1):A to C C0.7BTC;B to C0.5BTC,比特币网络中的记录是UTXO(2): B to C0.5BTC。此时比特币的交易代码是什么,C的比特币钱包的账户余额就是这两个UTXO之和,总数C = UTXO(1)+UTXO(2)=1.2BTC。如下图:

比特币的交易代码是什么

05a3da2df718227e7a72f5788a47d2be.png

这天,C从D那里买了一批货,需要付丁0.8BTC。 C通过比特币网络向D转账,但是C有丁的两个UTXO都小于0.8BTC,两个UTXO需要一起使用,类似于现金交易:支付丁1.2BTC,丁找到 Cing 0.4BTC。但是在比特币网络中,这个换工作是由C自己发起的。

比特币的交易代码是什么

整个交易流程如下:

C通过比特币钱包准备交易信息,交易信息包括输入和输出两部分,输入为UTXO(1)和UTXO(2),以及C的钱包私钥签名(因为 UTXO(1) 和 UTXO(2) 都是由 C 签名的钱包公钥被锁定,需要通过 C 的私钥签名解锁,然后使用) 交易的输出是unconfirmed UTXO (3): C to Ding 0.8BTC,这个新的UTXO指向 Ding 交易确认后,会被D的钱包公钥锁定。此时,还有0.4BTC需要改成C,所以需要输出一个未确认的UTXO(4):C给C给C0.3999BTC,这个新的UTXO指向C的钱包公钥,交易确认后,会被C的钱包公钥锁定,为什么找零的数量不是0.4BTC?由于比特币网络的要求,交易转账需要支付交易费用对比特币网络的操作费。剩余的 0.0001BTC 不指向任何钱包公钥,将作为转账手续费支付给打包交易的矿工(如果没有找到零,剩余的未指定比特币将全部作为手续费给打包交易的矿工,但目前找零工作是由钱包自动完成的,不用担心)。交易合法、签名有效、输入输出金额有效等)后,将交易广播到比特币网络。交易被挖矿节点验证后,将交易打包(交易记录在比特币区块中)并发送到比特币网络。广播,交易完成。旧的 UTXO 被消耗,新的 UTXO 开始生效。此时,丁的钱包里有一个未使用的UTXO(3):C to Ding0.8BTC,C在他的钱包里有一个未使用的UTXO(4):C to Cing0.3999BTC。

比特币的交易代码是什么

6d0e99001098120f5b02852de2f22a68.png

以上是一个比较抽象的比特币交易流程,涉及到比特币交易结构、签名验证、节点验证、交易广播、加入挖矿节点mempool、矿工构建预备区块、最终区块确认流程将是后面单独介绍,本文不再展开。

从这个抽象的交易过程中,我们可以发现,比特币交易本质上是一堆UTXO的输入输出过程。随着旧的 UTXO 被消耗,新的 UTXO 被生成并完成一次另一个比特币交易。交易过程受到非对称加密和散列算法的双重保护。比特币持有者可以放心地完成交易,而不必担心他们的身份被泄露。比特币的一部分也在交易过程中被消耗,用于奖励打包交易的矿工,让矿工乐于做好维护比特币网络的工作。

696e75efd447a01876b02860403e75a4.png