主页 > imtoken支持bcc > 到底在挖什么东西

到底在挖什么东西

imtoken支持bcc 2023-01-17 08:36:04

基于应用的公链挖矿应该回归普世时代

每个人都从第一批比特币淘金者那里听到了“挖矿”这个词。比特币区块链是挖掘“数字黄金”的货币公链。随着共识面的扩大,最初的矿工赚了很多钱,后来人们像黄蜂一样进来了。这种比特币挖矿热潮与当年的淘金热非常相似。当时,许多淘金者下海淘金。最终,只有少数人变得富有,而很多人失去了一切。中本聪设计的比特币网络的初衷是去中心化和普适性,但随着机器的计算能力越来越集中,比特币挖矿呈现出再中心化的趋势。大量普通用户很难参与到“永久贫困”的境地,这对于现实社会中的贵金属开采却是出奇的熟悉,其他类似的基于货币的公链也存在这种现象。区块链是人类社会使用代码传递信任的重大变革。区块链3.0的时代一定是应用的时代。大力发展面向应用的公链是必然趋势。面向应用的公链挖矿必须回归一般自适应时代,让更多用户参与。

到底在挖什么东西

如果你想成为比特币矿工,你首先需要加入比特币网络与其他矿工连接。连接完成后我们还有一些任务需要完成:

1.监控交易广播:在每个时间段,整个比特币网络中都有一些交易广播,然后需要验证矿工签名是否有效,交易没有重复支付.

2.维护区块链网络,负责监控新区块:矿工的主要职责是维护区块链。为了确保这一点,中本聪设计得非常好。在你加入区块链到本地之前,你需要让其他矿工和节点同步历史。然后收听广播到网络的新块。你的工作是验证每次广播后收到的每个块。验证的目的是确保区块中的每一笔交易都是有效的。并且每个块都包含一个有效的随机数[1]。

3.生成备用块:如果你已经备份了所有的块数据,你可以生成自己的块。但是如果你想这样做,你需要将监控的数据打包并放入一个新的区块中,然后将这个区块排在整个链的最新区块之后。但是你要确保里面的数据是真实有效的。

4.找到使你的区块有效的随机数。这个工作量很大,也是最难的部分。这取决于你机器的计算能力与整个网络的计算能力的比率。随着全网算力的大幅提升,很多矿机升级为算力更高的专业矿机,为了增加比例价值,专业矿机并联组成大型专业矿机矿场。

5.让全网接受你的区块:即使你找到一个随机数,也不能保证该区块会成为共识链的一部分。事实上,这其中有一部分是运气。接受您的区块并从该区块继续,而不是从其他矿工获得的区块继续。

6.利润:如果其他矿工接受你的区块,那么你可以获得相应的比特币[2]。在这里补充一下,除了新区块产生的奖励外,还有一笔费用,即额外收入。但是比较低,也就是交易手续费,大概是一个区块默认奖励的1%左右。

7. 查找有效区块:

货币挖矿到底挖的是什么

现在我将解释如何找到使块有效的随机数。作为矿工,你首先需要从你的交易池中选择一些有效的交易,并将它们编译成默克尔树。您可以任意选择要编译的交易数量,但前提是不超过每个区块的 nonce 的交易限制。然后组装一个新的块 [3]。您需要尝试不同的临时随机数,直到随机数使整个块的哈希值小于目标值。该目标值一般由从零开始的特定位数的数值表示。即从0开始,每次加1,直到随机数可以使区块有效。

很多情况下,尝试了随机数的所有32位后,该值仍然无法生成有效的哈希值,此时必须进行更多更改。但是当整个 Merkle 树上的值发生变化时,整体就会发生变化。最重要的是,在 Merkle 树上不会改变 coinbase,因为 coinbase 会向上传递,所以改变这个值会计算更多,所以只改变 header 中的随机数是一个不错的选择。在 2^32 次尝试后更改 coinbase,但未找到有效块。当你发现这个值时,你需要立即公布它,你就有机会获得区块奖励。

8。判断难度:

矿工每挖出 2016 个区块,挖矿难度就会发生变化。这种难度变化是基于前 2016 个区块的挖矿效率。我们的公式表示如下:

下一个区块的难度=前一个难度*2016*10min/生成最后2016个区块的时间

注意:2016*10min=两周,这里的两周是没有意义的,只是取舍的产物。

为了平衡这种动态价值,中本聪希望比特币作为数字黄金存在。所以他决定把困难留给市场。挖矿难度受新矿工加入数量的影响,因为新矿工加入是因为比特币价格的波动。

为什么挖矿如此困难的核心问题是矿工必须对 SHA-256 哈希函数进行操作,这是一个通用的加密哈希函数和一个 256 位状态机。 256 个状态分为 8 个 32 位字段,这些字段经过优化以在 32 位硬件上运行。每一轮运算选择一定数量的字段,最后进行32位的模加运算,然后运算的结果是一个状态从左边开始的第一个字段,这样整个状态就向右移动了.

一个完整的 SHA-256 操作需要 64 次这样的迭代操作。在每一轮操作中,它会使用稍微不同的常数,所以所有的迭代操作都是不同的。矿工是尽可能快的执行这个函数操作,矿工是比较运算速度的。

货币挖矿到底挖的是什么

CPU 挖矿

一开始大家都是用普通家用电脑来挖比特币,也就是CPU挖矿。按照比特币网络的现状,靠CPU来挖比特币是不可能的。过去几年,痴迷于使用 CPU 挖比特币(基于货币的公链)的矿工们根本就没有。了解比特币的工作原理。 CPU挖矿是面向应用的公链回归普世时代的重要第一步。 CPU挖矿可以让普通PC用户更方便的参与。

GPU 挖矿

二代矿工之所以使用GPU进行挖矿,是因为GPU具有高吞吐量和高并行处理能力,是非常有利的挖矿条件。 2010 年,OPENCL 语言诞生了。这种语言允许 GPU 执行非图像处理任务。这种语言让 GPU 挖矿成为当时的主流。 GPU可以超频。比如超频让你的吞吐量1.5倍,操作成功率降低到0.7,但机会是1.05.,也就是说你得到了一个增加 5%。最后一个就是一个CPU可以带多个GPU,让每个GPU区域负责不同的事情货币挖矿到底挖的是什么,大大缩短了时间。

GPU 挖矿也有优缺点。 GPU 有大量的浮点运算单元,但这些内置硬件并没有完全用于挖矿,对 SHA-256 运算没有帮助。同时,GPU并没有很强大的散热功能,耗电量也很大。后来FPGA挖矿了几个月,但是因为超频,报错的现象很普遍,所以不得不放弃这种挖矿方式。

GPU 也是大型 3D 游戏和艺术家等家庭和工作软件的必备硬件。基于应用的公链的普遍性不排除GPU算力,但GPU的无限扩展应该是有限的。

ASIC 挖矿

当今的采矿市场以 ASIC 芯片为主。这些芯片旨在为货币公链挖矿而存在。制作这种芯片需要非常专业的知识,开发周期也很长。但最令人惊奇的是,这个行业的芯片发展速度居然打破了芯片行业的世界纪录。由于当时的发展速度很快,设计缺陷太多,引起了很多投诉。

早期的ASIC芯片大多寿命很短,6个月就被淘汰,导致厂家出货速度决定了用户的退货率,否则用户会买一对废铜。铁。由于现在比特币网络已经稳定,目前矿机的稳定性还是比较高的,但是早期矿机客户向厂商投诉是很常见的。

货币挖矿到底挖的是什么

反ASIC

粗略地说,我们想压制专门为采矿量身定做的设备的优势。这也可以理解为设计一个解谜程序,使现有的普通计算机成为最便宜、最高效的解谜计算设备。但这在现实中是不可能的,毕竟所有通用计算机的CPU都针对某些特殊用途进行了优化。并非所有计算机都具有相同的优化配置,并且它们会随着时间而变化。例如,在过去的 10 年中,英特尔和 AMD 在其芯片中添加了特殊指令(通常称为“添加硬件支持”),以更有效地计算高级加密标准 (AES) 分组密码。因此,在挖矿方面,有些计算机总是比其他计算机效率低下。此外,很难想象设计一个依赖于普通个人计算机功能(如扬声器或显示器)的挖矿解密程序,因此去除这些通用功能的专用设备可能会更高效且成本更低。

更实际地说,我们有一个适度的目标:设计一个解谜程序,最大限度地减少最高效的定制计算设备和通用计算机之间的效率差距。 ASIC必然会成为更有效的矿机,但我们可以将其计算性能限制在一定范围内,让他的投资和损失得不到应有的回报,从而限制ASIC矿机的发展,让普通用户有使用他们已经拥有的通用计算机进行挖矿仍然有一些经济效益。

1、刚性记忆谜题

在设计为反 ASIC 的大多数拼图程序中,最常用的是称为内存困难拼图 - 解决拼图需要大量内存来计算,而不是依赖大量 CPU 时间。一个类似但不同的概念是内存限制难题,其中读取内存所花费的时间占此类程序的大部分计算时间。一个谜题可以是一个严格的内存类而不是一个内存绑定类,一个内存绑定类而不是一个严格的内存类,或者两者兼而有之。一个微妙但重要的区别是,虽然 CPU 速度是计算时间的瓶颈,但并行处理大量拼图的成本主要是内存成本,反之亦然。通常,对于计算解谜程序来说,为了实现严格的内存和内存约束,我们需要保证在操作过程中需要使用大量的内存,使其成为一个限制因素。

为什么严格的记忆谜题或记忆绑定的谜题可以反 ASIC?因为用于计算hash函数的逻辑运算只占用CPU的一小部分,也就是说在比特币拼图计算中,ASIC不需要执行一些不必要的功能,只需要执行hash函数的计算即可相关的功能,所以它有很大的优势。另一个相关因素是,不同内存之间的性能差异(以及每单位性能的成本)远小于不同处理器之间计算速度的差异,所以如果我们设计一个刚性的内存类拼图,计算它需要相对简单的计算能力但是需要大量的内存,这意味着解密成本的增长速度会像内存成本的增长速度一样处于相对较低的水平。

SHA-256 已被确定为不是一种严格的记忆难题解决算法。它只需要一个可以轻松放入 CPU 注册表的 256 位小型模块。但设计一个严格的内存类工作量证明难题并不太难。

2、加密

现在最流行的刚性记忆谜题叫做 Scrypt,被第二大加密货币莱特币和其他加密货币使用。

货币挖矿到底挖的是什么

Scrypt 是一个严格的内存散列函数。最初用于加密密码,不易被暴力破解(例如反复试错破解)。因此,挖矿难题类似于比特币使用的“不完全哈希函数”。就像“拼图”一样,只是把 SHA-256 换成了 Scrypt。

Scrypt 在比特币发明之前就已经存在,它用于加密个人密码这一事实让我们对其安全性充满信心。密码的哈希函数化实际上与反 ASIC 具有相似的目的。出于安全原因,我们预计使用定制设备的攻击者计算密码的函数值的速度不会比使用普通计算机或服务器的用户更快 [4]。

Scrypt基本上有两个步骤:第一步是用随机数据填充随机存取存储器(Random Access Memory,RAM)中的缓存空间;第二步是虚拟化随机读取(或更新)的数据,同时要求将整个缓存存储在 RAM [5] 中。

时间和内存之间的权衡。如果没有大的内存缓存,计算 Scrypt 可能会很慢,但仍然可以使用较少的内存添加相对较少的计算。假设我们使用大约 N/2 大小的缓存(而不是 N),现在,如果 j 为偶数,我们只存储 V[j] 的值,丢弃那些 j 为奇数的值。在第二个循环中,将选择 j 为奇数的一半情况,但这种情况仍然很容易计算。我们只需要计算 SHA-256(V[j-1]),因为 V[j-1] 在我们的缓存中。这发生在一半的时间内,因此它增加了 N/2 额外的 SHA-256 计算。

因此,将内存需求减半只会将 SHA-256 计算量增加 1/4(从 2N 到 5N/2)。总体而言,我们可以存储每 k 行数据,即使用 N/k 内存和计算 (k+3)N/2 SHA-256 迭代。在这个限制下,如果我们设置 k=N,我们回到之前的操作 O(N squared) 计算。这些数字不一定适用准确到 Scrypt 算法本身,但渐近预测的方式确实适用。

此外,还有其他设计可以削弱用时间换取内存的能力。例如,如果缓存在第二个循环中不断更新,则可能会降低时间和内存之间的交换效率,因为更新必须存储在内存中。

Scrypt 的验证费用

Scrypt 的另一个限制是它需要与用于验证的计算相同的内存量。为了使记忆刚性有意义,N 需要相对较大。这意味着 Scrypt 计算比迭代 SHA-256 计算(在比特币中只需要 SHA-256 计算来验证)要贵很多倍。

这可能会产生负面后果,因为网络中的每个用户都必须重复此计算以检查每个新发现的块是否有效。这减慢了新块的传播和接受速度,增加了分叉攻击的风险。它还要求每个客户端(甚至是轻量级 SPV 客户端)有足够的内存来高效地进行函数计算。这样一来,Scrypt在加密数字货币中实际可以使用的内存N就受到了限制。

货币挖矿到底挖的是什么

直到最近,人们还不清楚是否有可能设计出一个类似于计算刚性内存的挖矿解谜程序,但可以非常快速地验证(不需要大量内存)。此功能对密码哈希作用不大,这是 Scrypt 算法在用于加密数字货币之前的主要用途。

2014 年,John Tromp 提出了一种新的解谜算法,称为布谷鸟循环(之所以如此命名,是因为该算法的性质与布谷鸟和雀巢的相似)。布谷鸟循环算法是根据从布谷鸟哈希表导出的图中找到循环的难度来设置的。杜鹃哈希表的数据结构最早是在2001年提出的。除了建立一个非常大的哈希表之外,没有已知的方法来计算这个周期,但是可以通过找到一个(相对较小的)周期来简单地验证结果。

该算法可以使刚性内存或内存绑定的工作量证明在比特币共识中更加实用。不幸的是,这个函数不能被数学证明,如果它不使用内存就不能有效地计算。通常,一种新的密码算法似乎是安全的,但社区会对它持保留态度,直到它存在多年而没有被破解。出于这个原因,也因为它是最近才发明的,目前的布谷鸟循环算法还没有被任何加密货币采用。

Scrypt 在行动

Scrypt 被许多加密货币使用,包括几种流行的加密货币,包括莱特币,结果好坏参半 [6]。 Litecoin 的 Scrypt 算法参数的 ASIC 已经存在(然后被其他几个山寨币复制)。令人惊讶的是,与流行的计算机相比,这些 ASIC 的计算能力提升至少与 SHA-256 相比普通计算机的提升不相上下,甚至更大!因此,Scrypt 最终是抗 ASIC 的,至少在莱特币上是这样。莱特币的设计者最初声称抗 ASIC 是莱特币的一大优势。但现在他们撤回了这一说法。

这可能是莱特币使用的N值(内存使用参数)偏低造成的,它只需要128KB来进行计算(如果使用时间内存交换模式,需要的内存可能会更低,这也是常用的GPU 用于更快的缓存)。较低的 N 值使得设计轻量级挖矿 ASIC 变得容易,它不需要读取千兆字节随机存取存储通常需要的复杂内存存储总线是的,这些通用计算机拥有它。莱特币开发者并没有选择更高的内存参数(这会使 ASIC 更难设计),因为他们认为高内存参数导致的高成本验证过程是不现实的。

3.其他抗 ASIC 方法

回想一下,我们最初的目的是让开发可以显着提高计算性能的 ASIC 变得困难。解决刚性记忆难题只是一种方法货币挖矿到底挖的是什么,还有其他方法。

另一种建议但尚未实施的方法是使用移动目标值作为挖掘难题。也就是说,解谜算法本身会发生变化,就像比特币的难度会周期性变化一样。理想情况下,针对一种解谜算法优化的挖矿硬件将不再适用于下一种解谜算法。我们不确切知道我们需要多久更改一次解谜算法才能达到我们需要的安全要求。如果这是由替代硬币的开发者决定的,这可能成为不可接受的中心化来源。例如,开发者可以基于自己开发的硬件(或者只是优化的FPGA)设计相应的新解谜算法,自然会对这种新算法有早期优势。

也许这些解密算法的顺序可以自动生成,但这似乎很难。一个想法是挑选一堆散列函数(如 24 个完整的基于 SHA-3 的算法),每个函数使用 6 个月到一年,很难在如此短的周期内开发新硬件。当然,如果事先知道这个顺序,就可以根据功能使用的时间表进行相应的硬件设计。 【7】

PC矿机已经从CPU挖矿过渡到CPU+GPU挖矿,同时限制GPU和抗ASIC芯片的并行扩展,利用人工智能在PC忙闲时动态调整硬件和带宽资源将允许应用型企业 链的普适性大大提高,走进千家万户。