主页 > imtoken官方app > 深入理解比特币交易(transaction)

深入理解比特币交易(transaction)

imtoken官方app 2023-05-23 07:41:04

比特币怎么比特币钱包_外国的比特币便宜中国的比特币贵为什么?_比特币产出

如果你接触比特币时间够长比特币产出,你一定听说过比特币是一个区块链,一个区块包含很多笔交易,而且这些交易都是链在一起的。 那么,具体deal的细节呢?通常技术文档都是术语,连中本聪的白皮书也很难直接联系实际,最近仔细研究了一下,这里打个简单的比喻来解释一下

假设您的钱包中有 A、B 和 C 三个地址。 你在地址A有1个币,你在钱包软件里把币发到地址B,你可以在区块链上找到这笔交易,可以称之为交易A,然后你再做一个交易B,从地址B发币到地址C,假设手续费是0.0001个币比特币产出,你每次发0.0001个币作为手续费,那么交易A确认后,地址B是0.9999个币,交易B确认后,地址C是是0.9998个硬币

交易A:地址A 1BTC -> 地址B 0.9999 BTC,手续费0.0001

比特币产出_外国的比特币便宜中国的比特币贵为什么?_比特币怎么比特币钱包

交易B:地址B 0.9999 BTC -> 地址C 0.9998 BTC,手续费0.0001

用账本类比最好理解

账本就是区块链,账本的每一页都是一个区块,这些纸依次装订在一起,就形成了一个完整的账本。 汇票(交易)后每一页都被汇票覆盖

如果仔细观察汇款单交易B(从地址B向地址C转0.9998币,并支付0.0001手续费),你会发现交易B由两部分组成,第一部分可以称为支付信息(输入) , 后面的部分可以称为支付信息(输出)

比特币产出_外国的比特币便宜中国的比特币贵为什么?_比特币怎么比特币钱包

按照银行填写汇款单的一般习惯,付款信息填写汇款账户名称(即地址B)和账户所有者签名(授权交易),而金额和收款信息要填写收款人的账户名(也就是地址C)。其实比特币交易大致是这样写的,略有不同

事务A

支付信息:签名+公钥A(签名相当于盖章,用地址A的私印章(私钥)生成,地址A的公钥可以让别人验证印章是否有效(私钥公钥加密原理无处不在))

收款信息:0.9999(金额)+地址B+兑现条件(这里的兑现条件是指以后需要满足什么条件才能花掉地址B的币,详见下文)

比特币产出_外国的比特币便宜中国的比特币贵为什么?_比特币怎么比特币钱包

事务B

支付信息:签名+公钥B

收款信息:0.9998+地址C+兑现条件

事务C

比特币产出_比特币怎么比特币钱包_外国的比特币便宜中国的比特币贵为什么?

支付信息:签名+公钥C

收款信息:0.9997+地址D+兑现条件

与银行汇款单有几处不同

首先,每笔汇款订单都是在上一笔汇款订单的收款地址中花费币,这样所有的交易都一一串起来,如果要彻底验证某笔交易C是否有效,就必须按照这个链回溯到最原始的挖矿输出交易(交易A之前还有其他交易),这保证了只要用户拥有完整的区块链副本(即当前全节点的60G数据),他们可以独立验证任何交易的有效性

外国的比特币便宜中国的比特币贵为什么?_比特币产出_比特币怎么比特币钱包

第二,每次汇款只能用完消费账户中的所有币。 以交易B为例,汇款完成后原地址B为空。如果您只想将一半资金转入地址C,则剩余的一半必须在支付信息中填写另一个账户地址E,即所谓的变更地址

三、总汇款金额小于地址B的部分为手续费。如果地址B中有0.9999个币,汇入地址C的金额为0.9998个币,则中间差0.0001为矿工手续费费用

第四,验证交易B是否有效是由上一笔交易中的兑现条件即交易A的支付信息来保证的。可以有多种规则,目前最常见的两种是提供交易者的签名接收地址(P2PKH)和提供一个程序的哈希值(P2SH,这里涉及哈希,一种防伪手段)

如果你完全理解,那么你对比特币交易功能的理解就接近于核心程序员的水平。 以后大家会遇到scriptSig(签名+公钥)、scriptPubKey(提现规则)等很多术语。 很容易知道它是关于汇票的哪一部分。

这里还有一个比较复杂的概念,就是签名。 我会单独发一篇文章来分析。 这个签名与最近的火星隔离见证密切相关