美文网首页区块链大学区块链研习社区块链研究
『学概念找员外』挖矿所需硬件(一)

『学概念找员外』挖矿所需硬件(一)

作者: 刘员外__ | 来源:发表于2019-04-30 09:40 被阅读5次

我们都知道矿工所要做的计算是十分困难的,但是究竟为何如此困难,可能还是有很多人不知道,所以接下来员外跟大伙谈一下为什么计算如此困难,以及看一看矿工用来进行这些计算所用到的硬件设备。

矿工计算难度的核心在于,对SHA-256哈希函数的运算。SHA-256是一个通用的密码学哈希函数,它是在2001年被标准化的密码学哈希函数大家族里的一员。SHA是安全哈希算法(Secure Hash Algorithm)的简称。SHA-256是一个不错的选择,因为它是比特币被发明时可用的密码学哈希函数中保密性最强的。虽然它的安全性有可能随着时间推移而慢慢降低,但至少现在它还是很安全的。SHA-256的设计来自美国国家安全局(NSA),这也导致了一些阴谋论的诞生,但是并不影响它是一个很强的哈希函数的事实。

SHA家族

SHA-256名称中的“256”代表它有256位的状态和输出,技术上来说,SHA-256是SHA-2函数家族中几个密切相关的函数成员之一,包括SHA-512(它有更大的状态位,所以也更加安全)。还有一个是SHA-1, 这是一个有160位输出的早期函数,虽然目前认为安全性不高,但是同样应该在比特币脚本里。

整个SHA-2家族,包括SHA-256在密码学上的安全性是得到公认的,而下一代产品SHA-3家族已经从一个公开的竞赛(由美国国家标准与技术研究所举办)中诞生了。SHA-3目前正在进行最后阶段的标准化测试,但在比特币出现的时候,它还没有出世。

近距离了解SHA-256

SHA-256是一个256位的状态机。这256个状态被分割成8个32位的字段,这样它可以最优化地运行在32位的硬件上。每一轮运算选择一定数量的字段——有些会进行一些小的逐位调整——最终进行32位模加法运算(modular addition),然后运算结果被移到状态最左的第一个字段,这样使得整个状态进行向右位移。这种设计的思路来自简单位的线性反馈移位寄存器(Linear Feedback Shift Registers,简称LFSR)。

下图展示了一轮SHA-256的压缩函数运算,一个完整的SHA-256运算要做64次这样的迭代运算,在每一轮运算中,会使用稍微不同的常数,所以所有的迭代运算都是不一样的。矿工的任务就是尽可能快地进行这种函数运算。矿工们互相比拼运算速度,算得越快收益越高。为了实现尽可能快的速度,矿工需要进行32位字段操控,32位模加法运算,同时做按位逻辑运算。

我们很快就会看到,在比特币机制下,为了得到供其他节点使用的哈希函数,实际上要求两轮SHA-256运算。这是比特币的奇怪之处,进行两次运算的原因并不清楚,但这就是比特币的个性,作为比特币矿工只能服从。

相关文章

网友评论

    本文标题:『学概念找员外』挖矿所需硬件(一)

    本文链接:https://www.haomeiwen.com/subject/ogdkyqtx.html