比特币技术笔记(3)比特币

  • by

1.   比特币的定义

了解了数字签名后,我们终于可以开始介绍比特币的技术定义。

由于任何货币的价值都体现在连接付款方与收款方,即交易/转账(Transaction)。因此比特币被定义为包含了付款信息和收款信息的一条记录,即:

一枚电子货币(an electronic coin)是一串付款人的数字签名。

中本聪的比特币白皮书仅用这一句话就定义了比特币,可见这个的抽象定义非常简洁。接下来将具体解释其含义。举例来说,我们假设由B向A转账了0.5BTC,那么A所收到的比特币的定义为:

A的BitCoin = ( B的比特币,A的身份,金额)

为了避免第三方伪造交易,冒用B的身份转账,则需要使用上文提到的『数字签名』技术来 证明货币的确由付款者B发出。同时收款人A的身份则通过A的公钥来指定,则有:

A的BitCoin = B的私钥加密(B的BitCoin,A的公钥,金额0.5)

因此货币转移即为公开发布一个字符串,这个字符串按照以下规则生成:

收款人的BitCoin = 付款人的私钥加密(付款人的BitCoin,收款人的公钥,金额)

可以发现,比特币的定义是递归的。即一个有效的比特币,来自其付款人拥有的有效比特币。这就产生一个问题:那么第一个比特币如何定义?该问题会在后文的区块链中解释。

2.   交易验证:

收款人收到比特币之后,为验证其有效性,需要证明以下3个问题:

  • 该比特币的付款人真实
  • 该比特币的收款人是自己,且金额正确
  • 付款人的比特币是有效的

具体操作上,收款人使用付款人的公钥解密比特币,获取以下信息:

  • 付款人的比特币
  • 收款人的公钥
  • 金额

首先,成功通过付款人公钥解密该货币,即证明了付款人的真实性。其次核对收款人的公钥、金额,确认收款信息正确。最后,需要验证付款人的比特币是真是有效的。

而付款人的比特币的有效性,则通过前一付款人的公钥解密,递归验证。直到验证到有效的创始比特币。

3.   找零

实际的比特币支付中,可能出现这两种情况:

  1. A向B支付了10比特币,而B需要将收到的10比特币拆出5比特币支付给C。此即比特币的拆分问题,也称为『找零』。
  2. A和B均向C支付了5比特币,现在C需要向D支付10比特币。此即比特币的合并问题。

针对这些需求,比特币做出该规定:任何比特币交易可以包含无数个付款比特币,和最多两个收款地址

那么针对上文中的情况1,可以使用这样的支付方式:

C收到的比特币=(
付款人:B的10.0比特币,
收款人1:B,收款金额5.0,
收款人2:C,收款金额5.0

即在支付过程中,通过将自己设定为第二个收款人,即实现『找零』的功能。

对于上文中的情况1,可以使用这样的支付方式:

D收到的比特币=(
付款人1:C的5.0比特币(来自A),
付款人2:C的5.0比特币(来自B),
收款人1:D,收款金额10.0,

即在支付过程中,将零散的金额设为付款人,即可实现合并支付。不仅如此,合并支付与找零可以同时使用,实现比特币的灵活流通。

4.   手续费

理论上,一个比特币交易中的付款与收款总金额应当是相等的。但实际上,收款金额往往比总付款金额要少。其中的差额被称为比特币交易的『手续费』。

例如:A向B转账1.0比特币的交易信息可能为

B收到的比特币=(
付款人:A的1.0比特币,
收款人:B收款金额0.99,

那么这笔交易的手续费则为0.01。

所有交易的手续费都将被比特币网络的维护者(即计算节点)收取,具体将在接下来的文章中介绍。

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.