“区块丢弃”攻击
这种攻击被称作民间攻击或者是蓄意破坏攻击,这也被认为是一种蓄意破坏,因为这个攻击看上去对攻击者和矿池都是不经济的、代价不菲的。这个攻击者本身也会遭受损失,因为他所丢弃的有效区块将会使他放弃他应该有的一部分奖励回报。当然,这个攻击者还是会由于其他一些挖矿解密算法而获利。
看起来一个理性的矿工不会采用这种策略,因为他会有所损失而不会得到任何实际的回报。但(令人惊讶的是)在某些情况下,这个策略是可以有利可图的。但是无论如何,我们想要设计一个全新的挖矿解谜算法,以确保这种策略永远都是有利可图的(以抵抗矿池的存在)。
奖励破坏
设计这种攻击的目的,是让矿工们即使加入了一个矿池挖矿,也会缺乏向矿池管理员提交有效区块的动力。目前,只有矿池管理员可以获取挖矿奖励,因为管理员要求所有的参与者在他们挖矿的币基交易中加入一把特殊的公钥。这个公钥是否被正确地放入,可以在提交近似区块的时候被很容易地检查验证。矿池管理员是唯一知道私钥的人,因此可以决定新铸币的走向。
但如果我们要求所有的参与者都知道私钥(这样一来,当找到有效区块的时候大家都可以重新定义区块奖励的去向)呢?为了做到这一点,我们需要一个解谜算法,每一个解谜运算的尝试都要求知道币基交易里的私钥。我们可以把解谜从“找到一个区块,其哈希值低于一个特定的目标”改成“找到一个区块,这个区块里的数字签名的哈希值低于一个特定的目标”。这个数字签名必须要用币基交易里同一把公钥来计算。
这样的解谜算法,会给矿池管理员两个都不可靠的选择:他们可以把私钥分发给所有成员,如此,他们之中任何一人都可以私自挪用全部矿池资金。另外一个办法是他们可以代表矿池成员进行签名。计算一个签名的计算量比计算一个哈希函数要大许多,这样一来,矿池管理员会承担主要的苦活与累活,所以最好让矿池管理员成为一个独立的矿工。
不能被外包的挖矿的优劣
由于这类解谜算法不能够有效地(并不是完全不可能)被外包到一个不能被信任的参与者,这就使得成立一个由不被信任的参与者所组成的矿池变得十分困难。它可以有效地阻止所有的矿池形成,即便是像P2Pool这样成立一个没有矿池管理员的去中心化矿池。
存在如下争议,部署这类解谜算法可能会不可抑制地造成更多的中心化,而不是更少。因为概率上较高幅度波动(找到有效区块而获得奖励的概率问题)会让小矿工们不敢参与挖矿,剩下的只会是大型挖矿团队。目前,虽然矿池表面上控制了大量的挖矿算力,但还是不清楚如果他们想利用这个优势来发起攻击的话,其中许多成员是否会叛逃。大型挖矿矿池和可以承受高幅度收入波动的小矿池,到底哪个风险更大?这是一个未能解决的问题。
设计一个共识协议,理想方案是小额度地奖励每个找到低等难度解谜答案的矿工,以“自然地”降低概率波动风险。这就意味着矿工们不需要组成矿池,同时小矿工们还可以参与挖矿获利。仅仅降低每个区块产生之间的时间间隔不会起到作用——它需要被降低1000倍或者更多,才能够在概率风险上与大型挖矿矿池所面临的情况相当。但到那个时候,每个区块之间的间隔只有不到一秒,陈旧区块的数量会变得不可控制的高。还有一个问题,是否存在另一种共识协议,可以做到在不需要瞬时广播所有解谜结果的情况下,让解谜运算变得更加容易?
网友评论