比特币交易
当一笔比特币交易发起时,交易发起人会将「原始交易资料」与经「数位签章的资料」广播到网路上,透过点对点网路传播给每一个矿工。提交给矿工的「原始交易资料」包括「转帐数额」和「转入钱包地址」,但是仅有这些是不够的,因为无法证明交易的生成者对「转出钱包地址」余额有使用的权利,所以需要加一个「用私钥对原始资料进行数位签章的档案」。
「转帐数额」、「转入钱包地址」、「公钥」和「签名后的档案」,会一起被广播到比特币网路上交由矿工验证。
矿工如何验证
验证交易有效性
矿工接收到交易后,会先将交易放入 UTXO 池,校验数位签章验证交易有效性,同时检查交易发起人是否有足够的 UTXO (未花费交易输出)。验证数位签章时,由于「私钥」可以推算出「公钥」,但「公钥」不能反推出「私钥」,这个过程不可逆推,矿工的校验演算法利用了非对称加密法的原理,只要节点 (矿工) 能够用「公钥」证明该档案确实由交易发起人的私钥签名,再核对交易细节无误后,该笔交易即验证成功。
注意,矿工只认私钥不认人,就算交易并非由私钥所有者亲自发起的,只要该交易有用私钥加密(签名)过,矿工就会认定交易合法。因此,私钥务必要妥善保管。
(矿工会将交易资讯代入校验算法验证交易的有效性)
将交易放在交易池等待打包
矿工验证完交易的有效性后,回将交易放进交易池等待交易,此时,基于最大利益原则,矿工会将交易按照手续费高低进行排序,并在出块时优先打包处理手续费高的交易。
交易打包进区块
在这个阶段会有两种可能:
矿工取得计帐权:若矿工优先解出题目,获得记帐权,矿工就会将多笔交易资讯打包整理后,连同矿工挖矿时找到的答案一起广播到网路上,等待其它矿工验证。
未取得计帐权:若矿工在解出答案前,接受到其他矿工传来的区块跟答案,此时矿工便会验证接收到的区块是否有效,若答案正确且区块中包含的交易也没问题,矿工便会将区块传给下一个人,并开始挖下一个区块。