主页 > imtoken最新下载 > 比特币交易究竟是如何运作的

比特币交易究竟是如何运作的

imtoken最新下载 2023-02-15 05:48:18

在本文中比特币最早是怎么交易的,我们将详细讨论比特币交易的工作原理。正如我们将看到的,比特币交易与现实世界的交易略有不同。

1. 事务通常如何工作?什么是账户/余额模型?

大多数时候,当我们谈论交易时,我们习惯于考虑账户/余额系统。这意味着系统中的每个用户都有一个帐户,每个帐户都与一个余额相关联,该余额决定了该帐户拥有多少金钱或数字。

当系统中的一个用户通过向系统中的另一个用户汇款进行交易时,账户余额将被更新。例如,如果 A 最初有 10 个比特币,B 有 5 个比特币,如果 A 向 B 发送 2 个比特币进行交易,A 最终得到 10 - 2=8 个比特币,B 最终得到 5+2=7 个比特币。

比特币交易究竟是如何运作的

交易在账户/余额系统中的运作方式

2. 什么是 UTXO(未使用的交易输出)?

比特币使用 UTXO(未使用的交易输出)模型,而不是账户/余额系统。这意味着区块链不会直接跟踪每个比特币地址的比特币余额。相反,区块链存储比特币交易数据的整个历史,而比特币网络跟踪网络中所有 UTXO 的集合,称为内存池或交易池。特定比特币地址的余额是通过检查和汇总与该地址关联的所有 UTXO 来计算的。当一个 UTXO 被使用时,它会从交易池中移除,这会在计算余额时体现出来。

比特币交易究竟是如何运作的

在 UTXO 系统中如何计算余额的可视化演示

在比特币中,UTXO 是一个离散的比特币单元,可以包含任意数量的固定、不可变的值。一个 UTXO 可以代表 0.1 个比特币,1 个比特币比特币最早是怎么交易的,甚至 100 个比特币。无论值本身的大小如何,该值都与唯一的 UTXO 相关联,该 UTXO 可以通过其 id 来标识。根据定义,每个 UTXO 都是交易输出的结果,并与特定的比特币地址相关联。

UTXO 的基本属性是它们不能被分解——你不能在没有交易处理的情况下将一个 UTXO 转换成两个或多个更小的 UTXO。例如,如果 A 想要支付 B 0.5 BTC,但 A 只有一个包含 1 BTC 的 UTXO,那么 A 无法将他的 UTXO 神奇地转换为两个价值为 0.5 BTC 的 UTXO,并且只能通过将其中一个发送给 B 来进行一笔交易。相反,当 A 将他的 UTXO 分成两个 UTXO,每个 0.5 BTC,A 将需要在两个单独的交易中使用这两个 UTXO:她将发送一个给 B 作为付款,另一个给她自己。这个问题将在下一个问题中更清楚地解释。

3.比特币交易究竟是如何运作的?

比特币的每一笔交易都有一些输入和输出。输入是属于交易发送者的UTXO,而交易的输出是分配给接收者的新生成的UTXO。

每个 UTXO 都使用锁定脚本 ScriptPubKey 锁定。该脚本确保只有交易的预期接收者才能访问发送给他们的比特币(UTXO)。ScriptPubKey由“PubKeyHash”组成,即接收者公钥的哈希值,与接收者的比特币地址有关。

比特币交易究竟是如何运作的

比特币交易的锁定和解锁机制。

交易的接收者可以使用解锁脚本 ScriptSig 访问他们的 UTXO,UTXO 的接收者使用该脚本来证明他们拥有 UTXO 中的比特币。ScriptSig 由 ECDSA 生成的用户比特币签名“Sig”和用户公钥“PubKey”组成。散列“PubKey”并将其与 ScriptPubKey 中的“PubKeyHash”进行比较,以检查尝试访问 UTXO 的用户是否确实拥有与比特币地址关联的公钥。接下来,将“Sig”与“PubKey”进行比较,以验证用于生成比特币签名的私钥确实是生成(正确验证的)公钥的那个。

UTXO 只能使用 ScriptSig 解锁并用作交易的输入。在生成交易的输出时,发送方使用接收方的 ScriptPubKey 再次锁定 UTXO。因此,比特币交易是一个不断锁定和解锁 UTXO 的循环。

4. 我可以举一个比特币交易的例子吗?

我们可以通过一个例子来了解比特币交易是如何运作的。蛋糕买家想从蛋糕卖家那里购买价值 5 比特币的蛋糕。由于买蛋糕的人没有恰好是 5 BTC 的 UTXO,她选择了 2 个 UTXO 来弥补 5 BTC 的价格,产生 5 BTC 的输出发送给蛋糕卖家,0. 5 BTC 的零钱返还给了蛋糕买家。

比特币交易究竟是如何运作的

一个可视化程序,演示如何在交易中创建和使用 UTXO。

在交易层面,蛋糕购买者使用 ScriptSig(作为输入)来解锁 UTXO_3 和 UTXO_5 的 ScriptPubKey。完成此操作后,将生成两个输出并使用它们自己的 ScriptPubKey 锁定。当蛋糕卖家想要使用这个 UTXO 时,他必须使用他的 ScriptSig 来解锁它。

比特币交易究竟是如何运作的

蛋糕买家打开她之前的 UTXO 进行消费,并创建一个新的 UTXO 发送给蛋糕卖家和她自己。

5. 如何向节点广播交易?

对于大多数用户来说,这不是必需的。您所要做的就是使用比特币钱包客户端,输入您希望进行的交易的详细信息,然后单击发送。客户端将为您广播交易。

由于比特币是一个点对点网络,客户端搜索对等点(节点)来发送交易。当它找不到任何对等点时,它会退回到硬编码到客户端中的可靠备份对等点列表。

6. 每个比特币区块可以有多少笔交易?

每个比特币区块可能拥有的交易数量取决于该区块中包含的单个交易的类型和大小。初始块大小限制为 1 兆字节。如果每笔交易任意小,那么一个比特币块可以有任意数量的交易。

事实上,截至 2019 年 1 月,每个区块的平均交易数约为 2,100。这个数字可能低于应有的数字,因为正在开采空块。

(注:隔离见证(Segregated Witness)是比特币网络中的一个软分叉,允许交易数据存储在一个扩展的区块中,允许更多的交易数据存储在大于 2 兆字节的区块中。截至 2019 年 2 月,隔离见证交易账户约占所有比特币交易的 40%。)

结束语

在本文中,我们研究了 UTXO 模型的细节以及比特币交易的工作原理。在下一篇文章中,我们将解释比特币的最后一个区块:挖矿。我们将看看挖矿是如何工作的,以及挖矿在比特币中扮演的角色。