李逍遥

比特币矿池挖矿是如何保证无法作弊的?

李逍遥 比特币 2018-06-09

比特币的挖矿原理我知道,穷举打包账本计算前 n 个 0 的 SHA 这也就是说最终只能有一个人算出来

比特币矿池挖矿是如何保证无法作弊的? 比特币矿池挖矿是如何保证无法作弊的? 比特币

我想知道在矿池挖矿的 n 多人中如何保证下面两点:

1.当我撞彩算出来的时候不把结果提交给矿池,而是自己广播出去独吞收入(挖矿软件开源的,改改应该可以做到)

上面还不算严重,下面这点更是重要:

2.最终不是把成功打包的收益平分吗?分成的原则是计算贡献,也就是你的计算速度。但是如何保证我计算的正确性?我不算而是直接提交错误的结果上去增加计算贡献行不行。矿场是如何知道我确实计算过了而不是提交了个随机数?毕竟大家会一直算出不正确的结果直到有一个人算出正确的为止,如何确定我真实的计算贡献?

我来回答下这个问题:

以前维护过矿池。。。 yacoin p2pool 代码还是我第一个弄出来的。。。

矿池无法保证不作弊。。。 之前很多矿池直接带着挖到的币跑路了也是有的,巨型矿池&巨型交易所本来就是违反中本聪初衷的, 他自己估计也没想到会出来这种东西。。。 。 so ,比特币的去中心化理念其实是失败的。。。。

但是呢,虽然矿池可以作弊,但是你可以不去啊,而且楼主想下,假如我的算力很大,我要去矿池作弊,矿池里面其他大户利益会受到损失吧,就是我有 1/3 矿池的算力,但是算力一天毛没收到,那我就跑路啦,直接换个矿池,最后结果是 整个矿池就剩那个作弊者一个人啦,于是 1 个人 vs 世界,他自己毛也挖不到啦。。。

当然,最不容易作弊的矿池就是 p2pool ,因为 p2pool 在挖的时候呢,就把如果挖出来每个人要分的钱写进块了, 而且无法篡改,只要谁算的数对,谁广播成功能被全网接受即可。

特币去中心化的核心在于多点认证,即全部参与人数中有半数以上认同你持有货币。

大致意思是,假设全场总数有 100 个人,只要超过 51 个说你持有 N 个货币,哪怕你什么都没有,整个系统也认定你持有。

这也是为什么区块链技术需要更多的计算点参与,才有意义。现有的收益分配算法有不小缺点:

1. 矿池得大头,显失公平。(开个矿池简直躺着数钱)

2. 重复计算浪费算力。矿工们随机改填充数计算 HASH ,不可避免会出现重复计算同一个填充数的情况。

3. 矿工们为了获取更大的收益而扣块攻击

4. 2 的对立面,因为这种随机改填充数,有可能点背的话所有人都没随机到正确的值而让整个矿池损失本来应得的收益。(指的是如果不浪费重复计算的算力应该能由此矿池算出来)

 比特币矿池挖矿是如何保证无法作弊的? 比特币
继续浏览有关 比特币矿池比特币挖矿 的文章
发表评论