文章目录
1. 每次交易保存在哪里?
交易方发布交易信息到交易池中,矿工打包交易到区块中,然后通过随机数来挖矿,挖矿期间产生的新交易由其他区块打包到后续的区块中,也就是说区块被挖出来之前交易已经确定了。
2. 是否需要遍历全部区块才能获取余额信息?
不需要的,UTXO保存未花费的交易,大小可能几百GB,一个硬盘即可装下。
3. 假设交易池中有a交易,x打包挖矿成功,y也打包挖矿成功,y晚于x一点点,会不会导致a被重复记录
并不会,因为当x挖矿成功时,y需要x的hash,才能挖矿成功。即使xy形成分叉了,也会根据最长链路原则淘汰一个。由于hash的不可确定性,分叉的概率是十分小的
4. 如果矿工一直不打包交易怎么办?
事实上,这种情况是可以存在的,不过毫无意义,因为每笔交易都存在一笔交易费,矿工打包交易可以获得一定的比特币奖励,当所有的比特币都被挖出来的时候,就需要靠交易奖励维持比特币系统的运行了。
5. 如果只是一直调整随机数,其实算力是很快可以跑完全部随机数的。
除了随机数之外,还可以微调时间,因为比特币对时间要求没有那么高,重要的是,还存在一段自定义的信息,他可以一直影响hash,可以在里面写任何东西,这就极大的增加了未知区域。
暂时想到这些,评论区有疑问会补充