header
DarkNetCoin is a new cryptocurrency based on CryptoNote technology. DarkNetCoin‘s major benefit is to provide much stronger privacy to both the senders and receivers of transactions. It does so by ensuring that:

DarkNetCoin improves upon the base CryptoNote technology in several ways that strengthen its anonymity and reduce the size of the global ledger of all transactions, called the “blockchain”. It provides an aliasing facility built in to the blockchain so that people or programs can send money to, for example, “@zoidberg” instead of a long address. And it has an easy-to-use
GUI wallet that ships in source and binary as an official part of the DarkNetCoin distribution.

Main Features

The main ideas of DarkNetCoin transaction generation are explained in the following graph:

transaction_gen
Transaction generation

This picture shows the transaction’s creation, the cryptographic protocol which is the basis for the whole technology. More details on theory page

Currency Specification

Algorithm: Wild Keccak
Block Time: 60 seconds
Difficulty: Retarget each block
Block Reward: (2^64 – 1 – A)/2^18/10^10 ,Where ‘A’ is amount of already generated coins.
Total Coins: 1.8446 billion DNC

Reward Emissions for 12 months:

Time, Block NO, Generated Coins, Generated Coins/Total Coins
Total Coins = 1844674407.370955
1st Block , 00000000 , 14073.7488 , 0.00
1st Day , 00001440 , 20169275.7807 , 0.01
1 Month(s) , 00043200 , 517961932.9580 , 0.28
2 Month(s) , 00086400 , 890479232.4214 , 0.48
3 Month(s) , 00129600 , 1158400290.3662 , 0.63
4 Month(s) , 00172800 , 1351093873.7075 , 0.73
5 Month(s) , 00216000 , 1489682521.2209 , 0.81
6 Month(s) , 00259200 , 1589357937.9449 , 0.86
7 Month(s) , 00302400 , 1661046267.9587 , 0.90
8 Month(s) , 00345600 , 1712605788.1401 , 0.93
9 Month(s) , 00388800 , 1749688310.7880 , 0.95
10 Month(s) , 00432000 , 1776358719.6883 , 0.96
11 Month(s) , 00475200 , 1795540551.4547 , 0.97
12 Month(s) , 00518400 , 1809336465.5439 , 0.98

Block reward depends of block cumulative size (includes transaction’s blob sizes) and could be less than nominal.

Block Reward

Reward for block is calculated according to the following rules:

base_reward=(EMISSION_SUPPLY - already_generated_coins) >> EMISSION_CURVE_CHARACTER;
if(block_cumulative_size <= median)
  reward = base_reward;
else
  reward = (base_reward*(block_cumulative_size * (2 * median - block_cumulative_size)))/(median2)

Where:

If block cumulative size more than two medians – block is considered as wrong. This approach is used to make self-regulated fair model of transaction size/fee ration.

reward

PoW Hash

Actually this is a keccak hybrid(that we called wild keccak), that use external scratchpad. After each keccack round, psudo-randomly addressed[state vector used as addresses] data is taken from scratchpad and xored with state. Calculating each block PoW usualy hits about 1100 randomly addressed reading of blocks by 32 bytes.

dnc_hash

We used “performance_tests” with different scratchpad size to find out memory hardness:

Warm up: 2161 ms
test_wild_keccak<400> - OK:
loop count:    100000
elapsed:       3020 ms
time per call: 0 ms/call

Warm up: 2158 ms
test_wild_keccak<40000> - OK:
loop count:    100000
elapsed:       3060 ms
time per call: 0 ms/call

Warm up: 2168 ms
test_wild_keccak<4000000> - OK:
loop count:    100000
elapsed:       3484 ms
time per call: 0 ms/call

Warm up: 2156 ms
test_wild_keccak<40000000> - OK:
loop count:    100000
elapsed:       8119 ms
time per call: 0 ms/call
1JjGoHdzP5HvtyEZ6MN9LXbh8uTDVgrPY9

Warm up: 2150 ms
test_wild_keccak<100000000> - OK:
loop count:    100000
elapsed:       8574 ms
time per call: 0 ms/call

As you can see, working on small amount of memory 100000 hash operations takes 3020 ms, meanwhile work on 100Mb scratchpad with the same operations count takes 8574 ms. Such difference(caused by the cache memory exhaustion) points to real memory hardness we guess.