主页 > imtoken钱包苹果手机怎么下载 > 比特币交易如何运作

比特币交易如何运作

在本文中,我们将详细讨论比特币交易的运作方式。 我们会看到比特币交易与真实交易略有不同。

1. 交易通常如何进行? 什么是账户/余额模型?

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

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

比特币交易的工作原理

交易如何在账户/余额系统中运作

2、什么是UTXO(Unspent Transaction Output)?

比特币使用 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个UTXO,1个BTC,A不能神奇地将自己的UTXO变成2个0.5 BTC的UTXO,只能通过发送一个来发送。 交易给 A。 相反,当 A 将他的 UTXO 分成两个 UTXO 时,对于每 0.5 BTC,A 将需要在两个单独的交易中花费两个 UTXO:她将一个发送给 B 作为付款,另一个为她自己。 这在下一个问题中解释得更清楚。

3. 比特币交易如何运作?

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

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

比特币交易的工作原理

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

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

UTXO 仅使用 ScriptSig 解锁并用作交易输入。 在生成交易输出时比特币工作原理及计算过程,发送方再次使用接收方的 ScriptPubKey 锁定 UTXO。 因此,一笔比特币交易是锁定和解锁 UTXO 的连续循环。

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

我们可以用一个例子来理解一笔比特币交易是如何执行的。 蛋糕买家想从蛋糕卖家那里购买价值 5 个比特币的蛋糕。 由于买蛋糕的人恰好没有 5 BTC 的 UTCO,她选择 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。由于空区块被开采,这个数字可能低于应有的数量。

(注:Segwit是比特币网络中的软分叉,允许交易数据存储在扩展区块中,允许大于2兆字节的区块存储更多交易数据。截至2019年2月,Segwit交易约占40%。比特币总量交易。)

综上所述

在本文中,我们详细了解了 UTXO 模型以及比特币交易的工作原理。 在下一篇文章中,我们将讲解比特币的最后一块:挖矿。 我们将了解挖矿的工作原理以及挖矿在比特币中扮演的角色。