im钱包下载方法|比特币挖矿

作者: im钱包下载方法
2024-03-07 22:53:52

详解比特币挖矿— 应该是史上最通俗易懂的版本 - 知乎

详解比特币挖矿— 应该是史上最通俗易懂的版本 - 知乎切换模式写文章登录/注册详解比特币挖矿— 应该是史上最通俗易懂的版本S-Maruko从入门到精通,看我就够了!​​ 比特币挖矿就是矿工将一定数量的交易打包到同一个区块,然后共同去计算同一道数学题来决定以谁的区块链为准,并且决定谁赢得新发行的比特币和交易费。  相信很多人都听说过比特币挖矿的说法,不知道有多少人真正理解这个概念。在矿产领域,挖矿的概念其实很容易理解,就是从富含某种矿物质的矿石中提炼出矿物质的过程,而所谓的矿工就是那些头戴安全头盔,从事提炼矿物质的工人,他们的形象在我们的脑海中恐怕一点也不陌生。  比特币世界的挖矿和矿产领域的挖矿还是有很多相似之处的,都是在挖掘有价值的资产,都需要花费一定的代价,都能给挖矿的人带来一定的收益。矿产领域的挖矿可以得到相对稀缺的矿产资源,同时要付出体力和承担安全风险的代价;而比特币的挖矿可以得到比特币奖励,同时要付出计算机算力的代价。  矿产领域的矿工是靠大型的机械设备,而比特币世界里的矿工是靠专业的计算机设备,伴随着激烈竞争,比特币的挖矿设备从最开始的普通计算机,到现在的越来越专业的挖矿设备。  不过比特币世界的挖矿和矿产领域的挖矿也还是有很多不同的,比特币世界的挖矿还是发行新比特币的唯一方式,同时也是在去中心化的网络中保证民主和竞争的重要手段,但是它也不是一点坏处都没有,比如浪费了大量的计算机算力和电力。至于为什么会这么说,看完接下来的文字我想你就会明白了。  文章导读:​  1.什么是挖矿​  2.如何证明谁的工作量最多​  3.什么是工作量证明(POW)​  4.挖矿是一场接力赛​  5.小结  1. 什么是挖矿  如果还不了解区块链的话,可以参考不懂技术?老司机带你轻松理解区块链知识,比特币的网络中传播着大量的交易信息,既然没有中心化的统一服务,那么谁来确认这些交易的合法性,以及达成统一的共识呢?我们可以想想中心化服务的支付宝是如何解决这两个问题的,支付宝其实是买卖双方的中间担保,它负责确认每一笔交易是否合法,并且等双方在线下的交易没有问题时,才将资金转给卖方,这就保证了不会出现某一方作弊或者不认账的问题。  但是比特币网络中没有像支付宝这样的担保角色,那么它是如何做到交易的正常进行的呢?其实答案也很简单,就是由网络中的所有全节点共同决定这份交易是否合法,通过共同维护同一份帐薄来确保交易不会违约和篡改。  这就如同有10个人共同见证了两个人的交易,并一起确认这笔交易的合法性,同时每个人都维护了一份账本,这笔交易会记录到每个人各自维护的同一套账本上,如果有人要违约或篡改交易数据,他需要同时改掉至少6个人的账本(少数服从多数)。否则如果只改自己的那一份账本,别人很容易就看出他的作弊行为,想想掩耳盗铃的故事应该就能明白了。  说回到比特币世界的挖矿,挖矿就是比特币世界里的矿工确认每一笔交易是否合法(关于如何确认交易合法,可以参考一文看懂比特币交易的全过程),并将合法的交易写入到统一的公共帐薄上,同时会获得一定的新比特币和交易费的奖励的过程。奖励是为了鼓励更多的矿工加入进来,确保不会出现某一个节点独断专权的情况,至于奖励给哪一个矿工,这就要看谁的工作量更多了,在比特币的世界里,是靠共同解决某一个数学问题来证明工作量的多少。  这就如同在竞争激励的市场经济中,每个公司都会拼尽全力提供更好的服务和产品才能生存下去,这样就不太容易产生垄断和腐败,而竞争的结果促进了资源的有效配置,社会的整体财富就会不断增长,最终所有人都会受益,当然受益最大的还是对社会贡献最大的企业家。  而在计划经济下,所有的生产安排和资源分配,都掌握在少数人手中,权力的过度集中必然会导致腐败,也不利于资源的合理配置,长远来看,只能是绝大大多数人普遍赤贫,而受益最大的往往是掌握更多资源的人。想想改革开放前后的中国,就能明白计划经济和市场经济的不同效果了。  总结一下,挖矿就是矿工为了得到新发行的比特币和交易费的奖励,主动去确认交易是否合法,并将合法的交易写入共同维护的帐薄中的过程。而奖励是为了确保矿工有更多的积极性,避免权力集中在少数人手中,同时奖励也是比特币发行的唯一方式。 2. 如何证明谁的工作量更多  刚才提到了挖矿的奖励会给工作量最多的那个人,那么如何证明谁的工作量最多呢。其实也很简单,就是大家共同去解同一道数学题,这道数学题需要一定的计算量才能做出来,而率先得到答案的矿工就是最终的胜出者,分享最终的奖励。  相信大家以前都玩过数独游戏(没玩过的同学请自行搜索游戏规则),简单来说就是每一行与每一列必须出现1~9的数字,每个小九宫格内也必须有1~9的数字,并且每个数字在每行、每列和每个小九宫格里出现且仅能出现一次。游戏刚开始只会给出有限的几个位置上的数字,其他的位置都需要计算分析才能得出来正确的数字。​  由这张游戏图可以看出,想要计算分析出每一个位置上的数字,还是需要花费不少力气的,但是填完之后来验证是否正确就简单很多,看一下横排、竖排以及小九宫格是否没有重复的数字即可。  而比特币挖矿的数学题也有这样的特性,就是计算起来很费事,但是验证起来却很简单。当然了,挖矿的数学题不是求解一道数独题目,而是计算一道概率题。  先举一个简单的掷骰子游戏,假如说有两个骰子,如果我说掷出一个骰子之和小于等于12的组合,你肯定会说这还不简单,随便掷,任一个组合都肯定小于等于12,一点难度都没有。好,那假如我把条件设为小于等于8呢,可能就不是每次都能掷出来了,它的概率是0.72;如果我再把条件设小呢,如果是4呢,那么掷出来的可能性就会进一步减小,概率为0.11。(这里默认大家都会计算概率,如果不懂的话,只需要知道概率在不断减小就可以,想想现实的场景,这点应该不难理解)3. 什么是工作量证明(POW)  理解了掷骰子游戏,再来介绍挖矿的工作量证明(POW Proof-Of-Work)算法就很简单了,在之前一篇介绍区块链的文章不懂技术?老司机带你轻松理解区块链知识中,曾经提到过区块的数据结构,当时提到了两个数据是和挖矿相关的,当时没有详细说明,现在就可以拿出来分析了。  这里的难度目标和Nonce就是和挖矿相关的参数,我们都知道比特币网络平均每10分钟产生新的比特币,也就是说挖矿的平均时间为10分钟,也许你会问怎么确保刚好是10分钟呢。其实答案很简单,就是控制数学题目的难度,假如某个人的解题速度在不断提升,那么我只要提高题目难度,就可以保证他解答的时间大致衡定。  在比特币世界中,解题速度和计算机的算力有直接的关系,想想今天的一台计算机和20年前的一台计算机去解同一道复杂的数学题,谁先计算出来,我想你肯定也认同是今天的计算机率先求出答案。如果我告诉你,谁先解出答案,就给谁丰厚的奖励,大家肯定会拼命提高计算机的性能,这也是全球各个矿工在不断提高算力的原因,因为大家都想快速解出答案,以获得奖励。  说回到难度目标和Nonce两个参数,挖矿的题目是这样的,每一个区块头都有唯一的哈希值,我现在要求你在这个哈希值后面添加一个随机数字(一般是从零开始递增),然后再去计算这个结果的哈希值,直到求出来的哈希值小于某一个数字,而这个数字是由一个常数除以上面的难度目标得出来的。  如果你理解了上面的掷骰子游戏应该能看懂这道题目,其实就是通过不同的数字不断地计算哈希值,直到答案小于某一个目标数字,这个目标数字越小,难度就越大,跟上面的骰子一样,结果越小,掷出来的概率就越小。而这个目标数字是由难度目标决定的,难度目标数字越大,除出来得到的目标数字就越小。  Nonce计数器主要是统计总共计算了多少次,就如同掷骰子一样,虽然可以一把掷出要求的数字,但是多次平均下来,肯定是符合概率统计的,这样别的矿工就可以根据Nonce数字大小再一次印证这个矿工是否有作弊。  至此你应该已经明白工作量证明算法的大致逻辑了吧,本质上就是在求一个概率题,谁先算出来就算谁赢,奖励就归谁。难度随着答题的速度会动态调整,而这个难度就是由上面的难度目标值决定,这样就能保证平均每10分钟完成一次挖矿。  4. 挖矿是一场接力赛  一旦一个矿工成功挖矿,根据数独游戏的逻辑,其他矿工很快就能验证是否成功,一旦验证通过就会将区块放入自己维护的区块链中,并赶紧投入到下一次的挖矿,不带有一丝一毫的犹豫。如此激烈的竞争伴随的结果,就是每个矿工都不断提升自己的计算机性能,结果就是大家的挖矿设备都不断升级,以至于现在的矿场都是紧挨发电厂,用最先进的专用挖矿芯片。  这里其实还有一个问题,就是假如说有两个矿工同时计算出结果怎么办?这个时候就会出现分叉,也就是说区块链的末端区块存在分歧了,其实这只会临时出现,并不会长久存在。原因是一旦其他矿工确认了本次挖矿成功,就会投入到下一次挖矿,如果其他矿工又挖矿成功了,这条区块链路就会比另一条区块链路多出一个区块,区块链中的原则就是只认最长的链路,所以另一个挖矿成功的矿工很快就会舍弃之前的区块,以最长的区块链为准。  而奖励也是要得到大多数的矿工认可后才会有效,毕竟账本是所有的人一起维护的,只有大多数人的账本上认可你的挖矿结果才有效。所以临时的分叉并不会影响最终的奖励,其实10分钟的挖矿时间也是比特币之父“中本聪”对效率和共识的一种平衡。  看到这里也许你就会明白,为什么会说挖矿浪费了很多算力和电力,因为胜出者往往只有一个,其他的矿工就相当于白忙活了,但是他们的计算机已经投入计算了,这笔算力和与之相对应的电力也就此浪费了。  这恐怕就是为了维护民主化的代价,如果让中心化的节点去统一确认交易,并写入公共帐薄,那么很容易滋生出腐败,这也不符合中本聪一开始的去中心化的设计理念,但是靠挖矿决定输赢又会导致资源浪费,只能说任何事情都是有成本和代价的,只要收益大于成本,这件事就有做的价值,比特币现在的价格相比用于计算的电费还是划算得多。5. 小结  关于比特币的挖矿到此就全部介绍完了,不知道你有没有看明白。总结一下就是矿工将一定数量的交易打包到同一个区块,然后共同去计算同一道数学题来决定以谁的区块链为准,并且决定谁赢得新发行的比特币和交易费。这种靠竞争来解决交易共识的问题,避免了单一节点垄断整个网络的风险,让整个网络形成了良性竞争的局面。  当然随着全网算力的提高,篡改的难度就越来越大了,因为你要改至少51%的全节点的账本,这就要求你的算力至少是其他51%全节点的总和,这个难度现在已经大到无法想象的程度,而且即便能做到,为此付出的电费代价也会让篡改者掂量一下这么做是否划算。关于比特币的挖矿到此就全部介绍完了,不知道你有没有看明白。总结一下就是矿工将一定数量的交易打包到同一个区块,然后共同去计算同一道数学题来决定以谁的区块链为准,并且决定谁赢得新发行的比特币和交易费。这种靠竞争来解决交易共识的问题,避免了单一节点垄断整个网络的风险,让整个网络形成了良性竞争的局面。  ——The End——『声明:本文转载于公众号“扬帆沧海”』发布于 2021-05-13 13:48比特币 (Bitcoin)btc挖矿挖矿​赞同 39​​4 条评论​分享​喜欢​收藏​申请

普通电脑挖比特币,要多久才能挖到1个?_澎湃号·政务_澎湃新闻-The Paper

挖比特币,要多久才能挖到1个?_澎湃号·政务_澎湃新闻-The Paper下载客户端登录无障碍+1普通电脑挖比特币,要多久才能挖到1个?2021-01-30 19:20来源:澎湃新闻·澎湃号·政务字号昨日马斯克将其Twitter的简介改为比特币之后比特币在不到30分钟内涨超15%价格高于37000美元/枚不过英国IT工程师詹姆斯·豪威尔斯对于这一切却开心不起来。据媒体报道,豪威尔斯曾不小心将藏有7500枚比特币私钥的硬盘当垃圾扔掉,按照现价,这些比特币价值超过2.6亿美元(约16.8亿元人民币)。有小伙伴问了:比特币那么值钱我能不能用家里的电脑来挖矿?今天科科和大家说说挖矿的事比特币从哪来的?科科给大家一个通俗易懂的解释比特币就是某人给你做一道数学题目这个题目有100个答案比特软件的作用就是通过电脑计算出这100个答案假如你计算出来一个答案你就得到一个比特币这个答案是存在你的硬盘里的也就是说如果你把硬盘丢了或是把硬盘格式化了你的比特币就没了这个答案具有唯一性而且答案的总数是固定的假如你计算出这个答案别人就只能计算出其他答案如果有人愿意花钱买这些比特币最后就产生了交易比特币好挖吗?那么有小伙伴肯定要问如果用一台笔记本电脑去挖比特币的话大致多久能挖到1个呢?比特币的产生是通过不断碰撞的哈希值来计算的。通俗地讲,就是电脑计算出正确答案的次数。现在一款普通笔记本电脑的CPU每秒钟大概可以碰撞800多次哈希值,而一块中端显卡则可以碰撞2000多次。由于比特币算法的特性影响,所以相对于做复制逻辑运算的CPU来说,只做简单重复算法的GPU会更适合来挖矿。为了表示现在比特币挖矿有多难,我们用一款GTX1080Ti来做做实验。一块GTX1080Ti售价为2000-3000元,这可以说是显卡界的中高端品种!就是这样一台输出爆炸的显卡它的算力是多少呢?大约是1.8GH/S也就是0.0018TH/S得出收益是每天0.00000021个比特币这是一个什么概念呢?按目前一个比特币大约23万人民币的价格算,这台配置上万的主机每天能挖出价值4分8厘的比特币。而且按照这个速度,我们大概需要——1.3万年才能挖出一个比特币……所以想用自己电脑挖比特币的盆友们还是洗洗睡吧~那么问题来了别人究竟是如何挖矿的?发展到现在为止,所有的比特币基本上都是由比特币矿场用专用的比特币矿机挖出来的。一台专业矿机蚂蚁s9矿机的算力目前大致为13.5TH/S,这相当于7500块1080ti显卡算力的总和,而一个中型矿场就拥有几百上千台这样的矿机,所以个人电脑即便再牛逼,碰到这样的专业选手还是被甩得连车尾灯都看不到啊。原标题:《普通电脑挖比特币,要多久才能挖到1个?》阅读原文特别声明本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。+1收藏我要举报查看更多查看更多开始答题扫码下载澎湃新闻客户端Android版iPhone版iPad版关于澎湃加入澎湃联系我们广告合作法律声明隐私政策澎湃矩阵澎湃新闻微博澎湃新闻公众号澎湃新闻抖音号IP SHANGHAISIXTH TONE新闻报料报料热线: 021-962866报料邮箱: news@thepaper.cn沪ICP备14003370号沪公网安备31010602000299号互联网新闻信息服务许可证:31120170006增值电信业务经营许可证:沪B2-2017116© 2014-2024 上海东方报业有限公

如何通过挖矿,获得一枚比特币? - 知乎

如何通过挖矿,获得一枚比特币? - 知乎切换模式写文章登录/注册如何通过挖矿,获得一枚比特币?青春向上比特币挖矿是获取比特币最廉价的方式,但大部分人并不了解比特币是如何挖矿的,更不知道如何挖矿,下面就给大家讲一下如何通过挖矿获得一枚比特币。根据比特币基本算法,比特币每10分钟产生1个区块(block),每个区块里有N个比特币作为报酬(N的数量在下文中说明),这个区块包含了最近10分钟所有的比特币交易信息。制造比特币的过程叫做“挖矿”(mining),在这个过程中,计算机把最近收到的帐单打包在刚制造的区块里,这个打包的过程即制作的过程,只有极其稀少的几率被制造成功。(你可以理解成把新收到的帐单合在一起,一次成型不可修改,如果制造失败就要再来一次)一旦制造成功,你就把这个区块广播出去,这就意味着,你获得了这个区块中的N个比特币作为报酬。那么N是多少呢?根据比特币算法,在比特币发布之日起的头4年里,N = 基础报酬(50个比特币) + 交易报酬(过去10分钟内整个比特币网络耗费的交易手续费,前面已经说过,每笔比特币交易会消耗0.001比特币作为报酬给挖矿的人),每隔4年,N的基础奖励将减少一半,也就是说,头4年为50,第5-8年为25,第9-12年为12.5,以此类推。而随着比特币越来越普及,交易越来越频繁,N的交易奖励会逐渐增加。从2013年5月起,比特币正式进入了第5年,因此到2017年5月之前,每个区块的报酬N为25+交易报酬。挖矿步骤(1) 下载比特币官方客户端 (2) 安装好客户端后,启动客户端,客户端启动后一般3分钟内会开始同步网络数据,由于比特币数据非常庞大,这可能需要若干个小时(根据网速和电脑性能决定)。图为客户端同步网络数据:请保证你的C盘有10GB以上的剩余空间,如果C盘空间不够的话,需要将数据设置到D盘或E盘(3) 如果你的客户端显示的是英文,而你又对英文不太擅长,你可以把它设置成中文(4) 客户端同步网络数据不会影响我们挖矿,我们先获取我们的账户地址,点击客户端的“收款地址”按钮,这时你看到的一串非常长的地址,类似19G5E9SY5WKdMJEJd71Zs35G8V6x2o3qpG,就是你的比特币账户,比特币账户地址是自动生成的、全世界唯一的地址。(5) 你的账户里现在是0.00 BTC,意味着你还没有比特币,但你现在可以开始挖矿了,下载一个简单易用的挖矿软件CGMiner(CGMiner能挖比特币以及大部分的货币,但并非所有货币的挖矿都能用CGMiner)(6) 你需要确认你的显卡型号,如果是nvidia显卡,那么就可以直接挖矿了,请跳过本步骤。如果是ATI显卡,除了CGMiner你还需要安装一个AMD SDK包。(7) CGMiner是英文界面,不过这并不影响一个菜鸟来使用它,请将下载到的CGMiner解压到电脑的任意地方,然后进入到CGMiner的文件夹。(8) 在cgminer的文件夹里面,新建一个文本文件(TXT)该矿池是比特时代提供的完全免费的矿池),如果以后你想使用其它矿池和端口,请再自行修改矿池URL和端口(9) 然后双击运行上面的run.bat文件,就可以开始采矿了。你挖矿时产生的收益,比如你获得了0.001个比特币,会存放到你自己填写的BTC地址中(由于现在这个阶段BTC挖矿的难度非常大,你可能要等待一整天才会有BTC收益,挖矿时,电脑屏幕可能会有一些卡,是因为显卡的资源绝大部分被占用了)注:实际上,比特币挖矿的用户数量非常庞大,而每10分钟产出的比特币又十分有限,因此挖矿的难度已经是非常非常大了,如果你拥有性能强劲的显卡,那么会有一定的收益,如果你的显卡不好,那么你可能需要耗费N个小时才可以获得一点点比特币。发布于 2021-03-24 13:05比特币 (Bitcoin)比特币矿池比特币矿机​赞同 20​​6 条评论​分享​喜欢​收藏​申请

现在2023年矿潮已经过去,还有人在挖矿吗? - 知乎

现在2023年矿潮已经过去,还有人在挖矿吗? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册潮流比特币 (Bitcoin)矿业挖矿潮流时尚现在2023年矿潮已经过去,还有人在挖矿吗?关注者15被浏览104,645关注问题​写回答​邀请回答​好问题 1​添加评论​分享​11 个回答默认排序孤鹤​​互联网行业 监事​ 关注…这是一个蛮大的产业。比特大陆,比特小鹿Bitdeer(BTDR),Riot Blockchain、Marathon Digital、Cipher Mining、Terawulf、Compute North,Core Scientific发布于 2023-10-31 19:30​赞同 3​​添加评论​分享​收藏​喜欢收起​螃蟹炒币​​ 关注没有 2023年挖矿市场发生了变化,但挖矿整体趋势并未改变。比特币挖矿市场在2023年发生了许多变化。以比特币为例,现在对于普通人来说,挖矿已经不再是盈利的机会。这是因为比特币的难度和算力不断增强,导致挖矿所需的硬件和电费成本越来越高,而挖出的比特币数量却越来越少。然而,有些专业的矿工可以通过挖掘某些项目的矿池来获得FIL代币,从而获得可观的收益。这种行业代表性的项目之一是通过挖掘Uniswap的矿工,他们可以获得UNI代币,这些代币可以兑换成其他资产。由于该行业正在快速发展并引起更多关注,因此仍然有机会获得收益。然而,对于小型个人投资者来说,参与高风险的投资项目和挖矿仍然存在很大风险。在进行投资时,需要保持冷静和谨慎。发布于 2023-11-04 19:35​赞同 7​​添加评论​分享​收藏​喜欢

挖矿是如何产生比特币的? - 知乎

挖矿是如何产生比特币的? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册虚拟货币货币比特币 (Bitcoin)挖矿是如何产生比特币的?最近翻译了中本聪先生发明比特币的论文,在这篇论文中他说比特币的产生由挖矿者计算最优散列值计算得到,第一个计算得到这一散列值的也就是block的第一人将…显示全部 ​关注者4,098被浏览5,795,196关注问题​写回答​邀请回答​好问题 40​10 条评论​分享​268 个回答默认排序aibifu区块链扫地僧​ 关注在这篇文章中我会给出一个虚拟的村庄叫“比特村”,整个文章会以讲故事的方式,逐步告诉大家比特币提出的动机、解决了什么问题以及一些关键组件的目标和设计方案。问题的提出我们先从比特币产生的动机开始。以物易物的比特村话说在这个世界上,有一个叫比特村的小村庄,村庄共有几百户人家。这个村庄几乎与世隔绝,过着自给自足的生活。由于没有大规模贸易,比特村村民一直 过着以物易物的生活,也就是说村民之间并没有使用统一的货币,互相间的贸易基本上就是老张家拿一袋面粉换老李家一只羊,王大嫂拿一筐野果换刘大婶两尺布。 村民们一直就这么纯朴的生活着。实物货币终于有一天,村民觉得一直这样以物易物实在太不方便了,于是村子全员开会,讨论如何解决这个问题。有人提议,以便于分割且稀有的东西,例如黄金,作 为一般等价物,把其它物品和黄金的对应关系编成一张表格,例如一克黄金对应一只羊,一克黄金对应一袋面粉等等,此时老张再也不用扛着一袋面粉气喘吁吁的去 老李家换羊了,他只要从家里摸出一克金子,就可以去老李家牵回一只羊,而老李拿着这一克黄金可以从任何愿意出让面粉的人那里换回一袋面粉,当然也可以换取 任何和一克黄金等值的物品。此时比特村进入了实物货币时代。符号货币好景不长,过了一段时间,实物货币的弊端也出现了。因为比特村附近金矿并不多,开采和冶炼金子太费时费力了。而随着使用,金子总是不断会因为磨损、 丢失或有人故意囤积而发生损耗。全村人又一次坐在了一起,开始商讨对策。此时有人说,其实大家也不必一定要真的用黄金啊,随便找张纸,写上“一克黄金”, 只要全村人都认同这张纸就等于一克黄金,问题不就解决了。其他人纷纷表示认同,但同时也有了新的问题:真实的黄金是需要开采和冶炼的,金矿有限,开采和冶 炼也需要成本,所以没有人可以短期凭空制造大量的黄金,可写字就不同了,只要我纸够笔够,随便像写多少写多少,那这就变成拼谁家里纸多了,搞不好到时一万 张纸才能换一只羊(实际上这就发生了经济学上的通货膨胀)。大家一想也是啊。不过此时又有人提出了解决方案:这个纸不是谁写都有效,我们只认村里德高望重的老村长写得,大家都认识老村长的字。老村长写一些 纸,同时按照各家黄金存量发给大家等量的纸,例如老张家有二百克黄金,老村长就发给老张二百张写着“一克黄金”的纸,同时将老张家的黄金拿走作为抵押。就 这样,老村长将村里所有黄金收归到自己的家里,并按各家上交的黄金数量发给等值的写有字的纸。此时村民就可以拿着这些纸当黄金进行贸易了,而且大家都认得 老村长的字,其他人伪造不出来。另外,如果谁的纸磨损太严重,也可拿到老村长那里兑换新的等值的纸,另外老村长承诺任何人如果想要换成真黄金,只要拿纸回 来,老村长就会把等值的黄金还给那人。因为老村长写得纸的黄金量和真实放在家里的黄金量是一样的,所以只要严格按照销毁多少纸新写多少纸的原则,每一张有 效的纸总能换回相应的真黄金。此时,比特村进入了符号货币(纸币)时代。而老村长就承担了政府和银行的角色。中央系统虚拟货币又过了几年,老村长由于每天都要核对大量的旧纸币,写新的纸币,还要把各种账目仔细做好记录。一来二去,老村长操劳过度不幸驾鹤西去了。比特村再次召开全体大会,讨论应该怎么办。此时老村长的儿子二狗子自告奋勇接过了父亲的笔,承担起货币发行的责任。这个年轻的村长二狗子很聪明,他 做了几天,发现好像也不用真的写那么多纸。完全可以这样:村民把纸币都交上来,销毁,但是二狗子会记录下每户上交的纸币数量。以后如果要进行付钱,例如老 张要拿一克金子向老李换一只羊,就一起给二狗子打个电话,说明要将老张名下的一克金子划归老李名下,二狗子拿出账本,看看老张名下是否有一克金子,如果有 就在老账的名下减掉一克,在老李的名下加上一克,这样就完成了支付,此时老李在电话中听到二狗子确认转账完成,就可以放心让老张把羊牵走了。此时比特村进入了中央系统虚拟货币时代。每个村民都不需要用实物支付,支付过程变成了二狗子那边维护的账本上数字的变更。分布式虚拟货币这新上任的二狗子是聪明,不过这人有时候是聪明反被聪明误。有一天二狗子盯着这账本,心想这全村各户谁有多少钱就是我说的算,那我岂不是……。于是他头脑一热,私自从老张帐下划了十克金子到自己名下。本以为天衣无缝,但没想到老张也有记账的习惯,有一天他正要付钱却被二狗子告知账户没钱了。老账核对了一下自己的账本,命名还有十克啊,于是拿着账本去找二狗子理论,这一核对发现了那笔未经老张同意的转账。东窗事发!比特村炸开锅了。二狗子被弹劾是不可避免了,不过通过这件事,大家发现了账本集中在一个人手里的弊端:这个体系完全依赖于账本持有人的个人信用,如果这个人不守规矩,随意篡改账本,那么整个货币系统就会崩溃如果这个人家里失火或者账本失窃,同样也会为整个体系带来毁灭性的打击正当人们不知所措时,村里一个叫中本聪的宅男科学家走上了台,告诉大家他已经设计了一套不依赖任何中央处理人的叫比特币的虚拟货币系统,可以解决上述问题。然后他缓缓讲述了自己的方案。下面我们就来看看中本聪同学是如何设计这套系统的。基础设施搭建账簿公开机制中本聪首先说明,要对现有账簿进行如下改造:账簿上不再记载每户村民的余额,而只记载每一笔交易。即记载每一笔交易的付款人、收款人和付款金额。只要账簿的初始状态确定,每一笔交易记录可靠并有时序,当前每个人持有多少钱是可以推算出来的。账簿由私有改为公开,只要任何村民需要,都可以获得当前完整的账簿,账簿上记录了从账簿创建开始到当前所有的交易记录。此言一出,下面立刻炸锅了。第一条还无所谓,但是第二条简直无法接受,因为账簿可是记录了所有村民的交易,这样大家的隐私不全暴露了吗。中本聪倒是不慌不忙,拿出了一对奇怪的东西。身份与签名机制(公钥加密系统)中本聪说,大家不要慌。在他的这套机制下,任何人都不使用真实身份交易,而是使用一个唯一的代号交易。他展示了手里神奇的东西,说这两件东西分别叫保密印章和印章扫描器。后面他会给村里每一户发一个保密印章和一个印章扫描器。两者的作用如下:保密印章可以在纸上盖一个章,每个印章盖出的章都隐含了一个全村唯一的一串字符,但是凭肉眼是看不出来的。也无法通过观察来制造出相应的印章印章扫描器可以扫描某个已经盖好的章,读出隐含的信息,并在液晶屏上显示出一串字符有了这两个神奇的东西,大家就可以在不暴露真实身份的情况下进行交易了,而印章隐含的那一串字符就是这户人家的代号。具体如何巧妙利用保密印章和印章扫描器进行交易,会在下文详述。成立虚拟矿工组织(挖矿群体)下一步,中本聪面向全村招募虚拟矿工,招募要求如下:矿工以组为单位,一组可以是单独的一户,也可以是几户联合为一组成为矿工不影响正常使用货币矿工每天要花费一定时间从事比特币“挖矿”活动,但是不同于挖金矿,虚拟矿工不需要拿着工具去野外作业,在家里就可以完成工作矿工有一定可能性获得报酬,在挖矿活动中付出的努力越多,获得报酬的可能性越大矿工可以随时退出,也可以随时有新的矿工加进来很快,大约有五分之一的村民加入比特币矿工组织,共分成了7个组。建立初始账簿(创世块)下面,中本聪宣布,先根据二狗子手里的账簿,把抵押的所有黄金按账簿记录的余额退还给每位村民,然后彻底销毁这本账簿。然后,中本聪拿出一本新账簿,在账簿的第一页上记录了一些交易记录,特别的是,这些记录的付款人一栏全都是“系统”,而收款人分别是每个印章对应的 隐含字符,代表初始时刻,系统为每一户默认分配了一定数量比特币,但是数量非常少,都只有几枚,甚至有些不幸的村户没有获得比特币。接着中本聪说,由于目前市面上比特币非常少,大家可以先回到用黄金做货币的时代,由于我不是村长,我也没有权利强迫大家一定要承认比特币,大家可以自行决定要不要接受比特币。不过随着比特币的流动和矿工的活动,比特币会慢慢多起来。支付与交易做了这么多铺垫,终于说到重点了,下面说一下在这样一个体系下如何完成支付。以老张付给老李10个比特币为例。付款人签署交易单为了支付10个比特币,老张首先要询问老李的标识字符串,例如是“ABCDEFG”,同时老张也有一个标识字符串例如是“HIJKLMN”,然后老 张写一张单子,内容为“HILKLMN支付10比特币给ABCDEFG”,然后用自己的保密印章改一个章,将这张单子交给老李。另外为了便于追溯这笔钱的 来源,还要在单子里注明这笔钱的来源记在哪一页,例如这个单子里,老张的10比特币来自建立账簿时系统的赠送,记录在账簿第一页。收款人确认单据签署人老李拿到这个单子后,需要确认这个单子确实是来自“HIJKLMN”这个人(也就是老张)签署的,这个并不困难。因为单子上必须有保密章,老李拿出 印章扫描器,扫一下章,如果液晶屏显示出的字符和付款人字符是一致的(这里是“HIJKLMN”),就可以确认单子确实是付款人签署的。这是因为根据保密 印章的机制,没有其他人可以伪造印章,任何一个人只要扫描一下印章,都可以确认单子的付款人和盖章人是否一致。收款人确认付款人余额这个系统到目前还是很有问题。通过保密印章,收款人虽然可以确认付款人确实签署了这份单子,但是无法自行确认付款人是否有足够的余额支付。之前的中 央虚拟货币系统中,二狗子负责检查付款人的余额,并通知收款人交易是否有效,现在把二狗子开了,谁来负责记账和确认每笔交易的有效性呢?之前说过,中本聪设计的这个系统是分布式货币系统,不依赖任何中央人物,所以不会有一个或少数几个人负责这件事,最终承担这份工作的是之前所提到的矿工组织。老张、老李和全村其他任何使用比特币进行交易的村民都依赖矿工组织的工作才能完成交易。矿工的工作矿工的工作是整个系统的核心,也是最复杂性最高的地方。下面逐步介绍矿工的工作内容和目的。矿工的工具俗话说,工欲善其事,必先利其器。比特币矿工虽然不用铁撅、铁锨和探照灯等工具,不过也要有一些必备的东西。初始账簿。每个组首先自己复制一份初始账簿,初始账簿只有一页,记录了系统的第一次赠送 空账簿纸。每个小组有若干账簿纸,每一页纸上仅有账簿结构,没有填内容,具体内容的书写规则后面讲述。下面是一张空账簿纸的样子,各个字段的意义后面会说到。编码生成器(哈希函数)。中本聪又向矿工组织的每个组分发了若干编码生成器,这个东西很神奇,将一页账簿填好内容的账簿纸放入这个机器,机器会在账簿纸的“本账单编号”一栏自动打印一串由“0”和“1”组成的编号,共256个。最神奇的是,编号生成器有如下功能:生成的编号仅与账簿纸上填入的内容有关,与填写人、字体、填写时间等因素均无关内容相同的账簿纸生成的编号总是相同,但是如果内容哪怕只改一个字符,编号就会面目全非编码生成器在打印编码时还需要将所有填入账簿纸的交易单放入,机器会扫描交易单和填入交易单的一致性,尤其是保密印章,如果发现保密印章和付款人不一致,会拒绝打印编码将一张已打印的账簿纸放入,机器会判定编号是否是有效的机器打印,并且判定编号和内容是否一致,这个编号无法伪造交易单收件箱。每个矿工小组需要在门口挂一个箱子用于收集交易单。 公告板。每个矿工小组同样需要一个公告板公示一些信息。有了上面的工具,矿工组织就可以开工了!收集交易单中本聪规定,每笔交易的发起人,不但要将交易单给到收款人,还要同时复制若干份一模一样的交易单投递到每个矿工小组的收件箱里。矿工小组的人定期到自己的收件箱里把收集到的交易单一并取出来。填写账簿此时小组的人拿出一张空的账簿纸,把这些交易填写到“交易清单”一栏,同时找到当前账簿最后一页,将最后一页的编号抄写到“上一张账单编号一栏”。 注意还有个“幸运数字”,可以随便填上一个数字,如12345。然后,将这样账簿纸放入编号生成器,打印好编号,一张账簿就算完成了。如果你以为矿工的工作就这么简单,那就大错特错了,中本聪有个变态的规定:只有编号的前10个数均为0,这页账簿纸才算有效。根据之前对编号生成器的描述,要修改编号,只能修改账簿纸的内容,而“交易清单”和“上一张账簿纸编号”是不能随便改的,那么只能改幸运数字了。于 是为了生成有效的账簿纸,小组里的矿工就不断抄写账簿纸,但每张纸的幸运数字都不同,然后不断的重复将纸放入编码器,如果生成的编号不符合规定,这张纸就 算废了,重复这个过程直到生成一串有效的编号。我们知道,如果编号的每一个数字都是随机的,那么平均写1000多张幸运数字不同的纸才能获得一个有效的编号。这就奇怪了,这些矿工为什么要拼命干这看似无意义的事情呢?还记得之前说过矿工有报酬吧,这就是矿工的动力了。中本聪规定:每一张账簿纸的交易清单 第一条交易为“系统给这个小组支付50个比特币”。也就是说,如果你生成了一张有意义的账簿纸,并且被所有挖矿小组接受了,那么就意味着这条交易也被接受 了,你的挖矿小组获得了50个比特币。这就是矿工被叫做矿工的原因,也是为什么之前说随着交易和矿工的活动,比特币的数量会不断增多。例如下面是一个挖矿过程,这个小组的公共比特币帐号为“UVWXYZ”。在幸运数字尝试到“533”时,系统生成了一页有效账簿。确认账簿当某挖矿小组幸运的生成了一张有意义的账簿,为了得到奖励,必须立刻请其它小组确认自己的工作。前面说过,当前村里有7个挖矿组,所以这个小组必须将有效账簿纸誊抄6份快马加鞭送到其他6个小组请求确认。中本聪规定,当某个小组接到其他小组送来的账簿纸时,必须立即停下手里的挖矿工作进行账簿确认。需要确认的信息有三个:账簿的编号有效账簿的前一页账簿有效交易清单有效首先看第一个,这个确认比较简单。只要将送来的账簿纸放入编码生成器进行验证,如果验证通过,则编号有效。第二部分需要将账簿页上的“上一页账簿纸编号”和这个小组目前保存的有效账簿最后一页编号比对,如果相同则确认,如果不同,需要顺着已有账簿向前比对,直到找到这个编号的页。如果没有找到指定的“上一页账簿纸编号”对应的页,这个小组会将此页丢掉。不予确认。注意,由上面的机制可以保证,如果各个小组手里的账簿纸是相同的,那么他们都能按同样的顺序装订成相同的账簿。因为后面一张纸的编号总是依赖前面的 纸的编号,编码生成器的机制保证了所有合法账簿纸的相对先后顺序在每个小组那里都是相同的(可能会有分支,但不会出现环,后面细讲)。最后是如何确认交易清单有效,其实也就是要确认当前每笔交易的付款人有足够的余额支付这笔钱。由于交易信息里包含这笔钱是如何来的,还包含了记录来 源交易的账单编号。例如,HIJKLMN要给ABCDEFG10个比特币,并注明了这10个比特币来自之前OPQRST支付给HIJKLMN的一笔交易, 确认时首先要确认之前这笔交易是否存在,同时还要检查HIJKLMN在这之前没有将这10个比特币支付给别人。这一切确认后,这笔交易有效性就被确认了。其中第一笔是系统奖励给生成这页账簿的小组的50个,这笔交易大家都默认承认,后面的只要按照上述方法追溯,就可以确认HIJKLMN是否当前真有10个比特币支付给ABCDEFG。如果完成了所有了上述验证并全部通过,这个小组就认可了上述账簿纸有效,然后将这张账簿纸并入小组的主账簿,舍弃目前正在进行的工作,后面的挖矿工作会基于这本更新后的主账本进行。账簿确认反馈对于挖矿小组来说,当账簿纸送出去后,如果后面有收到其他小组送来的账簿纸,其“上一页账簿纸编号”为自己之前送出去的账簿纸,那么就表示他们的工作成功被其他小组认可了,因为已经有小组基于他们的账簿纸继续工作了。此时,可以粗略的说可以认为已经得到了50个比特币。另外,任何一个小组当新生成有效账簿纸或确认了别的小组的账簿纸时,就将最新被这个小组承认的交易写到公告牌上,那么收款人只要发现相关交易被各个小组认可了,基本就可以认为这笔钱已经到了自己的账上,后面他就可以在付款时将钱的来源指向这笔交易了。以上就是整个比特币的支付体系。下面我们来分析一下,这个体系为什么可以工作下去,以及这个体系可能面临的风险。工作机制分析虽然上面阐述了比特币的基本运作规则,但是村民们还是有不少疑问。所以中本聪同学专门开了个答疑会,解答常见问题。下面总结一下村民最集中关心的问题。核心问题答疑如果同时收到两份合法的账簿页怎么办?注意在上面的运行机制中,各个挖矿小组是并行工作的,因此完全可能出现这样的情况:某小组收到两份不一样的账簿页,它们都基于当前这个小组的主账簿的最后一页,并且内容也都完全合法,怎么办?关于这个问题,中本聪同学说,小组不应该以线性方式组织账簿,而应该以树状组织账簿,任何时刻,都以当前最长分支作为主账簿,但是保留其它分支。举个例子,某小组同时收到A、B两份账簿页,经核算都是合法的,此时小组应该将两页以分叉的形式组织起来,如下图所示:黑色表示当前账簿主干。此时,可以随便选择一个页作为当前主分支,例如选择A:此时如果有一个新的账簿页是基于A的,那么这个主干就延续下去:如果这个主干一直这么延续下去,表示大家基本都以A为主干,B就会被遗忘。但是也有可能忽然B变成更长了:那么我们就需要将B分支作为当前主干,基于这个分支进行后续工作。从局部来看,虽然在某一时刻各个小组的账簿主干可能存在不一致,但大方向是一致的,那些偶尔由于不同步产生的小分支,会很快被淹没在历史中。如果挖矿小组有人伪造账簿怎么办关于这个问题,中本聪同学说,只要挖矿组织中大多数人是诚实的,这个系统就可靠,具体分几个方面给予答复。首先,基于保密印章机制,没有人能伪造他人身份进行付款,因为编码生成器在打印编码时会核对所有交易单的保密印章,印章和付款人不一致会拒绝打印。而且诚实的矿工也不会承认不合法的交易(如某笔交易付款方余额不够)。所以只有一种可能的攻击行为,即在收款人确认收款后,从另一条分支上建立另外的交易单,取消之前的付款,而将同一笔钱再次付款给另一个人(即所谓的double-spending问题)。下面同样用一个例子说明这个问题。先假设有一个攻击者拥有10个比特币,他准备将这笔钱同时支付给两名受害者A和B,并都得到承认。第一步,攻击者准备从受害者A手里买10比特币的黄金,他签署交易单给受害者A,转10个比特币给受害者A。第二步,这笔交易在最新的账簿页中被确认,并被各个挖矿小组公告出来。受害人A看到公告,确认比特币到账,给了攻击者10个比特币等值的黄金。第三步,攻击者找到账簿,从包含刚才交易的账簿页的前一页做出一个分支,生成更多的账单页,超过刚才的分支。由于此时刚才攻击者制造的分支变成了主干分支,而包含受害者A得到钱的分支变成了旁支,因此挖矿组织不再承认刚才的转账,受害者A得到的10比特币被取消了。第四步,攻击者可以再次签署交易单,将同一笔钱支付给受害者B。受害者B确认钱到账后,支付给攻击者等值黄金。至此,攻击者将10个比特币花了两次,从两名受害者那里各购得等值黄金。攻击者还可以如法炮制,取消与受害者B的转账,将同一笔钱再支付给其他人。。。。。。关于这种攻击,中本聪给出的解决方案是,建议收款人不要在公告挂出时立即确认交易完成,而是应该再看一段时间,等待各个挖矿小组再挂出6张确认账簿,并且之前的账簿没有被取消,才确认钱已到账。中本聪解释道,之前设定变态的编号规则,正是为了防御这一点。根据前面所述,生成有效账簿页不是那么简单的,要花费大量的人力反复试不同的幸运数 字,而且过程完全是碰运气。如果某账簿页包含你收到钱的确认,并且在后面又延续了6个,那么攻击者想要在落后6页的情况下从另一个分支赶超当前主分支是非 常困难的,除非攻击者拥有非常多的人力,超过其他所有诚实矿工的人力之和。而且,如果攻击者有如此多人力,与其花这么大力气搞这种攻击,还不如做良民挖矿来的收益大。这就从动机上杜绝了攻击的形成。比特币会一直增加下去,岂不是会严重通货膨胀中本聪说,这一点我也想到了。前面忘了说了,我给矿工组织的操作细则手册会说明,刚开始我们协议每生成一页账簿,奖励小组50个比特币,后面,每当 账簿增加21,000页,奖励就减半,例如当达到210,000页后,每生成一页账簿奖励25个比特币,420,000页后,每生成一页奖励12.5个, 依次类推,等账簿达到6,930,000页后,新生成账簿页就没有奖励了。此时比特币全量约为21,000,000个,这就是比特币的总量,所以不会无限 增加下去。没有奖励后,就没人做矿工了,岂不是没人帮忙确认交易了到时,矿工的收益会由挖矿所得变为收取手续费。例如,你在转账时可以指定其中1%作为手续费支付给生成账簿页的小组,各个小组会挑选手续费高的交易单优先确认。矿工如果越来越多,比特币生成速度会变快吗不会。中本聪解释,虽然可以任意加入和退出矿工组织,导致矿工人数变化,每个矿工也会拿到一个编码生成器,不过我已经在编码生成器中加入了调控机制,当前工作的编码生成器越多,每个机器的效率就越低,保证新账簿页生成速率不变。虽然每个人的代号是匿名的,但如果泄露了某个人的代号,账簿又是公开的,岂不是他的所有账目都查出来了确实是这样的。例如你要和某人交易,必然要要到他的代号才能填写交易单。因为收款人一栏要填入那人的代号。不过中本聪说可以提供无限制的保密印章,建议每一次交易用不同的保密印章,这样查账簿就追查不到同一个人的所有账目了。答疑完毕。说明本文用通俗比喻的方式讲解了比特币的运行机制。有几点需要说明:为了便于理解,我做了很多简化,因此有些机制细节和实际的比特币可能不完全相同。但总体思想和关键原理是一致的。由于很多计算机世界的东西(如公钥体系、网络传输)在现实世界中并没有特别好的对等物,所以故事里难免有一些生硬和不合常理的细节。本文描述的是比特币网络本身的技术原理和运作机制,当在如Mtgox这种买卖市场中进行比特币交易时,市场做了中间代理,并不遵从上述机制。编辑于 2018-01-22 19:01​赞同 2596​​157 条评论​分享​收藏​喜欢收起​Leaf​ 关注秒懂比特币挖矿: 1.我手上现在有一张面值100元的人名币。(比特币)2.谁关注公众号我就给谁。3.但是需要在评论里面猜出这张钱的编号才行。(挖矿,随机填充数值求解)自己想尽办法猜,猜中得100元全款——个人挖矿出钱召集一些人来一起猜——矿场召集认识不认识的人一起来猜,通过猜测的次数,按比例分配这100元——矿池以上是一个简单的类比例子,当然,你们关注并猜出了我兜里100块钱的编号,我保证给你。那么,比特币挖矿到底是怎么回事呢?回顾张三李四转账过程 找出问题在之前,我们用在一个偏僻的小村张三和李四转账的例子简单解释了什么是比特币。没看过的可以看下:【白话币圈】什么是比特币?这可能是最通俗易懂的答案了我们来简单回顾一下:当张三想要通过A账号转账1000元给李四的B账号时:① 张三大吼一声:大家注意啦,我用A账号给李四的B账号转1000块钱。② 张三附近的村民听了确实是张三的声音,并且检查张三的A账号是否有足够余额。③ 检查通过后,村民往自己的账本上写:A账号向B账号转账1000元,并修改余额:A账号余额=3000-1000=2000元,B账号余额=2000+1000=3000元。④ 张三附近的村民把转账告诉较远村民,一传十十传百,直到所有人都知道这笔转账,以此保证所有人账本的一致性。聪明如你一定发现了,在步骤② 如果张三吼了一声,附近村民假装没听到,都不去核实记账,那么这个系统不就停止工作了吗?为解决这个问题,村里商讨后决定,谁第一个确认是张三的声音的会获得500元。于是大家都竖起耳朵,时刻监听村里的每一个动静,真可谓草木皆兵。评论区有人问,这500元是哪儿来的?我这里也简答讲一下。1.比特币平均差不多每10分钟产生一个区块,这个区块能打包的交易数量是有限的,我们就算800笔吧。但是呢,旷工不会平白无故给你打包交易到并广播,所以需要收取手续费。而且,由于交易的人很多,先打包谁的交易也取决于手续费的高低。所以你可以看到,现在比特币火热了,手续费水涨船高。2.我们都知道比特币总量2100万个,发币机制是逐年递减。当旷工第一个成功打包这个区块并广播,并且是最长的链的话,那么他还会获得奖励,目前只有12.5个比特币。最开始是50个,已经衰减2次了。这里当然还有小问题,比如为什么要最长链,怎么确定是最长链,哪些链会被抛弃?如果大家有兴趣再深入说说。以上就是旷工的奖励。2017/12/8更新。在比特币的世界里,大约平均每10分钟会产生一个区块。所有的挖矿计算机都在尝试打包这个区块并提交,而第一个成功生成这个数据块的人,就可以得到一笔比特币报酬。最初,大约每10分钟就可以产生50个比特币的比特币报酬。但是该报酬每4年减半,现在每10分钟比特币网络就可以产生25个比特币。好了,接着上面的故事讲,张三这一吼,惊动了全村的人,大家都纷纷表示自己是第一个听到张三声音的人。这500块钱该给谁呢?于是村里又商讨出新的规定,需要有证据证明这是张三的声音。张三在喊的这一声里带有特定的声波数据,谁先破解出来就给谁。在比特币世界里,这是就是一个新的概念,共识机制。比特币是通过工作量证明的共识机制来决定记账权的,通俗来讲,谁证明了自己的工作量最大,谁就负责记账。工作量大小是通过计算符合某一个标准的比特币区块头的哈希散列值来体现的。区块头通常包含前一个区块的哈希散列值、Merkle根、时间戳、难度目标、以及一个填充的随机值。试图争夺记账权的节点称为挖矿节点,挖矿过程就是求出一个能够填充本区块头的随机值,让区块头的哈希散列值符合某一个标准。咱们接着故事讲,海归村民王二麻子凭借高超的计算能力,成功第一个匹配了张三的声波数据,然后他笑嘻嘻地向全村人广播自己破解成功。村民验证后,王二麻子如愿拿到了500元奖励金,李四也成功收到了张三的转账。网络上的每一个矿机接收并验证了一批交易,然后就开始进行挖矿,矿机需要反复的试验随机填充值来进行求解,一般采用产生随机数,尝试把产生的随机数填充到区块头,然后计算哈希。如果计算成功,则挖矿成功,向全网广播挖矿所得,全网节点验证后,把这个区块连接到区块的最上端,并且在全网达成一致。故事还在继续,王二麻子拿到这500元后就想:一个人的计算能力有限,我下次也非常可能不是第一个计算出来。若我改进算法,制造专门匹配这种声波数据的机器,然后卖机器岂不是能大赚一笔?于是就哼哧哼哧的专研去了,并在不久后面世。(专业矿机)村民蜡笔小明买了一台专业机器,觉得不错。于是大量采购,并找到一个电费低廉的场地,也请了专人人员来维护。于是,蜡笔小明便每天便看着一笔笔的500元进账。(矿场)村民张小凡也采购了一些机器,可是机器不多,能破解并拿到这500奖励的几率并不大。于是他创建了一个平台,所有有计算能力的人都可以参与进来。若得到奖励,则按每个人的计算力高低分配奖金。(矿池)好了,村民的故事差不多就到这里结束了,现在回过头来看文章开始的例子是不是特别形象?你们可以猜猜谁可能挖矿的最大算力。风险与受益其实,最初的时候,我们用电脑CPU就可以挖到比特币,比特币的创始人中本聪就是用他的电脑CPU挖出了世界上第一个创世区块。当然,现在也可以用家用电脑的CPU、GPU挖矿,只是收益非常低了。CPU挖矿的时代早已过去,GPU挖矿也早已不是主流,现在的比特币挖矿是ASIC挖矿和大规模集群挖矿的时代。回顾挖矿历史,比特币挖矿总共经历了以下五个时代:CPU挖矿→GPU挖矿→FPGA挖矿→ASIC挖矿→大规模集群挖矿 挖矿芯片更新换代的同时,带来的挖矿速度的变化是:CPU(20MHash/s)→GPU(400MHash/s)→FPGA(25GHash/s)→ASIC(3.5THash/s)→大规模集群挖矿(3.5THash/s*X)算力就是计算机每秒产生哈希碰撞的能力,算力越高,挖到比特币的概率越大,挖得比特币也就越多,回报越高。然而挖矿的受益并不是稳定且有保障的,电费将成为持续挖矿最大的成本之一,所以,有廉价电力的地方便成了旷工的最爱。挖矿的风险不仅于此,16年7月开始,比特币网络发行比特币数量就减半了,即每10分钟,每个区块只包含12.5个比特币,意味着相同算力挖出的比特币也会相应减少。但另一方面,币价也有上升可能。同时还伴随着断电、机器维护折旧等风险。最后,给大加介绍一种0风险赚钱的方法:猜出我兜里100元人民币的编号。哈哈。/逃跑...简单回答评论中 @诺pro 的一些疑问,估计也是很多人的疑问:1.目前比特币全部账本信息能很好的保存在一台普通的电脑上,这也是Core他们坚持不扩容的原因之一。另外根据摩尔定律,就算小扩容其实影响不大。2.仅仅降低交易费那么旷工没有动力,交易将更拥堵。当然这里有目前比较认可的取代方案POS。上面说的是挖矿是工作量证明即POW(Proof of Work),而POS的全称Proof of Stake,即股权证明。简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,有利于刺激全部用户参与,更去中心化。3.比特币等加密货币是匿名的,虽然你能看到纪录,但是你不知道是谁,同样你可以有多个匿名账户,中心化的你确定你能保密部分信息?4.不知道你这数据哪里来的,确实现在交易量少,原因很多,有支付场景弱,币价太高,大多数人持币待涨等多种因素。突然想到另一个因素,目前大量的币集中在交易所,很多交易所实际上是虚拟交易,当你要提币的时候才是真实交易,这样也大幅降低了真实交易量。2017/12/20更新公众号“对韭当割”,欢迎关注和交流。部分资料参考至@徐晓聪 @小龟 在本问题中的回答编辑于 2018-06-26 10:59​赞同 1195​​378 条评论​分享​收藏​喜欢

利用个人电脑GPU挖矿回血,教程只需要看这一篇! - 知乎

利用个人电脑GPU挖矿回血,教程只需要看这一篇! - 知乎首发于cryptocurrency切换模式写文章登录/注册利用个人电脑GPU挖矿回血,教程只需要看这一篇!比特小子一键购买比特币 binance.pigshi.com如果你有闲置的电脑,或者工作电脑每天都有一段时间闲置,或者平时工作时CPU、GPU不会全部使用,那么何不利用它们赚点零花钱,积少成多呢?加密货币挖矿就是一个很好的选择。现在动荡不安的加密货币市场并不适合投资,利用闲置电脑挖矿就成了一个很好的选择。如果你的电脑有超过4G显存的显卡,且是A卡580和N卡1060以上,那么可以选择GPU挖矿。以笔者的Nvidia GTX 1070显卡为例,在挖矿收益计算平台minerstat选择发文时刻之前三天的平均收益,可以看到挖矿收益前七名均为ETH,因此我们当前还是应该选择ETH作为挖矿货币。下面推荐两个笔者亲测好用的挖矿平台:一、币安币安是当前全世界上最大的加密货币交易所之一,拥有大量矿工。币安矿池收益计算周期是每日一结,结算完成后直接打款至用户的币安矿池钱包。不设提现门槛,特别适合三天打鱼两天晒网的用户。同时,手续费较为低廉,ETH挖矿费率为0.5%。操作也较为简洁。详细的挖矿教程如下所示:首先,你要拥有一台配置有GPU(NVIDIA或AMD,显存不低于4G)的个人电脑,操作系统可以是Windows或Linux。随后在注册,可以享受40%返佣!注册完毕币安矿池帐户之后,创建挖矿账户:填写挖矿ID,此处以bubu666为例,需要改为你自己的:根据自己的系统类型,选择下载以下任一开源软件进行ETH挖矿Claymore: http://github.chttps://laymore-Dual/Claymore-Dual-Miner/releases/Teamredminer: https://http://github.com/todxx/teamredminer/releasesNBMiner: https://http://github.com/NebuTech/NBMiner/releasesGMiner: https://http://github.com/develsoftware/GMinerRelease/releases这些软件都会有最低1%的抽水,如果不想被抽水,可以自行搜索ETH挖矿软件反抽水版。不过开发软件需要时间和精力,尽量支持一下。说一下这里为什么不推荐轻松矿工类的软件:这些软件虽然傻瓜式操作,但是天下没有免费的午餐。闭源软件好上手的代价就是你不知道有多少暗箱操作。比如有人统计过轻松矿工的抽水为5%左右:【科普】细说轻松矿工抽水多少_wsckqiu的博客-CSDN博客_轻松矿工抽水多少挖矿软件的操作均大同小异,推荐使用claymore软件。以windows操作系统举例,首先下载Claymore挖矿软件,选择“将文件解压缩到当前文件夹”,找到“start.bat”批处理文件,如下图所示:右键点击“start.bat”批处理文件,选择“编辑”,将下列命令粘贴:EthDcrMiner64.exe -epool ethash.poolbinance.com:8888 -ewal username -epsw x -eworker workername -allpools 1其中username就是之前所填写的挖矿ID,workername可以自己随便取。比如我的挖矿命令就是:EthDcrMiner64.exe -epool ethash.poolbinance.com:8888 -ewal bubu666 -epsw x -eworker 001 -allpools 1修改完毕之后,双击start运行,会弹出以下界面:显示出Eth speed也就说明正在进行挖矿了。耐心等待一段时间,可能需要半小时到1小时,币安矿池统计界面就开始计算收益了。有人可能会遇到挖矿很长时间,确认用户名没写错,币安都不显示收益的问题。只需在币安挖矿后台用户名左边将算法由SHA256切换为Ethash即可看到挖矿收益。最后总结一下币安矿池:优点:不设提币门槛,每天收益自动转账到矿池账户(非常适合于利用闲置电脑时间挖矿的用户),手续费较低。二、EzilEzil矿池是一个收益较高的矿池。它最大的特点是ETH和ZIL双币可以同时开采,获得双份收益。(2021年9月2日更新:目前从ezil矿池提币也需要自行支付手续费!请自行斟酌)Ezil的最小打款额度为0.05 ETH和30 ZIL。以Nvidia 1070 GTX为例,大概连续挖矿一个月左右可以达到提币门槛。 Ezil矿池的教程如下所示:注册完毕后,点击start mining进入挖矿设置页面。选择自己的操作系统,Mining pair我们选择ETH+ZIL,区域选择所在的区域,如果是在国内的话选Asia (singapore)。下面需要填写ETH钱包地址和ZIL钱包地址,推荐使用trust wallet创建自己的钱包。创建之后输入自己的ETH和ZIL钱包地址,worker_name随便输入一个即可。3. 输入完毕之后会生成相应的挖矿软件命令。挖矿软件推荐Phoenix:https://http://phoenixminer.org/,在官网点击download下载。下载之后解压,在文件夹下创建文本文件,打开后粘贴上述命令:PhoenixMiner.exe -pool stratum1+tcp://http://eu.ezil.me:5555 -proto 2 -wal ETH_WALLET.ZIL_WALLET -worker WORKER pause随后保存,重命名为批处理文件ezil.bat,打开运行即可。耐心等待一段时间,Ezil矿池网站上会显示当前收益以及预计月收益。总结一下Ezil矿池:优点:多币挖矿,预计收益较高 ;缺点:转账门槛高,个人电脑需要连续不断挖接近一个月才可以达到。不推荐个人电脑挖矿用户使用。此外,目前提币也需支付转账手续费。最后,计算一下具体收益。以Nvdia 1070 GTX为例,发文时前一天的收益如下:每天可以挣一顿饭钱。月收入100美元左右,一年也就是1200美元。刨去电费的话,也是一笔不小的收入。可以直接评论区留言,看到都会及时回复的。发布于 2021-09-02 10:24挖矿图形处理器(GPU)个人电脑​赞同 47​​14 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录cryptocurrencySomething interest

比特币的工作原理 - 比特币

比特币的工作原理 - 比特币

Bitcoin.org 是一个社区支持的社区,我们十分感谢任何捐助。这些捐助会用于改进网站。

捐助

Bitcoin.org 需要你的帮助!

×

捐助Bitcoin.org

使用下方二维码或地址

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

$5.00

(... BTC)

$25.00

(... BTC)

$50.00

(... BTC)

介绍

个人

商家

开发者

入门指南

工作原理

White paper

资源

资源

兑换

社区

词汇表

活动

比特币核心

创新

参与

支持比特币

购买比特币

开发

常见问题

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Language: zh_CN

比特币的工作原理

这是个经常引起混淆的问题,下面是个简明扼要的解释!

新用户所需了解的基本知识

作为新用户,你可以开始使用比特币,而不需要理解其中的技术细节。一旦你在电脑或手机上安装一个比特币钱包,它会生成你的第一个比特币地址,并且在你需要的任何时候都可以生成更多的地址。你可以将你的地址告诉你的朋友们,他们便能够通过这个地址向你支付比特币,反之亦然。事实上,这跟电子邮件的运作方式是非常相似的,除了一个比特币地址应该只被使用一次。

余额 - 区块链

比特币区块链是整个比特币网络所依赖的公共共享总帐。所有确认的交易均包含在区块链中。这样比特币钱包可以计算出可用余额,并核实新的交易中消费方花费的确实是自己的比特币。密码学确保了区块链的完整性和时间顺序。

交易 - 私钥

一笔交易是指包含在区块链里的比特币钱包之间的价值转移。 比特币钱包保存着一份称作私钥或种子的保密数据用来为交易签名,即提供数学证据证明这些交易来自钱包的拥有者。这个 签名也确保交易发生后不会被任何人修改。所有的交易在用户之间广播,通常在接下来的10-20分钟内通过一个称作 挖矿的处理过程开始被比特币网络所确认。

处理 - 挖矿

挖矿是个将待确认的交易数据包含到区块链中,从而完成对这些交易进行确认的分布式共识系统。通过挖矿,可以强制性保证块链中的数据按时间顺序存储,保持比特币网络的中立性,且允许比特币网络上不同的计算机对系统状态达成一致。交易要获得确认,必须要被打包到一个符合非常严格的密码学规则的区块中,并通过比特币网络进行验证。这些规则可以防止对已有块的修改,因为一旦有改动,之后所有的块都将失效。挖矿的难度和中彩票相当,没人可以轻易地、连续地将新块加入到块链中。因此,没有集体和个人可以控制块链中包含什么样的内容或者替换掉块链中的部分内容以达到撤销他们交易的目的。

深入探究

这只是一份比特币的概要。如果你需要更多的细节,你可以阅读描述了比特币设计的最初的论文,开发者文档,或者查看比特币百科。

支持Bitcoin.org:

捐助

3E8ociqZa9mZUSwGdSmAEMAoAxBK3FNDcd

介绍:

个人

商家

开发者

入门指南

工作原理

注意事项

White paper

资源:

资源

兑换

社区

词汇表

活动

比特币核心

参与:

支持比特币

开发

其他:

法律

Privacy Policy

新闻媒体

关于bitcoin.org

Blog

© Bitcoin Project 2009-2024 基于MIT协议授权发布

Network Status

简体中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

Bahasa Indonesia

Català

Dansk

Deutsch

English

Español

Français

Italiano

Magyar

Nederlands

Polski

Português Brasil

Română

Slovenščina

Srpski

Svenska

Türkçe

Ελληνικά

български

Русский

Українська

Հայերեն

العربية

فارسی

עברית

हिन्दी

한국어

ខ្មែរ

日本語

简体中文

繁體中文

zh_CN

Bminer: 最快的挖矿程序

Bminer: 最快的挖矿程序

跳转至

Bminer

简介

键入以开始搜索

Bminer

简介

简介

目录

产品优势

开始挖矿

下载

性能

使用样例

常见问题

参考

群号:231258565

Bminer: When Crypto-mining Made Fast¶

Bminer是一款为NVIDIA和AMD GPU深度优化的挖矿软件。Bminer是目前最快的挖矿程序 -- 我们使用了多种技术以释放出硬件的潜力。Bminer支持包括Equihash, Ethash, Cuckoo-Style等各种算法,能挖ETH(以太坊),ZEC(零币),GRIN等币种。

Bminer不仅提供数据界面监测矿机温度,运行结果等数据,还提供应用程序编程接口(API)以便于大规模使用和部署大批量矿机。

Bminer支持Zhash/Equihash 144,5 算法的币种(比如,比特币黄金BitcoinGold,次世代比特币BitcoinZ),仅抽取2%作为开发者支持费用

Bminer挖Ethash币种(比如:以太坊ETH/以太经典ETC),仅抽取0.65%作为开发者支持费用。

Bminer支持双挖模式,同时挖Ethash币种(比如:以太坊ETH)和Blake14r的币种(比如:DCR)或,同时挖Ethash币种(比如:以太坊ETH)和Blake2s的币种(比如:Verge),仅抽取Ethash币种1.3%的算力作为开发者支持费用,同时挖的另一种币种将不被抽取任何算力。

Bminer支持Bytom比原币(BTM),仅抽取2%作为开发者支持费用。

Bminer支持Grin(GRIN),仅抽取1%作为开发者支持费用。

产品优势¶

高效快速

Bminer是市场上最快的挖矿程序之一

安全稳定

SSL 支持

网络传输失败时可以自动恢复

在GPU挂起时可自动重启

操作简单

提供了应用程序编程接口(API)进行大规模生产部署

开始挖矿¶

下载 Bminer并解压到文件夹 (例如 C:\bminer or /home/bminer)

根据您想获得的数字货币,找到对应的脚本。例如用Cuckaroo29算法挖GRIN时对应的脚本为mine_grin29.bat (Windows) 或 mine_grin29.sh (Linux)

把脚本的矿池、帐号替换为您的信息

运行脚本,开始挖矿 :-)

请访问参考和例子页面以了解Bminer更多高级用法,

比特币挖矿指南 - 比特币挖矿入门

比特币挖矿指南 - 比特币挖矿入门

Start

News

Pool

Cloud

Software

Hardware

Price

...

Global Vol.

...

Diff.

...

比特币挖矿指南 - 比特币挖矿入门

你将了解(1)如何进行比特币挖矿,(2)如何开始挖比特币,(3)最好的比特币挖矿软件是什么,(4)最好的比特币挖矿硬件是什么,(5)哪里能找到最好的比特币采矿池和(6)如何优化你的比特币收益。

比特币挖矿很难做到有利可图,但如果你尝试的话,那么这个比特币挖矿机可能是一个很好的机会。

如何进行比特币挖矿

在开始比特币挖矿之前,了解比特币挖矿到底是什么意思非常有用。比特币挖矿是合法的,通过运行SHA256双向哈希验证流程来完成,以验证比特币交易并为比特币网络的公开帐本提供必要的安全性。你挖比特币的速度是以每秒哈希为单位测算的。

比特币网络通过向贡献所需计算能力的人员发放比特币来作为比特币矿工的工作报酬。这以新发行的比特币和挖比特币时已验证交易中包含的交易费用的形式进行。你贡献的计算能力越大,你所获得的奖励份额就越多。

步骤 1 - 获得最好的比特币挖矿硬件

购买比特币 - 某些情况下,你可能需要使用比特币来购买挖矿硬件。今天,您可以在Amazon上购买大部分硬件。你也可能想查看比特币图表。

如何开始比特币挖矿

要开始挖比特币,您需要获取比特币挖矿硬件。在比特币早期,可以使用电脑CPU或高速视频处理器卡来挖矿。但今天这种作法已经不可行了。定制的比特币 ASIC芯片的性能最多可达旧系统的100倍,现在已经占据了比特币挖矿的主导地位。

使用性能比这低的硬件来挖比特币,消耗的电力比可能会赚到的钱还要多。使用专门为此目的而制作的最好硬件来挖比特币至关重要。像Avalon这样的多家公司提供专门针对比特币挖矿而设计的优质系统。

最好的比特币云挖矿服务

另一个选择是购买比特币云挖矿合同。这大大简化了过程,但是由于你无法控制实际的硬件,因此会增加风险。

本节列出的并不是对这些服务的认可。已经发生过许多比特币云挖矿诈骗事件了。

Hashflare 评价:Hashflare提供SHA-256 挖矿合同,也可以挖更有利可图的SHA-256 比特币,同时仍使用比特币自动付款。客户必须至少购买10 GH/s。

Genesis Mining 评价:Genesis Mining 是最大的比特币云算力挖矿提供商。Genesis Mining提供三种比特币云挖矿计划,价格合理。另外也提供Zcash挖矿合同。

Hashing 24 评价:Hashing24自2012年以来就参与到比特币挖矿行业。他们在冰岛和格鲁吉亚有设施。他们使用BitFury的现代ASIC芯片,可以提供最佳的性能和效率。

Minex 评价:Minex是以经济模拟游戏格式呈现的区块链项目的创新聚合者。用户购买Cloudpack,然后可以使用它们为预先选定的云挖矿场、彩票、赌场、现实世界市场等建立索引。

Minergate 评价:提供比特币矿池以及合并的挖矿和云挖矿服务。

Hashnest 评价:Hashnest由比特币蚂蚁矿机的生产商Bitmain 运营。 HashNest目前有超过600台蚂蚁矿机 S7 供出租。你可以在Hashnest的网站上查看最新的价格和可租用的数量。在撰写本文时,一台蚂蚁矿机 S7的哈希率可以租$1200。

Bitcoin Cloud Mining 评价:当前 Bitcoin Cloud Mining 的合同已经售罄。

NiceHash 评价:NiceHash独一无二的原因在于,它使用订单来匹配采矿合同买家和卖家。查看其网站以了解最新价格。

Eobot 评价:刚开始时比特币云挖矿的价格可以低至$10。Eobot声称客户可以在14个月后实现盈亏平衡。

MineOnCloud 评价:MineOnCloud目前在云端有约35 TH/s的挖矿设备可供出租。另外还有一些挖矿机出租,其中包括蚂蚁矿机S4和S5。

步骤 2 - 下载免费的比特币挖矿软件

在收到比特币挖矿硬件后,你需要下载一个用于比特币挖矿的特殊程序。比特币挖矿可以使用很多程序,但两个最受欢迎的是CGminer和BFGminer,它们都是命令行程序。

如果你喜欢图形用户界面的易用性,你可能想试试EasyMiner,这是一个点击运行Windows / Linux / Android程序。

更多详细信息,请访问最佳比特币挖矿软件。

步骤 3 - 加入比特币矿池

在你准备好开始挖比特币时,我们建议你加入一个比特币矿池。比特币矿池是许多比特币挖矿机一起工作,共同解决一个数据块并分享其奖励。没有比特币矿池,你可能挖一年多也不会挖到任何比特币。与更大的比特币挖矿机群体一起工作并分享奖励,会让挖矿变得更为方便。这里有一些选择:

对于全分散控制矿池,我们强烈推荐p2pool。

以下矿池被认为目前正在使用比特币核心钱包 0.9.5或更高版本的有效数据块(由于DoS漏洞而推荐使用0.10.2或更高版本)

BitMinter

CK Pool

Eligius

Slush Pool

步骤 4 - 设置比特币钱包

挖比特币的下一步是设置一个比特币钱包,或使用现有的比特币钱包来接收你挖到的比特币。Copay是一个很棒的比特币钱包,并可在许多不同的操作系统上运行。也可以使用比特币硬件钱包。

比特币通过使用仅属于您的唯一地址发送到您的比特币钱包。设置比特币钱包最重要的一步是通过启用双因素身份验证或将其保存在无法访问互联网的离线电脑上,从而防止潜在的威胁。可以通过将软件客户端下载到电脑上来获得钱包。

有关选择比特币钱包的帮助,你可以从这里开始

您还需要能够购买和出售你的比特币。为此,我们建议:

SpectroCoin - 同日 SEPA 的欧洲交易平台,可以使用信用卡购买

Kraken - 最大的欧洲交易平台,具有同日SEPA

Buying Bitcoin Guide - 帮助你寻找你所在国家的比特币交易平台。

Local Bitcoins - 这个奇妙的服务可让你在你的社区寻找愿意直接出售给你比特币的人。不过要小心!

购买比特币时,Coinbase 是一个很好的开始之地。我们强烈建议你不要在其服务中保存任何比特币。

步骤 5 - 关注最新的比特币新闻

关注最新的比特币新闻对于比特币挖矿利润很重要。如果你想要了解一般的比特币新闻,那么我们推荐WeUseCoins news。

这是比特币挖矿新闻部分,这里有 5 篇最新的文章:

[警告] - 1 August 2017 年 8 月 1 日将发生 BIP 148 UASF 。这可能会大大影响比特币挖掘机传统挖矿或挖BIP 148 区块链的收益。

要做好准备,我们建议阅读 UASF 指南。

Written by Bitcoin Mining on .

Recommended posts

Contribute

Advertise

FAQ

About Us

Español

Deutsch

Français

Nederlands

Pусский

Português

Bitcoin Mining™® © 2010-2022 Hesiod Services LLC | Terms | Privacy

挖矿原理 - 廖雪峰的官方网站

挖矿原理 - 廖雪峰的官方网站

Index

廖雪峰的官方网站

Blog

Java教程

手写Spring

手写Tomcat

Makefile教程

Python教程

JavaScript教程

区块链教程

SQL教程

Git教程

文章

问答

More

Java教程

手写Spring

手写Tomcat

Makefile教程

Python教程

JavaScript教程

区块链教程

SQL教程

Git教程

文章

问答

Java教程

手写Spring

手写Tomcat

Makefile教程

Python教程

JavaScript教程

区块链教程

SQL教程

Git教程

文章

问答

 

Profile

Passkey

Sign Out

Sign In

English

简体中文

Index

区块链教程

比特币

区块链原理

P2P交易原理

私钥

公钥和地址

签名

挖矿原理

可编程支付原理

多重签名

UTXO模型

Segwit地址

HD钱包

钱包层级

助记词

地址监控

以太坊

账户

区块结构

交易

智能合约

编写合约

部署合约

调用合约

编写Dapp

常用合约

ERC20

Wrapped Ether

关注公众号不定期领红包:

加入知识星球社群:

关注微博获取实时动态:

挖矿原理

Last updated: ...

/

Reads: 3275541

Edit

在比特币的P2P网络中,有一类节点,它们时刻不停地进行计算,试图把新的交易打包成新的区块并附加到区块链上,这类节点就是矿工。因为每打包一个新的区块,打包该区块的矿工就可以获得一笔比特币作为奖励。所以,打包新区块就被称为挖矿。

比特币的挖矿原理就是一种工作量证明机制。工作量证明POW是英文Proof of Work的缩写。

在讨论POW之前,我们先思考一个问题:在一个新区块中,凭什么是小明得到50个币的奖励,而不是小红或者小军?

当小明成功地打包了一个区块后,除了用户的交易,小明会在第一笔交易记录里写上一笔“挖矿”奖励的交易,从而给自己的地址添加50个比特币。为什么比特币的P2P网络会承认小明打包的区块,并且认可小明得到的区块奖励呢?

因为比特币的挖矿使用了工作量证明机制,小明的区块被认可,是因为他在打包区块的时候,做了一定的工作,而P2P网络的其他节点可以验证小明的工作量。

工作量证明

什么是工作量证明?工作量证明是指,证明自己做了一定的工作量。例如,在驾校学习了50个小时。而其他人可以简单地验证该工作量。例如,出示驾照,表示自己确实在驾校学习了一段时间:

比特币的工作量证明需要归结为计算机计算,也就是数学问题。如何构造一个数学问题来实现工作量证明?我们来看一个简单的例子。

假设某个学校的一个班里,只有一个女生叫小红,其他都是男生。每个男生都想约小红看电影,但是,能实现愿望的只能有一个男生。

到底选哪个男生呢?本着公平原则,小红需要考察每个男生的诚意,考察的方法是,出一道数学题,比如说解方程,谁第一个解出这个方程,谁就有资格陪小红看电影:

因为解高次方程没有固定的公式,需要进行大量的计算,才能算出正确的结果,这个计算过程就需要一定的工作量。假设小明率先计算出了结果x=2.5,小红可以简单地验证这个结果是否正确:

可以看出,解方程很困难,但是,验证结果却比较简单。所以,一个有效的工作量证明在于:计算过程非常复杂,需要消耗一定的时间,但是,验证过程相对简单,几乎可以瞬间完成。

现在出现了另一个问题:如果其他人偷看了小明的答案并且抢答了怎么办?

要解决这个问题也很容易,小红可以按照男生的编号,给不同的男生发送不同的方程,方程的第一项的系数就是编号。这样,每个人要解的方程都是不一样的。小明解出的x=2.5对于小军来说是无效的,因为小军的编号是3,用小明的结果验证小军的方程是无法通过验证的。

事实上如果某个方程被验证通过了,小红可以直接从方程的第一项系数得知是谁解出的方程。所以,窃取别人的工作量证明的结果是没有用的。

通过工作量证明,可以有效地验证每个人确实都必须花费一定时间做了计算。

在比特币网络中,矿工的挖矿也是一种工作量证明,但是,不能用解多项式方程来实现,因为解多项式方程对人来说很难计算,对计算机来说非常容易,可以在1秒钟以内完成。

要让计算机实现工作量证明,必须找到一种工作量算法,让计算机无法在短时间内算出来。这种算法就是哈希算法。

通过改变区块头部的一个nonce字段的值,计算机可以计算出不同的区块哈希值:

直到计算出某个特定的哈希值的时候,计算结束。这个哈希和其他的哈希相比,它的特点是前面有好几个0:

hash256(block data, nonce=0) = 291656f37cdcf493c4bb7b926e46fee5c14f9b76aff28f9d00f5cca0e54f376f

hash256(block data, nonce=1) = f7b2c15c4de7f482edee9e8db7287a6c5def1c99354108ef33947f34d891ea8d

hash256(block data, nonce=2) = b6eebc5faa4c44d9f5232631f39ddf4211443d819208da110229b644d2a99e12

hash256(block data, nonce=3) = 00aeaaf01166a93a2217fe01021395b066dd3a81daffcd16626c308c644c5246

hash256(block data, nonce=4) = 26d33671119c9180594a91a2f1f0eb08bdd0b595e3724050acb68703dc99f9b5

hash256(block data, nonce=5) = 4e8a3dcab619a7ce5c68e8f4abdc49f98de1a71e58f0ce9a0d95e024cce7c81a

hash256(block data, nonce=6) = 185f634d50b17eba93b260a911ba6dbe9427b72f74f8248774930c0d8588c193

hash256(block data, nonce=7) = 09b19f3d32e3e5771bddc5f0e1ee3c1bac1ba4a85e7b2cc30833a120e41272ed

...

hash256(block data, nonce=124709132) = 00000000fba7277ef31c8ecd1f3fef071cf993485fe5eab08e4f7647f47be95c

比特币挖矿的工作量证明原理就是,不断尝试计算区块的哈希,直到计算出一个特定的哈希值,它比难度值要小。

比特币使用的SHA-256算法可以看作对随机输入产生随机输出,例如,我们对字符串Hello再加上一个数字计算两次SHA-256,根据数字的不同,得到的哈希是完全无规律的256位随机数:

hash256("Hello?") = ????????????????????????????????????????????????????????????????

大约计算16次,我们可以在得到的哈希中找到首位是0的哈希值,因为首位是0出现的概率是1/16:

hash256("Hello1") = ffb7a43d629d363026b3309586233ab7ffc1054c4f56f43a92f0054870e7ddc9

hash256("Hello2") = e085bf19353eb3bd1021661a17cee97181b0b369d8e16c10ffb7b01287a77173

hash256("Hello3") = c5061965d37b8ed989529bf42eaf8a90c28fa00c3853c7eec586aa8b3922d404

hash256("Hello4") = 42c3104987afc18677179a4a1a984dbfc77e183b414bc6efb00c43b41b213537

hash256("Hello5") = 652dcd7b75d499bcdc61d0c4eda96012e3830557de01426da5b01e214b95cd7a

hash256("Hello6") = 4cc0fbe28abb820085f390d66880ece06297d74d13a6ddbbab3b664582a7a582

hash256("Hello7") = c3eef05b531b56e79ca38e5f46e6c04f21b0078212a1d8c3500aa38366d9786d

hash256("Hello8") = cf17d3f38036206cfce464cdcb44d9ccea3f005b7059cff1322c0dd8bf398830

hash256("Hello9") = 1f22981824c821d4e83246e71f207d0e49ad57755889874d43def42af693a077

hash256("Hello10") = 8a1e475d67cfbcea4bcf72d1eee65f15680515f65294c68b203725a9113fa6bf

hash256("Hello11") = 769987b3833f082e31476db0f645f60635fa774d2b92bf0bab00e0a539a2dede

hash256("Hello12") = c2acd1bb160b1d1e66d769a403e596b174ffab9a39aa7c44d1e670feaa67ab2d

hash256("Hello13") = dab8b9746f1c0bcf5750e0d878fc17940db446638a477070cf8dca8c3643618a

hash256("Hello14") = 51a575773fccbb5278929c08e788c1ce87e5f44ab356b8760776fd816357f6ff

hash256("Hello15") = 0442e1c38b810f5d3c022fc2820b1d7999149460b83dc680abdebc9c7bd65cae

如果我们要找出前两位是0的哈希值,理论上需要计算256次,因为00出现的概率是162=256,实际计算44次:

hash256("Hello44") = 00e477f95283a544ffac7a8efc7decb887f5c073e0f3b43b3797b5dafabb49b5

如果我们要找出前3位是0的哈希值,理论上需要计算163=4096次,实际计算6591次:

hash256("Hello6591") = 0008a883dacb7094d6da1a6cefc6e7cbc13635d024ac15152c4eadba7af8d11c

如果我们要找出前4位是0的哈希值,理论上需要计算164=6万5千多次,实际计算6万7千多次:

hash256("Hello67859") = 00002e4af0b80d706ae749d22247d91d9b1c2e91547d888e5e7a91bcc0982b87

如果我们要找出前5位是0的哈希值,理论上需要计算165=104万次,实际计算158万次:

hash256("Hello1580969") = 00000ca640d95329f965bde016b866e75a3e29e1971cf55ffd1344cdb457930e

如果我们要找出前6位是0的哈希值,理论上需要计算166=1677万次,实际计算1558万次:

hash256("Hello15583041") = 0000009becc5cf8c9e6ba81b1968575a1d15a93112d3bd67f4546f6172ef7e76

对于给定难度的SHA-256:假设我们用难度1表示必须算出首位1个0,难度2表示必须算出首位两个0,难度N表示必须算出首位N个0,那么,每增加一个难度,计算量将增加16倍。

对于比特币挖矿来说,就是先给定一个难度值,然后不断变换nonce,计算Block Hash,直到找到一个比给定难度值低的Block Hash,就算成功挖矿。

我们用简化的方法来说明难度,例如,必须计算出连续17个0开头的哈希值,矿工先确定Prev Hash,Merkle Hash,Timestamp,bits,然后,不断变化nonce来计算哈希,直到找出连续17个0开头的哈希值。我们可以大致推算一下,17个十六进制的0相当于计算了1617次,大约需要计算2.9万亿亿次。

17个0 = 1617 = 295147905179352825856 = 2.9万亿亿次

实际的难度是根据bits由一个公式计算出来,比特币协议要求计算出的区块的哈希值比难度值要小,这个区块才算有效:

Difficulty = 402937298

= 0x18 0455d2

= 0x0455d2 * 28 * (0x18 - 3)

= 106299667504289830835845558415962632664710558339861315584

= 0x00000000000000000455d2000000000000000000000000000000000000000000

注意,难度值的数值越小,说明哈希值前面的0越多,计算的难度越大。

比特币网络的难度是不断变化的,它的难度保证大约每10分钟产生一个区块,而难度值在每2015个区块调整一次:如果区块平均生成时间小于10分钟,说明全网算力增加,难度也会增加,如果区块平均生成时间大于10分钟,说明全网算力减少,难度也会减少。因此,难度随着全网算力的增减会动态调整。

比特币设计时本来打算每2016个区块调整一次难度,也就是两周一次,但是由于第一版代码的一个bug,实际调整周期是2015个区块。

根据比特币每个区块的难度值和产出时间,就可以推算出整个比特币网络的全网算力。

比特币网络的全网算力一直在迅速增加。目前,全网算力已经超过了100EH/每秒,也就是大约每秒钟计算1万亿亿次哈希:

所以比特币的工作量证明被通俗地称之为挖矿。在同一时间,所有矿工都在努力计算下一个区块的哈希。而挖矿难度取决于全网总算力的百分比。举个例子,假设小明拥有全网总算力的百分之一,那么他挖到下一个区块的可能性就是1%,或者说,每挖出100个区块,大约有1个就是小明挖的。

由于目前全网算力超过了100EH/s,而单机CPU算力不过几M,GPU算力也不过1G,所以,单机挖矿的成功率几乎等于0。比特币挖矿已经从早期的CPU、GPU发展到专用的ASIC芯片构建的矿池挖矿。

当某个矿工成功找到特定哈希的新区块后,他会立刻向全网广播该区块。其他矿工在收到新区块后,会对新区块进行验证,如果有效,就把它添加到区块链的尾部。同时说明,在本轮工作量证明的竞争中,这个矿工胜出,而其他矿工都失败了。失败的矿工会抛弃自己当前正在计算还没有算完的区块,转而开始计算下一个区块,进行下一轮工作量证明的竞争。

为什么区块可以安全广播?因为Merkle Hash锁定了该区块的所有交易,而该区块的第一个coinbase交易输出地址是该矿工地址。每个矿工在挖矿时产生的区块数据都是不同的,所以无法窃取别人的工作量。

比特币总量被限制为约2100万个比特币,初始挖矿奖励为每个区块50个比特币,以后每4年减半。

共识算法

如果两个矿工在同一时间各自找到了有效区块,注意,这两个区块是不同的,因为coinbase交易不同,所以Merkle Hash不同,区块哈希也不同。但它们只要符合难度值,就都是有效的。这个时候,网络上的其他矿工应该接收哪个区块并添加到区块链的末尾呢?答案是,都有可能。

通常,矿工接收先收到的有效区块,由于P2P网络广播的顺序是不确定的,不同的矿工先收到的区块是有可能的不同的。这个时候,我们说区块发生了分叉:

在分叉的情况下,有的矿工在绿色的分叉上继续挖矿,有的矿工在蓝色的分叉上继续挖矿:

但是最终,总有一个分叉首先挖到后续区块,这个时候,由于比特币网络采用最长分叉的共识算法,绿色分叉胜出,蓝色分叉被废弃,整个网络上的所有矿工又会继续在最长的链上继续挖矿。

由于区块链虽然最终会保持数据一致,但是,一个交易可能被打包到一个后续被孤立的区块中。所以,要确认一个交易被永久记录到区块链中,需要对交易进行确认。如果后续的区块被追加到区块链上,实际上就会对原有的交易进行确认,因为链越长,修改的难度越大。一般来说,经过6个区块确认的交易几乎是不可能被修改的。

小结

比特币挖矿是一种带经济激励的工作量证明机制;

工作量证明保证了修改区块链需要极高的成本,从而使得区块链的不可篡改特性得到保护;

比特币的网络安全实际上就是依靠强大的算力保障的。

Comments

Make a comment

Sign in to

make a comment

Index

区块链教程

比特币

区块链原理

P2P交易原理

私钥

公钥和地址

签名

挖矿原理

可编程支付原理

多重签名

UTXO模型

Segwit地址

HD钱包

钱包层级

助记词

地址监控

以太坊

账户

区块结构

交易

智能合约

编写合约

部署合约

调用合约

编写Dapp

常用合约

ERC20

Wrapped Ether

廖雪峰的官方网站

©Copyright 2019-2021

Powered by iTranswarp

Feedback

License