-
Notifications
You must be signed in to change notification settings - Fork 3
/
X16S-whitepaper.rtf
121 lines (110 loc) · 5.14 KB
/
X16S-whitepaper.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 Menlo-Regular;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;}
\margl1440\margr1440\vieww12240\viewh15320\viewkind1
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs96 \cf0 \
\
\
X16S
\fs24 \
\
\fs36 Sixteen shuffled algorithms \
Designed for small miners
\fs24 \
\
Luke Pighetti\
March 22, 2018\
\
\
\page
\b\fs36 History
\b0\fs24 \
\
Previous to our efforts, the X16R (random) algorithm was launched on the Ravencoin network in late 2018. This new algorithm provided an innovative method of ASIC resistance. Since our new algorithm is building on the Ravencoin team's work, it's important to first understand how it works.\
\
X16R used algorithms from X15, added SHA512, and then randomized the order by referencing the last sixteen digits of the previous block hash.\
\
\
\pard\pardeftab720\sl280\partightenfactor0
\f1\fs28 \cf2 \expnd0\expndtw0\kerning0
0 blake 6 luffa c fugue\
1 bmw 7 cubehash d shabal\
2 groestl 8 shavite e whirlpool\
3 jh 9 simd f sha512\
4 keccak a echo\
5 skein b hamsi
\fs24 \
\f0 \cf0 \kerning1\expnd0\expndtw0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
Given the last sixteen digits of a previous block hash:\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0
\f1\fs28 \cf0 4f0da52072c99492
\f0\fs24 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
\
X16R would complete a single hash cycle in the order below.\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0
\f1\fs28 \cf0 4 keccak, f sha512, 0 blake, d shabal, \
a echo, 5 skein, 2 groestl, 0 blake, \
7 cubehash, 2 groestl, c fugue, 9 simd, \
9 simd, 4 keccak, 9 simd, 2 groestle
\f0\fs24 \cf2 \expnd0\expndtw0\kerning0
\
\pard\pardeftab720\sl280\partightenfactor0
\cf2 \
\
We notice that
\f1 groestl
\f0 and
\f1 simd
\f0 both repeat three times, weighting the hashrate and power consumption during this block 37% towards the characteristics of these two algorithms. \
\
In practice, a GPU miner on the X16R algorithm that normally demands 600W will fluctuate between ~450W and ~800W, changing every block. The hashrate will similarly fluctuate, making it difficult to tune a mining rig for efficiency or productivity. \
\
These power spikes reduce power-supply efficiency and lifespan. Our new algorithm, X16S, aims to solve these problems.\page
\b\fs36 Introducing X16S (shuffle)
\b0\fs24 \
\
The X16S (shuffle) algorithm uses the last sixteen digits of the previous block hash to reorder a list containing all sixteen algorithms. It employs the same individual algorithms found in X16R. \cf0 \kerning1\expnd0\expndtw0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
Given the last sixteen digits of a previous block hash:\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0
\f1\fs28 \cf0 4f0da52072c99492
\f0\fs24 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
\
X16S shuffles a list by using the value of each digit found within the last sixteen digits of the previous block hash to reference an index within a list containing all algorithms. \
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0
\f1\fs28 \cf0 0123456789abcdef\
4 4012356789abcdef\
f f4012356789abcde\
0 f4012356789abcde\
. . .\
9 0325a1c8f4679bde\
2 2035a1c8f4679bde\
\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 The final order would then be:\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0
\f1\fs28 \cf0 2 groestl, 0 blake, 3 jh, 5 skein, \
a echo, 1 bmw, c fugue, 8 shavite, \
f sha512, 4 keccak, 6 luffa, 7 cubehash, \
9 simd, b hamsi, d shabal, e whirlpool\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 \
X16S randomizes the order based on the previous block hash, but no algorithms are repeated or omitted. This provides all the benefits of X16R while vastly improving the hashrate and power consistency. This makes it much better for small miners, further promoting decentralization.\
\
Pigeoncoin is the proof-of-concept network for the X16S algorithm. We thank the Ravencoin team for their hard work and hope that our efforts are useful to them. Source code is open-source under the MIT license at https://github.com/pigeoncoin}