Skip to main content
 Web开发网 » 操作系统 » linux系统

Go语言+区块链入门教程以太坊源码分析hashimoto源码分析(一

2021年10月14日5940百度已收录

  Go语言+区块链入门教程以太坊源码分析hashimoto源码分析(一),2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。

  Hashimoto :I/O bound proof of work

  Abstract: Using a cryptographic hash function not as a proofofwork by itself, but

  rather as a generator of pointers to a shared data set, allows for an I/O bound

  proof of work. This method of proof of work is difficult to optimize via ASIC

  design, and difficult to outsource to nodes without the full data set. The name is

  based on the three operations which comprise the algorithm: hash, shift, and

  modulo.

  摘要:使用密码散列函数本身并不作为工作的证明,

  而是作为指向共享数据集的指针生成器,允许I / O绑定

  工作证明。 这种工作证明方法很难通过ASIC设计来优化,并且在没有完整数据集的情况下很难外包给节点。 这个名字是基于构成算法的三个操作:散列,移位和

  模。

  The need for proofs which are difficult to outsource and optimize

  工作量证明难以外包和优化的需求

  A common challenge in cryptocurrency development is maintaining decentralization ofthe

  network. The use ofproofofwork to achieve decentralized consensus has been most notably

  demonstrated by Bitcoin, which uses partial collisions with zero ofsha256, similar to hashcash. As

  Bitcoin’s popularity has grown, dedicated hardware (currently application specific integrated circuits, or

  ASICs) has been produced to rapidly iterate the hash­based proofofwork function. Newer projects

  similar to Bitcoin often use different algorithms for proofofwork, and often with the goal ofASIC

  resistance. For algorithms such as Bitcoin’s, the improvement factor ofASICs means that commodity

  computer hardware can no longer be effectively used, potentially limiting adoption.

  加密货币发展的一项挑战就是如何维持去中心化的网络结构。 正如比特币采用sha256哈希谜题的工作量证明方式来达到去中心化的一致性。 随着比特币的流行,专用硬件(目前的专用集成电路,或者是ASICs)已经被用来快速的执行基于hash方式的工作量证明函数。类似比特币的新项目通常使用不同的工作量证明算法,而且通常都有抵抗ASICs的目标。对于诸如比特币之类的算法,ASIC的对于性能的提升意味着普通的商业计算机硬件不再有效使用,可能会被限制采用。

  Proofofwork can also be “outsourced”, or performed by a dedicated machine (a “miner”)

  without knowledge ofwhat is being verified. This is often the case in Bitcoin’s “mining pools”. It is also

  beneficial for a proofofwork algorithm to be difficult to outsource, in order to promote decentralization

  and encourage all nodes participating in the proofofwork process to also verify transactions. With these

  goals in mind, we present Hashimoto, an I/O bound proofofwork algorithm we believe to be resistant to

  both ASIC design and outsourcing.

  工作量证明同样能够被外包出去,或者使用专用的机器(矿机)来执行工作量证明,而这些机器对于验证的内容并不清楚。比特币的“矿池”通常就是这种情况。如果工作量证明算法很难外包,以促进去中心化

  并鼓励参与证明过程的所有节点也验证交易。为了达到这个目标,我们设计了hashimoti, 一个基于I/O 带宽的工作量证明算法,我们认为这个算法可以抵抗ASICs,同时也难以外包。

  Initial attempts at "ASIC resistance" involved changing Bitcoin's sha256 algorithm for a different,

  more memory intensive algorithm, Percival's "scrypt" password based key derivation function1. Many

  implementations set the scrypt arguments to low memory requirements, defeating much ofthe purpose of

  the key derivation algorithm. While changing to a new algorithm, coupled with the relative obscurity of the

  various scrypt­based cryptocurrencies allowed for a delay, scrypt optimized ASICs are now available.

  Similar attempts at variations or multiple heterogeneous hash functions can at best only delay ASIC

  implementations.

  “ASIC抗性”的初始尝试包括改变比特币的sha256算法,用不同的,更多的内存密集型算法,Percival's "scrypt" password based key derivation function。许多实现都将脚本参数设置为低内存要求,这大大破坏了密钥派生算法的目的。在改用新算法的同时,再加上各种以scrypt为基础的加密货币的相对朦胧可能导致延迟,而且scrypt优化的ASIC现在已经上市。类似的变化尝试或多个异构散列函数最多只能延迟ASIC实现。

  Leveraging shared data sets to create I/O bound proofs

  利用共享数据集创建I / O限制证明

      "A supercomputer is a device for turning compute-bound problems into I/O-bound problems."

      -Ken Batcher

评论列表暂无评论
发表评论
微信