欧易OKX矿池接入教程
什么是双花问题,btc和eth是怎么防止双花的
2022.03.02
btc:每次交易都会记录一个账单已使用。如果时间非常接近,也只有最长链有效。
ETH:在刚生成地址时,nonce为0,该地址每发送一笔交易,nonce值加1。
“双花”问题是指一笔数字现金在交易中被反复使用的现象。
首先,比特币的每笔交易,总是由若干个输入和输出组成(vin和vout)
一个vin指向的是前面一个区块的vout,并且只有矿工奖励没有vin,只有凭空输出。任何一笔交易,都可以从vin追溯到矿工奖励
还没有被交易的vout被称为UTXO,即未花费交易输出
钱包从创世区块开始扫描每一笔交易
如果遇到某个vout是钱包管理的地址之一,那么钱包余额增加。如果vin是钱包管理地址之一,钱包余额减少。
钱包余额总是钱包地址关联的所有UTXO之和
矿工在生成区块的时候,会从网络上收集交易信息,交易信息中包含了付款人的私钥签名。
矿工首先验证签名是不是正确的
然后矿工会从以前区块中追溯,看付款人这次消费的比特币是不是以前没有被消费过
如果用户用同一笔UTXO付给两个人,系统中的节点只确认先接收到的那一笔
当两笔时间上很接近的交易被不同节点确认,区块链将发生分叉。剩余节点选择在他们认为的最长链上构建新的区块。
当其中一笔交易被6个节点确认后,它将成为系统最长链,可以认为这笔交易获得了最终的确认。