科普 | 比特币交易的过程
最近这段时间,博主在整理一份通俗易懂的 挖矿科普专辑 ,希望从最初加密货币交易的发生到挖矿确认交易的各个环节,全面地介绍挖矿过程中,到底发生了什么,哪些环节产生了挖矿收益,而我们常说的算力又指的是什么,挖矿收益为何要这样分配等等。
以 比特币 为例,我们知道比特币网络里设计挖矿的目的是 打包交易,维护比特币网络 ,那么 交易 其实就是跟挖矿息息相关的第一个环节。在比特币网络中 交易的过程 使用了非对称加密技术,数字摘要技术,区块链技术等,其中的技术实现,已经有众多大神珠玉在前,博主就不献丑了。这篇文章的主要目的是 将比特币的交易过程用较为浅显的语言展示出来 ,让更多跟笔者一样的技术门外汉了解比特币。
在展开说明之前,需要先安利几个概念 :
非对称加密 :也叫公开密钥加密,它是通过密码学的算法生成一对公私钥,公钥对外公开,私钥由本人保管。它有两个 用途 :一,他人可以将数据用公开的公钥加密后传输给公钥持有人,公钥持有人使用对应的私钥将数据解密,读取信息,通过这种方式,可以保证 信息传输 的安全性;二,公钥持有人可以使用私钥对 信息签名 (签名过程类似加密过程),然后将信息和签名一起发送给他人,他人可以通过公钥对信息签名进行验证(验证过程类似解密过程),验证签名信息与发送信息一致,则证明信息是由公钥持有人发出,可以在不暴露公钥持有人身份和私钥的情况下,确保信息来源的可靠性。 (参考链接: https://en.wikipedia.org/wiki/Public-key_cryptography ) 哈希算法 :也叫散列函数,可以通过它将数据量较大的消息或者数据计算出一个格式固定,数据量较小的 数字摘要 。好的哈希算法应该是 不可逆的 (无法通过数字摘要反推出原来的信息或者数据), 敏感的 (原来数据中任何一个微小的改动,都会使数字摘要发生巨大变化), 防冲突的 (很难找到两个不同的信息,它们的数字摘要相同)。 (参考链接: https://en.wikipedia.org/wiki/Hash_function ) 比特币里的公钥和私钥 :比特币世界里,用来确定比特币归属的是按照比特币协议生成的一对对公钥和私钥,它们通过非对称加密算法(椭圆曲线算法)生成, 公钥 通过两次 哈希 算法(SHA256)运算 得到一个散列值 (也叫做哈希),再经过 Base58Check编码 生成了我们常见到的比特币的 钱包地址 。所以钱包地址经过解码后,就可以得到对应公钥的哈希,可以用于验证私钥签名,加密数据等等。 UTXO :Unspent transaction output,未花费的交易输出,它是比特币世界里的 抽象货币 ,每个UTXO都被一个 公钥(钱包地址)锁定 ,只有持有该公钥对应私钥的人,可以 通过私钥签名(解锁) 并使用该UTXO。可以把UTXO理解为 抽象的纸币 ,但它的面值不是固定的(不光有5块,10块,可以是任何数)。 (参考链接: https://en.wikipedia.org/wiki/Unspent_transaction_output )
抛开代码,我们接下来看看比特币的交易是怎样的一个过程:
如下图,有甲、乙、丙、丁四个人,他们都有比特币钱包,钱包私钥自己持有,钱包地址(由各自钱包公钥生成)在比特币网络公开,用于UTXO的锁定和验证。
整个交易的流程如下:
- 丙通过比特币钱包准备交易信息,交易信息包括输入和输出两个部分, 输入 是 UTXO(1) 和 UTXO(2) ,以及 丙的钱包私钥签名 (因为UTXO(1)和UTXO(2)均被丙的钱包公钥锁定,需要通过丙的私钥签名来解锁后,进行使用)
-
交易的
输出
是
未确认
的
UTXO(3):丙给丁0.8BTC
,这个新的UTXO
指向丁的钱包公钥
,待交易确认后,将被丁的钱包公钥锁定。
此时还有0.4BTC需要找零给丙,因此还需要输出一个 未确认 的 UTXO(4): 丙给丙0.3999BTC ,这个新的UTXO指向丙的钱包公钥,待交易确认后,将被丙的钱包公钥锁定。
为什么找零的数额不是0.4BTC呢 ?因为比特币网络要求,交易转账,需要向比特币网络支付交易手续费。 剩余0.0001BTC 未指向任何钱包公钥,将作为 转账手续费 支付给打包这笔交易的矿工(如果未找零,剩余所有未指定的比特币将全部作为手续费给打包交易的矿工,不过目前找零工作都由钱包自动完成,不用担心)。
- 交易信息准备完毕后,经过丙的钱包 验证交易合法 (UTXO合法,签名有效,输入输出金额有效等等)后,将交易广播到比特币网络中,由挖矿节点 验证交易后,打包交易(将交易记入比特币区块中),并向比特币网络广播 ,交易完成。
- 旧的UTXO被消耗,新的UTXO开始生效 ,此时丁的钱包里有一个未使用的 UTXO(3): 丙给丁0.8BTC ,丙的钱包里有一个未使用的 UTXO(4): 丙给丙0.3999BTC 。
从这个抽象的交易过程,我们可以发现,比特币的交易实质上是一堆UTXO的输入和输出的过程,伴随旧的UTXO被消耗,新的UTXO产生,完成了一次又一次的比特币交易。交易的过程由非对称加密和哈希算法进行双重保护,比特币持有者可以放心完成交易而不必担心身份被泄露,交易过程中也消耗了一部分比特币,用于奖励打包交易的矿工,使矿工乐于完成自己维护比特币网络的任务。
The SEC Rate Cuts Could be on the Horizon- Will XRP Price Explode by 45% This Month?
The post The SEC Rate Cuts Could be on the Horizon- Will XRP Price Explode by 45% This Month? appear...
Sam Bankman-Fried Moved to Terminal Island, Home to Infamous Inmates
The post Sam Bankman-Fried Moved to Terminal Island, Home to Infamous Inmates appeared first on Coin...
Ripple Takes Asia By Storm With New XRP Product, Here Are The Recent Developments
Ripple is again breaking into the Asia market with a new XRP product, which would help drive institu...