兄弟連區塊鏈入門教程以太坊原始碼分析hashimoto原始碼分析(一)
兄弟連區塊鏈入門教程 以太坊原始碼分析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 hashbased 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 scryptbased 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