This article has been translated from English to Traditional Chinese.
比特币交易是如何进行的?
比特币交易是指将一定数量的比特币从一个地址转移到另一个地址,并记录在区块链上。
但是,这种“转移”过程是如何实际进行的呢?
在本课中,我将向您展示比特币交易从开始到结束的过程。
首先,我们将从用户的角度了解比特币交易是如何进行的。然后,我们将从全局的角度了解比特币交易是如何进行的。
这将帮助你记住之前课程中学习的所有新概念。
准备好了吗?

假设钢铁侠有一枚比特币,她想把它送给蝙蝠侠。

从钢铁侠的角度来看
钢铁侠首先要做的是打开他的比特币钱包。
钱包可以是任何类型的,但在这个例子中,他使用的是安装在笔记本电脑上的软件钱包。

接下来,他会询问蝙蝠侠的比特币地址。
这是蝙蝠侠希望接收比特币的地方。蝙蝠侠通过电子邮件向他发送了一个比特币地址,钢铁侠复制并粘贴了该地址。

然后,钢铁侠输入了要发送给蝙蝠侠的比特币数量。

由于他巨大的金钛合金手指容易打错字,所以他仔细检查了输入的数字是否正确。
然后点击发送。

钱包软件随后要求输入密码以确认交易。
要发送比特币,钢铁侠需要向比特币网络证明,这笔钱确实是他发送的,而且他拥有比特币的所有权。
这时就需要用到他的私钥(保存在钱包中)。
在“钢铁侠”输入正确的密码后,钱包软件使用“蝙蝠侠”的私钥对交易进行“签名”,生成一个单独的数据,即“数字签名”。(这一切都是在后台完成的。

比特币交易幕后
至此,蝙蝠侠的参与已经结束。
钱包软件连接到比特币节点,发送交易信息以及“数字签名”和公钥。
节点检查交易是否有效:
- 发送者是否拥有与其地址绑定的足够比特币来执行交易?
- 发送者是否有权发送比特币?
例如,它会检查确认蝙蝠侠确实有1个BTC可以发送。如果交易通过了所有检查,节点会将交易传递给其他节点。
默认情况下,节点之间互不信任,因此它们会再次自行验证交易。
只有当他们认为交易有效时,才会将其共享给与之相连的节点。

如果交易被视为有效,则将其存储在临时存储区,即“内存池”或“mempool”。
此时,交易被视为“未确认”或“待定”。

被称为“矿工”的特殊节点会将该交易与其内存池中的其他有效交易打包成一个“区块”。

矿工们将竞争成为第一个“开采”区块的人。这需要尝试找到一个以特定数量零开头的数字。
找到这个数字的唯一方法就是反复尝试。换句话说,就是尽可能多地进行猜测。

第一个猜中正确数字的矿工意味着他是第一个“开采”区块的人。
矿工猜对的那一刻,就会将区块和“中奖号码”共享给比特币网络中的其他节点。

比特币网络上的节点会验证矿工是否猜对了数字,如果正确,就会将获胜矿工的区块添加到区块链副本中。然后,节点还会将此区块发送给其他节点。
由于包含交易的区块已被添加到区块链的“官方”版本中,交易现在被视为“确认”
一旦该区块创建完毕,新交易被验证并包含在该区块中,则该交易被视为“一次确认”。

从蝙蝠侠的角度来看
蝙蝠侠看到交易已经确认,并查看他的比特币钱包,确认比特币是否已经转账。

在钢铁侠交易的基础上建立的区块越多,交易在区块链上的“确认”程度就越高。
基本上,每个区块的增加都被视为“额外确认”。目前,大多数交易需要等待六次确认才能被视为安全。
三个就足够了!
现在,一个比特币已从“钢铁侠”的地址转移到“蝙蝠侠”的新地址。
除非钢铁侠或蝙蝠侠公开他们的比特币钱包地址,否则没人会知道两位著名超级英雄参与了比特币交易。
人们只会看到1个比特币从一个地址发送到另一个地址,但不会知道地址背后是谁。
正如你所看到的,比特币交易中的许多步骤都是在幕后完成的。
当蝙蝠侠与钢铁侠共享地址,钢铁侠使用比特币钱包发起交易后,剩下的工作就由计算机和软件代码来完成。
比特币交易的概览
现在让我们来鸟瞰一下比特币交易是如何进行的。
假设钢铁侠已经输入了蝙蝠侠的地址和要发送的比特币金额。

钢铁侠的钱包连接到一个节点,该节点向所有运行最新数据库(“比特币区块链”)副本的计算机(“比特币网络”)广播一条消息,大意是“我想向蝙蝠侠发送1个比特币”。
钢铁侠拥有一组独特的字母和数字,称为“私钥”。有了这个私钥,蝙蝠侠的钱包软件就能生成一个“数字签名”,确保信息来自他本人而非其他人。
比特币网络中的计算机(“全节点”)可以使用Ironman提供的另一串字母和数字(称为“公钥”)来验证“数字签名”,从而轻松确认是否是Ironman本人发送了消息。
他们还可以轻松确认Ironman有1比特币可以发送,因为他们都有当前数据库的副本。
所有节点都会不断更新彼此之间的最新信息(“交易”),这些信息被添加到比特币网络中。
一笔交易记录了比特币从一个地址转移到另一个地址的过程。交易不会单独记录在区块链上,而是首先被分组为区块。
重要的是,此时交易只是被提议。还没有 计算机更新 其分类账(“区块链”)副本。
交易最初被放入一个相当于等候室的地方(“内存池”),在那里等待确认。
内存池(memory pool)是每个节点保存的未经确认(待定)交易的小型数据库。内存池中的所有交易都是待定的,在它们被纳入区块之前不应被信任。
由于交易只是提议,尚未结算,系统可以快速传递消息,确保每个参与者都了解。
在下图中,Ironman和Batman分别用紫色钱包表示。
灰色圆圈代表计算机(“全节点”),它们是点对点(P2P)比特币网络的一部分。
黑色方块代表“区块链”,即账本的顺序更新副本,在钢铁侠向网络提出交易时。
如您所见,区块链的相同副本存储在运行比特币软件的全球计算机上(“全节点”)。这种设计确保没有任何实体能够控制账本,并使比特币能够抵御任何政府或中央机构的控制(或关闭)。
为了删除账本,需要销毁所有保存区块链完整副本的节点,即“完整节点”。只要整个账本存在于至少一个完整节点上,那么历史上所有比特币交易都将有记录。

当然,创建交易的并非只有钢铁侠一人。复仇者联盟的其他成员也在向其他接收者发送比特币。例如,美国队长可能会向冬日战士发送一些比特币。
这时,网络中一个特殊的参与者出现了:“矿工”。
矿工是指分散在世界各地的计算机,它们是比特币网络的重要组成部分。矿工的工作是将新的有效交易(如钢铁侠的交易)捆绑或组合在一起,并提议进行结算。
这些交易组被称为“区块”,这也是“区块链”中“区块”一词的来源。
一个区块是交易集合。区块按时间顺序链接在一起,形成“区块链”或区块链。
在任何特定时间,数千台计算机都在相互竞争,争夺创建下一个区块的权利。竞争的过程就像解谜,只有解决了当前的谜题,矿工才能创建新的区块。
这个“谜题”基本上可以归结为猜一个正确的数字。猜中正确数字的概率约为六万亿分之一。
因此,要想成为第一个找到“中奖”号码的人,就必须尽可能多地猜数字。这需要强大的计算能力,而计算能力需要消耗大量能源。
谁先找到解决方案,谁就有资格获得奖励,即“区块奖励”。
区块奖励旨在激励节点参与挖矿。否则,矿工们将无法收回高昂的电脑成本和运行电脑的电力成本,也就没有矿工了。
区块奖励由两部分组成:
- 新铸造的比特币
- 交易费用(由发起交易的人支付,如Ironman
矿工“赢得”的新铸造比特币被称为“区块补贴”,占奖励的最大部分。目前,每个新区块奖励为6.25个新铸造比特币。
每个区块包含多个交易,而所有交易都包含一笔费用,由矿工收取。
总结如下:
区块奖励 = 区块补贴 + 交易手续费
区块奖励是激励矿工完成验证交易和维护数据库所需工作的动力。
每21万个区块(大约每四年),“区块补贴”就会减半,这个过程被称为“减半”。这个过程将持续到“区块补贴”为零。届时,矿工只能收取交易费
比特币网络大约每10分钟结算一个新区块,但具体时间取决于“谜题”的解决速度。
如今,大多数挖矿活动都是由“矿池”完成的,即由一群矿工联合起来,共享处理能力并分享区块奖励。
下图显示了这一过程。

矿工们现在用橙色圆圈表示。
蓝色方块显示的是更新后的分类账,其中包含一些新交易,包括Ironman的
目前,只有一位网络参与者(提出新交易区块的矿工)可以看到完全更新的分类账。
其他参与者仍然只能看到较早的区块,这些区块以黑色显示。
由于奖励丰厚,许多矿工争相解决每个交易区块。
根据设计,解决“难题”是一项耗资巨大的工作,因为它需要强大的计算能力和大量的电力。而且,我们无法知道成千上万的矿工中究竟是谁会首先解决“难题”。
一旦矿工解决了“难题”(猜对了数字),他就可以将解决方案发布到网络上,并提交其交易区块。
这种方法的巧妙之处在于,虽然解谜过程既困难又昂贵,但检查结果却非常简单。当矿工发布解决方案及其交易块时,网络中的其他成员会检查其工作。
如果交易有效且“谜题”的解决方案正确,网络参与者将更新其数据库副本,以反映新的交易。
此时,Ironman的交易被视为已结算或 “确认”。1比特币已从Ironman的地址转移到Batman的地址,并正式记录在区块链上。
这种“共识机制”决定了哪些交易会被永久记录并“确认”,这是比特币区块链设计的核心。
这个过程如下图所示。

现在,所有网络参与者都接受了提议的新交易区块(蓝色方块)。因此,他们的分类账被更新并同步。
重要的是,下一个交易区块的结算取决于是否包含前一个区块的信息,这促使矿工快速更新其数据库副本,并确保对已结算区块的篡改非常困难。
这种“区块链接”正是该数据库架构被称为“区块链”的原因。
比特币区块链包含自诞生以来的所有区块,最早可追溯到被称为“创世区块”的第一个区块。
如果提交区块的未知比特币矿工是个不怀好意的人,提出一个无效的交易区块,从而以某种方式从中获利,该怎么办?
或者,如果“钢铁侠”恶意操作,试图在无人察觉的情况下同时向“蜘蛛侠”和“神奇女侠”发送同一笔1比特币的交易呢?
网络参与者会检查每个区块中的每笔交易,并拒绝包含无效交易的区块。如今,有超过10万个节点正在独立验证每笔比特币交易!
因为对网络参与者来说,验证交易 并确保仅结算有效交易是轻而易举的事情,而尝试结算交易的成本却很高,因此,试图欺骗系统的动机微乎其微。
总结
让我们总结一下比特币网络上的所有交互:
- 如果您想向他人发送比特币,您只需提供对方的比特币地址,您的钱包就会连接到节点,发起交易。
- 节点将验证交易,确认无误后,将有效交易广播并转发给其他节点和矿工。如果交易违反了比特币的规则,节点将自动拒绝。
- 矿工将这些交易分批放入“候选区块”(临时区块),并竞相成为第一个猜出数学“谜题”答案的人,从而在区块链上发布自己的区块。
- “获胜”的矿工可以将这个临时区块作为永久区块发布到区块链上,从而确认交易(以及批次中的其他交易)。
- 节点接收该区块并验证矿工是否遵守网络规则。(如果该区块违反了比特币的规则,节点将自动拒绝它。)
- 每当节点收到一个新区块并认为其有效时,就会将其转发给其他节点,以便所有节点(包括矿工)保持同步并维护相同的区块链。
- 所有其他矿工删除他们正在处理的临时区块,并开始处理新的“候选区块”,其中包含新的数学“难题”。
- 一旦接收者的钱包连接的节点接收到新的区块,接收者的钱包就会显示新收到的比特币的更新余额。