比特币挖矿经验
家用电脑怎么挖比特币?近日比特币又火热了起来,很多朋友在了解了挖矿行业以及挖矿赚钱后,也想着挖矿,但是看着矿机太贵,也不想入手矿机,就想用家用电脑挖矿,但是不知道家用电脑挖矿一天收益多少,也不知道家用电脑挖矿伤电脑吗?下面就为大家详细的介绍一下,一起来看看吧!
首先了解一下,电脑是怎么挖矿的,以比特币挖矿举个例子,假设你有一台能联网的计算机,那么你可以从比特币官方网站下载一个比特币挖矿的程序,你的电脑首次运行这个比特币挖矿程序的时候会产生一个数字账号,然后你只需要保持电脑的运行,这个比特币挖矿程序就会一直不停地计算上一系列“数学题”,当你成功地计算完“一道数学 题”之后,就有可能得到一定数量的比特币。
虽然看起来简单,但是其实不然,家用电脑挖矿的限制取决于电脑的GPU、CPU、内存,现在挖矿的难度已经很大了,比特币也减半了,所以很难挖矿了。如今挖矿都是相当耗钱的事,因为要配置专门的矿机才行,每台机器挂着6~8块显卡,以一台比较新的计算能力是13个T的矿机来计算,一天24小时运行,能挖出0.004549382个比特币。而且这样的矿机,只要数十台,每月的耗电量就会高达1万度。
而且正常情况下,每台挖矿机400瓦功耗,你算算需要多少电费?
就现在的比特币行情来说,虽然不是之前一万美元的时候了,现在折半了币值,也值3万多人民币一枚,那么,如果用家用电脑挖矿,多久才能挖到一枚?
曾经有专业的比特币挖矿玩家计算,如果使用家用电脑想要挖到一枚比特币,至少需要800天以上连续工作挖矿才可以 ,单成本消耗可能就超过比特币本身的价值。
不要以为一台几千的电脑,800天换3万挺划算啊,其实你还要考虑你的电费,挖矿可不是待机,一天几十块钱的电费跑起来很容易,算起来,比特币挖出来也就能赚个几千块钱,去掉电脑钱,好的情况下可能也就赚个一两千块钱吧。
更何况,考虑到设备成本损耗,专职挖币很可能一个赔本买卖。值得一提的是,比特币的价值其实有很大浮动,而且随着国家对虚拟货币监管力度的加强,比特币的应用前景充满着不确定性。
❷ 怎么挖矿获得比特币
(以小米手机8为例,基于安卓操作系统)
首先注册一个数字钱包:在开始挖矿之前,需要注册一个靠谱的数字钱包用来存储你的挖矿成果,这里可以根据自己的需要使用一些支持手机端的钱包工具,不过一定要格外注意安全。目前最通用也最安全的数字钱包中,比较推荐使用火币网的充币地址做数字钱包。
接着完整注册之后,在右上角找到充币提币,点击进入。
最后这里找到需要挖的货币,点击充币,出现的一长串代码就是你的钱包地址,将它输入挖矿工具软件中,挖矿收益就会定期存入你的火币账户。
拓展资料:1、比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生 。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。
比特币是一种P2P形式的数字货币。比特币的交易记录公开透明 。点对点的传输意味着一个去中心化的支付系统。
2、与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。
3、P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币其总数量非常有限,具有稀缺性。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在2100万个 。
4、比特币挖矿,就是用于赚取比特币的电脑,这类电脑一般有专业的挖矿芯片,多采用烧显卡的方式工作,耗电量较大。用户用个人计算机下载软件然后运行特定算法,与远方服务器通讯后可得到相应比特币,是获取比特币的方式之一。
❸ 比特币怎么挖矿
比特币通过挖矿产生。每10分钟,全网矿工一起计算一道算术题,谁先算出答案,就相当于挖到了这个区块,该矿工便能获得系统新生的比特币奖励。
在比特币刚诞生的时候,通过计算机的CPU便可以挖矿。随着挖矿的矿工越来越多,目前用CPU已经不能挖出比特币了,大家开始用矿机挖矿。
如果你想挖矿,首先需要准备好矿机、比特币地址、挖矿软件等。但是目前比特币网络算力太大,个人购置少量矿机也很难挖出区块。很多矿工加入矿池一起挖矿,矿场只负责计算,矿池负责信息打包。
矿池挖到比特币之后根据矿场的算力占比分配收益,以此保证更加稳定的投入产出。
❹ 比特币能用电脑挖矿挖出来具体要怎么挖
用高性能电脑,控制一把或多把锄头(数量视电脑性能而定),在直接接地位置(无地基基础),日夜工作不停开挖,运气好即可获得比特币。
需要高速显卡,大量电能!
主要是最近涨价了,比较贵,所以你买个好的银勺子,比耳挖勺大点就行,一点点抠,先CPU再内存,慢慢挖...
首先,什么是比特币。简单的来说,就是一种代币,就象我们去游乐场玩,会花钱的那种 游戏 币一样。不过,不同的是,比特币是去中心化的币,它不由哪个主体来发行,而是依靠算法来发布的一种虚拟代币。
什么是挖矿?因为比特币是由算法来发行的,它规定每20分钟全世界加入该玩法的节点一起来算一道数学题。这个数学题没有诀窍,只能依靠枚举法,去试出来答案。系统会根据这20分钟内大家总体的算力的占比,按照同样的概率来分配这个时段的比特币奖励归属。算力所占比例越高,获得奖励的机会越多。
挖矿分为几个阶段。第一阶段,依靠CPU就能拿到奖励。那是因为参与挖矿的人非常少。第二阶段,依靠硬盘就能挖矿。第三阶段,使用GPU。第四阶段,使用专门的矿机。目前,已经发展到第五阶段,就是矿池,也就一个大集团把算力集合在一起,利用群体效应提升比特币的获取机率,然后再根据大家在矿池当中的算力进行分配,确保是只要矿池能拿到奖励,人人都有份。
因此,在现在的矿圈,你想再依靠个人的力量进行挖矿,那就是徒劳。因为整个算力已经提升非常多,你个人力量在当中基本上是可微的。
据我所知 这东西就像做一个非常难的数学题 它的答案就是一个比特币 当然 计算机的运算能力太慢了可不行
拿个小铲,把电脑主机打开,从CPU开始挖
买个锄头,一锄头一锄头的挖,挖慢了就遭人家挖跑了。嘿嘿
❺ 比特币挖矿,到底如何挖- 解析虚拟货币挖矿流程和原理
网络上有许多种加密货币在流通说到底是什么意思?像是比特币(Bitcoin)、以太币(Ether)、瑞波币(Ripple)等等,但大家最常听到的还是非比特币莫属,可以说是全球的「矿工」们都在想尽办法获得它,许多人不只是把它看作是单纯的热潮跟风,甚至有些人将它视为资产在投资,比特币同时也是造成目前全球显示卡大缺货的主因,全世界有无数的矿工、矿场无时无刻不在运作,他们大量购买显卡,为得就是要抢在其他竞争对手前夺得先机。
然而,到底比特币挖矿在挖什么?如果现在想要进场挖矿会不会太晚?又要准备什么硬件设备才能开始挖矿呢?
身为目前最火红数位货币之一的比特币,由于获取难度高,且物以稀为贵的条件下,导致比特币的相对价值非常高。在数位货币市场上,比特币被当成一种「股票」操作,它可以用来当作保值品投资,也可以将其转换成各国货币并存入现行银行 帐户 ,许多网络商店甚至支持直接使用比特币购买商品。想要获得比特币的话,最直接快速的方法就是金钱购买,目前一个比特币的价值大约等同于30万左右,这是近一年来,价格最低的一段时间,想要直接用金钱购买比特币加入这股数位货币风潮的话,现在或许是最好的时机。
购买比特币的方法其实很简单,首先需要先在网络上建立一个可以储存比特币的电子钱包,关于电子钱包的种类网络上十分多样,本文我们将以「币托」(BitoEX)为例说明。进入币托首页以后,直接点击画面中央的「免费申请」并输入账号和密码建立电子钱包,完成信箱帐号认证以后你就会获得一个专属于你的电子钱包,登入后即可进入该电子钱包并浏览目前的余额,因为是刚申请的缘故,因此账户余额为零,这时候可以直接选择「购买比特币」功能开始交易。
不过此页面中最重要的是信息其实是位于右上方的「钱包地址」,这不仅是在交易时会使用到,后续挖矿时也会使用这个钱包地址作为比特币的储存目标。
不过,由于比特币单价价格昂贵,动辄二三十万以上,如果不想要直接用金钱购买比特币的话,另一个方法就是用挖矿的方式获得了。
1.进入币托网页以后,点击画面中央的「免费申请」开始建立个人电子钱包。
2.输入用来登入钱包的电子信箱以及密码,建议使用强度高的各种符号或数字字母作为密码组合。
3.完成步骤以后即可进入个人的电子钱包页面,这里可以随时关注自己钱包内的金额数量。
比特币的发行有它自己的时间以及数量,大约每十分钟会由代码执行新比特币的发行,并且授予给参与比特币交易的某(群)人,因此,获得新发行的比特币就好比是获得刚出土的金矿,所以才会将这些获得比特币的人比喻为矿工。而矿工们「挖矿」的动作在英文中称为「mining」,这是一种比特币使用者可以考虑、但是只有专业挖矿者才「有可能」获取比特币的方法。
想要开始挖矿的话,在开始之前有一些事前准备要做,包含硬件投入成本以及运作成本。
前者是指硬件的购入、安装、电费、折旧、场地以及散热等等;
而后者则是维持这些硬件持续运作,所需付出的成本。
两者综合以后,可以发现其实挖矿所需的成本非常庞大,这也就造成部分拥有大量资金成立挖矿专用硬件设备的以「出租」的方式来回收成本,这种挖矿模式被包装成一种「商品」并在公开的网络市场上进行买卖,当挖到比特币时,会依每位承租人的付出比例来分矿,这样的挖矿模式也就是所谓的「云端挖矿」。
开采比特币的做法主要有三种,除了云端挖矿外,还有「独立挖矿」以及「合力挖矿」,不过由于目前的挖矿难度不断提升,且有越来越多竞争者挤入,时至今日想要单靠自己的力量独立挖到矿的可能已经不大,虽然一旦成功挖矿便可独自获得全部利益,但一般比较可行的做法是采用后者「合力挖矿」,也就是团队挖矿的概念,挖到矿时全团依照每个人付出的比例来分矿。
由于挖矿难度与日俱增,个人想要藉由显卡挖矿获得比特币难如登天。
拥有大量资本的矿工会租挖矿机,最后甚至会把挖矿机承租给其他人,借此获利。
云端挖矿逐渐被塑造成一种金融商品,以月租或年租的方式收取承租费,挖到矿时再按比例分给承租人。
矿池 :早期比特币还不兴盛的时候,大部分人都用自己的电脑来挖矿,最早当然是用尽CPU的能力来运算,接着有人发现用显示卡的GPU Stream Processors来计算会快更多,可是当大家纷纷投入挖矿以后,出现了很多为挖矿优化的设备,一般个人电脑根本拼不过,因此需要加入矿池(Mining Pool)来挖矿,由服务器集合所有使用者的运算力量来挖,再由一定比例回馈使用者(矿工),才不会发生挖了老半天却拼不过专业挖矿机,花了电费却什么都得不到的情形。
矿机 :由于显卡虽然挖矿速度较快,但是显示晶片原本并不是专门用于挖矿,因此用显卡挖矿不仅很耗电而且发热量又高,如果是3、4张显卡所组成的挖矿电脑,更是耗电,最后计算起来很可能挖比特币的收益都还不够付电费呢!因此从2013年开始,挖比特币的重心逐渐转移到专业矿机上,这种矿机区分为两大类型:
挖矿的过程并不复杂,只需要下载「挖矿程序」其实就能开始挖矿。网络上的挖矿软件百百款,这里我们将以NiceHash Miner 这款软件举例说明。
首先,根据手上显卡厂商下载对应的NiceHash Miner 版本并开启软件,在正式开始挖矿以前,有几个步骤要先设定。
电子钱包页面中最重要的信息就是钱包地址,这除了是比特币买卖家交易时须使用的信息以外,同时也是挖矿时比特币储存的目标位址,点击币托页面中的钱包地址后,就会获得一串「未命名的钱包地址」,请复制这串数位码并好好保存。
接下来在挖矿程序中点击「钱包」(Wallet)选项,将刚刚复制的数位码贴上后即可完成储存目标设定。在左下方的「硬件信息」(Hardware Details)选项中,系统预设会找到你电脑使用的显卡型号,也可以在这里开启处理器加入挖矿的行列,可根据需求和喜好设定。
在「钱包」的选项中,贴上个人电子钱包位置,一旦挖到比特币时便会储存在该钱包中。
一切都准备就绪后,就可以按下中间的「开始挖矿」(Start),你的电脑会自动开启命令执行视窗进行挖矿,不同的挖矿软件无论每次挖矿的动作成功与否,都会释出不同的通知指令,以NiceHash 为例,成功挖矿时视窗上将会出现的绿色的指令通知。但这时候软件挖到的比特币数额其实非常小,需要长时间连续不间断的挖矿才能挖到完整一个比特币。
每个软件在挖矿时,显示的通知不尽相同,NiceHash是以绿色文字提示挖到比特币的通知信息。
根据挖矿的规模,每次成功挖矿时获得的比特币数额不同,需要长时间不间断开挖才能获得完整一个比特币。
无论你是使用金钱直接购买,还是使用各种不同的挖矿模式,在获得比特币以后该如何使用它?首先你可以把它当成是一种投资品保存,由于全世界几乎无时无刻都有人在进行比特币交易,因此,它的币值也在不断波动,你可以在它未来价格涨到最高点时脱手卖出,以去年一整年最高的平均价格50多万来看,现在一个比特币大约是25万,有可能可以获得大于成本两倍的获利。
如果没有打算将比特币当作保值品来看的话,你可以到币托或是MaiCoin 等网站里,将获得的比特币转换成人民币,换取现金到现行的银行帐户中供其他使用,如果不想换成人民币的话,也可以将比特币转换成其他虚拟货币来持有;此外,目前网络上还有许多网站或服务是支持比特币付款的。
其他还有很多网络零售商也支持买家使用比特币在平台上购买商品,国外电子产品零售业龙头之一的newegg 就是其中之一,它们和Bitpay 电子钱包合作,让消费者可以在购买商品时,选择使用比特币进行支付。其他还有像是NASDAQ 的线上百货零售商Overstock、纽约地产公司邦德纽约或是利用信用卡定世界各国旅馆获得比特币现金回馈的PointHound 等等,种类非常多。
比特币过去一年最高曾有突破50万的可观价值,将其视为一保值品也是不错的选择。
由于比特币在全世界造成的热潮至今还未间断,无论是用团队挖矿还是云端挖矿模式,仍有许多比特币使用者正在挖矿。在这样的热潮下,也间接导致了不少问题。
显卡严重缺货
首先最直接的问题就是显卡,由于显卡是矿工们最主要的挖矿工具,它们需要大量显卡加快挖矿的速度,借此抢在他人以前获得比特币,也导致目前无论是NVIDIA 还是AMD 显卡在全球都出现缺货的情形,同时也造成显卡价格上涨,尤其是高阶的显卡问题更严重,常常会需要以比厂商建议售价高出许多的价格购买,也让想要单买显卡帮电脑升级的民众购买困难。
挖矿的过程是将显卡以及电脑的效能发挥到最极致,如果能成功获得比特币那也就罢了,更惨的就是不仅没挖到矿,甚至还多花冤枉钱。挖矿的过程不仅需要随时保持电脑主机的温度,甚至主机还需要放在通风的室内运作来避免主机过热,长时间连续挖矿下,对于显卡的产品寿命也有害。
此外,挖矿过程中还必须考量到电费的问题,根据「比特币能源消耗指数」报告的统计,比特币在过去一年内挖矿的电力总消耗已累积达29.51兆瓦小时,约占全球总电力消耗的0.13%,听起来占比不大,但该数字已经超过全球近160个国家一年的电力消耗,可见挖矿的耗电量有多大。虽然说比特币确实有它的吸引力存在,但在通往致富的挖矿路上,矿工们仍要考虑许多成本付出的问题以及带来的影响。
在零售商的网页上,可以看到无论是NVIDIA还是AMD的显卡,高阶版本几乎都为缺货状态。
挖矿的过程中,会大量耗费处理器和显卡的性能,导致其温度升高,降低其产品寿命。
根据统计,比特币过去一年的耗电量已超过图中黄色国家和地区的耗电量。
# 科技 日报#
❻ 挖矿怎么挖到比特币
比特币作为一种网络虚拟货币,十分受欢迎,很多人都会去“挖”比特币。今天就来介绍一下比特币的挖矿教程。
第一步:准备矿机、矿池
想要挖到比特币,就必须要准备专业的设备,目前市面上已经有不少专业矿机在出售,而矿池也是必不可少的,大家在选择矿池的时候也要对比各个矿池的产出和收益差距,然后选择最适合的一种矿池。
第二步:注册矿池账号并进行设置
准备好矿池后,就要注册矿池账号,要设定一个常用的电子邮件,而在设置矿工账号的时候,每一个CPU或GPU都需要设定一个矿工账号。
第三步:下载比特币挖矿器
在注册并设置完账号后,就需要下载比特币挖矿器,而在下载挖矿器的时候,一定要选择能够让你的CPU和显卡发挥出最大机能的挖矿器。 下载好之后,再设置服务器、用户名、密码、设备等等。
第四步:进行挖矿
在设置好挖矿机之后,点击“开始挖矿”按钮,矿机会进入全速运行的状态,挖矿器就会自动开始挖矿了。
❼ 如何自己挖矿(入比特币)
第一步:准备矿机、矿池
想要挖到比特币,就必须要准备专业的设备,目前市面上已经有不少专业矿机在出售,而矿池也是必不可少的,大家在选择矿池的时候也要对比各个矿池的产出和收益差距,然后选择最适合的一种矿池。
挖比特币的电费成本:
挖比特币是通过高力计算机特定的加密算法来挖掘的,所以说挖比特币的速度还是要看你计算机的算力。
自2018年7月起,数字币市场持续低迷。比特币价格从9000美元连续跌至6000美元关口。较年初19000美元关口下跌近60%。受比特币等主流数字币影响,整个数字币市场的泡沫逐渐被挤破。如果按照每台矿机每月耗电1000度,每度电0.35元计算.
每100台矿机每月需缴纳电费35000元,则矿工每月利润仅为36100元,需要1年的时间才可收回购买矿机所需成本。受低迷行情影响,矿工的收入也急剧下降。按照30日内比特币价格最高点8376美元计算,每100台矿机的挖矿收入锐减约42300元。
以上内容参考:
网络-比特币
❽ 详解比特币挖矿原理
可以将区块链看作一本记录所有交易的公开总帐簿(列表),比特币网络中的每个参与者都把它看作一本所有权的权威记录。
比特币没有中心机构,几乎所有的完整节点都有一份公共总帐的备份,这份总帐可以被视为认证过的记录。
至今为止,在主干区块链上,没有发生一起成功的攻击,一次都没有。
通过创造出新区块,比特币以一个确定的但不断减慢的速率被铸造出来。大约每十分钟产生一个新区块,每一个新区块都伴随着一定数量从无到有的全新比特币。每开采210,000个块,大约耗时4年,货币发行速率降低50%。
在2016年的某个时刻,在第420,000个区块被“挖掘”出来之后降低到12.5比特币/区块。在第13,230,000个区块(大概在2137年被挖出)之前,新币的发行速度会以指数形式进行64次“二等分”。到那时每区块发行比特币数量变为比特币的最小货币单位——1聪。最终,在经过1,344万个区块之后,所有的共20,999,999.9769亿聪比特币将全部发行完毕。换句话说, 到2140年左右,会存在接近2,100万比特币。在那之后,新的区块不再包含比特币奖励,矿工的收益全部来自交易费。
在收到交易后,每一个节点都会在全网广播前对这些交易进行校验,并以接收时的相应顺序,为有效的新交易建立一个池(交易池)。
每一个节点在校验每一笔交易时,都需要对照一个长长的标准列表:
交易的语法和数据结构必须正确。
输入与输出列表都不能为空。
交易的字节大小是小于MAX_BLOCK_SIZE的。
每一个输出值,以及总量,必须在规定值的范围内 (小于2,100万个币,大于0)。
没有哈希等于0,N等于-1的输入(coinbase交易不应当被中继)。
nLockTime是小于或等于INT_MAX的。
交易的字节大小是大于或等于100的。
交易中的签名数量应小于签名操作数量上限。
解锁脚本(Sig)只能够将数字压入栈中,并且锁定脚本(Pubkey)必须要符合isStandard的格式 (该格式将会拒绝非标准交易)。
池中或位于主分支区块中的一个匹配交易必须是存在的。
对于每一个输入,如果引用的输出存在于池中任何的交易,该交易将被拒绝。
对于每一个输入,在主分支和交易池中寻找引用的输出交易。如果输出交易缺少任何一个输入,该交易将成为一个孤立的交易。如果与其匹配的交易还没有出现在池中,那么将被加入到孤立交易池中。
对于每一个输入,如果引用的输出交易是一个coinbase输出,该输入必须至少获得COINBASE_MATURITY (100)个确认。
对于每一个输入,引用的输出是必须存在的,并且没有被花费。
使用引用的输出交易获得输入值,并检查每一个输入值和总值是否在规定值的范围内 (小于2100万个币,大于0)。
如果输入值的总和小于输出值的总和,交易将被中止。
如果交易费用太低以至于无法进入一个空的区块,交易将被拒绝。
每一个输入的解锁脚本必须依据相应输出的锁定脚本来验证。
以下挖矿节点取名为 A挖矿节点
挖矿节点时刻监听着传播到比特币网络的新区块。而这些新加入的区块对挖矿节点有着特殊的意义。矿工间的竞争以新区块的传播而结束,如同宣布谁是最后的赢家。对于矿工们来说,获得一个新区块意味着某个参与者赢了,而他们则输了这场竞争。然而,一轮竞争的结束也代表着下一轮竞争的开始。
验证交易后,比特币节点会将这些交易添加到自己的内存池中。内存池也称作交易池,用来暂存尚未被加入到区块的交易记录。
A节点需要为内存池中的每笔交易分配一个优先级,并选择较高优先级的交易记录来构建候选区块。
一个交易想要成为“较高优先级”,需满足的条件:优先值大于57,600,000,这个值的生成依赖于3个参数:一个比特币(即1亿聪),年龄为一天(144个区块),交易的大小为250个字节:
High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000
区块中用来存储交易的前50K字节是保留给较高优先级交易的。 节点在填充这50K字节的时候,会优先考虑这些最高优先级的交易,不管它们是否包含了矿工费。这种机制使得高优先级交易即便是零矿工费,也可以优先被处理。
然后,A挖矿节点会选出那些包含最小矿工费的交易,并按照“每千字节矿工费”进行排序,优先选择矿工费高的交易来填充剩下的区块。
如区块中仍有剩余空间,A挖矿节点可以选择那些不含矿工费的交易。有些矿工会竭尽全力将那些不含矿工费的交易整合到区块中,而其他矿工也许会选择忽略这些交易。
在区块被填满后,内存池中的剩余交易会成为下一个区块的候选交易。因为这些交易还留在内存池中,所以随着新的区块被加到链上,这些交易输入时所引用UTXO的深度(即交易“块龄”)也会随着变大。由于交易的优先值取决于它交易输入的“块龄”,所以这个交易的优先值也就随之增长了。最后,一个零矿工费交易的优先值就有可能会满足高优先级的门槛,被免费地打包进区块。
UTXO(Unspent Transaction Output) : 每笔交易都有若干交易输入,也就是资金来源,也都有若干笔交易输出,也就是资金去向。一般来说,每一笔交易都要花费(spend)一笔输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就是 UTXO。
块龄:UTXO的“块龄”是自该UTXO被记录到区块链为止所经历过的区块数,即这个UTXO在区块链中的深度。
区块中的第一笔交易是笔特殊交易,称为创币交易或者coinbase交易。这个交易是由挖矿节点构造并用来奖励矿工们所做的贡献的。假设此时一个区块的奖励是25比特币,A挖矿的节点会创建“向A的地址支付25.1个比特币(包含矿工费0.1个比特币)”这样一个交易,把生成交易的奖励发送到自己的钱包。A挖出区块获得的奖励金额是coinbase奖励(25个全新的比特币)和区块中全部交易矿工费的总和。
A节点已经构建了一个候选区块,那么就轮到A的矿机对这个新区块进行“挖掘”,求解工作量证明算法以使这个区块有效。比特币挖矿过程使用的是SHA256哈希函数。
用最简单的术语来说, 挖矿节点不断重复进行尝试,直到它找到的随机调整数使得产生的哈希值低于某个特定的目标。 哈希函数的结果无法提前得知,也没有能得到一个特定哈希值的模式。举个例子,你一个人在屋里打台球,白球从A点到达B点,但是一个人推门进来看到白球在B点,却无论如何是不知道如何从A到B的。哈希函数的这个特性意味着:得到哈希值的唯一方法是不断的尝试,每次随机修改输入,直到出现适当的哈希值。
需要以下参数
• block的版本 version
• 上一个block的hash值: prev_hash
• 需要写入的交易记录的hash树的值: merkle_root
• 更新时间: ntime
• 当前难度: nbits
挖矿的过程就是找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
上式的x的范围是0~2^32, TARGET可以根据当前难度求出的。
简单打个比方,想象人们不断扔一对色子以得到小于一个特定点数的游戏。第一局,目标是12。只要你不扔出两个6,你就会赢。然后下一局目标为11。玩家只能扔10或更小的点数才能赢,不过也很简单。假如几局之后目标降低为了5。现在有一半机率以上扔出来的色子加起来点数会超过5,因此无效。随着目标越来越小,要想赢的话,扔色子的次数会指数级的上升。最终当目标为2时(最小可能点数),只有一个人平均扔36次或2%扔的次数中,他才能赢。
如前所述,目标决定了难度,进而影响求解工作量证明算法所需要的时间。那么问题来了:为什么这个难度值是可调整的?由谁来调整?如何调整?
比特币的区块平均每10分钟生成一个。这就是比特币的心跳,是货币发行速率和交易达成速度的基础。不仅是在短期内,而是在几十年内它都必须要保持恒定。在此期间,计算机性能将飞速提升。此外,参与挖矿的人和计算机也会不断变化。为了能让新区块的保持10分钟一个的产生速率,挖矿的难度必须根据这些变化进行调整。事实上,难度是一个动态的参数,会定期调整以达到每10分钟一个新区块的目标。简单地说,难度被设定在,无论挖矿能力如何,新区块产生速率都保持在10分钟一个。
那么,在一个完全去中心化的网络中,这样的调整是如何做到的呢?难度的调整是在每个完整节点中独立自动发生的。每2,016个区块(2周产生的区块)中的所有节点都会调整难度。难度的调整公式是由最新2,016个区块的花费时长与20,160分钟(两周,即这些区块以10分钟一个速率所期望花费的时长)比较得出的。难度是根据实际时长与期望时长的比值进行相应调整的(或变难或变易)。简单来说,如果网络发现区块产生速率比10分钟要快时会增加难度。如果发现比10分钟慢时则降低难度。
为了防止难度的变化过快,每个周期的调整幅度必须小于一个因子(值为4)。如果要调整的幅度大于4倍,则按4倍调整。由于在下一个2,016区块的周期不平衡的情况会继续存在,所以进一步的难度调整会在下一周期进行。因此平衡哈希计算能力和难度的巨大差异有可能需要花费几个2,016区块周期才会完成。
举个例子,当前A节点在挖277,316个区块,A挖矿节点一旦完成计算,立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。当这个新区块在网络中扩散时,每个节点都会将它作为第277,316个区块(父区块为277,315)加到自身节点的区块链副本中。当挖矿节点收到并验证了这个新区块后,它们会放弃之前对构建这个相同高度区块的计算,并立即开始计算区块链中下一个区块的工作。
比特币共识机制的第三步是通过网络中的每个节点独立校验每个新区块。当新区块在网络中传播时,每一个节点在将它转发到其节点之前,会进行一系列的测试去验证它。这确保了只有有效的区块会在网络中传播。
每一个节点对每一个新区块的独立校验,确保了矿工无法欺诈。在前面的章节中,我们看到了矿工们如何去记录一笔交易,以获得在此区块中创造的新比特币和交易费。为什么矿工不为他们自己记录一笔交易去获得数以千计的比特币?这是因为每一个节点根据相同的规则对区块进行校验。一个无效的coinbase交易将使整个区块无效,这将导致该区块被拒绝,因此,该交易就不会成为总账的一部分。
比特币去中心化的共识机制的最后一步是将区块集合至有最大工作量证明的链中。一旦一个节点验证了一个新的区块,它将尝试将新的区块连接到到现存的区块链,将它们组装起来。
节点维护三种区块:
· 第一种是连接到主链上的,
· 第二种是从主链上产生分支的(备用链),
· 第三种是在已知链中没有找到已知父区块的。
有时候,新区块所延长的区块链并不是主链,这一点我们将在下面“ 区块链分叉”中看到。
如果节点收到了一个有效的区块,而在现有的区块链中却未找到它的父区块,那么这个区块被认为是“孤块”。孤块会被保存在孤块池中,直到它们的父区块被节点收到。一旦收到了父区块并且将其连接到现有区块链上,节点就会将孤块从孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。当两个区块在很短的时间间隔内被挖出来,节点有可能会以相反的顺序接收到它们,这个时候孤块现象就会出现。
选择了最大难度的区块链后,所有的节点最终在全网范围内达成共识。随着更多的工作量证明被添加到链中,链的暂时性差异最终会得到解决。挖矿节点通过“投票”来选择它们想要延长的区块链,当它们挖出一个新块并且延长了一个链,新块本身就代表它们的投票。
因为区块链是去中心化的数据结构,所以不同副本之间不能总是保持一致。区块有可能在不同时间到达不同节点,导致节点有不同的区块链视角。解决的办法是, 每一个节点总是选择并尝试延长代表累计了最大工作量证明的区块链,也就是最长的或最大累计难度的链。
当有两个候选区块同时想要延长最长区块链时,分叉事件就会发生。正常情况下,分叉发生在两名矿工在较短的时间内,各自都算得了工作量证明解的时候。两个矿工在各自的候选区块一发现解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。如果该节点在随后又收到了另一个候选区块,而这个区块又拥有同样父区块,那么节点会将这个区块连接到候选链上。其结果是,一些节点收到了一个候选区块,而另一些节点收到了另一个候选区块,这时两个不同版本的区块链就出现了。
分叉之前
分叉开始
我们看到两个矿工几乎同时挖到了两个不同的区块。为了便于跟踪这个分叉事件,我们设定有一个被标记为红色的、来自加拿大的区块,还有一个被标记为绿色的、来自澳大利亚的区块。
假设有这样一种情况,一个在加拿大的矿工发现了“红色”区块的工作量证明解,在“蓝色”的父区块上延长了块链。几乎同一时刻,一个澳大利亚的矿工找到了“绿色”区块的解,也延长了“蓝色”区块。那么现在我们就有了两个区块:一个是源于加拿大的“红色”区块;另一个是源于澳大利亚的“绿色”。这两个区块都是有效的,均包含有效的工作量证明解并延长同一个父区块。这个两个区块可能包含了几乎相同的交易,只是在交易的排序上有些许不同。
比特币网络中邻近(网络拓扑上的邻近,而非地理上的)加拿大的节点会首先收到“红色”区块,并建立一个最大累计难度的区块,“红色”区块为这个链的最后一个区块(蓝色-红色),同时忽略晚一些到达的“绿色”区块。相比之下,离澳大利亚更近的节点会判定“绿色”区块胜出,并以它为最后一个区块来延长区块链(蓝色-绿色),忽略晚几秒到达的“红色”区块。那些首先收到“红色”区块的节点,会即刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受“绿色”区块的节点会以这个区块为链的顶点开始生成新块,延长这个链。
分叉问题几乎总是在一个区块内就被解决了。网络中的一部分算力专注于“红色”区块为父区块,在其之上建立新的区块;另一部分算力则专注在“绿色”区块上。即便算力在这两个阵营中平均分配,也总有一个阵营抢在另一个阵营前发现工作量证明解并将其传播出去。在这个例子中我们可以打个比方,假如工作在“绿色”区块上的矿工找到了一个“粉色”区块延长了区块链(蓝色-绿色-粉色),他们会立刻传播这个新区块,整个网络会都会认为这个区块是有效的,如上图所示。
所有在上一轮选择“绿色”区块为胜出者的节点会直接将这条链延长一个区块。然而,那些选择“红色”区块为胜出者的节点现在会看到两个链: “蓝色-绿色-粉色”和“蓝色-红色”。 如上图所示,这些节点会根据结果将 “蓝色-绿色-粉色” 这条链设置为主链,将 “蓝色-红色” 这条链设置为备用链。 这些节点接纳了新的更长的链,被迫改变了原有对区块链的观点,这就叫做链的重新共识 。因为“红”区块做为父区块已经不在最长链上,导致了他们的候选区块已经成为了“孤块”,所以现在任何原本想要在“蓝色-红色”链上延长区块链的矿工都会停下来。全网将 “蓝色-绿色-粉色” 这条链识别为主链,“粉色”区块为这条链的最后一个区块。全部矿工立刻将他们产生的候选区块的父区块切换为“粉色”,来延长“蓝色-绿色-粉色”这条链。
从理论上来说,两个区块的分叉是有可能的,这种情况发生在因先前分叉而相互对立起来的矿工,又几乎同时发现了两个不同区块的解。然而,这种情况发生的几率是很低的。单区块分叉每周都会发生,而双块分叉则非常罕见。
比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易清算更快地完成,也会导致更加频繁地区块链分叉。与之相对地,更长的间隔会减少分叉数量,却会导致更长的清算时间。
❾ 跪求比特币挖矿攻略谁知道
先准备个数字钱包,然后上世链矿业买一台好用的矿机,最后下载一个挖矿软件,按照网上的步骤进行就可以了。最关键的还是买矿机这部分,一台好的矿机就已经事半功倍了⋅▫。
❿ 比特币之挖矿与共识(二)
比特币共识机制的第三步是通过网络中的每个节点独立校验每个新区块。当新区块在网络中传播时,每一个节点在将它 转发到其节点之前,会进行一系列的测试去验证它。这确保了只有有效的区块会在网络中传播。
独立校验还确保了诚实 的矿工生成的区块可以被纳入到区块链中,从而获得奖励。行为不诚实的矿工所产生的区块将被拒绝,这不但使他们失 去了奖励,而且也浪费了本来可以去寻找工作量证明解的机会,因而导致其电费亏损。
当一个节点接收到一个新的区块,它将对照一个长长的标准清单对该区块进行验证,若没有通过验证,这个区块将被拒 绝。这些标准可以在比特币核心客户端的CheckBlock函数和CheckBlockHead函数中获得
它包括:
为什么矿工不为他们自己记录一笔交易去获得数以千计的比特币?
这 是因为每一个节点根据相同的规则对区块进行校验。一个无效的coinbase交易将使整个区块无效,这将导致该区块被拒 绝,因此,该交易就不会成为总账的一部分。矿工们必须构建一个完美的区块,基于所有节点共享的规则,并且根据正 确工作量证明的解决方案进行挖矿,他们要花费大量的电力挖矿才能做到这一点。如果他们作弊,所有的电力和努力都 会浪费。这就是为什么独立校验是去中心化共识的重要组成部分。
比特币去中心化的共识机制的最后一步是将区块集合至有最大工作量证明的链中。一旦一个节点验证了一个新的区块, 它将尝试将新的区块连接到到现存的区块链,将它们组装起来。
节点维护三种区块:第一种是连接到主链上的,第二种是从主链上产生分支的(备用链),最后一种是在已知链中没有 找到已知父区块的。在验证过程中,一旦发现有不符合标准的地方,验证就会失败,这样区块会被节点拒绝,所以也不 会加入到任何一条链中。
任何时候,主链都是累计了最多难度的区块链。在一般情况下,主链也是包含最多区块的那个链,除非有两个等长的链 并且其中一个有更多的工作量证明。主链也会有一些分支,这些分支中的区块与主链上的区块互为“兄弟”区块。这些区 块是有效的,但不是主链的一部分。 保留这些分支的目的是如果在未来的某个时刻它们中的一个延长了并在难度值上超 过了主链,那么后续的区块就会引用它们。
如果节点收到了一个有效的区块,而在现有的区块链中却未找到它的父区块,那么这个区块被认为是“孤块”。孤块会被 保存在孤块池中,直到它们的父区块被节点收到。一旦收到了父区块并且将其连接到现有区块链上,节点就会将孤块从 孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。当两个区块在很短的时间间隔内被挖出来,节点有 可能会以相反的顺序接收到它们,这个时候孤块现象就会出现。
选择了最大难度的区块链后,所有的节点最终在全网范围内达成共识。随着更多的工作量证明被添加到链中,链的暂时性差异最终会得到解决。挖矿节点通过“投票”来选择它们想要延长的区块链,当它们挖出一个新块并且延长了一个链, 新块本身就代表它们的投票。
因为区块链是去中心化的数据结构,所以不同副本之间不能总是保持一致。区块有可能在不同时间到达不同节点,导致节点有不同的区块链全貌。
解决的办法是,每一个节点总是选择并尝试延长代表累计了最大工作量证明的区块链,也就 是最长的或最大累计工作的链(greatest cumulative work chain)。节点通过累加链上的每个区块的工作量,得到建立这个链所要付出的工作量证明的总量。只要所有的节点选择最长累计工作的区块链,整个比特币网络最终会收敛到一致的状态。分叉即在不同区块链间发生的临时差异,当更多的区块添加到了某个分叉中,这个问题便会迎刃而解。
提示由于全球网络中的传输延迟,本节中描述的区块链分叉自动会发生。
然而,倒三角形的区块不会被丢弃。它被链接到星形链的父区块,并形成备用链。虽然节点X认为自己已经正确选择了获胜链,但是它还会保存“丢失”链,使得“丢失”链如果可能最终“获胜”,它还具有重新打包的所需的信息。
这是一个链的重新共识,因为这些节点被迫修改他们对块链的立场,把自己纳入更长的链。任何从事延伸星形-倒三角形的矿工现在都将停止这项工作,因为他们的候选人是“孤儿”,因为他们的父母“倒三角形”不再是最长的连锁。
“倒三角形”内的交易重新插入到内存池中用来包含在下一个块中,因为它们所在的块不再位于主链中。
整个网络重新回到单一链状态,星形-三角形-菱形,“菱形”成为链中的最后一个块。所有矿工立即开始研究以“菱形”为父区块的候选块,以扩展这条星形-三角形-菱形链。
从理论上来说,两个区块的分叉是有可能的,这种情况发生在因先前分叉而相互对立起来的矿工,又几乎同时发现了两个不同区块的解。
然而,这种情况发生的几率是很低的。单区块分叉每周都会发生,而双块分叉则非常罕见。比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易清算更快地完成,也会导致更加频繁地区块链分叉。与之相对地,更长的间隔会减少分叉数量,却会导致更长的清算时间。
2012年以来,比特币挖矿发展出一个解决区块头基本结构限制的方案。在比特币的早期,矿工可以通过遍历随机数 (Nonce)获得符合要求的hash来挖出一个块。
难度增长后,矿工经常在尝试了40亿个值后仍然没有出块。然而,这很容 易通过读取块的时间戳并计算经过的时间来解决。因为时间戳是区块头的一部分,它的变化可以让矿工用不同的随机值 再次遍历。当挖矿硬件的速度达到了4GH/秒,这种方法变得越来越困难,因为随机数的取值在一秒内就被用尽了。
当出现ASIC矿机并很快达到了TH/秒的hash速率后,挖矿软件为了找到有效的块, 需要更多的空间来储存nonce值 。可以把时间戳延后一点,但将来如果把它移动得太远,会导致区块变为无效。
区块头需要信息来源的一个新的“变革”。解决方案是使用coinbase交易作为额外的随机值来源,因为coinbase脚本可以储存2-100字节的数据,矿工们开始使用这个空间作为额外随机值的来源,允许他们去探索一个大得多的区块头值范围来找到有效的块。这个coinbase交易包含在merkle树中,这意味着任何coinbase脚本的变化将导致Merkle根的变化。
8个字节的额外随机数,加上4个字节的“标准”随机数,允许矿工每秒尝试2^96(8后面跟28个零)种可能性而无需修改时间戳。如果未来矿工穿过了以上所有的可能性,他们还可以通过修改时间戳来解决。同样,coinbase脚本中也有更多额外的空间可以为将来随机数的扩展做准备。
比特币的共识机制指的是,被矿工(或矿池)试图使用自己的算力实行欺骗或破坏的难度很大,至少理论上是这样。就像我们前面讲的,比特币的共识机制依赖于这样一个前提,那就是绝大多数的矿工,出于自己利益最大化的考虑,都会 通过诚实地挖矿来维持整个比特币系统。然而,当一个或者一群拥有了整个系统中大量算力的矿工出现之后,他们就可以通过攻击比特币的共识机制来达到破坏比特币网络的安全性和可靠性的目的。
值得注意的是,共识攻击只能影响整个区块链未来的共识,或者说,最多能影响不久的过去几个区块的共识(最多影响过去10个块)。而且随着时间的推移,整个比特币块链被篡改的可能性越来越低。
理论上,一个区块链分叉可以变得很长,但实际上,要想实现一个非常长的区块链分叉需要的算力非常非常大,随着整个比特币区块链逐渐增长,过去的区块基本可以认为是无法被分叉篡改的。
同时,共识攻击也不会影响用户的私钥以及加密算法(ECDSA)。
共识攻击也 不能从其他的钱包那里偷到比特币、不签名地支付比特币、重新分配比特币、改变过去的交易或者改变比特币持有纪录。共识攻击能够造成的唯一影响是影响最近的区块(最多10个)并且通过拒绝服务来影响未来区块的生成。
共识攻击的一个典型场景就是“51%攻击”。想象这么一个场景,一群矿工控制了整个比特币网络51%的算力,他们联合起来打算攻击整个比特币系统。由于这群矿工可以生成绝大多数的块,他们就可以通过故意制造块链分叉来实现“双重支 付”或者通过拒绝服务的方式来阻止特定的交易或者攻击特定的钱包地址。
区块链分叉/双重支付攻击指的是攻击者通过 不承认最近的某个交易,并在这个交易之前重构新的块,从而生成新的分叉,继而实现双重支付。有了充足算力的保证,一个攻击者可以一次性篡改最近的6个或者更多的区块,从而使得这些区块包含的本应无法篡改的交易消失。
值得注意的是,双重支付只能在攻击者拥有的钱包所发生的交易上进行,因为只有钱包的拥有者才能生成一个合法的签名用于双重支付交易。攻击者在自己的交易上进行双重支付攻击,如果可以通过使交易无效而实现对于不可逆转的购买行为不予付款, 这种攻击就是有利可图的。
攻击者Mallory在Carol的画廊买了描绘伟大的中本聪的三联组画(The Great Fire),Mallory通过转账价值25万美金的比特币 与Carol进行交易。在等到一个而不是六个交易确认之后,Carol放心地将这幅组画包好,交给了Mallory。这时,Mallory 的一个同伙,一个拥有大量算力的矿池的人Paul,在这笔交易写进区块链的时候,开始了51%攻击。
首先,Paul利用自己矿池的算力重新计算包含这笔交易的块,并且在新块里将原来的交易替换成了另外一笔交易(比如直接转给了Mallory 的另一个钱包而不是Carol的),从而实现了“双重支付”。这笔“双重支付”交易使用了跟原有交易一致的UTXO,但收款人被替换成了Mallory的钱包地址。
然后,Paul利用矿池在伪造的块的基础上,又计算出一个更新的块,这样,包含这 笔“双重支付”交易的块链比原有的块链高出了一个块。到此,高度更高的分叉区块链取代了原有的区块链,“双重支付”交 易取代了原来给Carol的交易,Carol既没有收到价值25万美金的比特币,原本拥有的三幅价值连城的画也被Mallory白白 拿走了。
在整个过程中,Paul矿池里的其他矿工可能自始至终都没有觉察到这笔“双重支付”交易有什么异样,因为挖矿程序都是自动在运行,并且不会时时监控每一个区块中的每一笔交易。
为了避免这类攻击,售卖大宗商品的商家应该在交易得到全网的6个确认之后再交付商品。或者,商家应该使用第三方 的多方签名的账户进行交易,并且也要等到交易账户获得全网多个确认之后再交付商品。一条交易的确认数越多,越难 被攻击者通过51%攻击篡改。
对于大宗商品的交易,即使在付款24小时之后再发货,对买卖双方来说使用比特币支付也 是方便并且有效率的。而24小时之后,这笔交易的全网确认数将达到至少144个(能有效降低被51%攻击的可能性)。
需要注意的是,51%攻击并不是像它的命名里说的那样,攻击者需要至少51%的算力才能发起,实际上,即使其拥有不 到51%的系统算力,依然可以尝试发起这种攻击。之所以命名为51%攻击,只是因为在攻击者的算力达到51%这个阈值 的时候,其发起的攻击尝试几乎肯定会成功。
本质上来看,共识攻击,就像是系统中所有矿工的算力被分成了两组,一 组为诚实算力,一组为攻击者算力,两组人都在争先恐后地计算块链上的新块,只是攻击者算力算出来的是精心构造 的、包含或者剔除了某些交易的块。因此,攻击者拥有的算力越少,在这场决逐中获胜的可能性就越小。
从另一个角度 讲,一个攻击者拥有的算力越多,其故意创造的分叉块链就可能越长,可能被篡改的最近的块或者或者受其控制的未来 的块就会越多。一些安全研究组织利用统计模型得出的结论是,算力达到全网的30%就足以发动51%攻击了。全网算力的急剧增长已经使得比特币系统不再可能被某一个矿工攻击,因为一个矿工已经不可能占据全网哪怕的1%算 力。
待补充
待补充