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

2017-02-26 19:19:28 +08:00
 pungis

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

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

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

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

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

16711 次点击
所在节点    问与答
49 条回复
cctvsmg
2017-02-26 22:49:41 +08:00
我来回答下这个问题。。。以前维护过矿池。。。 yacoin p2pool 代码还是我第一个弄出来的。。。

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

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

当然,最不容易作弊的矿池就是 p2pool ,因为 p2pool 在挖的时候呢,就把如果挖出来每个人要分的钱写进块了, 而且无法篡改,只要谁算的数对,谁广播成功能被全网接受即可。
pungis
2017-02-26 22:51:06 +08:00
@lqs
明白了,看了 11 楼的回答我理解了。
我想得太极端了实际上是不会发生的。
但是仍然发现每次出块矿池都是占大头的,很明显的不公平。

@xgdyhaiyang
明白了!我理解错了。
你说的第一个问题扣块攻击不是我说的那种攻击方法
就只提交 8 个 0 去得收益,出 16 个 0 的丢掉不提交
力求在其他人出 16 个 0 之前尽可能多的算出 8 个 0 的以此来提高收益!
thinks
2017-02-26 22:54:11 +08:00
@pungis 比特币去中心化的核心在于多点认证,即全部参与人数中有半数以上认同你持有货币。
大致意思是,假设全场总数有 100 个人,只要超过 51 个说你持有 N 个货币,哪怕你什么都没有,整个系统也认定你持有。
这也是为什么区块链技术需要更多的计算点参与,才有意义。
mooncakejs
2017-02-26 22:59:08 +08:00
比特币的最大的问题是必然通缩. 比特币丢失+寡头
pungis
2017-02-26 23:05:47 +08:00
@thinks
请审题,看懂了再发言。
你说的这些都是基础中的基础,我在讨论比这高 n 个层次的问题
pungis
2017-02-26 23:20:35 +08:00
@cctvsmg
现有的收益分配算法有不小缺点:
1. 矿池得大头,显失公平。(开个矿池简直躺着数钱)
2. 重复计算浪费算力。矿工们随机改填充数计算 HASH ,不可避免会出现重复计算同一个填充数的情况。
3. 矿工们为了获取更大的收益而扣块攻击
4. 2 的对立面,因为这种随机改填充数,有可能点背的话所有人都没随机到正确的值而让整个矿池损失本来应得的收益。(指的是如果不浪费重复计算的算力应该能由此矿池算出来)
bitfish00079
2017-02-26 23:27:34 +08:00
第一个问题:
当我撞彩算出来的时候不把结果提交给矿池,而是自己广播出;
自己打包成块广播出去,新挖到的币还是到矿池挖矿地址里的;矿池分配任务的时候已经确定好了接收这个区块的地址;
第二个问题 :不算而是直接提交错误的结果
比特币挖矿是双 sha256 运算,挖矿结果很好校验,矿机提交的每个 shares 都会有进程校验,如果是正确,记做相应多少个 accepted shares ;如果是错误的(楼主说的这种情况)或者超时等,记做 reject shares ,最后根据不同分配机制分配所挖到的比特币,只有 accepted shares 才有收益;

延伸一个问题: Withholding attack ;当矿机计算出符合难度 share 不提交给矿池,中文叫扣(藏)块攻击,
这种主要针对 PPS 分配模式矿池, PPS 矿池按照用户提交的 accepted shares 根据难度按照理论值进行分配,扣块攻击会导致矿池挖到的比特币低于理论值,但是不影响矿工收益;需要修改 bitcoin 相关协议,暂时无解
bitfish00079
2017-02-26 23:29:24 +08:00
@bitfish00079 利益相关 中国最早的比特币矿池 https://www.f2pool.com/ 创始人 神鱼, F2POOL 目前正在招聘工程师,欢迎关注
pungis
2017-02-26 23:47:29 +08:00
@bitfish00079
@v9ox
Withholding attack 有两种形式
一种是针对矿池的,上面说过了
另一种我看到的文章中说:
先计算出一个正确的块(块里包含自己花币的条目,没有广播过的),再花币,买 0 确认就成交的东西
然后立即广播出块信息
如果被承认,那么就成功了
dillon
2017-02-26 23:48:30 +08:00
2 楼的发言让我差点没笑岔气
bxb100
2017-02-27 00:25:48 +08:00
不是算法和签名?
RqPS6rhmP3Nyn3Tm
2017-02-27 05:43:07 +08:00
@gam2046 所以说比特币很危险啊,一旦发生系统性危机没有任何国家可以进行调控,还有无解的通货紧缩为题,简直是无政府状态啊
relaxchen
2017-02-27 08:46:20 +08:00
一周贬值能接近 50%的“货币”,老实说,我觉得他像是一种商品,而非“货币”
gam2046
2017-02-27 09:21:09 +08:00
@BXIA (以下胡扯,仅供茶余饭后娱乐)从我半桶水的纯经济学角度看,比特币符合“货币”的所有特征。实体货币由各国政府中央银行管控(增发或减发),而比特币由算法保证总量一定(即不会超发)。至于你说的发生危机,我觉得更多的关注点应该在如何预防危机发生(例如制造业下滑......或者说如果发生危机,仅仅依靠调控货币是不能够恢复经济的。最终还是要靠实业)
但是需要留意的是,各国政府可能为了自己的利益,操纵汇率来打压其他国家(近期可以参考美帝强势要求包括 RMB 在内的 JPY/EUR 等,需要随 USD 一同升值)。但是比特币不存在这个问题,由于算法是固定死的,不会以个人意志转移。
我觉得目前以比特币为首的一众去中心化的数字货币,最大的阻碍是各国政府无法监控资金的往来。我阴谋论的认为,每个国家的政府都有棱镜项目,所以一旦出现某些不可描述又难以管控的东西,第一思维总是想给扼杀掉(对,没错,我说的是万恶的美帝,请不要想歪了)
----
至于“无政府”状态,据说现在 US 有许多经济不太好的地区,经过当地选民投票表决,已经成为无政府区域。基础、公共、事业服务由上一级政府承担,如果上级也是无政府再由上一级承担(好像现在没听过有“县政府”被投票说不要了的),不过由上级政府托底的服务基本上已经和没有差不多了,例如公安方面只有一两个治安官来负责,其他方面也类似(毕竟你税交的少,美帝纳税人可以指着公务员鼻子骂)
skylancer
2017-02-27 09:48:46 +08:00
@murmur 你的一系列帖子都在浪费资源,这个帖子本身在讨论技术和数学问题,你来个讨论法规,真是搞笑
shutongxinq
2017-02-27 09:52:20 +08:00
@gam2046 #34 比特币这种总量一定的"货币"会一直通缩,怎么可能“符合'货币'的所有特征”...符合的话大家日子就别过了...
RqPS6rhmP3Nyn3Tm
2017-02-27 09:57:28 +08:00
@gam2046 学宏观经济的吧?上到大二就应该能学到了,不能监管资金流动是小,全球统一使用一种货币是不现实也不理智的,况且比特币天然通缩,所有人都倾向于持有货币而非交易,比通胀更能打压商业。
boter
2017-02-27 10:10:42 +08:00
@shutongxinq 是谁定义的货币的属性呀?有没有想过别人为什么这么定义,这个定义本身就是错的
jsjjdzg
2017-02-27 10:39:32 +08:00
这个货币明显是寡头的,都在投机而已,赞同封杀
boter
2017-02-27 11:01:15 +08:00
楼上好多踏空者呀 哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/343314

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX