Skip to content

挖矿 ​

全节点和轻节点 ​

全节点轻节点
一直在线不是一直在线
在本地硬盘上维护完整区块链信息不保存整个区块链,只需要保存每隔区块块头
在内存中维护 UTXO 集合,以便于快速检验交易合法性不保存全部交易,只保存和自己有关的交易
监听比特币网络中交易内容,验证每个交易合法性无法验证大多数交易合法性,只能检验和自己相关的交易合法性
决定哪些交易会打包到区块中无法检测网上发布的区块正确性
监听其他矿工挖出的区块,验证其合法性可以验证挖矿难度
挖矿: 1.决定沿着哪条链挖下去。 2.当出现等长分叉,选择哪一个分叉只能检测哪个是最长链,不知道哪个是最长合法链

在比特币网络中,大多数节点都是轻节点。 如果只是想进行转账操作,不需要挖矿,就无需运行一个全节点。

在挖矿过程中,如果监听到别人已经挖出区块延申了最长合法链,此时应该立刻放弃当前区块,在本地重新组装一个指向最后这个新合法区块的候选区块,重新开始挖矿(挖矿本身具有无记忆性,前面无论挖多久,对后续继续挖矿没有影响。)。

挖矿设备演化 ​

目前,挖矿设备逐渐趋于专业化,其经历了三个过程,总体趋势从通用到越来越专用。

普通 CPU -> GPU ->ASIC 芯片(挖矿专用矿机)

定制 ASIC 芯片 只能挖某一种固定的币, 除非有相同的 miming puzzle(挖矿算法)

ASIC 芯片的出现是好事吗?

很明显,ASIC 芯片一定程度上提升了挖矿的门槛,违背了比特币系统去中心化的初衷。理想状态下,所有人用 CPU 挖矿,这样只要有一台家用计算机便可以参与挖矿。当然,后续有一些货币便考虑到了这个问题,设计了抗 ASIC 芯片化的解决方案。

但反过来想,如果大家都用 ASIC 矿机挖矿,如果有人想要颠覆 BTC 系统,必然会导致 BTC 价格跳水,从而导致其所购买 ASIC 矿机作废,投入成本血本无归。所以,很多人反倒认为 ASIC 芯片出现,一定程度上并不是坏事。

矿池 ​

挖矿另一个趋势便是大型矿池的出现。

对于单个矿工来说,即使使用了 ASIC 矿机,其算力在整个系统中仍然只占据很少一部分,即使从平均收益看有利可图,但收入很不稳定。 此外,单个矿工除挖矿还要承担全节点其他责任,造成了算力的消耗。

因此,为了解决这些问题,便引入了矿池的概念。

通常是一个全节点驱动多台矿机。矿工只需要不停计算哈希值,而全节点其他职责由矿主来承担。ASIC 芯片只能计算哈希值,不能实现全节点其他功能。此外,矿池出现解决了单个矿工收益不稳定的问题。当获得收益后,所有矿工对收益进行分配,从而保证了收益的稳定性。

矿池一般具有两种组织形式:

  1. 类似大型数据中心(同一机构),集中成千上万矿机进行哈希计算。
  2. 分布式。矿工与矿主不认识(不同机构),矿工与矿主联系,自愿加入其矿池,矿主分配任务,矿工进行计算,获得收益后整个矿池中所有矿工进行利益分配。

矿池的出现,使得矿工的收益更加稳定,矿池的收益也更加公平。

大型矿池越容易发动攻击 ​

矿池本身对 BTC 系统带来了较大威胁。某个恶意用户如果想发动攻击,以前需要自己达到 51%算力,现在自己只需要作为矿主,只需要很少一部分算力就可以了。只要能够吸引到足够多的不明真相的矿工,便可以用较低成本实现 51%攻击。

  • 分叉攻击
    • 对已经经过 6 次确认的交易分叉,利用 51%算力将交易记录回滚。
  • 封锁交易
    • 假如攻击者不喜欢某个账户 A,不想让 A 的交易上区块链,在监听到有其他人将 A 的交易发布到区块链上时,立刻发动分叉攻击,使 A 所在链无法成为”最长合法链“。这样,便实现了对 A 账户的封锁。

矿池出现的优劣 ​

  • 优点:解决了矿工收入不稳定的问题,减轻了矿工的负担。
  • 缺点:威胁到了区块链系统的安全,使得 51%攻击变得容易起来(s)。

参考 ​

北京大学肖臻老师《区块链技术与应用》

君子慎独