CryptoNight: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Godwin (talk | contribs)
Created page with "CryptoNight is the proof-of-work algorithm used in CryptoNote and Bytecoin (BCN). It is designed to be egalitarian, being suitable for ordinary PC CPUs, but n..."
 
Luke-jr (talk | contribs)
corrections
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
CryptoNight is the proof-of-work algorithm used in [[CryptoNote]] and [[Bytecoin|Bytecoin (BCN)]]. It is designed to be egalitarian, being suitable for ordinary PC CPUs, but not the special purpose devices for mining. Therefore, the currencies based on CryptoNight are CPU-mined only.
CryptoNight is a proof-of-work algorithm.
It is designed to be suitable for ordinary PC CPUs, but currently no special purpose devices for mining are available.
Therefore, CryptoNight can only be CPU-mined for the time being.
CryptoNight was originally implemented in the [[CryptoNote]] codebase.


== Principles ==
== Principles ==


CryptoNight relies on random access to the slow memory and emphasizes latency dependence. Each new block depends on all the previous blocks (unlike, for example, [[scrypt]]). The algorithm requires about 2 Mb per instance:
CryptoNight relies on random access to the slow memory and emphasizes latency dependence. Each new block depends on all the previous blocks (unlike, for example, [[scrypt proof of work|scrypt]]). The algorithm requires about 2 Mb per instance:


# It fits in the L3 cache (per core) of modern processors.
# It fits in the L3 cache (per core) of modern processors.
Line 10: Line 13:
# Significant expansion of the scratchpad would require an increase in iterations, which in turn implies an overall time increase. "Heavy" calls in a trustless p2p network may lead to serious vulnerabilities, because nodes are obliged to check every new block's proof-of-work. If a node spends a considerable amount of time on each hash evaluation, it can be easily DDoSed by a flood of fake objects with arbitrary work data (nonce values).
# Significant expansion of the scratchpad would require an increase in iterations, which in turn implies an overall time increase. "Heavy" calls in a trustless p2p network may lead to serious vulnerabilities, because nodes are obliged to check every new block's proof-of-work. If a node spends a considerable amount of time on each hash evaluation, it can be easily DDoSed by a flood of fake objects with arbitrary work data (nonce values).


== See Also ==
== External Links ==


* [[Bytecoin]]
* [https://cryptonote.org/inside.php#equal-proof-of-work CryptoNight on CryptoNote's website]
* [[CryptoNote]]
 
== External Links ==


* [[https://cryptonote.org/inside.php#equal-proof-of-work]]
[[Category:Digital currencies]]
[[Category:Technical]]

Latest revision as of 18:43, 19 June 2014

CryptoNight is a proof-of-work algorithm. It is designed to be suitable for ordinary PC CPUs, but currently no special purpose devices for mining are available. Therefore, CryptoNight can only be CPU-mined for the time being. CryptoNight was originally implemented in the CryptoNote codebase.

Principles

CryptoNight relies on random access to the slow memory and emphasizes latency dependence. Each new block depends on all the previous blocks (unlike, for example, scrypt). The algorithm requires about 2 Mb per instance:

  1. It fits in the L3 cache (per core) of modern processors.
  2. A megabyte of internal memory is almost unacceptable for the modern ASICs.
  3. GPUs may run hundreds of concurrent instances, but they are limited in other ways. GDDR5 memory is slower than the CPU L3 cache and remarkable for its bandwidth, not random access speed.
  4. Significant expansion of the scratchpad would require an increase in iterations, which in turn implies an overall time increase. "Heavy" calls in a trustless p2p network may lead to serious vulnerabilities, because nodes are obliged to check every new block's proof-of-work. If a node spends a considerable amount of time on each hash evaluation, it can be easily DDoSed by a flood of fake objects with arbitrary work data (nonce values).

External Links