imtoken国际钱包下载|比特币矿机网络跳线
比特币挖矿算法详解 - 知乎
比特币挖矿算法详解 - 知乎首发于清源的区块链实验室切换模式写文章登录/注册比特币挖矿算法详解清源区块链工程师比特币网络中,源源不断的收到交易,需要节点不断的打包这些交易,而网络中的所有节点都是对等的,如何判断谁可以打包这些交易,如何避免重复打包这些交易呢?这个时候就需要用到工作量证明(PoW,Proof-of-Work)的方式决定记账权。网络中的任何全节点,都可以试图创建区块,但区块只有在至少满足下列条件时创建的区块才会被其他节点认可和接受。 区块中包含的交易都是合法的; 区块哈希要小于等于一个目标值;要满足第一个条件很简单,节点只要将每笔交易都验证一遍,丢弃掉不合法的交易即可。但要满足第二个条件就需要挖矿。挖矿比特币挖矿就是找到一个随机数(Nonce)参与哈希运算Hash(Block Header),使得最后得到的哈希值符合难度要求,用公式表示就是Hash(Block Header)<= target 比特币采用的哈希算法是 SHA-256 ,也就是说最后会产生256位的输出,一共2^256种可能的取值。 最后得到的哈希值小于target的意思是把哈希后得到的bytes转换成数字后小于target转换成的数字。举个例子,直观的感受一下挖矿的难度;SHA-256计算123的值
a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
下面这段字符是比特币第1000个区块的哈希(2009年1月产生);
00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09
可以看到前面有8个0,虽然哈希值的生成是随机的,但是生成前面有8个0的值对计算机穷举来说也并不算太难。
再看一下这段字符,是比特币第560000个区块的哈希(2019年1月产生);
0000000000000000002c7b276daf6efb2b6aa68e2ce3be67ef925b3264ae7122
可以看到前面有18个0,要生成满足这个条件的哈希对于普通电脑来说几乎是不可能完成的任务了。简单来看挖矿难度的高低就是生成区块头的哈希值有多少0。挖矿难度在比特币系统中出块时间被设置为一个常数10分钟,但是挖出区块的速度并不是固定的,而是随着挖矿难度的变化在10分钟上下浮动, 挖矿难度越大,出块时间就越长,为了得到相对平均的出块时间,需要动态调整挖矿难度。 比特币每产生2016个区块调整一次挖矿难度,一个块10分钟,2016个块大概是两周的时间,而调整挖矿难度的这些逻辑都在代码中,当大多数诚实节点采用这个策略的时候整个网络就会自动遵循这个策略。挖矿难度的计算公式如下:diffculty = difficulty_1_target / target此处的 difficulty_1_target 为一个常数,非常大的一个数字( 2^(256-32)−1 )。表示挖矿的初始难度,目标值越小,区块生成难度越大。 2^(256-32)−1 是比特币的初始难度,是前2016个块的难度。 这个难度被存储在比特币的区块头nBits字段中,当有恶意节点篡改这个策略时,挖矿产生的区块头的哈希值就会和诚实节点产生冲突,不会被接收,白白浪费了算力。 因为策略不同,也就是nBits不同,恶意节点产生的区块哈希无法被诚实节点验证。 调整出块时间比特币系统中区块的生产速度是根据之前产生区块速度调整的,之前出块速度大于10分钟,则认为需要降低难度,则需要提高第一个公式中target的值,而target则通过如下公式计算;target = current_target * ( actual time / excepted time )current_target是当前系统中的难度值,target是调整后的难度值,actual time是实际产生区块的时间,excepted time是期望出块时间(2016块*10分钟),actual time有上下限,actual time最多8周,最小二分之一周。挖矿算法比特币中nBits标识了挖矿的难度,也就是说这个区块头进行SHA-256哈希算法后得到的bytes转换成数字后要小于这个难度,而SHA-256计算后的结果有256位,如果直接存储需要32个字节比较占用空间,所以采用了一种压缩算法。压缩算法nBits有4个字节32位,将SHA-256计算得到的值经过如下算法压缩到32位;将数字转换为 256 进制。如果第一位数字大于 127(0x7f),则前面添加 0。压缩结果中的第一位存放该256进制数的位数。后面三个数存放该256进制数的前三位,如果不足三位,从后补零。举个例子,将十进制1000压缩;1. 1000转换256进制数,1000 = 3 * 256 + 232 = 3*256^(2-1) + 232*256^(1-1)
2. 3小于127,不需要补0,跳过
3. 从第一部看到1000转换成256位数有2位,压缩结果第一位应该存放2
4. 因为只有两位,所以最后一位补0,得到存放的值为 [2, 3, 232, 0]十进制,转换十六进制 [0x02, 0x03, 0xe8, 0x00] 合并存储到nbits为 0x0203e800难度计算在第一个公式中difficulty_1_target的值为 2^(256-32)-1,转换成256进制为;FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF第一位大于0x7f,前面补0,变为00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF其长度等于 28+1=29 (0x1d),且长度超过三位,无需补零,则压缩结果为:0x1d00FFFF,因为压缩存储容量只有才4个字节,前两字节已经被长度和添加的 00 所占用,只剩下2个字节来存储数字,这样后面的26个 FF 值被丢弃。T=0x00FFFF * 256^(0x1b-3) = 0x00000000FFFF0000000000000000000000000000000000000000000000000000比特币中的difficulty就是0x1d00FFFF,如果区块中的nBits为0x1d00FFFF则说明这个区块挖矿难度为最小挖矿难度1.实际上专业的矿池程序会保留被截断的FF:00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF我们算一下比特币101799号区块的挖矿难度,通过区块链浏览器可以看到101799号区块的nBits为0x1b0404cbD = 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / 0x00000000000404CB000000000000000000000000000000000000000000000000 = 16307.669773817162 (pdiFF)pdiFF也被称为矿池难度。算力为了找到符合条件的值在挖矿的时候需要不断的调整区块头中Nonce的值,但是又会有一个问题,在比特币中Nonce的值是32位的,如果挖矿难度太大,就算穷尽Nonce的所有可能还是不能算出符合条件的值。铸币交易在一个区块产生的时候,会有一个铸币交易(coinbase),也就是矿工为自己铸币,产生新的比特币。铸币交易没有UTXO输入,只有输出指向自己的比特币地址,当挖矿成功,这个区块被网络接收的时候,新产生的币就转移到这个矿工地址了。看一下铸币交易包含的字段; transaction hash:“交易哈希”字段32个字节全部填充0(因为其没有UTXO输入);ouput index:“交易输出索引”字段全部填充0xFF(十进制的255); coinbase data:coinbase数据长度最小2字节,最大100字节。除了开始的几个字节外,矿工可以任意使用coinbase的其他部分,随意填充任何数据。以创世块为例,中本聪在coinbase中填入了这样的数据“The Times 03/Jan/ 2009 -Chancellor on brink of second bailout for banks“; - coinbase data size:coinbase数据大小; sequence number:现在未使用,设置为0xffffffff可以看到铸币交易的coinbase data字段是我们可以控制的,当Nonce不能满足挖矿难度的时候,我们可以通过调整coinbase data字段,从而影响区块头的默克尔树根的值,提供更多的可能来满足挖矿难度的要求。算力单位通过上面的流程,进行一次可能的挖矿尝试被称为H。 1 H/s = 每秒可执行一次哈希运算。 1 KH/s = 每秒1,000哈希(一千次)。 1 MH/s = 每秒1,000,000次哈希(百万次)。 1 GH/s = 每秒1,000,000,000次哈希(十亿次)。 1 TH/s = 每秒1,000,000,000,000次哈希(万亿次)。 1 PH/s = 每秒1,000,000,000,000,000次哈希。 1 EH/s = 每秒1,000,000,000,000,000,000次哈希。挖矿收益矿机挖矿的时候就会出现很长的时间找不到符合条件的哈希值,如果找不到哈希值不能打包区块就没有收益,显然对矿工十分不友好,但是如果挖到就像中彩票一样获得非常丰厚的回报。矿池为了避免单个矿工挖矿收益的不稳定性,就出现了矿池,矿池集合了大量的矿工,平均挖矿的收益,避免了挖矿收益的不稳定性。 矿池组织大量的矿工挖矿面临很重要的一个问题就是如何把高难度计算哈希的任务拆解成相对简单的任务,发送给单个矿工,回顾之前挖矿难度的计算,可以简单的认为前面0的多少表明了挖矿的难易。 0越多,挖矿难度越高,为了降低挖矿难度我们就要增加挖矿哈希0的数量,举个例子假设挖矿目标值 0x000abc,只要满足这个值就可以打包区块获得挖矿收益;
降低挖矿难度为 0x001abc,发送给矿工,矿工只要计算区块头满足这个相对低一点的难度就可以得到一个分片(shared),但是单个矿工挖到这个简单难度的块是无法发布到整个网络中的,但是矿池可以把这个分片记录下来,作为以后给这个矿工奖励的凭证。
0x001abc是0x000abc的子集,只要子集足够多总有一个会满足目标值。
当有一个矿工挖出一个满足目标值之后就可以获得挖矿收益,而挖矿就可以根据矿工分片多少来获得收益。
矿工收益 = 挖矿收益 / 挖到的分片数量但是现在还有一个问题没有解决,单个矿工挖到目标值以后如果私吞收益,私自广播区块怎么办?矿池有集中托管式的,也有分布式的。 集中托管式矿池,矿工可以把挖矿的机器托管给矿池,由矿池统一操作维护,只需要支付一些电费管理费即可,这样就避免了私自广播。 分布式矿池,矿工将机器自行管理,通过矿池协议从网络连接矿池即可,这样就会出现私自广播的可能。回顾一下铸币交易coinbase,可以看到有output字段,UTXO模型中币的来源都是上一个交易的output,所以可以把铸币交易的output字段设置为矿池的地址,然后随机生成一些coinbase data的填充后生成区块头的默克尔树,最后发由矿工去尝试目标值。通过这样的方式,即使矿工找到满足条件的哈希值,铸币交易的地址也是矿池的地址,私自广播区块没有任何收益,如果调整铸币交易的地址,这样又回到了独立挖矿的场景。全网算力如果要获知全网算力,可以通过出块时间,挖矿难度大致反推出全网算力。区块确认当一个区块产生之后,它不是立即可信的,网络上的节点总是相信最长的区块链,当一条交易记录被打包进一个区块之后,就有了一个确认,而这个区块所在的链后面被再加入一个区块,就是第二个确认,如此下去,一个交易有了6个确认,我们就认为这个交易已经确定了,会被永远记录在区块链中。 为什么是6个确认呢?因为每一个确认就是一个挖矿过程,需要大量的工作量证明,因此,这6个区块被同一个矿工创建的可能性微乎其微(可以说是不可能),因此矿工伪造交易也基本不可能。由于比特币的区块平均产生时间是10分钟,所以一个交易要1小时左右才能保证成功(最快),不过也不是所有的系统都这样认为,有些网站在接受比特币支付时,认为4个确认就可以给客户发货了,区块确认越多则越难被逆转。区块广播在区块链中,为了尽快收到其他节点的信息,节点间并不是直接传递区块信息的。 节点向附近节点发送一个Inv消息,Inv消息中包含已经被发送者(sender)接收并验证过的“交易记录的哈希”、以及“区块哈希”。接收者(receiver)收到Inv消息后,如果他还尚未从其他节点收到过相同的信息,他会发送一个getdata消息给发送者,要求得到交易记录及区块哈希包含的具体信息。此时,区块和交易记录的信息才会进行整体传递。 其中Inv消息结构如下;type MsgInv struct {
InvList []*InvVect
}
type InvVect struct {
Type InvType // Type of data
Hash chainhash.Hash // Hash of the data
}欢迎关注我的博客(qyuan.top),不定期分享一些区块链底层技术文章,博客排版要比知乎好一点(ㄟ( ▔, ▔ )ㄏ)。编辑于 2020-05-12 11:18挖矿区块链(Blockchain)比特币 (Bitcoin)赞同 8211 条评论分享喜欢收藏申请转载文章被以下专栏收录清源的区块链
Buy/Sell Bitcoin, Ether and Altcoins | Cryptocurrency Exchange | Binance
Buy/Sell Bitcoin, Ether and Altcoins | Cryptocurrency Exchange | Binance
Error 403 Forbidden - This request is blocked.
For security reasons you can't connect to the server for this app or website at this time.
It maybe that you have too many requests or the illegal request payload is identified as an attack.
Please try again later.
一文读懂BTC挖矿难度调整 - 知乎
一文读懂BTC挖矿难度调整 - 知乎首发于比特币/Bitcoin切换模式写文章登录/注册一文读懂BTC挖矿难度调整柠檬不萌S当我第一次了解比特币挖矿的时候,我认为它很简单,就像坐在家里,做着我想做的事情,而我的电脑会投入工作,在我睡觉的时候赚钱。但不完全是。事实证明,还有很多原因使得上述情况完全不可能发生。但为了理解其中的原因,我们首先必须理解挖矿的整个概念,以及它在加密货币方面的意义。挖矿是什么?从本质上讲,挖矿就是创建新的区块,用交易记录填充它们,并将它们添加到区块链中,让每个人都能看到,并就特定的货币是如何使用的这件事达成一致。然而,为了添加一个区块,矿工必须解决一个“加密谜题”,或者用更专业的术语来说,他们必须得到一个有效的块Hash。我不会讲太多的Hash函数相关的知识,但简单地说,Hash是拿到区块的所有信息,然后把它处理,直到它返回一个与此前内容没有任何关系的随机的字母和数字64位十六进制数。如果你改变了区块上的任何数据,随机数将会有很大的不同,但如果什么都没有改变,它将总是返回相同的内容。但是如何知道Hash值是否有效呢?这就是难度目标的由来。目标描述一个阈值,并且要使Hash有效,该值必须小于目标。你可能会问,如果不能更改交易信息,如何获得不同的Hash值呢?在创建Hash时,区块中还有另一个因素要考虑进去——你可以修改它,它被称为nonce。资料来源:Khaled Salah矿工们一直在为了这个数字努力,直到输出的Hash值小于目标值。因为Hash值是随机的,所以目标越低,就越难找到一个有效的Hash值。就像掷骰子一样,掷一个小于3的数字比掷一个小于4的数字更难。那么你如何确定目标的价值呢?这个问题的答案就是我们今天要讨论的话题:挖矿难度。什么是挖矿难度?这是不言自明的,但是挖矿的难度仅仅是指为区块找到一个有效的Hash值有多么困难和耗时。一个更好的问题应该是,为什么挖矿一开始就需要有难度?区块链的全部意义在于在网络中的多个个体之间建立共识,也就是说在一个真理上达成一致。它们是如何做到这一点的呢?它们取网络中最长的有效链,这取决于向它投入了多少工作(计算Hash值所花费的时间),并接受它作为构建的主链。有了这个难度,就可以确保网络的安全性,因为它可以防止欺诈。如果添加区块很容易,那么有人可能会发送欺诈性交易,然后向网络发送垃圾邮件,以创建他们自己的最长链。然而,由于挖矿困难,为了防止垃圾信息,添加块的过程变慢,平均需要10分钟来挖掘一个块。这里的棘手之处在于,攻击者可以通过寻找增加计算能力的方法轻松绕过这一困难。幸运的是,我们提前想好了,想出了一种方法让系统控制困难。挖矿难度如何确定?定期调整难度,以确保总是平均需要10分钟来挖掘一个区块。在每添加2016个区块后,系统会查看创建这些2016个区块所花的时间。正常情况下,需要2周左右,或20160分钟。如果超过两周,难度就会降低,如果不到两周,难度就会增加。难度可以如下确定。推导出新难度的公式正如你可以从反比函数中看到的,如果花费的时间超过2周,分数将小于1,新难度将会减少。如果花的时间超过2周,分数就会大于1,新的难度就会增加。如果难度降低,目标值就会增加,从而更容易找到有效的散列,反之亦然。最大目标值为1,由此可见难度也与目标值成反比。难度与目标的关系为了防止突然的变化,难度的增加或减少不能在一次调整中超过4倍。但回到我们如何想出目标的问题上,我们需要探索影响挖掘区块所需时间的不同因素。有两件事可能会影响这段时间:计算能力网络中个体的数量计算能力在比特币的早期,你可能已经能够成功地进行挖矿,就像我过去认为的人们所做的那样——用他们的个人电脑。然而,矿工很快被迫升级。由于挖矿本质上是一场竞赛,人们竞相首先找到Hash值并获得奖励,那些拥有更强大计算机的人将能够在同一时间内做出更多计算结果,因此获胜的机会也会更高。升级一开始只是简单的从CPU到显卡的转换,但近年来,升级的幅度要大得多,现在所谓的ASIC(特定应用集成电路)--一种专门为挖矿而设计的器件--已经是能够参与竞争所需的最低限度。但即便如此,你也不太可能赚到任何东西。目前,你可能需要40年才可以开采一个区块。如果你想赚钱,你可能必须加入一个矿池——矿工们联合起来增加他们获胜的可能性。考虑到所有这些进步和计算机不断变得越来越快的事实,为了跟上它们并保持10分钟的平均速度,挖矿难度必须补偿这一点。网络的规模等等,但我们并不是每两周就有更快的电脑,对吧?虽然计算机的不断改进是需要调整机制的主要原因,但该系统也对网络中的个体数量进行了补偿。矿工越多,找到一个有效Hash值所花的时间就越少,因为在相同的时间内会进行更多的计算结果。因此,当有更多矿工在场时,困难增加,当矿工更少时,困难减少。总结所以回到我们一开始的地方--在今天这个时代,用你的PC挖比特币几乎是不可能的,原因是由于设备升级和网络规模增大所做的补偿,导致挖矿难度不断增加。你的PC根本没有计算能力再跟上其他人的脚步,所以你能够成功挖出一个区块的几率非常非常低。即使系统的设计是为了降低难度,但很少会这样做。更快、更强大的设备不断被开发出来,同时越来越多的人加入了比特币网络。事实上,自2009年1月比特币诞生到2020年11月,已经有250次难度增加,只有53次难度降低。算力比特币挖矿形同猜数字谜,矿工要找出一个随机数(Nonce)参与哈希运算 1Hash(Block+Nonce),使得区块哈希值符合难度要求。算力则指计算机每秒可执行哈希运算的次数,也称为哈希率(hashrate)。下图是当前比特币算力图表 2。到 2017 年时,比特币挖矿所需算力疯涨。这与不断研发出的新型矿机投入市场有关——这些矿机利用新的技术,拥有更强的运算能力,即单位成本下的算力在快速增长,由此带来了整体算力的提升。算力单位算力每隔千位划为一个单位,最小单位 H=1 次,其他分部是:1 H/s = 每秒可执行一次哈希运算。1 KH/s = 每秒 1,000 哈希(一千次)。1 MH/s = 每秒 1,000,000 次哈希(百万次)。1 GH/s = 每秒 1,000,000,000 次哈希(十亿次)。1 TH/s = 每秒 1,000,000,000,000 次哈希(万亿次)。1 PH/s = 每秒 1,000,000,000,000,000 次哈希。1 EH/s = 每秒 1,000,000,000,000,000,000 次哈希。如果不清楚单位简称,可以查看下面国际单位的前缀表。挖矿难度计算动态调整挖矿难度 Difficulty为什么算力会变化呢?这和比特币协议设计有关。中本聪设计比特币时,加入挖矿难度调整机制是为了使得比特币出块时间能理想的恒定在 10 分钟左右。比特币协议规定每隔 2016 个区块,将根据过去最近 2016 个区块出块总时间调整,自动调整下一个 2016 个区块的挖矿难度。理想情况下 2016 个块需要两周(2016*10s)时间,如果实际用时不到两周则增加难度,如果超过两周就降低难度。原本中本聪设计的是一个公平的完全去中心化的一个数字货币系统,每个人都可以使用个人电脑进行挖矿。然而,有利可图时大量新算力不断加入,矿工竞争激烈,使得单个矿工的挖矿成功率几乎为零。2011 年起矿池出现,大量矿工纷纷加入矿池,以稳定收入,摊薄成本。大量算力融入,使得比特币挖矿难度越来越大。数字货币挖矿业形同军事竞备,挖矿设备不断更新迭代,不再遵循摩尔定律。专业矿机专门针对哈希算法、散热、耗能进行优化,这脱离了比特币网络节点运行在成千上万的普通计算中并公平参与挖矿的初衷。矿池的算力占据,也使得比特币风险一直存在:51% 算力攻击。挖矿难度计算公式需要多少算力才能找出一个随机数,由当前区块的挖矿难度决定,难度越大所需算力越多。但挖矿难度并不在区块信息中,只在网络节点中依据规则动态计算,公式如下:D=T1 /TT 字母是 Target 的缩写,D 字母是 DiFFiculty 缩写。 T1 和 T 均是一个 256 位的大数字 (bignumber),其中 T1 为一个非常大的常数 2 256−32−1。依据公式,T越小,挖矿难度 D 越大。依据公式,当 T=0时,D 无穷大,标志着无法计算出结果。幸运的是, T 不会为 0,最小值为 1,此时难度值最大,为 2256−32−1=2224−1。当 T=T1时,难度值为最小值 1。编辑于 2021-01-13 08:14btc挖矿比特币 (Bitcoin)比特币矿机赞同 4添加评论分享喜欢收藏申请转载文章被以下专栏收录比特币/Bitcoin比特
Buy/Sell Bitcoin, Ether and Altcoins | Cryptocurrency Exchange | Binance
Buy/Sell Bitcoin, Ether and Altcoins | Cryptocurrency Exchange | Binance
Error 403 Forbidden - This request is blocked.
For security reasons you can't connect to the server for this app or website at this time.
It maybe that you have too many requests or the illegal request payload is identified as an attack.
Please try again later.
超详细!当最后一枚比特币开采完后,比特币矿工将何去何从? - 知乎
超详细!当最后一枚比特币开采完后,比特币矿工将何去何从? - 知乎首发于资讯切换模式写文章登录/注册超详细!当最后一枚比特币开采完后,比特币矿工将何去何从?小蛙奇遇记摘要1、比特币一共可以开采2100万枚,预计将在2140年左右开采完毕。2、一旦比特币开采完即流通量达到最大,比特币矿工将不再获得区块奖励。3、假设从现在开始,比特币在开采完之前没有出现重大协议更改,矿工将只能获得交易费作为奖励。正文众所周知,比特币的总数只有2100万枚。一旦开采完成,就代表着不会再有新的比特币进入流通市场了。所以比特币是不断通缩的,它不同于国家货币,因为法定货币会不断增发,导致通货膨胀,钱不再值钱,因此政府从而可以从中受益。而对于比特币来说,总数固定的情况下,每年不断的被开采出来的比特币会越来越少,而这些新币将会使比特币越来越值钱,这是供求不平衡关系导致的,通缩才是比特币最值钱的地方。虽然比特币开采了所有2100万个BTC后,它的比特币网络基本还会跟现在一样运行,但对矿工来说,开始出现区别了。比特币的矿工大约每十分钟,就可以发现一个新区块,当矿工成功的解决了密码难题,就可以将新发现的区块添加到区块链中。而作为发现区块的奖励,矿工可以获得固定数量的比特币,这被称为“区块奖励”。比特币首次推出时,奖励被设置为50 BTC,但每210,000个新区块奖励减少一半,大约每四年奖励少一次。因此,随着时间的流逝,区块奖励会减少到25 BTC,12.5 BTC和6.25 BTC。现在已经完成了第三次减半即在2020年5月比特币完成了第三次区块奖励,现在的区块报酬只有6.25 BTC。而下一个减半预计将在2024年发生。在最后一枚比特币被挖出来之前,矿工还是可以继续获得区块奖励的,不过比特币一旦全部被挖出来以后,就不会再有新的比特币流入市场了。短短十年内就被挖出了超过1,869万枚BTC,相当于最大供应量的89%。但是,有趣的是,想挖出最后一枚比特币还得挖120年。01当所有的比特币都被开采后,矿工将做什么?一旦所有2100万比特币都被挖出之后,比特币矿工仍将能够参与发现区块的过程,但不会得到区块的奖励。但是除此之外,比特币矿工还是有其他收入的。除区块奖励外,比特币矿工还可以获得在每个新发现的区块中包括交易上花费的所有费用。现在的比特币交易费仅占矿工收入的一小部分,因为矿工目前每天的区块奖励约为900 BTC(约合3980万美元),但每天可赚取60至100 BTC(260万美元至440万美元)的交易费。这意味着交易费目前最多仅占矿工收入的11%,但到2140年,交易费将激增至矿工收益的100%。02比特币的交易费用在2021年4月突破了2017年的峰值2017年12月(交易费用达到2021年4月中旬的峰值),当比特币的价值为14,000美元时,每天支付的总交易费用飙升至1,495 BTC。结果,矿工当天赚取了总计2100万美元的交易费,这大概是他们当天从区块奖励中赚取的一半。自2017年以来,随着交易批处理和协议升级,比特币用户额外支付了5亿美元的交易费用。在网络活跃期间,比特币交易费用通常会飙升。随着比特币网络充斥着待处理的交易,矿工倾向于优先选择收费较高的交易。而在5月减半期间,比特币收费达到了自2019年夏天以来的最高水平。此外,早在2019年8月,比特币的总交易费用已接近10亿美元大关。目前,比特币总交易费用已接近20亿美元。随着比特币网络的使用量激增,那么对区块空间的竞争可能会急剧增加。这会增加矿工的交易费奖励,而比特币的价格上涨和逐渐降低的能源成本(新能源的出现)意味着其中依旧有利可图。在2017年的峰值时发送比特币的平均成本为55.17美元。2021年4月21日,该数字创下了历史新高59.87美元。在此之前的十天,它只有14.86美元;平均交易费用飙升了300%以上,这说明只要有更多的人使用网络通就会有更高的交易费用。如果比特币矿工无法接受从区块奖励到交易费用的奖励结构方式的转变,直接选择不挖了怎么办?03如果矿工罢工这是一个很有趣的假设,既然奖励结构转变了,那么肯定会有一些比特币矿工不服这个机制,他们如果在开采完之前罢工了,不开采比特币了,那么比特币网络会出现什么情况呢?不管罢工的矿工数量多不多,其实区别并不大,因为矿工数量减少会直接导致全网算力下降。而比特币网络会根据全网算力来调整数学题的难度,来保障大约10分钟左右出一个新区块。简单来说,反正只要有人挖,比特币最后一定会被挖到2100万个,矿工越少,单次挖出来的数量就越多,剩余的矿工恨不得没有人跟他们抢,当然那时候比特币得没有归零。(哈哈)如果所有矿工都罢工了呢?那这事情就大条了,因为确认交易是需要新的区块才行的,矿工全体罢工,区块不生产了,那么未来就也不会花费任何一枚比特币。但是使用比特币的人们仍然可以查看哪些钱包地址持有比特币,持有多少比特币,并且还可以查看曾经进行的每笔比特币交易的全部历史记录。交易才能赋予价值,都没有区块来确认交易信息了,那比特币就真的世界末日了。不过区块链已经起来了,你比特币倒了,还有其他加密货币站了起来,矿工又不是只能选择比特币,话说真的有人会放着白花花的银子不要吗?04矿工作恶先普及一个小知识:在很偶然的情况下,比特币网络中会同时产生两个(或多个)区块,这就会导致区块链出现临时分叉,当两个临时分支的长度出现了一长一短后,短的那个(少于2个区块)分支就会被放弃,短分支上的所有区块被判定无效,这些区块中的所有交易记录当然也就被判定为无效了,而我们常说的51%攻击就是通过这种方式,通过制造出分叉,把自己的分叉区块加长超过另外的分叉,好让自己的区块成为主流。比特币开采完毕后,将不会有新的比特币被挖出,但是矿工依旧可以发现新的区块,那么问题来了,如果有矿工发现了一个新的区块,不选择释放它,而是保留,那么网络就会利用额外的资源再来挖一个区块,这些被保留的区块便暂时不会进入区块链中。接下来就是在交易费用是100%收益的制度下,好矿工就是挖出区块,添加至区块链中,获得交易费作为报酬,但那些作恶的矿工则可以通过持有保留的区块更长的时间来赚更多的钱,简单说,在交易费100%的未来,这种坏矿工比好矿工更赚钱!比如说:现在甲较早的发现一个区块后,说服另一个矿工乙来扩展自己的区块。在仅奖励矿工交易费用的网络中,甲可以说服乙扩大甲矿区的区块,并包括较少的交易费用。如果甲那未授权交易费用的区块大大低于其他区块块中包含的费用,那么使用甲的区块将符合乙的利益。如果甲和乙两人一起将保留的区块延长,超越另外分叉的区块长度,那么甲和乙就可以将自己的区块作为主流,而短的那一截区块将会被放弃。这意味着一旦成功,甲和乙的区块中的交易记录可以随意改写,比如这么跟你说,甲跟丙以1比特币兑换金钱,甲将1比特币转入了丙的钱包后,甲也从丙处获得了钱,现在甲发动51%的攻击,甲转移出去的1比特币又再一次回到了自己手中,这样甲不但拿到了钱,比特币也还在自己的钱包中。这种作恶行为在很大程度上会影响很多人。可以预见的是由于交易费作为100%的激励机制,将会使这种削弱主流算力的行为在比特币网络中变得普遍可见,那么比特币网络的可怕的“ 51%攻击”也会突然变得可行起来。因为作恶的矿工始终会挖掘自己的块,而其他矿工却不会统一的挖一个区块。这将使51%的攻击成为可能,而散户的算力却远远低于51%。” 交易费用可能不足以为网络安全提供足够的激励,所以大大增加了51%攻击的可能性。 但是不要害怕,除非比特币网络彻底没人玩了,全网算力低的不行,不然想要作恶的成本实在是太高了,这种情况出现在比特币网络中可比上天还难。发布于 2021-05-07 14:04虚拟货币btc挖矿比特币 (Bitcoin)赞同 3添加评论分享喜欢收藏申请转载文章被以下专栏收
比特币挖矿消耗的计算能力用来干什么了?创造了什么价值?还是只是用于维系比特币体系使用? - 知乎
比特币挖矿消耗的计算能力用来干什么了?创造了什么价值?还是只是用于维系比特币体系使用? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册btc挖矿比特币挖矿消耗的计算能力用来干什么了?创造了什么价值?还是只是用于维系比特币体系使用?投入那么多电力,计算硬件设备去挖矿,这些运算能力用来计算什么内容了?这些内容怎么带来价值的?还是说这些运算能力全部都只是用于维系比特币这个系统?能否把…显示全部 关注者21被浏览32,353关注问题写回答邀请回答好问题 3添加评论分享16 个回答默认排序Arthur Wang男公关…… 关注是一个有趣的问题,从答主描述来看,并不了解比特币,但问题却更加切入本质:这些算力到底用来干嘛了?这个问题乍一看也比较好回答,当然是如问题所说,“用于维系比特币体系使用”了。但仔细琢磨,完全不是那么回事儿,这些算力实际上是被“内卷消耗”掉了。对,没有起到任何任何的意义,他们干的事情就是内卷掉了别人的算力。永不增长的效率比特币的共识机制被称为POW,工作量证明。简单解释就是,系统出了一道题,大家一起计算这道题,谁先算出来,钱归谁。这条规则下,不同统属的算力,彼此之间是直接竞争,而非合作关系。这是基础规则,还有附加规则如下:这道题以当前的算力参考,难度定在10分钟左右解出。如果网络算力提升,那么就提升难度,维持在10分钟左右。这个意思就是,增加再多的算力,比特币计算一次(出块)就是10分钟,时间并不会缩短,效率也不会增加。算力内卷那么就奇怪了,既然效率不增加,矿工们为什么疯狂提升算力呢?这是比特币的挖矿难度曲线变化,可以看到,近年来比特币挖矿难度节节攀升。比特币全网算力在2021年3月14日上升至新高185EH/s。自2016年1月21日以来,比特币全网算力一直在持续上升,在五年内上涨了惊人的18400%——比特币算力大爆炸——自2016年以来比特币算力上涨180倍答案Super简单:竞争用掉了。前面说了,谁先算出来钱归谁。那么,矿工有动力提升自己的算力。这没啥,大家都是地球人,科技水平差不多,你提升我也提示。最后就。。。变成这个鬼样子了。效率不变的情况下,算力提升180倍,等于全网收益变成1/180。(以上建立在收益固定的假设下,不考虑减半等因素)这些算力能用来做云计算么?不能!第一,比特币的机制,并没有此类算力额外使用的办法。参与算力竞争,就老老实实专心致志的挖矿,考虑杂七杂八会影响胜率——这就是钱啊。第二,一个隐藏问题:算力是怎么提升这么快的?其中一部分原因自然是矿工投入更多了,但真正重要的因素是矿机的出现。矿机,顾名思义,挖矿的机器。既然有电脑,为啥还要矿机呢?因为这些矿机有个特色:只会挖矿,专门算那道比特币系统提出的问题。如果改行做通用计算,可能一个矿池的矿机效率还不如你手里的千元机。最后,价值问题。请允许我群嘲一下币圈营销号。题主的问题中的价值,是一个真正站在人类整体角度的思考。币圈营销号一口一个值多少钱……格局啊……太低。价钱不等于价值,这不仅是马哲的理论,也是所有人应该明白的道理。而且不管比特币有什么价值,它的价值换算在算力上,2021年和2016年比也是1/180……——比特币到底有没有的价值。我认为是有的,不是钱的价值。而是中本聪开启了一个全新的思维模式,提出了一种可能。伟大的理论~不因币圈的乌烟瘴气而有损分毫。发布于 2021-06-27 17:42赞同 174 条评论分享收藏喜欢收起子楠小程序“职业照相机” 关注按你说电力这问题,你重新创造一个私有链,一个人也能维护,但你不敢信任他啊,一个人全维护了,他也能随便改。那么几十个人的小团体,你依然没法信任他。但是如果是数十万,上百万人,他们大部分互相不认识,然后一起维护一个链,那么各自利益不同,串通好了的概率也不大,所以你不太担心这个系统被里面的人修改了。越多人一起记账,就越安全。这就是所谓的去中心化的好处了。那这冲突点就来了。记账有必要这么多人么?当然没必要。但是人越多越安全。人越多也就越耗能。至于区块奖励,只是为了一开始没人去记账时,作为一个奖励手段,吸引有人去记账罢了。至于这算力拿去云计算啥的,那太麻烦了,没法保证对每个人(计算单元)来说机会均等,搞那么麻烦,出错的概率就大,简单的系统不容易出问题。至于为啥人会越来越多,那就和楼上说的“内卷”道理几乎一样了。那么问题来了,为什么会有这么多人,宁愿选择在矿里卷,也不在工厂里,在互联网公司卷呢?为啥非得搞个内卷的环境,不给大家自由创新的土壤呢?难道在996公司里卷,在产量已经饱和的工厂里卷,在售楼处,中介公司里卷,就创造了什么价值么?大部分人的工作也就只是为了赚钱,他们实际上也没创造任何价值。和这些矿工一样,都只是赚钱而已,当然,他们也和这些矿工一样,可以找个理由,说自己的行为就像机器上的螺丝钉一样,微小而又间接地创造了价值。但是,为啥那么多人都没办法去发挥自己的天赋创造价值,只能在各行各业里卷中卷呢?这就不是比特币的问题了。编辑于 2021-06-30 00:38赞同 262 条评论分享收藏喜欢