时间:2023-07-09|浏览:170
以比特币为例,我们知道比特币网络里设计挖矿的目的是打包交易,维护比特币网络,那么交易其实就是跟挖矿息息相关的第一个环节。在比特币网络中交易的过程使用了非对称加密技术,数字摘要技术,区块链技术等,其中的技术实现,已经有众多大神珠玉在前,博主就不献丑了。这篇文章的主要目的是将比特币的交易过程用较为浅显的语言展示出来,让更多跟笔者一样的技术门外汉了解比特币。
在展开说明之前,需要先安利几个概念:非对称加密,也叫公开密钥加密,用于保证信息传输的安全性;哈希算法,用于计算大数据量的数字摘要;比特币里的公钥和私钥,用来确定比特币归属的一对对公钥和私钥;UTXO,即未花费的交易输出,是比特币世界里的抽象货币,每个UTXO都被公钥锁定,只有持有对应私钥的人可以使用。
抛开代码,我们接下来看看比特币的交易是怎样的一个过程。图中有甲、乙、丙、丁四个人,他们都有比特币钱包,钱包私钥自己持有,钱包地址在比特币网络公开,用于UTXO的锁定和验证。 起始,甲给丙0.7BTC,在比特币网络里的记录是UTXO(1):甲给丙0.7BTC;乙给丙0.5BTC,在比特币网络里的记录是UTXO(2):乙给丙0.5BTC。此时,丙的比特币钱包的账户余额为这两个UTXO之和,丙的比特币总数=UTXO(1)+UTXO(2)=1.2BTC。
这天,丙向丁买了一批货物,需要向丁支付0.8BTC。丙通过比特币网络向丁转账,但丙现有的两个UTXO均不足0.8BTC,需要将两个UTXO一起使用,类似现金交易:给丁支付1.2BTC,丁找给丙0.4BTC。但在比特币网络中,这个找零的工作是由丙自己发起的。
整个交易的流程如下: 1. 丙通过比特币钱包准备交易信息,交易信息包括输入和输出两个部分,输入是UTXO(1)和UTXO(2),以及丙的钱包私钥签名。 2. 交易的输出是未确认的UTXO(3):丙给丁0.8BTC,待交易确认后,将被丁的钱包公钥锁定。 3. 还需输出一个未确认的UTXO(4):丙给丙0.3999BTC,待交易确认后,将被丙的钱包公钥锁定。 4. 交易信息准备完毕后,经过丙的钱包验证交易合法后,将交易广播到比特币网络中,由挖矿节点验证交易后,打包交易并向比特币网络广播,交易完成。 5. 旧的UTXO被消耗,新的UTXO开始生效,此时丁的钱包里有一个未使用的UTXO(3):丙给丁0.8BTC,丙的钱包里有一个未使用的UTXO(4):丙给丙0.3999BTC。
以上是较为抽象的比特币交易的过程。从这个抽象的交易过程,我们可以发现,比特币的交易实质上是一堆UTXO的输入和输出的过程,伴随旧的UTXO被消耗,新的UTXO产生,完成了一次又一次的比特币交易。交易的过程由非对称加密和哈希算法进行双重保护,比特币持有者可以放心完成交易而不必担心身份被泄露,交易过程中也消耗了一部分比特币,用于奖励打包交易的矿工,使矿工乐于完成自己维护比特币网络的任务。