主页 > imtoken苹果端 > 比特币交易(一)

比特币交易(一)

imtoken苹果端 2024-01-26 05:08:04

在比特币白皮书中比特币交易确认书,有三个关键段落解释了交易是什么。

虽然数字签名(Digital signatures)部分解决了电子现金系统的问题,但仍然需要第三方的支持来防止双花(double-spending),那么这个系统就会失去它存在的价值。电子货币被定义为一串数字签名。电子货币从所有者到下一个人的转移是通过,所有者使用私钥对交易进行数字签名交易和下一个人数字签名的公钥,并将数字签名附加到这个电子货币上(数字签名链)在后面。收款人检查数字签名以验证他或她是否收到了电子货币。每次交易结束后,电子货币将由铸币局收回,铸币局将发行新的电子货币;只有铸币局直接发行的电子货币才被认为是有效的。这可以防止双花成为双花。

第一段明确指出,电子货币交易诞生的土壤是数字签名。

第二段阐明了比特币中的电子货币是什么以及它是如何交易的。

比特币钱包一直是0确认_比特币借币交易怎么玩_比特币交易确认书

第三段阐明了比特币中电子货币的创建和销毁过程,以保证电子货币的唯一性。

数字签名

在密码学中,我喜欢用 Alice 和 Bob 作为例子。 Alice代表路人A,Bob代表路人B,后面会经常用到。

比特币交易确认书_比特币钱包一直是0确认_比特币借币交易怎么玩

在现实世界中,交易是基于文本形式的签名进行的。例如比特币交易确认书,爱丽丝签署一张支票“爱丽丝给了鲍勃100元”,并通过秘书将签署的支票交给鲍勃。 Bob找专家验证签名正确后,确认交易。在互联网上,交易是基于数字签名完成的。

数字签名基于非对称加密。我们来看看维基百科对非对称加密的定义:

非对称密码学是密码学中的一种算法,需要两个密钥,一个是[公钥](),另一个是[私钥]();当一个用于加密时,另一个用于解密。用其中一个密钥加密明文得到的密文只能用对应的另一个密钥解密得到原始明文;甚至原本用于加密的密钥也不能用于解密。

比特币交易确认书_比特币借币交易怎么玩_比特币钱包一直是0确认

clipboard.png

数字签名是非对称加密的一种应用方法。在数学上,它可以用一个简单的公式来表示。整个数字签名的大致流程如下:

hash:    x = hash(data)
send:    c(x) and data
------- network -------
receive: c(x) and data
verify:  d(c(x)) = x = hash(data)

比特币钱包一直是0确认_比特币交易确认书_比特币借币交易怎么玩

Alice 需要向 Bob 转账 100 元电子货币。 Bob 需要一种方法来验证交易是否来自 Alice,并且 Alice 不能否认它。 Alice 写入交易信息数据:Alice 给 Bob 100 元电子货币。 Alice 使用哈希算法生成交易信息的哈希值 x = hash(data)。 Alice 通过随机数生成器生成一对密钥,一个作为公钥 d,另一个作为私钥 c。 Alice 使用私钥 c 对交易信息 x 进行签名,得到数字签名 c(x)。 Alice 使用 Internet 将数字签名 c(x) 和交易信息数据传递给 Bob。 Bob 使用公钥 d 对数字签名 d(c(x)) 进行解密,得到交易信息哈希值 x。 Bob 用公钥 d 对数字签名 c(x) 的值进行解密,得到交易信息的哈希值 x。 Bob 使用哈希算法生成交易信息的哈希值 hash(data)。如果 Bob 生成的交易信息的哈希值 hash(data) 等于 Alice 生成的交易信息的哈希值 x,则 Alice 有私钥,否则 Alice 没有私钥。如果 Alice 拒绝,任何人都可以重复 Bob 的验证步骤并确认交易数据:Alice 给 Bob 100 元电子货币。

clipboard.png

电子货币

比特币借币交易怎么玩_比特币钱包一直是0确认_比特币交易确认书

那么如何定义这个100元的电子货币呢?回到比特币白皮书。

将一枚电子货币定义为**数字签名链**( a chain of digital signatures)。电子货币从所有者转移给下一个人是通过,所有者使用私钥,对交易 Transactions 和下一个人的公钥进行数字签名,并将数字签名附在这枚电子货币(数字签名链)的后面。收款人对数字签名进行检验,就能校验自己是否收到了电子货币。

clipboard.png

在比特币的源代码中,电子货币被定义为一个数字签名链,只要 Alice 在电子货币上签名后,就相当于属于 Bob 的电子货币。此过程基于上述数字签名。

到现在为止,比特币交易的整体思路已经基本明确。还有很多细节,需要深入到源码层面,比如