当前位置:首页 » 比特币问答 » 比特币怎么保证10分钟

比特币怎么保证10分钟

发布时间: 2023-05-05 00:58:58

A. 一台矿机一天能挖出多少比特币

介绍一下比特币系统的奖励机制。比特币通过系统设置,基本能稳定在平均每10分钟挖出一个区块。每一次出块奖励都给挖出该区块的矿工。挖出区块的矿工称为出块矿工。出块矿工会把比特币网络中的合法交易记录到区块链上,这样矿工就能收到记账的手续费。

BTC

出块矿工的奖励包含两部分:一部分是系统给奖励,,另一部分是记账记账奖励,称为矿工费。系统奖励,最开始是50枚比特币,区块高度每到21万的整数倍,系统奖励就会减半,这就是我们常听到的比特币挖矿奖励四年减半。目前阶段系统奖励为12.5枚比特币。

就目前阶段而言,矿工挖出一个区块的奖励,收到的交易矿工费平均大约在0.1枚比特币(不固定),也就是说矿工挖出一个区块得到的平均奖励约为12.6枚比特币。矿工的奖励99%左右来自系统奖励。

根据比特币系统平均每10分钟可挖出一个区块,一天可挖出的新区块数量为144(60*24/10=144),目前每天可挖出比特币数量为1800BTC(144*12.5BTC=1800BTC)。加上每个区块约0.1BTC的矿工费,所有矿工一天得到的总奖励约为1814.4BTC。

链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。

B. 比特币如何实现总量恒定

比特币是一种通缩型虚拟货币,总量是2100万个,那么它是如何保证总量恒定为2100万个,2100万这个数字又是怎么来的呢?
中本聪在设计比特币的时候,规定每个比特币可以细分到小数点后8位,每个区块发行 50个比特币,每21万个区块后,每个区块的比特币产量减半。
因为比特币每10分钟产生一个区块,21万个区块大约是四年的时间,截止2017年,比特币产量已经减半2次,当前每个区块发行12.5个比特币。大约在2045年,99.95%的比特币将会发行完毕,到2140年,比特币无法继续细分,至此比特币完全发行完毕,发行总量约为2100万枚比特币(注:实际是20999999.97690000个)。
尽管比特币通缩的货币政策是否合理在货币学上争议很大,但这一发行机制激励着矿工尽早投入到比特币挖矿中,使得比特币系统获得了大量算力并保证了安全性。

C. 比特币机制研究

现今世界的电子支付系统已经十分发达,我们平时的各种消费基本上在支付宝和微信上都可以轻松解决。但是无论是支付宝、微信,其实本质上都依赖于一个中心化的金融系统,即使在大多数情况这个系统运行得很好,但是由于信任模型的存在,还是会存在着仲裁纠纷,有仲裁纠纷就意味着不存在 不可撤销的交易 ,这样对于 不可撤销的服务 来说,一定比例的欺诈是不可避免的。在比特币出来之前,不存在一个 不引入中心化的可信任方 就能解决在通信通道上支付的方案。
比特币的强大之处就在于:它是一个基于密码学原理而不是依赖于中心化机构的电子支付系统,它能够允许任何有交易意愿的双方能直接交易而不需要一个可信任的第三方。交易在数学计算上的不可撤销将保护 提供不可撤销服务 的商家不被欺诈,而用来保护买家的 程序化合约机制 也比较容易实现。

假设网络中有A, B ,C三个人。
A付给B 1比特币 ,B付给C 2比特币 ,C付给A 3比特币
如下图所示:

为了刺激比特币系统中的用户进行记账,记账是有奖励的。奖励来源主要有两方面:

比特币中每一笔交易都会有手续费,手续费会给记账者

记账会有打包区块的奖励,中本聪在08年设计的方案是: 每10分钟打一个包,每打一个包奖励50个比特币,每4年单次打包的奖励数减半,即4年后每打一个包奖励25个比特币,再过四年后就奖励12.5个比特币... 这样我们其实可以算出比特币的总量:

要说明打包的记录以谁为准的问题,我们需要引入一个知名的 拜占庭将军问题 (Byzantine failures)。拜占庭将军问题是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。

假设有9个互相远离的将军包围了拜占庭帝国,除非有5个及以上的将军一起攻打,拜占庭帝国才能被打下来。而这9个将军之间是互不信任的,他们并不知道这其中是否有叛徒,那么如何通过远距离协商来让他们赢取战斗呢?

口头协议有3个默认规则:
1.每个信息都能够被准确接收
2.接收者知道是谁发送给他的
3.谁没有发送消息大家都知道
4.接受者不知道转发信息的转发者是谁
将军们遵循口头规则的话,那就是下面的场景:将军1对其他8个将军发送了信息,然后将军2~9将消息进行转达(广播),每个将军都是消息的接受者和转发者,这样一轮下来,总共就会有9×8=72次发送。这样将军就可以根据自己手中的信息,选择多数人的投票结果行动即可,这个时候即便有间谍,因为少数服从多数的原则,只要大部分将军同意攻打拜占庭,自己就去行动。
这个方案有很多缺点:
1.首先是发送量大,9个将军之间要发送72次,随着节点数的增加,工作量呈现几何增长。
2.再者是无法找出谁是叛徒,因为是口头协议,接受者不知道转发信息的转发者是谁,每个将军手里的数据仅仅只是一个数量的对比:

这里我们假设有3个叛徒,在一种最极端的情况下即叛徒转发信息时总是篡改为“不进攻”,那么我们最坏的结果就如上图所示。将军1根据手里的信息可以推出要进攻的结论,却无法获知将军里面谁是叛徒。
这样我们就有了方案二:书面协议。

书面协议即将军在接受到信息后可以进行签字,并且大家都能够识别出这个签字是否是本人,换种说法就是如果有人篡改签字大家可以知道。书面协议相对比口头协议就是增加了一个认证机制,所有的消息都有记录。一旦发现有人所给出的信息不一致,就是追查间谍。
有了书面协议,那么将军1手里的信息就是这样的:

可以很明显得看出,在最坏的一种情况——叛徒总是转发“不进攻”的消息之下,将军7、8、9是团队里的叛徒。
这个方案解决了口头协议里历史信息不可追溯的问题,但是在发送量方面并没有做到任何改进。

在我们的示例中,比特币系统里的每个用户发起了一笔交易,都会通过自己的私钥进行签名,用数学公式表示就是:

所以之前的区块就变成了这样:

这样每一笔交易都由交易发起者通过私钥进行数字签名,由于私钥是不公开的,所以交易信息也就无法被伪造了。

如书面协议末尾所说的那样,书面协议未能解决信息交流过多的问题。当比特币系统中存在上千万节点的时候,如果要互相广播验证,请求响应的次数那将是一个非常庞大的数字,显然势必会造成网络拥堵、节点处理变慢。为了解决这个问题,中本聪干脆让整个10分钟出一个区块,这个区块由谁来打包发出呢?这里就采用了工作量证明机制(PoW)。工作量证明,说白了就是解一个数学题,谁先解出来数学题,谁就能有打包区块的权力。换在拜占庭将军的例子中就是,谁先做出数学题,谁就成为将军们里面的总司令,其他将军听从他发号的命令。

首先,矿工会将区块头所占用的128字节的字符串进行两次sha256求值,即:

这样求得一个值Hash,将其与目标值相比对,如果符合条件,则视为工作量证明成功。
工作量证明成功的条件写在了区块链头部的 难度数 字段,它要求了最后进行两次sha256运算的Hash值必须小于定下的目标值;如果不是的话,那就改变区块头的 随机数 (nonce),通过一次次地重复计算检验,直到符合条件为止。

此外, 比特币有自己的一套难度控制系统,使得比特币系统要在全网不同的算力条件下,都保持10分钟生成一个区块的速率。这也就意味着:难度值必须根据全网算力的变化进行调整。难度调整的策略是由最新2016个区块的花费时长与期望时长(期望时长为20160分钟即两周,是按每10分钟一个区块的产生速率计算出的总时长)比较得出的,根据实际时长与期望时长的比值,进行相应调整(或变难或变易)。也就是说,如果区块产生的速率比10分钟快则增加难度,比10分钟慢则降低难度。

PoW其实在比特币中是做了以下的三件事情。

这样可以防止一台高性能机器同时跑上万个节点,因为每完成一个工作都要有足够的算力。

有经济奖励就会加速整个系统的去中心化,也鼓励大家不要去作恶,要积极地按照协议本来的执行方式去执行。(所以说,无币区块链其实是不可行的,无币区块链一定导致中心化。)

也就是说,每个节点都不能以自身硬件条件去控制出快速度。现在的比特币上平均10分钟出一个块,性能再好的机器也无法打破这个规则,这就能够保证 区块链是可以收敛到共同的主链上的 ,也就是我们所说的共识。

综上,共识只是PoW三个作用中的一点,事实上PoW设计的作用有点至少有这么三种。

默克尔树的概念其实很简单,如图所示

这样,我们区块的结构就大致完整了,这里分成了区块头和区块体两部分。

区块链的每个节点,都保存着区块链从创世到现在的每一区块,即每一笔交易都被保存在节点上,现在已经有几百个GB了。
每当比特币系统中有一笔新的交易生成,就会将新交易广播到所有的节点。每个节点都把新交易收集起来,并生成对应的默克尔根,拼接完区块头后,就开始调整区块头里的随机数值,然后就开始算数学题

将算出的result和网络中的目标值进行比对,如果是结果是小于的话,就全网广播答案。其他矿工收到了这个信息后,就会立马放下手里的运算,开始下一个区块的计算。
举个例子,当前A节点在挖38936个区块,A挖矿节点一旦完成计算,立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。当这个新区块在网络中扩散时,每个节点都会将它作为第38936个区块(前一个区块为38935)加到自身节点的区块链副本中。当挖矿节点收到并验证了这个新区块后,它们会放弃之前对构建这个相同高度区块的计算,并立即开始计算区块链中下一个区块的工作。
整个流程就像下一张图所展示的这样:

简单来说,双花问题是一笔钱重复花了两次。具体来讲,双花问题可分为两种情况:
1.同一笔钱被多次使用;
2.一笔钱只被使用过一次,但是通过黑客攻击或造假等方式,将这笔钱复制了一份,再次使用。
在我们生活的数字系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况,为了解决双花问题,日常生活中是依赖于第三方的信任机构的。这类机构对数据进行中心化管理,并通过实时修改账户余额的方法来防止双重支付的出现。而作为去中心化的点对点价值传输系统,比特币通过UTXO、时间戳等技术的整合来解决双花问题。

UTXO的英文全称是 unspent transaction outputs ,意为 未使用的交易输出 。UTXO是一种有别于传统记账方式的新的记账模型。
银行里传统的记账方式是基于账户的,主要是记录某个用户的账户余额。而UTXO的交易方式,是基于交易本身的,甚至没有账户的概念。在UTXO的记账机制里,除了货币发行外,所有的资金来源都必须来自于前面某一个或几个交易。任何一笔的交易总量必须等于交易输出总量。UTXO的记账机制使得比特币网络中的每一笔转账,都能够追溯到它前面一笔交易。
比特币的挖矿节点获得新区块的挖矿奖励,比如 12.5 个比特币,这时,它的钱包地址得到的就是一个 UTXO,即这个新区块的币基交易(也称创币交易)的输出。币基交易是一个特殊的交易,它没有输入,只有输出。
当甲要把一笔比特币转给乙时,这个过程是把甲的钱包地址中之前的一个 UTXO,用私钥进行签名,发送到乙的地址。这个过程是一个新的交易,而乙得到的是一个新的 UTXO。
这就是为什么有人说在这个世界上根本没有比特币,只有 UTXO,你的地址中的比特币是指没花掉的交易输出。
以Alice向Bob进行转账的过程举例的话:

UTXO 与我们熟悉的账户概念的差别很大。我们日常接触最多的是账户,比如,我在银行开设一个账户,账户里的余额就是我的钱。
但在比特币网络中没有账户的概念,你可以有多个钱包地址,每个钱包地址中都有着多个 UTXO,你的钱是所有这些地址中的 UTXO 加起来的总和。
中本聪发明比特币的目标是创建一个点对点的电子现金,UTXO 的设计正可以看成是借鉴了现金的思路:我们可能在这个口袋里装点现金,在那个柜子角落里放点现金,在这种情况下不存在一个账户,你放在各处的现金加起来就是你所有的钱。
采用 UTXO 设计还有一个技术上的理由,这种特别的数据结构可以让双重花费更容易验证。对比一下:

D. 天天说挖矿,比特币挖矿流程概述。

通俗易懂的大概流程

如果你之前对挖矿根本没有了解,这段介绍就适合你阅读,进入状态后再进行更深层次的学习。

其实通俗来讲原理很简单,比特币作为一种点对点的电子货币体系,挖矿的过程就是一个纪录数据的过程,因为整个系统是开放的,人人可参与的,所以人人都可以进行挖矿,虽然理论上人人都可以参与,但无利不起早没有人会平白无故的参与到网络的建设中,中本聪就利用Hash函数设计了一种激励和竞争方式。

大家都进行数据的处理工作,谁处理的又快又准确,谁就获得记账权,同时获得该区块的奖励。既有奖励又有竞争才使得比特币网络得以正常运转。

想要竞争成功就要经历几个基本的流程。

一、首先你要将没有被记录的交易信息检查并归集到一个数据块中。

二、数据块打包好后,进行哈希运算,算出哈希值,哈希值这个概念在昨天文章中已经详细的介绍过。

三、算出哈希值后进行全网广播,其他矿工接收到后进行验证,验证没有问题就会将这一个数据块连接到整个区块链上,就可以获得这个区块的奖励了。

大致过程了解后就可以开始详细的了解整个过程了。

开始挖矿前的准备工作

这里所说的准备,可不是让你准备买矿机或者给矿机通电,说的是在进行POW工作量证明之前记账节点所作的准备工作。也就是前面流程的第一步的具体解释。

想要收集齐全交易信息,第一步就是收集广播中还没有被记录账本的原始交易信息。收集完成后就要自己先进行验证,主要验证两个方面,1.每个交易信息中的付款地址有没有足够付款的余额。2.验证交易是否有正确的签名。这两项必不可少,通俗一点就是你给别人打钱银行需要确认的就是两点,你账号里到底有没有那么多钱,是不是你本人或本人同意的行为。

这两项验证完后就可以将验证好的数据进行打包,打包完成后当然没有完,因为还有对于矿工来说最最重要的 一 步,添加一个奖励交易,写一个给自己地址增加6.25枚比特币的交易。

如果你竞争成功,那么你的账户地址内就会增加6.25枚比特币,在这里也顺便提一下减半,最开始一个区块的记账奖励是50个比特币,比特币大概每4年奖励就进行减半,前一段时间的减半过后比特币一个区块的奖励已经变成了6.25枚。

值得一提的是前两次减半后都伴随着牛市的来临,现在第三次减半已过,在之后会有什么样的变化呢?

准备工作完成后就要正式的争夺了

因为10分钟左右就一个记账的名额,在这个阶段全世界的矿工,都进行着一场没有硝烟的战争。

那这场仗怎么打呢?其实就是计算Hash函数,矿工算力的比拼,所以说在比特币网络哪里都离不开Hash函数。为了保证在10分钟只有一个人能够成功,这个哈希函数的难度必须适当。直接哈希难度过低,所以规定Hash出的结果必须以若干个0构成。

可能直接这么说开头若干个0还没有什么难度概念,那就简单分析一下,进行这样的计算有多难 , 也就顺便可以解释为什么单打独斗的矿工已经不吃香了。

Hash值跟平常我们设置的密码要求相似,是由数字、字母组成,其中字母区分大小写。也就是说每一位都有62种可能,哈希运算本质就是试错,相当于给你一个不限出错次数的手机让你开锁一样 。 而比特币的哈希值是以18个0开头的,理论上需要进行62的18次方,这个数字在普通计算器上都是以科学计数法显示的,结果为1.832527122*10的32次方。

指数爆炸式的运算次数增长保证了其挖矿的难度。同时也因为难度大带来了一些争议,有人就会说耗费那么大却不产生价值,之前挖矿还在一份意见征集稿中放到了落后产能里。可以说对于挖矿行业的争议是一直存在的。

最后一步验证

找到哈希值后,进行广播打包区块,网络节点就会进行验证。

情况无非就是两种,一种是验证通过,那么表明这个区块成功挖出,其他矿工就不再竞争,选择接受这个区块,将这个区块进行记录,挖出这个区块的矿工就获得了该区块的奖励,并且进入下一个区块的竞争。

另外一种就是不通过,那么前面的那些工作都白费了,投入的成本就没有办法收回,所以矿工们都自觉的遵守着打包和验证的规则,因为作恶成本较高,也就维护了比特币网络的安全。

相信你读完文章已经大致了解了比特币挖矿的整个流程,不过挖矿实际操作起来又是另一个概念了,其中什么时候适合进场挖矿、入手什么样的矿机进行挖矿、通过什么样的方式参与挖矿都是有一定学问的。

挖矿有风险投资需谨慎呀,搞懂再行动,没搞懂之前就要多学习。

E. 详解比特币挖矿原理

可以将区块链看作一本记录所有交易的公开总帐簿(列表),比特币网络中的每个参与者都把它看作一本所有权的权威记录。

比特币没有中心机构,几乎所有的完整节点都有一份公共总帐的备份,这份总帐可以被视为认证过的记录。

至今为止,在主干区块链上,没有发生一起成功的攻击,一次都没有。

通过创造出新区块,比特币以一个确定的但不断减慢的速率被铸造出来。大约每十分钟产生一个新区块,每一个新区块都伴随着一定数量从无到有的全新比特币。每开采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分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易清算更快地完成,也会导致更加频繁地区块链分叉。与之相对地,更长的间隔会减少分叉数量,却会导致更长的清算时间。

F. 比特币区块确认时间多久一次

十分钟。因为为了确保比特币区块的安全,所以都是每隔一点时间进行确认,这样可以保证安全,一般的确认时间都是十分钟,你可以可以根据自己的情况进行延长。

G. 比特币挖矿的难度和算力

难度是对挖矿困难程度的度量,即指:计算符合给定目标的一个HASH值的困难程度。

difficulty = difficulty_1_target / current_target

difficulty_1_target 的长度为256bit, 前32位为0, 后面全部为1 ,一般显示为HASH值:, difficulty_1_target 表示btc网络最初的目标HASH。 current_target 是当前块的目标HASH,先经过压缩然后存储在区块中,区块的HASH值必须小于给定的目标HASH, 区块才成立。

例如:如果区块中存储的压缩目标HASH为 0x1b0404cb , 那么未经压缩的十六进制HASH为

所以,目标HASH为0x1b0404cb时, 难度为:

比特币的挖矿的过程其实是通过随机的hash碰撞,找到一个解 nonce ,使得 块hash 小于 目标HASH 值。 而一个矿机每秒钟能做多少次hash碰撞, 就是其“算力”的代表, 单位写成 hash/s 或者 H/s

算力单位:

比特币系统的难度是动态调整的, 每挖 2016 个块便会做出一次调整, 调整的依据是前面2016个块的出块时间, 如果前一个周期平均出块时间小于10分钟,便会加大难度, 大于10分钟,则减小难度,目的是为了保证系统稳定的每过 10分钟 产出一个块,所以难度调整的时间大概是2周(2016 * 10 分钟)

全网算力是btc网络中参与竞争挖矿的所有矿机的算力总和。当前难度周期全网算力会影响下一个周期的难度调整, 如果全网算力增加,挖矿难度增大,单台矿机固定时间的产出就会减少。目前全网算力大概是24.42EH/s, 一台蚂蚁S9矿机的算力大概是14TH/s

那么, 已知当前全网算力,下一个周期难度将如何调整呢?

根据公式:

因为出块时间要稳定在10分钟, 也就是600s:

那么,在3.46e+12的难度下, 一台算力为14TH/s的矿机平均要花多长时间才能出一个块呢?

根据公式:

有:

结果大概是12270天

H. 比特币挖矿原理是什么

比特币挖矿就是通过挖矿节点,然后比特币挖矿机(电脑)不断消耗自身的算力,来换取比特币。在比特币系统,通过自身的算法可以动态调整全网节点的挖矿难度,保证每过大约10分钟,就会有一个节点挖矿成功,这时比特币系统就会奖励此人一定数量的比特币。挖比特币是一个比较复杂的过程,不过挖比特币一般会经过这几个步骤,分别是准备工作、找到矿池、注册矿池账号、矿池账号设置、下载比特币挖矿器(软件)、比特币挖矿机配置;经过以上步骤就可以挖矿了。
本条内容来源于:中国法律出版社《中华人民共和国金融法典:应用版》

I. 中本聪会不会偷偷地增发比特币系铃人会不会解铃

只要稍微了解一下就会知道。

一开始每十分钟就会凭空发行50个比特币。

经过几次减半后,现在每十分钟凭空发行6.25个比特币。

也就是说,一直都在增发的过程中。

只是总量不会超过2100万个。

那么总量会不会超过2100万个呢?

白皮书里面写了,如果对现有规则不满意,那么大家可以投票。

比如减半到每十分钟发行量 1个的时候,矿工可以投票,如果都同意以后不继续减半了。

那么总量必然会超过2100万个。

当然,投票的时候要考虑好,会不会导致比特币的崩盘。

比特币是去中心化的,所以即使规矩有改动的话,也不是某一个人说的算的,中本聪也不行。而是要全体矿工投票。

中本聪、 传说中的人吧,你知道他长啥样吗,你知道他住在哪吗?多大年纪,是男是女,哪国人!其实这些你都不知道。唯一知道的是这个比特币是他创造的,比特币的源码在网上公布。那么你知道这个公布的源码和现在用的源码有多大的出入?那么那么多的谜一样的信息,甚至有人怀疑这是美国人制造出的一种数字概念武器,专门用来忽悠中国人的。就跟当年的 星球大战计划 一样,那个是忽悠苏联人的,结果把老大哥直接忽悠瘸了,我么要小心了。

你想想现在还有地平学说的支持者固执的存在,坚持地认为,我没看见的东西,你就是在忽悠我,那么这个叫 中本聪 的人,用电脑打出的一组数字凭啥就是钱,难道就因为他宣称这个比特币发行有限,不能伪造吗?前者我不信,后者我更不信。你要信你就信吧!至于好多人在炒,这也没啥大不了的,那些 游戏 里的打出的金币也有人在用现金交易,可能流通性差些,也没那么大规模和影响力。但是人家至少有运营公司背书吧!

你要稍微懂点大饼的运作机制就不会问这种问题。

会光明正大地增发!不过,概率极小极小。

偷偷增发是不会,这都在链上被控制好了。

起源

区块链,很好理解,区块链起来。

这个区块在“宇宙大爆炸”的时候,是每10分钟,产出1个区块,每产出21万个,难度就会增加,后面就越来越难挖,越来越接近0,总量被限制在了2100万个。

公开及试图增发

基于区块链的比特币的白皮书和代码都是公开的,谁都能看到,但不是谁都能改。

如果想要增发比特币,势必要去动代码,就会形成 一套新的规则 ,那就可能引发地震。

要去动代码,就需要 链上有这个共识 ,要社区内都同意。

所以,不可能去偷偷改代码,因为改不了,大家都没投票,所以也不会给谁来搞大地震的机会。

如果现在发起增发需求

当下,比特币社区的底线,就是比特币总量恒定。

在这个链上有许多既有受益群体,比如,

某人持有了1200万枚比特币,是总量的一半,这个时候你说增发,增发到2亿四千万枚,

他第一个不同意,还有很多大户都不会同意,那就没法通过。 就是分叉失败。大家不承认。

这要是现在能通过,那就没信任可言了,一直增发还值什么钱?

美元一直增发,也贬值。黄金,贬低都是,也贬值。一个道理。

综上

结论,要自己偷偷增发是不会了,都在大家的视野和控制之下了。

但如果,有一天他像佛祖一样,从天而降,给信徒们讲一套什么新的东西,就不好说了。(仅做想象~~~)

您这个问题,如果被比特币的粉丝看到了,一定会骂你无知的。因为比特币的算法在那里放着呢,据说只有2100万个比特币。

关于比特币,我并不认可其粉丝或者吹捧者的观点。

首先,人们知道比特币是中本聪弄的,但没有人知道中本聪是谁?

我们看到有关中本聪的介绍,其实都是中本聪自己通过网络说出来的,他并没有现身。中本聪究竟是一个自然人,还是一个组织,我们不确定。

其次,比特币是否真的是去中心化?我们并不能确定。

因为中本聪是谁,我们都不知道,也就不知道他的行为是否受到某个国家或组织控制,我们也就不能确定比特币是否是去中心化的。

如果比特币是非去中心化的,那就有可能被某个组织控制。可以进行增发或减发。

第三,比特币本质上就是一些代码编写的程序。

只要是程序,就有可能存在漏洞或者是后门。比特币是否存在相应的漏洞或者是后门,没有人知道。

第四,比特币的危害,现在已经显现出来。现在比特币挖矿,每年消耗的能源相当于挪威等国家一年的用电量。

能源浪费巨大,即使中本聪不放水比特币,他给 社会 带来的危害,也不能忽视。

最通俗易懂的语言,让你 1分钟 了解区块链

比特币是一种通缩型虚拟货币,总量是2100万个,具有恒量的货币属性。


1

比特币为什么还没挖完?

比特币系统靠调节难度系数保证比特币不被太快挖完。

每10分钟,全网矿工共同计算一道难题,竞争记账权及比特币奖励。如果全网算力不断增长,比特币将很快被挖完。

为了保证比特币稳定在约10分钟挖出一个区块,中本聪设计矿工挖矿获得比特币的难度每过2016个区块(约2周时间)动态调整一次,调整后的难度使得每生成一个区块的预期时间为10分钟。

现在的难度系数约为480PH/s,大约是创世区块的680亿倍,也就是说,以现在的算力,全网矿工需要经过约3000万亿亿次哈希运算才能找到一个符合条件的答案,生成新的区块。


2

比特币的反 社会 属性?

当一个具备通货紧缩属性的货币出现会导致大量的人群开始囤钱,而市场上流通量就越来越少,而钱也就越值钱,这样就会导致产出的价格就相对下降,产出下降的结果就是工资和需求的下降,又导致产出价格的下降,最终造成了螺旋形通缩(deflation spiral)。

虽然比特币严格来说并不属于货币,但是比特币总量在2140年会达到2100万数量的极限,货币总数量不会再次增加,那么比特币的数量就会处于恒量状态,而具备恒量或者通缩特性的货币,会带有反 社会 的隐藏属性。

尽管比特币通缩的货币政策是否合理在货币学上争议很大。


3

中本聪会不会偷偷增发比特币?

数字货币是可以增发的,这个要根据白皮书,每年增发多少的代码一开始可以设定好后,以后执行就行了,当然也可以中途改代码,但是要大部分算力同意才行。

中本聪在设计比特币的时候,规定每个比特币可以细分到小数点后8位,每个区块发行 50个比特币,每21万个区块后,每个区块的比特币产量减半。

比特币目前已经被挖出18万枚,现在要更改这个规则来增发比特币,已经不可能了。

所有的加密货币创始人在发布的时候都自己先印够了屯着。转起来修改规则什么的他有很大权威,和神差不多。但是创造新物质是没戏的。

我也来回答一下,中本聪是人不,他想要钱不,如果回答是肯定的,那就肯定增发。就像美元,开始的时候也像比特币一样不能随意增发,但是现在疫情影响,去年 印九千亿美元,今年加印1.9万亿美元!最终目的是收割。

凡是略微了解比特币的就知道。中本聪没有公布最开始他自己的原始比特币数量。要知道最开始的时候挖币几乎无成本。

我先说说我的观点:可以但是不能!为什么这么说,下面是我的论据。

比特币为什么在不断的上涨,因为在大家心里,普遍有一个共识,那就是比特币以后会越来越难挖,因为比特币总量是一定的,基于这个基础,所以比特币的价值才会有越来越高可能性。因为在最开始的时候源代码就已经设定了总量会固定在2100万左右。这是大家都知道的。

比特币可以增发吗?当然可以 !比特币的源代码本身就是开源的,就是大家都是可以看到源代码的,如果中本聪或者是维护比特币的工作人员可以的话,可以轻松的更改。 但是他不能!为什么?

因为在最开始的时候,开源的代码就已经设定好了,总量就是2100万,也就是说源代码已经固定好了,大家也都心知肚明了。 如果想要增发,就必须更改代码 ,换句话说就是说原来2100万的规则是需要改变的。这样的话,就必须将原来的代码重新制定规则,意思就是之前挖出来的比特币和更改规则之后的比特币是不一样,根本就不是一个锅里的饭!

从这个角度上来说,在原来规则下的比特币总量还是不变的,只不是产生了一种类似于比特币的新型数字货币罢了!

那么问题来了, 目前已经拥有了比特币的人是不是支持这种新型的货币呢 ?这种可能性几乎没有,因为没有人会人为的将自己手中的货币弄的贬值的,所以增发的可能性很小几乎为零。因为到目前为止绝大多数的比特币都已经被挖出来了,所以,如果增发的话,会直接影响这些比特币的价值,所以,如果这些矿工们不同意或者说不能达成共识,那么增发比特币的可能性几乎为0.

增发比特币的结果是什么?

增发比特币不是没有人想过,之前的时候有人增发了比特币钻石等等,最后怎么样了?到现在依旧是没有多少人认可,没有人认可的虚拟货币基本上是没有什么意义的,和一串毫无意义的数字没有什么区别。所以说,增发比特币的关键是: 大众达成共识和认可!而这种共识达成的可能性几乎为0.

J. 网上挖矿是什么

挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程,挖矿的人叫做矿工,简单说来,挖矿就是记账的过程,矿工是记账员,区块链就是账本,怎样激励矿工来挖矿呢?比特币系统的记账权力是去中心化的,即每个矿工都有记账的权利,成功抢到记账权的矿工会获得系统新生的比特币奖励因此挖矿就是生产比特币的过程。中本聪最初设计比特币时规定每产生210000个区块,比特币奖励减半一次,直至比特币不能再被细分,因为比特币和黄金一样总量有限,所以比特币被称为数字黄金,比特币生产也俗称挖矿。
.比特币系统靠调节难度系数保证比特币不被太快挖完,每10分钟全网旷工共同计算一道难题竞争记账权及比特币奖励,如果全网算力不断增长比特币将很快被挖完,为了保证比特币稳定在大约10分钟挖出一个区块,中本聪设计矿工挖矿获得比特币的难度,每过2016个区块(约2周时间)动态调整一次,令调整后的难度使得每生成一个区块的预期时间为10分钟现在的难度系数约为480PH/S(注:2017年9月)大约是创世区块的680亿倍,也就是说,以现在的算力,全网矿工需要经过约3000万亿亿哈希运算才能找到一个符合条件的答案,生成新的区块。
.相对于点对点交易,挖矿等在交易平台购买是目前获得区块链资产最主流的方式,即场内交易,区块链资产的场内交易和股票类似,由平台帮你撮合,也不需要知道跟你成交的对手是谁,你的成交对手,有可能是一个人,也有可能是很多人,无论是买入还是卖出,交易平台会记录所有人的挂单价格,买卖双方通过实时买卖盘,可以获取最新成交价格,同时交易平台会将历史成交价格及成交量汇总成K线图,方便投资者用于分析行情走势,比如乌托市场就是全球比较主流的交易平台。

热点内容
金融圈对币圈的看法 发布:2025-07-02 23:10:14 浏览:794
问下区块链货币的交易软件叫什么 发布:2025-07-02 23:08:52 浏览:665
海鲜区块链 发布:2025-07-02 22:40:10 浏览:108
马云怎么看数字货比特币现金 发布:2025-07-02 22:16:53 浏览:118
比特币预警 发布:2025-07-02 21:43:09 浏览:312
eth代币怎么查 发布:2025-07-02 21:41:37 浏览:652
云算力租借平台 发布:2025-07-02 21:27:08 浏览:652
币圈什么是影线 发布:2025-07-02 21:24:38 浏览:596
元宇宙概念股票有哪些版本 发布:2025-07-02 20:55:24 浏览:314
修改routeeth0并生效 发布:2025-07-02 20:43:34 浏览:908