论文部分内容阅读
自2009年初开始Bitcoin的出现吸引了人们广泛的关注,与此同时分布式虚拟货币的受欢迎程度迅速增加。从那时起业内一直保持了活跃的Bitcoin挖矿状态,而在Bitcoin挖矿的硬件方面,大家犹如军备竞赛般地不断投入和改良。而这其中的重中之重就是散列率和采矿设备的能源消耗,这直接关系到Bitcoin挖矿的利润是否可观。而从计算机角度来看,Bitcoin挖矿实质上就是关于双重SHA256散列的计算问题,即多次输入一定的数据流反复混合求得最终结果。截至目前,在Bitcoin挖矿方法的优化领域,大量的研究致力于对SHA256散列标准实现的硬件优化,少有对Bitcoin特定SHA256挖掘算法的软件优化。本文主要研究Bitcoin采矿过程和SHA256散列算法的优化问题,以便提高挖掘效率。创新之处是从软件思路出发,提出并分析了改进Bitcoin双SHA256散列算法采矿协议的若干步骤,然后进行了部分代码测试。根据初步估算,在同样硬件条件下采用这些优化建议后,Bitcoin挖矿过程将仅需大约1.86倍,而不是正常情况下2倍的SHA256运行时间。另外我们也对Bitcoin挖矿的奖励方法提出了改进意见:由跳跃式的奖励模式改为线性奖励模式,长远来看这样会带来更好的公平性。另外为了提高加密运算的抗碰撞性及散列结果的雪崩效应,我们也对SHA256算法本身提出了一种改进方案。论文前半部分介绍了Bitcoin产生的历史背景和研究现状,阐述了Bitcoin和SHA256算法的概念、组成、功能设计,提出了未来改进思路;后半部分讨论Bitcoin块头散列算法及其含义,详细叙述我们对现有Bitcoin挖矿算法的优化和改进,即在特定阶段引入特定的优化方法以减少特定轮的调度损耗,但最终仍能实现与传统SHA256算法相同的计算结果。经过估算我们预期,如果采矿设备能实现上述优化方案,挖矿速度将有所提高,一般每次挖矿仅需大约1.86倍,而不是原来2倍的SHA256算法运行时间。考虑到矿机单位时间内需要完成巨大数量的SHA256计算,上述改进将带来非常可观的效益。