区块链世界里,有些非常有意思的比喻,像挖金子一样“挖”数字货币叫做“挖矿”,挖数字货币的人被称为“矿工”,而用于“挖”数字货币的电脑被称为“矿机”。
比特币挖矿原理
比特币的区块头,共含6个字段,如下:
int32_tnVersion,4字节,版本号,一般固定不变,仅在升级时改变。
uint256hashPrevBlock,32字节,前一个区块的区块头哈希,由前一个区块决定。
uint256hashMerkleRoot,32字节,包含进区块的所有交易构造的Merkle根,调整区块中的交易次序、增删交易、或修改Coinbase交易时改变。
uint32_tnTime,4字节,时间戳,后一个区块时间略早于前一个区块是被允许的,但必须在合理的时间区间,一般会直接使用机器当前时间戳。
uint32_tnBits,4字节,挖矿难度,由全网决定,每2016个区块按算法重新调整。
万向区块链与新加坡IMDA合作探索跨境贸易金融解决方案:万向区块链与新加坡资讯通信媒体发展管理局(Info-communications Media Development Authority,IMDA)合作探索基于区块链技术的跨境贸易金融解决方案,万向区块链供应链金融服务平台已与IMDA发布的数字贸易平台TradeTrust框架进行集成,共同推动区块链在跨境贸易金融中的应用。[2021/1/6 16:34:36]
uint32_tnNonce,4字节,随机数,提供2^32种取值。即4,294,967,296。
其中nVersion、hashPrevBlock、nBits是固定的,其他hashMerkleRoot、nTime、nNonce为可变的。比特币挖矿原理即,不断变更区块头中的可变值,使得对区块头做双重SHA256哈希,结果小于挖矿难度目标值。即:SHA256D(BlockHeader)<F(nBits)
其中SHA256D(BlockHeader)即对区块头做双重SHA256哈希,F(nBits)即按nBits计算的难度目标值。
动态 | 火币中国助力重庆大渡口区实现区块链产业升级:1月10日,重庆市大渡口区组织了2020年第1次招商投资促进专题培训,火币中国产业赋能中心负责人范进受邀开展了以“区块链技术应用与服务”为主题的专题培训。培训内容主要从区块链认知、全球区块链产业格局和区块链赋能实体经济三个板块展开,培训对象包括区发改委、区经济信息委和区金融办等十余个单位的相关领导和工作人员。
重庆市大渡口区近年来积极探索传统产业转型升级,以智能硬件、大数据应用、人工智能、软件服务、数字内容等为重点建设领域,形成了大数据智能化产业,生态环保产业,大健康生物医药产业,文化休闲旅游产业为主的产业体系。火币中国产业赋能中心致力于推动区块链技术持续赋能实体产业,在金融、能源、政务和知识产权等方面早有落地案例。
范进表示:“区块链技术作为一种新兴技术,在大渡口区产业升级和政务转型中能起到变革性的作用,火币中国在区块链技术的产业落地方面具有丰富的经验,二者的合作将推动应用的持续落地,促进当地社会服务水平的提升和产业转型升级。”[2020/1/10]
算力的表示
动态 | FCoin获金色财经2019区块链百强企业:2019年12月27日,由金色财经主办的“与时共创”颁奖盛典在京举行。FCoin作为区块链方面的代表,荣获金色财经颁发的“2019区块链百强企业”奖项。
FCoin是一家社区型数字货币交易所,自2018年5月创建起,FCoin就秉承“让交易者成为交易平台真正主人”的初心,践行可持续挖矿机制,把平台的所有权逐渐让渡给交易者,并将80%的收入分配给FT持有者的原则,坚持践行社区自治,逐渐崛起成为社区化交易平台的旗手,并以此为基础拓展整个通证经济生态。
据了解,对于本次各个企业的评选,金色财经“与时共创”活动邀请到40余名资深行业专家作为专业评选团,结合网络投票进行综合评审,通过不同的奖项,对各个企业对实现赋能实体创新引领行业未来发展的努力进行表彰。点击链接查看获奖详情。[2019/12/27]
1H/S=每秒一次运算
1KH/S=1000H/S,即每秒1千次运算
1MH/S=1000KH/S,即每秒100万次运算
声音 | 渣打银行:将继续增加区块链贸易等数码化投资:据香港明报3月4日报道,渣打香港区行政总裁禤惠仪表示,集团在持续投资在数码化上,去年在数码化的投资按年增加两成,主要在改善开户流程、加强整体系统、聊天机器人(chatbot)及区块链贸易融资等项目上,当中还未计算筹备中的虚拟银行。若今年获发虚拟银行牌照,数码化投资额增长会比去年更高。她表示,虚拟银行属于一项中线投资项目,希望在品牌效应及营运模式上,都有与传统银行不同的体验,再倒过来促使传统银行业加强新思维。[2019/3/4]
1GH/S=1000MH/S,即每秒10亿次运算
1TH/S=1000GH/S,即每秒1万亿次运算
1PH/S=1000TH/S,即每秒1000万亿次运算
1EH/S=1000PH/S,即每秒100万万亿次运算
CPU挖矿原理
CPU挖矿,即利用RPC接口setgenerate控制挖矿。
迅雷集团CEO陈磊:区块链离实现大众化还有很长的路要走:迅雷集团CEO陈磊日前在接受新浪财经的采访时,发表了自己对于区块链的一系列观点,在谈到区块链的商业化落地时,陈磊表示,目前已有商用的区块链技术,但是距离区块链大众化还有很长的路要走。[2018/4/4]
控制台输入setgeneratetrue2,即开始挖矿,后边的数字表示代表的挖矿线程数,当然前提先完成同步数据。
由于单CPU运算SHA256D算力约为2MH/S,因此nNonce提供的4字节搜索空间完全够用,即支持4G种取值。
GPU挖矿原理
GPU运算SHA256D算力约为200M-1G,nNonce提供4G搜索空间,如果仅调整nNonce取值,可以支持4秒左右。因此可以调整nTime,每调整一次nTime,可以继续挖矿4秒。
GPU挖矿使用GETWORK协议,即挖矿程序和节点分离,也即挖矿部件与区块链数据分离。GPU挖矿时代,使用GETWORK协议,使得挖矿程序与节点交互。
核心思路为:节点构造区块,将区块头数据交给挖矿程序,挖矿程序遍历nNonce进行挖矿。验证合格交付给节点,节点提取nNonce和nTime验证区块,如果符合要求即向全网广播。遍历结束将调用GETWORK,节点构造新区块,然后重复上述过程。
GPU经典挖矿驱动为cgminer,源码为https://github.com/ckolivas/cgminer。
GPU挖矿缺陷:GETWORK协议给挖矿程序提供的搜索空间为4G,结束后需再次调用GETWORKRPC接口。矿机出现后,矿机算力已达10TH/S,继续使用GETWORK协议将频繁调用RPC接口,显然不太合适。因此需转向更高效的getblocktemplate协议。
GPU挖矿即可以使用显卡进行挖矿,并不是所有的显卡都适合挖矿,GPU对于算力要求比较高,对于带宽、缓存等都有要求,一般的显卡并不能进行挖矿。
ASIC矿机
FPGA,Field-ProgrammableGateArray,译为现场可编程门阵列。
是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。能用FPGA实现各种AISC、DSP和单片机。FPGA作为挖矿硬件,对于ASIC来说属于必然的过度技术。
ASIC,ApplicationSpecificIntegratedCircuits,即专用集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。
目前市面上来说,主要有蚂蚁矿机、阿瓦隆矿机、神马矿机等专业ASIC矿机。
矿池挖矿原理
矿工通过getblocktemplate协议与节点交互,或矿池采用stratum协议与矿工交互,即为矿池的两种典型搭建模式。
与getwork相比,getblocktemplate协议让矿工自行构造区块,因此使得节点与挖矿完全分离。矿工拿到一系列数据后,开始挖矿:
1、构建coinbase交易。
2、coinbase交易放在交易列表之前,构建hashMerkleRoot。因coinbase、以及交易次序均可调整,因此hashMerkleRoot空间可以认为无限大。因此getblocktemplate协议也使矿工获得了巨大的搜索空间。
3、构建区块头。
4、挖矿,即矿工可以在nNonce、nTime、hashMerkleRoot提供的搜索空间中涉及任意的挖矿策略。
5、上交数据,如果挖矿成功即提交给节点,由节点验证并广播。
getblocktemplate协议的问题:
1、矿工通过HTTP方式调用RPC接口向节点申请挖矿数据,因此网络中最新区块变动无法告知矿工,造成算力浪费。
2、每次调用getblocktemplate,节点都会返回1.5M左右数据,因频繁交互将因此增加大量成本。Stratum协议将解决上述问题。
Stratum协议
Stratum协议,采用主动分配任务的方式,也即矿池任何时候都可以给矿工分派任务。对于矿工,如收到新任务,将无条件转向新任务。另外矿工也可以向矿池申请新任务。
最核心问题为,如何使得矿工获得更大的搜索空间。如果仅矿工仅可改变nNonce和nTime,交互数据少但搜索空间不足。如果允许矿工构造coinbase,搜索空间大但代价是需要将所有交易交给矿工,因此对矿池带宽要求较高。
Stratum协议巧妙解决了这个问题。即:基于Merkler树的原理,无需将全部交易发给矿工,只需将构造hashMerkleroot所需的少数几个节点交给矿工即可。同时将构造coinbase所需信息交给矿工,矿工可基于少数信息构造hashMerkleroot。照此方式,如果包含N笔交易,仅需将log2(N)个hash值交给矿工。因此可大大降低交互的数据量。
矿池的核心即给矿工分派任务,统计工作量并分发收益。矿池可以将区块难度分成更小的任务发给矿工,矿工完成任务提交矿池。如果全网区块难度要求前70位为0,那么矿池可以给矿工分派难度为前30位0的任务,矿池再判断是否碰巧前70位都为0。
总体来说,CPU矿机以及ASIC矿机只能针对性的挖某一两种币,GPU矿机可以挖多种币,搭配不同的程序就可以挖不同的币,不过GPU矿机一般来说与同一种币的ASIC矿机相比,效率没有它高,可以说各有优劣。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。