解码比特币论文第 2 部分——简介、交易和时间戳服务器

词汇表

证明与信任

由于我们从英语中知道这些词,因此两者之间的区别似乎微不足道。但从历史上看,我们的系统是建立在信任之上的,我们不了解基于证明的系统的必要性。

在当前上下文中,我将证明定义为对“你相信 X 完成工作吗?”这个问题的确定性回答。

介绍

本节通过指出现有系统中的缺陷来解释去中心化的重要性。这些缺陷,例如由调解人行使的控制权、高昂的交易价格等,引发了对基于证据而非信任的电子系统的需求。

该部分进一步涉及本文解决的问题。技术部分现在开始

交易

我们将电子硬币定义为数字签名链。

只是论文中的这句话花了我几个小时来理解它在说什么。

在传统的银行系统中,我们的账户余额存储在数据库中。这样做是为了在我们付款时,银行可以检查我们是否有足够的余额来进行交易。

一旦满足这个条件,我们账户的余额就会减少,这样我们就不能再使用同样的钱了。同样,当我们收到付款时,余额会增加,以便我们可以在未来的交易中花费更多。

因此,银行数据库中的余额是唯一的真实来源。我们相信银行会确保这个号码的安全和正确。

相反,比特币的工作原理是交易链。与传统制度类似,承诺支付的金额应归付款人所有。在不需要信任的情况下如何做到这一点?

每笔交易都有一定的输入和输出。输入代表付款人拥有的比特币。付款人拥有这些比特币的证据是通过参考过去该付款人是收款人并因此收到一些他们现在可以花费的比特币的交易来给出的。

我们很快就会通过一个例子来理解这一点。

解码比特币论文第 2 部分——简介、交易和时间戳服务器-1来自真实交易的输入。

输出包含收款人的地址(类似于银行账户)以及要转移到这些地址的金额。现在,输入中的比特币总量应该足以满足输出量。

我们不能对多笔交易使用相同的输入(双花)。如果我们尝试这样做,网络将使该交易无效,因为它会看到我们过去在交易中使用过这些输入。

解码比特币论文第 2 部分——简介、交易和时间戳服务器-2在与以前相同的事务中输出。

例子

我从爱丽丝那里得到 5 美元,从鲍勃那里得到 3 美元,从查理那里得到 7 美元。这些是过去发生的交易,可由区块链证明。

现在,我必须向两个供应商支付他们的服务费用。我欠第一个供应商 10 美元和第二个供应商 4 美元。

为了支付这笔款项,我将提供我之前收到款项的 3 笔交易的证明。它们总计为 15 美元。这将作为我的输入。

接下来,我将分别提供这些供应商的地址和金额,分别为 10 美元和 4 美元。总计 14 美元。输入中仍有 1 美元未使用,我可以将其发回给自己(类似于你以现金支付时剩余的零钱)。

你可以在第三个输出中看到这一点,其中所有者将输出地址设置为与输入地址相同。

如果我不把零钱还给我自己,它将被用作激励网络处理你的交易。稍后将详细介绍激励措施。

每个所有者通过对先前交易的哈希和下一个所有者的公钥进行数字签名并将它们添加到硬币的末尾来将硬币转移到下一个所有者。

这部分解释了区块链中块内存在的内容。正如我们在本系列的第 1 部分中所见,交易由付款人签署。此交易的详细信息需要包含在其中。

除了输入和输出之外,交易还包含前一个区块的哈希值。区块链就是这样形成的。你可以通过使用当前块中的“前一个哈希”数据来读取前一个块的内容,以在区块链中查询具有该哈希的块。

为什么我们需要前一个块?一个块包含多个事务。所以区块的顺序也有助于确定交易的顺序。

我们需要维护交易的顺序。为什么?如果爱丽丝付给鲍勃 10 美元,鲍勃也付给查理,我们需要第一笔交易在第二笔交易之前发生,这样鲍勃在付款之前就已经收到了这 10 美元。

你可以在这里看到一个真正的区块和一个真正的交易。

此外,下一个所有者的公钥被添加到块中。这对应于收款人的钱包地址。

本节的其余部分建立在防止双重支出的基础上。在传统系统中,中央当局会知道是否有人试图双花。但是如何在区块链中做到这一点?

我们制定了一条规则——只有具有某些输入的第一笔交易才算数,使用这些输入的其他交易将被拒绝。为此,我们需要两件事:

每个人都应该知道过去发生的所有交易

这是必需的,因为我们需要在输入中引用以前的交易。如果我们失去了历史,就无法证明你拥有你试图花费的比特币。

每个人都应该同意交易的顺序

这是必要的,以便在多次使用相同输入的情况下,我们可以拒绝第二笔交易但允许第一笔交易。

这是前一个哈希包含在块中的另一个原因。

时间戳服务器

这是一种建议的方法,用于维护添加块的顺序并让每个人都同意。让我们看看它是如何工作的。

一旦验证过程结束,时间戳服务器就会生成一个哈希值。这个散列由当前块的数据和时间戳服务器生成的前一个散列(前一个块)组合而成,并将这个散列广播给每个人。

解码比特币论文第 2 部分——简介、交易和时间戳服务器-3取自比特币纸

这样做是为了当一个新的交易出现并试图双花时,可以证明过去已经存在一个使用这些输入的块。

这也加强了先前的块;意思是说,当在它之后添加块时,给定块的真实性和它的顺序会更加固化。为什么?

多个节点一直在努力确认交易并将区块添加到链中。当一个节点添加一个块时,它意味着它已经接受了它之前的块的真实性。

如果不是这种情况,该节点将在最后一个被它接受为真实的块之后添加该块。那不一定是整个链的最后一个块。

因此,当在给定块之后添加更多块时,这意味着更多节点已经同意该块的交易发生在后续块中的交易之前,从而巩固了顺序。

通过这种方式,我们维护了区块的顺序并达成了多数同意。

结论

  • 我们定义了信任和证明。
  • 我们看到了比特币账户余额系统的不同之处。
  • 我们了解如何使用输入和输出进行交易。
  • 我们了解了维护交易顺序的重要性以及它是如何实现的。

内容搜集自网络,整理者:BTCover,如若侵权请联系站长,会尽快删除。

(0)
BTCover的头像BTCover
上一篇 9 4 月, 2022 3:41 下午
下一篇 9 4 月, 2022 3:40 下午

相关推荐