比特币借助密码学保证了交易的安全性、准确性和隐蔽性,通过区块链结构保证了比特币账本信息准确性,但是中心化交易中由银行记录就可以完成余额的变化,比特币的交易是怎么完成的?谁来确认是否有人怀着恶意进行的操作?
要说比特币的交易方法,需要先说明你手里并没有比特币这个钱,在钱包里你所拥有的并不是余额,而是一条条写着属于你某个地址的交易信息,中本聪称之为未花费交易输出。
换句话说,就是每个人拥有的不是货币,而是交易权,意思就是你拥有银行多少钱的转账权利。
比如说我钱包某个地址拥有一份6比特币可支付输出的交易权,当我完成一笔5.5比特币的支出时,就将它变成了两部分,一部分是对方获得的5.5比特币的交易权,一部分是给我的0.5比特币的交易权。
交易结束时,两个部分的未花费交易输出上都会写着交易双方的信息,证明这是谁给的,目前属于谁。
所以说很多个人钱包中的比特币是相对独立的一条条写着发送方地址和接收方地址交易信息的UTXO,交易时会按照你的交易金额和钱包中包含的每条UTXO额度进行分配,优先使用小面额的UTXO。
UTXO交易方法对应的是类似传统的账户余额法,相比账户余额法,UTXO的优点在于交易时无需提供交易涉及金额以外的其他数据,并可以清晰地追溯交易流程,缺点是由于保留了大量的交易数据造成的容量增大,并且无法阻止51%节点算力攻击造成的威胁。
此外,每个全节点的客户端还包含一个实时更新的UTXO文件库,以方便交易时查找数据,其中每条UTXO中所包含的信息为未花费输出的数量和一个锁定脚本,每个UTXO都拥有一个锁定脚本,只有拥有者的数字签名才能解锁这个锁定脚本。
换句话说就是这个锁定脚本证明着这份比特币属于谁,而交易过程其实就是由某人的UTXO生成一个或几个新的总金额不变的UTXO。
当你想要交易这个UTXO时,你需要将这个UTXO的数字摘要、你的数字签名、你的公钥、金额和输出地址打包成一个交易数据,然后将该交易数据广播给全网节点并放在他们的缓存池中。
全网节点在将你的交易信息放入缓存池之前会进行验证,通过公钥确认UTXO地址属于该公钥,再在脚本中通过这个公钥将数字签名解密,解密后得到了被加密的数字摘要,再与你所依附的UTXO数字摘要进行对比,如果一致,就证明这份UTXO确实是由该公钥对应的私钥发起,由此确认该交易可以执行。
因为别人是无法使用你的私钥加密相关数据的,因此可以防止别人伪造交易并成功,当节点确认交易信息可执行后,就会放入自己的缓存池等待交易加入区块中。
区块的生成是约每10分钟一个,将这期间放入缓存池中的交易信息打包形成区块很简单,只需要提供算力去打包即可。
但是,如果没有奖励,很难有人坚持开放算力对交易信息进行记录,所以中本聪会对完成区块打包的人进行奖励,目前是3.125个比特币,按照目前比特币的价格,3.125个比特币是26875美金。
所以你知道打包交易信息成区块的人为什么被称为矿工了吧,他们确实是在挖矿,但是最终并入区块链中的区块只有一个,挖矿的人又很多,如何确定谁打包的区块可以并入链中呢?这就是比特币的POW共识机制。
POW共识机制即是工作量证明机制,简单地说,矿工竞争区块打包的过程就是将一些信息打乱重组,然后算出这份数据的哈希值,并与前文区块头中的当前挖矿难度值进行比对,如果小于目标难度值则为正确结果。
待得到正确结果后,便可以对全网节点进行广播这个区块了,每个接收到新区快的节点会验证你的运算是否正确,确认无误就会放入自己的区块链中,本区块的挖矿就完成了。
听起来很简单,但实际计算这个值工作量并不小,需要计算的信息包括:交易信息、设定时间戳和随机数,矿工需要将三者一起进行哈希运算。
虽然矿工的目标只是将交易信息打包,但只打乱交易信息排列顺序的哈希运算是存在无解的可能,所以比特币矿工打包时还加入了两个可调整量:时间戳与随机数,用以保证运算存在更多种结果。
而且,难度值也不是一成不变的,因为算力是不断提升的,如果没有其他手段限制,打包速度也会越来越快,所以比特币每隔2016个区块都会依照其中打包时间的平均值与10分钟进行对比,以此来调整下一个难度值的难易程度,确保打包区块时间平均为10分钟。
矿工将新打包好的区块中广播出去,接收到新区块的各节点也会验证区块中的每笔交易并计算对比难度值,确认没有问题后,各节点就会将该区块并入客户端中的区块链上,UTXO文件库中也会随之更新,而下一个使用者就可以用同样的方法使用这份UTXO了。
如果有人同时发出了两条交易信息,节点只会广播先被验证完的第一条交易信息,接到第二条信息则会被该节点验证失败,矿工就是这些节点中的一员,所以任何矿工都只会打包关于这条UTXO的一条交易信息。
虽然可能会出现两种不同区块,但广播出去后获得大多数节点认可的那个区块中的那一份交易就是被认可完成的交易,从而避免了一份钱花两次。
当各节点完成新区快入链后,就会更新UTXO库,其中交易的接收者就可以按照上述方法花费已经属于他们新的UTXO了。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。