时间:2021-04-04|浏览:6732
比特币网络大致分为两种类型,一种类型为钱包节点,它不负责生成区块,而是利用钱包对应的私钥来签署属于此账户的未消费交易记录,然后生成新的交易记录(转至指定账户)并将之传播到比特币网络,钱包定期从比特币网络中获取钱包对应的公共密钥地址的所有未消费交易记录,这些公共交易记录所涉及的比特币总数即是该账户的余额。另外一种类型是挖矿节点,它收集交易记录,然后删除重复的交易记录,然后对交易记录进行签名验证,然后将验证成功的数据放入交易池,在开始生成下一个数据块时将交易池中的记录全部放入该数据块。
在比特币网络的多个节点之间进行竞争,看谁先找到满足条件的值,一旦某个节点先找到了,就会把新产生的区块分发出去,而其他节点一旦收到,就会停止挖掘,将该区块写到自己保存的区块链中,然后将新区块的散列值作为previous_hash开始挖掘下一个区块。
当两个比特币网络节点几乎同时计算出满足条件的nouce值并将其传播到网络中时,该如何解决整个网络的冲突?
在比特币网络中,人们一致认为只有最长的链才能维持,但是此时网络中有两个高度相同的区块在网络中传输,解决办法是网络中的节点接收到哪个区块并根据其哈希值挖掘下一个区块,这将导致部分节点承诺延长A链,部分节点承诺延长B链,见图2。在此之后,如果某个节点挖出了一个新的区块,那么与该新区块对应的链将被整个比特币网络所承认。简而言之,一个简单的句子就是只维持一个最长的链,每一个链的长度相同,则每个节点都要延长它自己首先收到的链。
如果有恶意势力在操纵区块链,那么区块链分叉就需要超过51%的算力,以取代存在正常用户交易记录的区块链,方法是生成更长的链(在区块中放置什么交易由他们决定)。值得注意的是,它们生成的区块中存储的必须是有效的交易,否则将被其他比特币网络节点视为恶意节点,无法进行交易验证。所以它们只能破坏其他人进行的交易,因为它们故意不将这些交易写入所产生的区块,而其他普通节点想要写入这些交易,但它们所产生的区块会被更长的替代。只要他们没有这些帐户对应的钥匙,恶意势力就不能使用其他帐户的余额。
希望深入了解比特币网络运营的朋友,可以继续关注我,我们一起探讨,共同前进!