打字猴:1.703866565e+09
1703866565 区块链技术驱动金融:数字货币与智能合约技术 [:1703863937]
1703866566 区块链技术驱动金融:数字货币与智能合约技术 5.4 矿池
1703866567
1703866568 设想一下作为单个矿工。假设你花了辛苦赚来的6 000美元买了一台全新闪亮的比特币矿机,你所期望的性能是平均每14个月会找到一个有效区块(在2015年早期一个区块的奖励价值在10 000美元)。
1703866569
1703866570 考虑到电费和其他运营成本,矿机的平均收入期望值应该是每个月400美元。如果可以确定每个月都能获得400美元,那么购买一台矿机是合理的投资。但是别忘了,挖矿是一个随机过程,你不知道什么时候可以发现下一个有效区块。在找到有效区块之前,什么都赚不到。
1703866571
1703866572 高方差
1703866573
1703866574 从矿工第一年能找到有效区块数的概率分布上看,这个分布差异是很大的,期望值(也就是第一年能找到区块的平均数)是相当的低。因为发现区块的比率是一个很低的固定值,并且这个值和你上次发现一个有效区块所花费的时间完全没有关系,因而总的发现区块的期望值是以柏松概率分布[1]。柏松分布是指,如果有N个独立事件,每个事件成功的概率是λ/N,当N接近于无限大的时候的成功概率分布。比特币挖矿中,尝试每一个临时随机数的行为实际上就是一种超小成功概率事件,所以即使对于小矿工来说,N的值也确实很大,这种近似类比是很合适的。
1703866575
1703866576 如果你期望每14个月找到一个有效区块(根据泊松分布可知λ=6/7个有效区块/每年),则有超过40%的概率在第一年你不会找到任何有效区块。对于个体矿工来说,这可能是灾难性的。你在一个矿机上花费了数千美元,并且支付了很多电费来运行,结果什么都没有获得。第一年能获取一个有效区块奖励的概率大概是36%,这也就意味着即使你的电费不高,你也就可能刚刚够支付电费。当然也有很小的概率可能会发现两个甚至更多的有效区块,这种情况下才有可能真的赚钱。详见图5.11。
1703866577
1703866578
1703866579
1703866580
1703866581 图5.11 挖矿成功的不确定性
1703866582
1703866583 注:假设全网哈希算力是不变的,平均发现一个区块的事件是14个月,对于一个小矿工来说这个成功概率的波动太大了。
1703866584
1703866585 这些数字只是一个近似估算,但主要的意思是,即使挖矿从期望值来说是合理的,也就是说,投资有足够的回报,但由于方差足够大以至于会有很大的概率什么都得不到。对于一个小矿工来说,这也就意味着挖矿就是一个赌博游戏。
1703866586
1703866587 矿池
1703866588
1703866589 历史上当小商人遇到大风险的时候,他们会自发组建一个互助保险公司来降低风险。比如,农夫会自发地聚在一起形成一个协议,如果任何一个个体农夫的谷仓不小心被烧掉了,那么其他的农夫可以把他们的利润拿来和这个不幸的农夫分享。那么对于比特币的小矿工是否也可以用类似的方式来降低风险呢?
1703866590
1703866591 矿池应运而生——矿池就是一个比特币矿工互相之间的保险。一组矿工可以形成一个矿池共同进行挖矿,并指定一个币基接受人。这个接受人就是矿池管理员。所以不管是谁最终发现了一个有效区块,矿池管理员将会收到这个区块的奖励,继而根据每个参与者所贡献的工作量按比例分配给所有矿池的参与者。当然,矿池管理员可能从中分一部分来作为矿池管理服务的收入。
1703866592
1703866593 假定每个人都信任这个矿池管理员,这样的分配安排可以极大地降低矿工成功寻找有效区块的概率波动。但是矿池管理员如何知道矿池里每个成员实际上到底贡献了多少工作量呢?同时他又是如何去分发收入的呢?很显然,矿池管理员不希望是靠每个成员的申明,因为他们可能会虚报自己的工作量。
1703866594
1703866595 挖矿工分
1703866596
1703866597 对于这个问题,我们有一个简洁的解决办法。矿工可以通过输出挖矿工分(mining shares)来证明他的工作量,工分就是那些接近有效区块的区块。比如目标值是个前面67位是零的数字,输出的哈希值必须要低于这个目标才算有效。在寻找这个哈希值的过程中,矿工可能找到其他一些区块,它们的哈希也有许多零,但达不到67个。矿工可以用这些区块来证明他们确实在工作(见图5.12),一个合格的工分可能要求40~50个零,取决于矿工所加入的矿池的要求。
1703866598
1703866599
1703866600
1703866601
1703866602 图5.12 挖矿工分
1703866603
1703866604 注:矿工不断尝试去发现哈希值低于目标区域的有效区块。在这个过程中他们会发现一些区块的函数值比目标值少了几个0——但是已经是非常稀有的,这证明了他们确实在进行繁重的运算工作。在这个图中,浅色阴影的哈希值就代表工分,深色阴影部分是有效区块的哈希值。
1703866605
1703866606 矿池管理员也会作为参与者之一运行比特币节点,收集交易并组装区块。他会把他自己的接收地址放在币基交易里,然后把这个区块发给所有矿池里的矿工们。矿工们收到后会在这块上面开始挖矿,最后递交工分来证明他们确实进行了运算工作。
1703866607
1703866608 当矿池一个成员找到了一个有效区块,他会把这块发给矿池管理员,然后管理员会根据大家的工作量按比例分配奖励。发现这个有效区块的矿工并不会因此获得特别奖励,所以如果其他矿工的工作量更大,那么其他矿工就会获得更多的奖励,即使他们并不是真正发现有效区块的人。如图5.13。
1703866609
1703866610
1703866611
1703866612
1703866613 图5.13 挖矿奖励
1703866614
[ 上一页 ]  [ :1.703866565e+09 ]  [ 下一页 ]