「交易」本质上就是价值的转移,而比特币交易实际上可以理解为,记录比特币所有权的转移。
比较直观的说法就是,比特币从一个地址到另一个地址的转账过程。
在转账的过程中,我们需要用到私钥和公钥,来确认比特币的所有权以及对交易进行签名。
私钥就是通过加密算法随机生成的一个字符串,通过私钥可以推导出公钥,而拥有私钥的人就拥有比特币的控制权。
一般情况下,交易发起方创建了一笔交易后,他将使用私钥对交易进行签名。
这个签名的意思就是比特币持有者对交易的许可,同时还能保证交易发生后不能被他人修改。
交易发起后,这笔交易会被广播至比特币全网,等待交易确认。
当矿工收到交易确认请求后,将通过计算哈希值的方式争取记账权,然后将交易打包成一个区块并上传到比特币网络中。
当比特币网络中有六个区块交易确认后,比特币的转账过程就完成了,接收方也获得了对转账后的比特币的控制权。
日常生活中购买商品,我们可以通过多张小面额的零钱支付,也可以使用一张大面额的钞票付款,等待商家找零。
比特币交易也与现实交易相似,也存在这样的找零机制。
在比特币交易中,用户有权使用的比特币转账地址上的之前交易输出(UTXO)金额,会被作为一次交易的输入,比特币收款地址上增加的交易金额作为本次交易的输出。
输入金额必须大于等于输出金额,超出部分作为本次交易的手续费。
手续费没有输出地址,将奖励给将本次交易记账成功的矿工。
有些时候,交易时作为输出部分的金额超过了用户想要支付的金额,比特币客户端就会创建一个新的比特币地址,并把差额发送回这个地址,以此实现比特币的找零机制。
与法定货币不同,我们习惯把这种方式称之为交易单元的输入和输出。
当你“支付”比特币,并创建一次交易时,你必须将你支付地址上可供支付的金额(来自该地址之前交易的输出)作为新交易的输入。
这样的地址可能不止一个,你的比特币钱包会暗自寻找你钱包中所有可供支付的输出金额(可能来自于不同地址),并把它们加在一起显示为钱包可用余额。