主页 > imtoken官方安卓版下载教程 > 比特币交易流程

比特币交易流程

最近一段时间,博主正在整理一本通俗易懂的挖矿科普画册,希望全面介绍从最初的加密货币交易到挖矿确认交易的挖矿过程中发生的事情。 哪些环节产生了挖矿收益,以及我们常说的算力,为什么挖矿收益要这样分配等等。

以比特币为例,我们知道在比特币网络中挖矿的目的是为了打包交易和维护比特币网络,所以交易其实是与挖矿密切相关的第一个环节。 比特币网络交易的过程使用了非对称加密技术、数字抽象技术、区块链技术等,技术实现上已经有很多大神抢先了,博主就不秀丑了。 本文的主要目的是用一种比较通俗易懂的语言来展示比特币的交易过程,让更多像笔者这样的技术外行能够了解比特币。

310个比特币破解过程_火币网如何交易比特币_比特币的交易过程由谁记录

在展开描述之前,需要安利一下几个概念:

火币网如何交易比特币_比特币的交易过程由谁记录_310个比特币破解过程

非对称加密:又称公钥加密,通过密码算法生成一对公钥和私钥,公钥公开,私钥由个人保管。 它有两个目的:第一,其他人可以用公开的公钥加密数据,并传送给公钥持有者。 公钥持有者使用对应的私钥解密数据,读取信息。 这样,可以保证信息传输的安全; 其次,公钥持有者可以使用私钥对信息进行签名(签名过程类似于加密过程),然后将信息和签名发送给其他人,其他人可以通过公钥验证信息签名(验证过程类似于解密过程)。 如果验证签名信息与发送的信息一致,则证明该信息是由公钥持有者发送的,可以在不泄露公钥持有者身份和私钥的情况下保证信息来源的可靠性。 性别。 (参考链接:)

哈希算法:也称散列函数,可用于对信息或数据量较大的数据进行固定格式、小规模的数字摘要计算,也称指纹、哈希值或散列。 一个好的哈希算法应该是不可逆的(不可能通过数字摘要反转原始信息或数据),敏感的(原始数据的任何微小变化都会引起数字摘要的巨大变化),防碰撞(它是很难找到具有相同数字摘要的两条不同消息)。 (参考链接:)

比特币中的公钥和私钥:在比特币世界中,用来确定比特币归属的是一对根据比特币协议生成的公钥和私钥,它们是通过非对称加密算法(椭圆曲线算法)生成的,公钥通过两种哈希算法(SHA256)得到一个哈希值(也叫hash),然后通过Base58Check对其进行编码,生成我们经常看到的比特币钱包地址。 因此,对钱包地址进行解码后,即可得到对应公钥的哈希值,可用于验证私钥签名、加密数据等。

UTXO:Unspent transaction output,未花费的交易输出,是比特币世界中的一种抽象货币,每一个UTXO都被一个公钥(钱包地址)锁定,只有持有公钥对应私钥的人才能通过私钥密钥签名(解锁)并花费该 UTXO。 UTXO可以理解为一张抽象的钞票,但它的面值是不固定的(不仅是5、10,还可以是任意数字)。 (参考链接:)

比特币的交易过程由谁记录_火币网如何交易比特币_310个比特币破解过程

除了代码,让我们看一下比特币交易是什么样的:

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

比特币的交易过程由谁记录_火币网如何交易比特币_310个比特币破解过程

最初,A给C 0.7BTC,比特币网络中的记录是UTXO(1):A给C 0.7BTC; B给C 0.5BTC,比特币网络中的记录是UTXO(2):B给C 0.5BTC。 此时C的比特币钱包账户余额就是这两个UTXO的总和,C的比特币总数=UTXO(1)+UTXO(2)=1.2BTC。 如下所示:

310个比特币破解过程_比特币的交易过程由谁记录_火币网如何交易比特币

比特币的交易过程由谁记录_310个比特币破解过程_火币网如何交易比特币

这天,C从D那里买了一批商品,需要支付0.8BTC给D。C通过比特币网络给D转账,但是C现有的两个UTXO都不足0.8BTC,所以需要用这两个UTXO 一起,类似于现金交易:支付 1.2 BTC 给 D,Ding 支付 0.4 BTC 给 C。但是在比特币网络中,这个找零工作是由 C 自己发起的。

整个交易流程如下:

C通过比特币钱包准备交易信息。 交易信息包括输入和输出两部分。 输入为UTXO(1)和UTXO(2),以及C的钱包私钥签名(因为UTXO(1)和UTXO(2)都被C的钱包公钥锁定,所以需要用C的私钥签名解锁才能使用)

火币网如何交易比特币_比特币的交易过程由谁记录_310个比特币破解过程

交易输出一个未确认的UTXO(3):C给小丁0.8个BTC比特币的交易过程由谁记录,这个新的UTXO指向小丁的钱包公钥比特币的交易过程由谁记录,交易确认后会被小丁的钱包公钥锁定。

此时还有0.4BTC找零给C,所以需要输出一个未确认的UTXO(4):C to C to 0.3999BTC。 这个新的 UTXO 指向 C 的钱包公钥。 交易确认后,发送给 C 钱包公钥锁定。

为什么零钱不是0.4BTC? 由于比特币网络的要求,交易转账需要向比特币网络支付交易手续费。 剩余的0.0001 BTC不指向任何钱包公钥,将作为转账手续费支付给打包交易的矿工(如果不找零,剩余的所有未指定比特币将作为手续费支付给打包交易的矿工)打包了交易,但目前找零工作是由钱包自动完成的,不用担心)。

交易信息准备好后,C的钱包验证交易合法后(UTXO有效、签名有效、输入输出金额有效等),将交易广播到比特币网络,经过交易由挖矿节点验证,交易被打包(该交易被记录在比特币区块中),并广播到比特币网络,交易完成。

比特币的交易过程由谁记录_火币网如何交易比特币_310个比特币破解过程

旧的 UTXO 被消耗,新的 UTXO 生效。 此时,小丁的钱包中有一个未使用的UTXO(3):C给小丁0.8BTC,C的钱包中有一个未使用的UTXO(4):C给了C 0.3999 BTC。

火币网如何交易比特币_比特币的交易过程由谁记录_310个比特币破解过程

以上是一个比较抽象的比特币交易流程,关于比特币交易的构建、签名验证、节点验证、交易广播、加入挖矿节点内存池、矿工构建初始区块、最终区块确认的过程。 分别介绍,本文不再展开。

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