矿业编年史系列之“技术装备信仰”
在矿业中,矿机厂商、矿工、矿池、矿场分别构成了在矿业产业上下游的生态支点。每一个支点都相互联系、相互制约,更重要的是相互进步。每一个技术的变化都催发了支持者对比特币乃至区块链未来的信任,技术装备信仰,信仰带来未来。本文将列举在矿业中重点的技术发展,其中贯穿前后的是挖矿方式变化。
矿机(挖矿设备):
1CPU1算力: 比特币最初的设计则是1CPU1算力,代表了可以用普通的CPU就可以轻松挖矿,在这个时候需要的算力大概是20MHash/s。这时比特币网络的挖矿难度还不高。
1GPU1算力: 随着挖矿难度的提高,CPU的计算能力不足以快速挖矿。在设计逻辑上,CPU具备复杂运算的逻辑设计,而GPU则是由上千个流处理器组成,执行简单重复性高的计算特别适合,早期的显卡矿机即开始执行1GPU1算力的方式,当时显卡的算力为400MHash/s。
FPGA矿机挖矿: 2013年年初,南瓜张研发了第一台FPGA矿机——南瓜机,开启了FPGA挖矿的新纪元,是第一次将专业级挖矿的理念带到产业中,FPGA矿机是使用FPGA芯片作为算力核心的矿机,是第一次针对挖矿的专业芯片设计,FPGA即现场可编程门阵列,是一个便于编程操作的计算执行组合。当时的FPGA矿机的算力大约是25GHash/s,为ASIC矿机的出现奠定了基础。ASIC芯片也开始了一轮又一轮的进化,从110nm到55nm,从55nm到28nm,从28nm到16nm。
ASIC矿机挖矿: 2013年1月,阿瓦隆交付第一台商用比特币ASIC矿机。ASIC矿机开始改变比特币挖矿的生态,ASIC即专门集成电路矿机。是专业的挖矿矿机。矿机中将可执行重复命令的ASIC芯片密集组合,算力极高。当时算力可达3.5THash/s。ASIC芯片也开始了一轮又一轮的进化,从110nm到55nm,从55nm到28nm,从28nm到16nm,至今已经到7nm。
挖矿算法:
SHA256: 比特币原生的密码学算法,SHA256是SHA-2下细分出的一种算法,一种以哈希函数为基础的安全散列算法,散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。
Equihash算法: 该算法是Zcash使用的POW算法,为分散式采矿算法,主要应用于于Ethereum,Zcash,Zencash等数字货币,以显卡挖矿为主。BTG在分叉完成后,也执行Equihash算法,并在Equihash基础上进行了对函数因子的扩充,以保证防止ASIC矿机抢夺挖矿机会。
Ethash算法: Ethash是Ethereum 1.0 的计划的POW算法。存在一个种子, 可以通过块高度直到该点来计算每个块。从种子, 你可以计算一个 16 MB 的伪随机缓存, 用于轻客户端存储缓存。从缓存中, 我们可以生成一个 1 GB 的数据集, 该属性表示数据集中的每个项只依赖于缓存中的少量项。完整的客户和矿工存储这个数据集。数据集会随时间线性增长。挖矿涉及抓取数据集的随机切片并将它们一起哈希。可以通过使用缓存来重新生成所需的数据集的特定部分, 从而低内存的机器可以进行验证, 因为只需存储缓存即可验证。完整的大数据集每隔30000块更新一次, 因此大多数矿工的工作将是读取数据集, 而不是对其进行更改。
矿池:
早期矿池: 矿池最基本的职能就是将其用户矿工的的算力聚集起来一起去挖矿。在矿池帮助下,对矿工的技术门槛要求非常低。早期矿池下挖矿只需要下载挖矿软件,双击打开配置好的bat文件开始挖即可。并不需要下载任何零币的钱包或同步区块,甚至不需要在矿池注册,也不需要运行全节点钱包。至于接收挖到币的接收地址完全可以由第三方平台获取。
矿池将业务发给矿工,矿工然后每次计算成功完成之后,便提交给矿池一个share。当矿池验证这些share没有问题则Accepted接收并统计数量,当最后成功挖到区块时,则根据各个矿工提交的share数量的多少,按占比的比例,来分配这些新币。
矿机连接协议: “矿池”通过矿机连接协议来协调成百上千个矿工。矿工在建立矿池账号后,设置他们的矿机连接到矿池服务器。矿机在线上运行挖矿时,需要保持和矿池服务器的连接,和其他矿工同步工作。常用协议包括:Stratum(STM协议)、getBlockTemplate(GBT协议)、GetWork(GWK协议)等。
结算模式:
PPS: 即根据解决问题所做的贡献决定金额。用户可以立即提取自己赚到的奖励。奖励是由矿池中的现有余额支付的。PPS全称为Pay Per Share。为了解决PPLNS那种有时候收益很高,有时候没有收益的情况,PPS采用了新的算法。PPS根据你的算力在矿池中的占比,并估算了矿池每天可以获得的矿产,给你每天基本固定的收益。
PPLNS: 和PPS很类似,全称Pay Per Last N Shares,“根据过去的N个股份来支付收益”,每过一段时间交易费也会被加入到区块奖励中,然后分摊给矿工。这意味着,所有矿工一旦发现了一个区块,大家将根据每个人自己贡献的股份数量占比来分配区块中的货币。在PPLNS模式下,如果矿池单位时间内能发现很多区块,那么分红会非常多,如果矿池一天下来都没有能够发现区块,那么大家也就没有任何收益。同时,由于PPLNS下,具有一定的滞后惯性,挖矿收益会有一定的延迟。
PPS+: 可以理解为PPS+PPLNS结算的组合,PPS+模式在矿工中接受程度最高。每个区块的挖矿收益=爆块奖励(12.5个BTC)+本区块交易手续费(约为爆块奖励的1.9%),爆块奖励使用PPS方式结算保证基本收益,交易费用将根据PPLNS计算方法支付,提供激励。
SOLO: 矿机爆块才有收益,如果矿机爆块可获得该块扣除手续费的所有收益,如果矿机不爆块则没有收益。
Proportional: 每一轮奖励分发的过程中,矿工按照他们提交的份额获得区块的。份额收益取决于矿工在每一轮已经提交的份额,因此,hoppers将获得超额收益,而稳定的矿商却获得更少的收益。这是最糟糕的奖励制度,不能被使用。
Slush’s method: 每一份额都会标记一个分数,分数这取决于提交的时间(时间的指数函数),而块的奖励是按照他们的分数来分配的。从历史上看,这是第一个专门用来对抗跳跃的方法,尽管它是不完整的,一些跳跃仍然是可能的。这种方法完全可以被间歇的矿工使用,他们的长期平均回报不会受到影响。不过,间歇性矿工的差异将尤其严重。
Geometric method: 这是一种更精确地实现Slush’s method。随着更多份额的提交,份额的回报会呈指数级下降。经营者收取可变费用以维持稳定的历史。该方法的总方差很高,但其在经营者和矿工之间的分布是可调的。PPS是这种方法的一种特殊情况。
SMPPS: 奖励的发放与PPS类似,但是上限不超过矿池内的总额。
ESMPPS :在这种规则下,所有的矿商收到相同份额的奖励。
Double geometric method: 这是一种混合了geometric method 和 PPLNS,包括前者和后者的指数版本作为特殊情况。随着未来份额的数量和被发现的区块数量增加,份额会呈指数级衰减。成熟度、方差和操作风险是可调的。
联合挖矿: 联合挖矿是指在挖一种币的同时,会赠送另外一种币。
矿池安全:
DDoS攻击: 使用多个终端或大量命令同时访问矿池,导致矿池被占用或宕机。一旦矿池遭遇拒绝服务攻击,将与矿机断开连接,所有矿工的算力将浪费。
资管安全: 挖矿获得的比特币和其他币种要通过资管安全方案来保护,矿池的资管和交易所的资管一样,一般是中心化的,因此,安全问题是刚需。
结语:
目前,挖矿仍旧以POW共识算法的基础在发展着,因POW在密码学的设计上机制最为公平和安全,因此,矿业的挖矿机制暂时不会发生巨大的改变。
但POW在目前资源过剩的行业中造成的资源浪费问题较为严重,在熊市中,POW的难度也造成了行业发展的不利因素,在未来,新的共识挖矿的机制可能会产生应用,但在计算逻辑上极有可能不需要通过专业矿机的形式出现,例如DPOS矿机,本质上是一个钱包与权益分红机制的结合,在POW中计算是核心,通过这样的核心才保证了安全和公平。比特币出现已十年,在信仰者通过技术的加持后,POW对行业的贡献已经凸显,在未来,区块链技术大规模应用之时,矿业还会在POW的基础上出现创新和转机,敬请期待。