这篇文章的主要目的是将比特币的交易过程用较为浅显的语言展示出来,让更多跟笔者一样的技术门外汉了解比特币。 最近这段时间,博主在整理一份通俗易懂的挖矿科普专辑,希望从最初加密货币交易的发生到挖矿确认交易的各个环节,全面地介绍挖矿过程中,到底发生了什么,哪些环节产生了挖矿收益,而我们常说的算力又指的是什么,挖矿收益为何要这样分配等等。 以比特币为例,我们知道比特币网络里设计挖矿的目的是打包交易,维护比特币网络,那么交易其实就是跟挖矿息息相关的第一个环节。在比特币网络中交易的过程使用了非对称加密技术,数字摘要技术,区块链技术等,其中的技术实现,已经有众多大神珠玉在前,博主就不献丑了。这篇文章的主要目的是将比特币的交易过程用较为浅显的语言展示出来,让更多跟笔者一样的技术门外汉了解比特币。 在展开说明之前,需要先安利几个概念
抛开代码,我们接下来看看比特币的交易是怎样的一个过程 如下图,有甲、乙、丙、丁四个人,他们都有比特币钱包,钱包私钥自己持有,钱包地址(由各自钱包公钥生成)在比特币网络公开,用于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。但在比特币网络中,这个找零的工作是由丙自己发起的。 整个交易的流程如下: 丙通过比特币钱包准备交易信息,交易信息包括输入和输出两个部分,输入是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。 以上是较为抽象的比特币交易的过程,有关比特币交易的构造,签名验证,节点验证,交易广播,加入挖矿节点mempool,矿工构造预备区块,以及最终的出块确认的过程,后续会分别介绍,本篇不做展开。 从这个抽象的交易过程,我们可以发现,比特币的交易实质上是一堆UTXO的输入和输出的过程,伴随旧的UTXO被消耗,新的UTXO产生,完成了一次又一次的比特币交易。交易的过程由非对称加密和哈希算法进行双重保护,比特币持有者可以放心完成交易而不必担心身份被泄露,交易过程中也消耗了一部分比特币,用于奖励打包交易的矿工,使矿工乐于完成自己维护比特币网络的任务。 本文来源:闲话挖矿 —- 编译者/作者:闲话挖矿 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
科普:比特币的交易过程
2020-06-21 闲话挖矿 来源:火星财经
LOADING...
相关阅读:
- 您应该知道的5个市值较小的DeFi项目2020-08-06
- IPFS100.com发布会圆满落幕助力IPFS生态健康良性发展2020-08-06
- Ledger硬件钱包将发布漏洞修复程序,以防止用户在发生事故时发送BTC2020-08-06
- 如果不解决,新的Ledger钱包漏洞可能是灾难性的2020-08-06
- ForTube Bond投资即可享受“空投返还gas费”活动2020-08-06