如果我的应用程序是相对较新且节点较少的应用程序,则很容易受到51%的攻击。</ p>
示例:
人员A-100BTC
人员B-50BTC
人员C-0BTC(恶意用户)
如果C人以某种方式获得对网络的控制权,则创建了最长的链并具有无效交易的区块,即A发送到C 80 BTC和B发送到C 50 BTC,而A和B并没有真正用私有密钥对此进行签名(无效由C创建的交易)。
这里的问题很棘手,因为交易不是由原始所有者进行的,网络会受到损害,C
会花钱吗?共识在这里丢掉了吗?如果我错过了某个地方的把戏,请指出。
答案 0 :(得分:1)
C不能花费他人的钱,除非他可以访问他人的私钥并签署交易。即使他尝试这样做,由于我们由硬币所有者签署的交易,该区块也不会被视为有效。
答案 1 :(得分:1)
所有参与者都知道的规则说,交易必须正确签名。这些规则说明了交易转移多少比特币。因此,如果交易未正确签名,它将不转移任何比特币。
让我再说一遍:有一些规则可以让您确定交易转移的比特币数量。这些非常相同的规则表示必须对交易进行正确签名。因此,未正确签名的交易不会转移任何比特币。
节点在比特币网络中互不信任。将检查发送的每个消息的有效性,如果无效,则必须忽略它,因为它没有任何意义。没有正确签名的交易不是交易,只是垃圾。节点可以向您发送他们想要的所有垃圾,但是您将永远不会对其进行处理,因为您不能。您的代码根本没有规则来说明垃圾。
答案 2 :(得分:0)
经过详细研究后,我得到了答案,希望它有意义。
人员C不能花A,B钱。他所能做的就是逆向交易并造成双花情况,他可以在建立最长链的过程中擦除 A,B交易,但不能从其他钱包中花钱。 /公钥。