比特币基础概念–交易(Transactions)

比特币的交易(Transation,缩写Tx),并不是通常意义的交易,例如一手交钱一手交货,而是转账。以图 1 中的交易 1 为例,如果 B想支付 100 个比特币(100BTC)给 C,那么 B不仅需要在交易单上注明金额,而且需要注明这 100 个比特币的来源。如图 1 所示,B的 100BTC 其实来自 A,是 B通过交易 0 得到的(交易0 已经通过了全网用户的认证,保存在所有用户的电脑中)。为完成交易 1,B 需要在交易单上填写的信息包括:

一是 100BTC 的来源,此处为交易单 0 的 ID;

二是 C 的公钥,也即 C 的比特币收款地址;

三是将交易单 0 的内容和 C 的公钥输入散列函数,得到一串数字。B用自己的私钥加这串数字,作为数字签名放在交易单 1 中。C 在收到交易单 1 之后,可以通过其中存放的 ID 找到交易单 0,并获取 B的公钥。C 可以使用该公钥对交易单 1 中的数字签名进行解密。与此同时,C 可以把自己的公钥和交易单 0 的内容,按照同样的方式输入散列函数,并将得到的数字与数字签名解密的结果进行比对。

如果比对成功,就可以确定如下两个事实:

其一,100BTC 的来源属实。因为交易单 0 中包含了 A 的签名,且交易单 0 是经过全网认证过的,即 A 确实将 100BTC 给了 B;

其二,交易 1 的确是经由 B签署的。由于 B的私钥是唯一的,他无法抵赖这单交易。

比特币基础概念–交易(Transactions)_第1张图片

图 1 比特币交易过程

资料来源:Nakamoto(2008)

上述过程略显复杂。我们可以换一种不太精确但更容易理解的解释。依然以交易 1 为例,交易单 1 中其实包含以下六种信息:

一是交易单 1 的 ID;

二是资金的来源,即交易单 0 的 ID;

三是 A 对资金的签名,以证明是他把 100BTC 给 B的;

四是资金的去向,即 C 的账号(公钥);

五是资金的数额,即 100 BTC;

六是 B的签名(即 B用自己私钥进行的数字签名),以证明是他自己签发的交易。

由于每笔交易单都记录了该笔资金的前一个拥有者、当前拥有者以及后一个拥有者,我们就可以依据交易单实现对资金的全程追溯。这也是比特币的典型特征之一。最后,当每一笔交易完成时,系统都会向全网进行广播,告诉所有用户这笔交易的实施。

你可能感兴趣的:(比特币基础概念–交易(Transactions))