打字猴:1.703866665e+09
1703866665
1703866666
1703866667
1703866668 图5.14 (c)矿池的算力分布
1703866669
1703866670 资料来源:blockchain.info(2015年4月)
1703866671
1703866672 但这也是比特币社区一直所担心的,也导致了对GHash的反击。到了8月,GHash不再接受新用户而主动下调了一些比例。即便如此,两个矿池依然掌控了整个网络一半左右的算力。
1703866673
1703866674 到了2015年4月,形势改变了许多,至少从表面上来看变得不是那么集中。但一个矿池掌控51%的算力依然是社区里一个令人担忧的问题。然而GHash遭受的负面的公众效应让很多矿池意识到这个问题,并尽量避免增长得过大。随着新的矿工加入市场,标准化的协议使得矿池之间的切换更加容易,矿池的市场份额一直在变动。矿池在长期如何发展,目前还不明朗。
1703866675
1703866676 无论如何,矿池有可能会掩盖这样一个事实:实际上的算力集中在几个大的挖矿机构手上,这些大的机构可以同时参与多个不同的矿池以掩盖它们的真实规模。这种做法被称为“洗算力”(laundering hashes,类似于洗钱)。因为矿池的原因,发现洗算力变得非常困难,这也使得外人无法知晓矿机的实际物理控制有多么集中。
1703866677
1703866678 矿池是有益的吗
1703866679
1703866680 矿池的好处在于矿工挖矿变得更加容易预测,也让小矿工更加容易参与。如果没有矿池的存在,挖矿效益上的概率波动会让小矿工承受不起。
1703866681
1703866682 矿池另外的一个好处在于,每一个矿池都有一个中心化的矿池管理员在网络中组装区块,所以网络更新变得更加容易。只要更新管理员的软件,即可更新所有矿池成员的软件。
1703866683
1703866684 当然矿池的一大问题是中心化管理。矿池管理员实际掌握了多大的算力是一个问题。当然,理论上一个矿工如果觉得管理员权力太大,可以自由地选择离开,但实际中有多少矿工会这样做还不清楚。
1703866685
1703866686 另一个坏处是减少了比特币网络上校验全部交易节点的数量(全节点)。以前,无论大小,所有矿工都必须自己运行一个全节点。他们要存储整个区块链,并校验每个交易。现在他们把这项工作交给了矿池管理员。这也是我们在第3章中提到的:整个网络中进行校验交易的全节点的数目在下降。
1703866687
1703866688 如果你对矿池的中心化模式感到不安的话,你可能会问:我们是否可以重新设计挖矿的流程,这样我们就不需要任何矿池,大家必须自己进行挖矿。我们会在第8章中探讨这个问题。
1703866689
1703866690 [1]柏松是18世纪法国数学家,概率学奠基人之一,柏松分布被广泛用于各个领域的概率分析。——译者注
1703866691
1703866692
1703866693
1703866694
1703866695 区块链技术驱动金融:数字货币与智能合约技术 [:1703863938]
1703866696 区块链技术驱动金融:数字货币与智能合约技术 5.5 挖矿的激励和策略
1703866697
1703866698 我们在这一章花了很多篇幅讨论作为一个矿工的主要挑战:买到好的硬件、找到廉价的电费,然后尽快开始运行,然后期待一些好运气。不过在挑选一个区块开挖之前,每个矿工都需要做一些策略上的选择:
1703866699
1703866700 1.需要包括哪些交易?矿工可以选择将哪些交易放进他的区块里。默认的规则是选择那些交易费比较高的交易。
1703866701
1703866702 2.对哪一个区块进行挖矿运算?矿工可以选择在哪个区块上进行挖矿。默认的做法是在最长的那条区块链上继续挖下去。
1703866703
1703866704 3.在同一高度的多个区块中做选择。如果两个不同的区块在同一时间被宣布发现,这就造成了一个区块的分叉,每个区块都是可以被延续下去的,因为它们都符合最长区块链原则。矿工必须选择其中一个区块接龙下去。默认的做法是选择最先被监听到的那一个区块。
1703866705
1703866706 4.什么时候宣布新的区块?当矿工找到一个有效区块之后,他们要决定什么时候向比特币网络宣布这一个区块。默认做法是立刻宣布,但他们也可以选择等一下。
1703866707
1703866708 矿工其实面临很多决定。每个决定都有一个默认策略,直到这本书撰写之时,绝大多数的比特币客户端都是按照该默认策略运行的。非默认策略也有可能使得挖矿收益更高,很多人积极研究如何找到这样的策略。让我们来看看几种可能有别于默认策略的做法,这些做法可能使得挖矿收益更高。在接下来的内容中,我们假设一个运行非默认策略的矿工掌控一定的比特币网络挖掘市场份额,设为α。
1703866709
1703866710 分叉攻击
1703866711
1703866712 最简单的攻击就是分叉攻击(forking attack),这是一个显而易见的获利方式——重复支付。一个恶意的矿工给一个受害者鲍勃发送了一些比特币来购买其服务和货品。鲍勃等到这笔支付交易被放进了最长链之后,甚至还等到了6个证实的时候确认支付安全之后,才开始发货或者提供服务。
1703866713
1703866714 现在这个矿工开始跳到前一个区块上开始重新挖矿——就是在那个包含他给鲍勃的支付交易区块之前的那一块。在这个分叉的区块链里,他插进了另一个替代交易——或者进行一个双重支付——把那些已经支付给鲍勃的比特币重新发送回自己的地址里(见图5.15)。
[ 上一页 ]  [ :1.703866665e+09 ]  [ 下一页 ]