From 8974cbc12cba18475ab4ed1d5784a1d639ccb268 Mon Sep 17 00:00:00 2001 From: Yeastplume Date: Mon, 3 Jul 2017 16:39:20 +0100 Subject: [PATCH] POW Doc updates (#73) * Clarifications to SHA3 hash and addition of progress-freeness concept in Pooling Capacity * Update to cuckoo cycle details based on John Tromp's comments. * A couple of typos * More clarifications based on John Tromp's feedback --- doc/pow/images/cuckoo_base_numbered.png | Bin 30151 -> 30247 bytes .../images/cuckoo_base_numbered_few_edges.png | Bin 13249 -> 13558 bytes .../cuckoo_base_numbered_few_edges_cycle.png | Bin 13309 -> 14840 bytes .../cuckoo_base_numbered_many_edges.png | Bin 15106 -> 33678 bytes .../images/cuckoo_base_numbered_minimal.png | Bin 12305 -> 12157 bytes doc/pow/pow.md | 106 ++++++++++-------- 6 files changed, 59 insertions(+), 47 deletions(-) diff --git a/doc/pow/images/cuckoo_base_numbered.png b/doc/pow/images/cuckoo_base_numbered.png index e74954330c1313aca6fe6c949df981a658920b8f..2a985b68901227d93a1d49f23cdb5e5aec2cb103 100644 GIT binary patch literal 30247 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

GL|2CD~MukcCMgqXh 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 literal 30151 zcmaHT1yodR8!aFrok|Lblr$)zw4g(GcQ-?KD;+~O0wUer-AH$LcXxTu@cs9%`~7#V zvtSnI%p1>J``Kr20;MH|(2xm{VPIg;M1;S{!oa{s1D|&h5rCiP1EgEPAJ9w$1*Js< z1>Z>9SQ?s`8^FMPgg_KDj9)9frHc{mvVd+_6j`iC^BuhMQTyGbuQnybCuyt}}dzdL8hD?fAfyF;@Vq!J2-1E zf$KwpNnPop!J*q(@==QGVXe{8^X=L^<=BXqu(*ju40!KXZT-Unc<91?{D0yhq$$Y| z(`n?2!?8=DI994H3AVXv%}gvjrWRI%h+n<2Ce+ieOqug4N=@83{OalM!(7sFvPLdE7v-mpBL5nqt&6Knoafe zlncHkuud)Uq}%2WESGY+wXw^V*yrl}<^Hz8S@_c3CiT<7j@$N`Pb|ZW`^>m#?^hk( z0iJ1~&zD=PkEQdXn9m4I2{%MM86(rt)tJ^az**ZvVyJi=6KZuaiqU((&1 zW-NQIE1gu^bgTB)mx;IUn=9KoDiDGZ)^LwU5;_AriO;N0)|D_o9j{6bU3DUkc8>&;2Xt8>!vjJ#;k=xc9mbxDUFwYQRNs^(C)0tuR`V+G=%O znw}A=F1g}5<5wH)#F`a|l98LgBEhw3V_%Wcd4Eccil`?bGyN^LaPJN`l_`aX7+sHa zGy6`xiBSQsQINXPgiULH&?ucKNFsrL(lRF;W|{CYW+u zayYrAnv0A1$7TohQAo$G}lz6#8+8+S0^#vVX_88d?Dp``YVUH@OA=Q16Sy z=O52}X3OSUi6eyFP?pE9_Ai@n-#d9cjPJ~M*cNOtcvW(6B{we}*-i5D|H+3jf_TFI zOm$O`)_$~vf#HV{`SMxb3HBfvWu8~?=1*L2?k{1{b?No!jMu-s(E})GBamfizkL0Q z7=xG`ApJ!IdFPn?>stZO8045Q!oC7_jP`%7%9n~B1{;S+3>^#|j5Z(p_b#~WuMS@q z?LE{Q9WKly%si)Z?!g!Kg8%!AKdR+>;t4+Ff86$hM~2&%Ud8+NKkl~#z;H!}Sh2iE z3WxdIi!1t?_zf)f-(JjbThJ-V)kDPLDER;G0`7Xe`1@vi!G|DnkH2&9iojFWh9%FZ ziVBo*165J;L-q;YzxbQ#5Ci#HiA5!nv9pN36rCc8bV!?9cTOtsrdb6Jgi<|9c*IY( zX1O`3r^2v}8g<71SA#qd>BE;$5xDe)8cj~Yo8bmG5jH>6{ny#`Rn~@ISINg@tCpE) z*v5pJKD*k&vVs;o-WkG=bCsnozNab2%UvYpMYvP0D~|o<+c{zh8mg9@>B}ZixrL4u zv8ZV#!QLt-Jdwbou3rl^@Ov`ncNJMJnu=mnGYbi6P+`8C?h0;V zvc!GTK5L=3#7&4ZcRV`fH&ViJ=>x(wF&x@p;J09U-Fsh*L5M=LKuKDt#Jg^RWt{J5 zY1?Uf-Qf*>^kUst%B!fq!98WVE0%iMy>bKH=N$bCym@HzsX{HU)Rb9gubW;>AUCXR~1S*b6+< zb?>}C+=3Gf^7Z$0@2h>JReVgR)W5frU@^Y4FIf7HX^tOTr(!~OjMR$o!BnS%1R53J z&r^_Bf;L2D^c;3=J(TbkWYd^_gcpiF&?xTi__*5%TL{J)h`Cn)y=9&J>a1l|I=j%l zr0fovIOHXq$PDcKqr6|BXYNXmyQEh-rWjUqo@RqMQN)`y>o|De9=B0QyBbH7SDjyV`PTjoDFD{)eOczo6p?n|O zImkZgKGeDDO7Czv(aNfk!wr-gT^xL!R)#pih}VC&j)fAYyuY9RSt(K3Ev$2paj^(! zDfyRrgac`0EU$q$MmEouw`{4hXW2V<$b5Qx!g;rm-!T+Y$A@UH=RJ`o2UA3d3-%f|0rfI z3o77U*djk>E_>&RO!3}-4JfqeG|s5+G>d^EC5b-8e)puge&fOlULhCQzYw_>8z8-oNtDXH zAzy0T#f3iCb>3>`KU(01v>`^2-pn#f-*9Ixcg*pe)UF~JTIbXVXfuA=E9f6};{=m4oP1#DBMY+MKROxCIztw#XkF1y0gGM)gf zy&1h{gZ;bA+fF$;r7;isrfyv$9HXSQ(p&U;ELoH5I@XYpC4BJVXxf2W|6`ZAYZBFj zEz2E2`GErQEN}KE^}Wc2BP}%E=|!5E>qKs!g)4ajJ)WLu(=tj*Og*NaaAB*k)Z~oz za}dbJMkS`ULr9zB@X;(~2^i3fBkY3CtGaQ}Y0!Yd|56^UMTZXXj8IQcAeh$pwG!fE^>u?XwBkAua1n zf)uMsq5DUk-u9g`J-u$}Shi-`2gC*5)LG%hQs#h8$(3CjqTr*_=^a_3-*k#gIvi~U z>d&4E6>Hoshsp&J^b`=oObfJ);xY70b_FmH(xckf zE1v=-WmQ01)P!a$92QDJe*+!59=Og`TXnHY?{3DyYA%3q)rGYVW; zIx?0A3l; zA>eeM#?-!>l4SC62m|6GGa+EANcsNA7V$y^+I(FXqDYV~K_xc!#T+JUI_P4yX9SZK zTTNeVz^CJU(qB>WsqCLcQoQi{v{8iiSc$xRexNa2D`UeLp|LHNO5H|NS%cf_ctQ!a zHYwovEkZ1LFry|As275?P30^Iq)@_Qmyorvmn5g`E#)o(#pP+_WR({^H>Z8kohw6> zylE?FDqs0MQ6aFxlSGitbi7F9VjrI{5Dkb%g=MY`S1RUUXs!(6;}`y_>hg^@6|SKKIAL8v-{=ZfW?|zap?9Ymt|Rt0Eya9)ttq^a~^)V9DhN zQs~Q3i4lGPTKx-jktiP)nj0}KQ0U{c=zuzq6OqD>ZH5ZTFrShAKsM53pQ})ePKi9h zC_SYT2ge@s6_VJqO-w34&Lf5&3@_Xg4Kv3lr+c=FF>@%Be$1AqDm;+)WtI;^CA9dFDNqfrRyy$_Aq4&f^?j` zJGT;=uKVFxsBAhr=falXaLycZ7XZJu1-%ZmNKIAP_5X@!s;~H0IEtTwUf`eTnYGsH z_mTvT?_>&U1l&|r!y)XAE74d?%Ln?U~qf{WZ3;@P|qI`;n(+5;n z#Y_Us!cVYO-!}WlUkX-y8yBXuXyWq$Z7Q<(GQoj}MGMp|431@Ha%8TbmX*TW2j06J zDP1HsY-|U$RKgjRu5n7@U0s3g-a|cR&Tt@u#Cx za>*qm!VCWt^+MB*30N?iLntk>GnE(0{KG;@7{~?;^E5a&g1DJX_HNu5@lFK+sh<}1 zQL2TTu9`x82nX zmlG3iReq61z-E&USzi?-|E&g%{WKU{F?uNdOWENqTV@qjaUwNa9=7$_OeV;JUYGG7 z@Nqc~rkG~_^un6qGqnCf-+lmR^Ha94OK0jdFI_o`0#k1B%O(JRe`0Hs=ZsoaFIBS? zlzS0Q$dvMJ%96X9#XtK`RLxHcr%Ei^kh|-x$Oj2dqBG4Hs+SVSBfOxAGXc6(2aM95 z;W)KlA23Q6GC#Q>Vvss9JyZa8Ho;FLTvAS@3>pBzm{qyr*^^CgVrNd)f)?l@p?yff z>h=f$F7DrfH8B!YogOmdln8!MQ zaAoprCT%^G&lZ@2z&yi`hhchm4|im%BU2ebs1R85urEMfjmyFT+>C*lZQcw_L!7uN0O&0ves zuVjQb-)}H|O~G*A7AzOyUd56;)u;MvjyxhAC${nFMQhtW%@JdK6cuEoekx$rw{KgV za&=;fwi~y}3jch=>_C2fmimW#&UT2WyqoXwq;simuPCXo`SErpo#Y~C^$fUszi*~> zr)pXG_;BQDL|0HEaJenS$2sS+SLnL6Mw`a!M|A@!j0h~G={QK2LG~E?&rB&GnST#4 zQ~HN3%j$~OpIaq|DGf&h&)c!oGHUJ>q?t%DMuH&M4<;`_J@X!S2Q!u)XG!L@8?khp zWVq_#4@tbusNJNVZdFSjcLsm1yZKCmYtII`KHO`#>}1X`*6&BU@9U9%AgQ!l@x?Q| zT6DDpKXQLW{YGTjP>S#FH#)3RbKHi4A$Q!8S+ZuSygYj1UuY2^L7qy^VV^Jq4YP!^ zxELJ8u;iO6_L7C9% ze5;T~v-|3CIB<{|6;>T__1p6*RBNnb9-9xigk%fK3JJA2T8yVTvj%4>76sy`h$`t+ zd{(x1<*5(!y-Vr5glyJ`D^AAtZ{VrYrnPOGQAmq`Ik!Ji>|tNEnP`UFC!u{;)6G*< z^Jl@PkD=VseNPQEb)IIGJBuYt6ySlt9ngF^YgTSnR7+L==kYFolhEBEIaOu_Ey8}T z<@spm=#{QtZHLw;eN4`y+#?Y-cZ+~U#<-MC3!j&t@dXKp7jb@uv;l9w#DYDIc z3ly)a|7~z$$o#c9-TycR4+KFjYKTcwZr0E=qyr0nBrPU@GS6?jZPc8 zJ9#+mB%Wnu@}5S7u}T;cFG0U;_RLj(n9W9RpzNqef(>Koj=di|dV8L4`5+6niSSQM z&3BjE%sSDSF-gR*un6P1oZipodob~nDgSdbw`E63gIy!(p`3a8cP0Kj<~FU*@mLMx zmX;+I)vY_<^X`iCez%mozc*QzPlK-?D27rzY$e}XJTrINKb$hFRJITbxf#;la zQ#;FHU_rPPlU#T6(_)=GhB`;6r1F5Nxi)z{JQh#Cj4QD?njO?@{d3DLM4F#zSl1wU{6|4kEW_Q#N#O$Af1)6O64{z z(Xoh{^c`{*8l^bGPu0ykRk%u%;I(P2RGzx2#GO3LKtJo!Bv0<(IT#gZZuv*ezlt8-M`DQUb&V_y&aF-TXa2INZ3#@N>=FdAK<%g z#n{aF?Yfw~`bP6Ys=8_L_k267#%0|Jcf4`T26SVbhz-OowR_jk!Dt_xcn#OkQS`u>5v+vk^w?L6DW$wen>a?)rDBTaqFXirPd zg?O`-z8A8hsf>y*sONc}PHLc}ZvFMBHibIbPWJGwAw10E_bJgj{ZU$sU?=X_b9Ao# z67w`)++K9f?Vqdon@(HAQYyRxdbEsu(^xP@Nb!+p5KA|`!M*iTtK*&QRL%bKAui^i zZG6dqi&*?yoEFS2B8!@|ewd3iI`fiN1UVVzSBC^cPF>?H9*F)eq`+}Ve-tvnd_^dS zZ=@sfv2dmOnJ|SM&z&SnOQI6?;#tbo%ix^8ttv2YTh&2Dwe3wOh~?|^xgyLUkc5M- z#-{{?kUekU^wVbi+uPO`q(2U7)cZcVT-8Sf&)W-*vpnKH8cb+f(c;Avn*W#M*4a{h^+5EMx`?k`mx`@y8NiW?; zr*GpO!(+K+JesPMjbfc5ee1lhuenwO$Tu@u#~$3kKA$|}sow5<6fi+&XL?Zuth2~Z zeuK!K=Jm6DOb8eKFE4iyqH5}#cROr(CO$N4GhOs@S=fu?^Mo?GE;#9ZTGw0ORBn>* zJ7{l`N;IvlO4S%=!gHR!)k)NZwr}iIqoZ4%BP7%da@{^YeE*dgqOxWAgJDhA)P1TV zyekBObHv|0m6dUxpd5XjV?MJe-j7dl*r1qbD3i44(DCer3Z>b#^+t?RRbn6|!zr70 zAFEM{v!R*W67^llQB+q9X;B=8b#f{lU()H0E@?kv=DalZXZO`$>L90bHMJHT5Iv#e zm;}eGk@0izj+0~_Gf)e$_WD*JNH_ zcTWtZl|Fk|9{YX0plQm#Pmtn)4V^F8dVeW{chUEiM9(&$^d5R1CWJ8hKRD@G+GqIe zPNn&isD@~^$=w34DyjRX9OxINGrLwi_~7&=VEf;HJn6teNw;2bzFzUavh~WXK+Gw} zNI8wp)*o`2ELR;{0nf%$e)rA5VpfB<^wk?C_lhGBX$k19!y2$5DG1{}?OEN>{^-Y! z?vh*1qrOFL5LStnCAgD(+oIruDC|~p7>ezwLzjA zS-DLr*CqUT?weid)~p{a6u<(!GUpsv^MgONZw(?Vq594I>I>RlL3!wH#N9W{9<8_1 z=#CzzQK>(mP`B?9IK*G*5)TZMy&)ELI>uT(ry(ZQ4T%aX`Qc(!db^wNSXa7V)+Z@( z1}*m%`V+Yl6HDKIccm~N|y@~ss-Zm?=b)( z%NoW?eWSfH*m}G>8XAsDlH!UMoDUU-G4stKXC8i*+WgJ(OR%yXF|3`B9xG{84%aq( zM;+(BbYA+#VSGNyXXR+7#~*2W&tRqS2>i&G&DJ-qNHSC+gKsz9hOzG4UIcMed)y?h z^V$)&h{K^GhF=h!AiMJZuvF}ycsR85yqhb-Y{=83UiJ`!BMDk2LB%*FnEgi|9QOP_ zCCzJa(*~>R%ra}*4zL+);jA8%w4*naSUxj!I?T&2qLrg>x?UwnQT=&_9?bHK9OK@y z>1I<`=X^p@jiFr_pWY$wtfHnro@)?M+eP=0D&X`t5AJFEu!-L>;_~+sAYr0I?ORez zP{5PL7+Phex3MQfBs9J|t=)Z&Unz(r=fPq_;~AyqhvjF?MKF)O+#^xVt+BEB%cHiZ zJ%+D58pG0}UB-2r)5|}6O4Ah#tG!@9#h{6ejSjJ6P;uUf5!)&`u9FOx8NtS5ve)sC z95!C8dm13aK7Xz#b$?kL&im<&VkLS`R%TWl$kJ8wpNCZ>zEShC-&CE^5n1Ql7LqXJ z(G)$L3dK&HbiG76pZq1W+`etC9-(Mm3;0zFXnQ;;TfWDxH#7)Nu_>sxU3A`xVbr@F zFycKU2$iG_^eOkIX>oe?whcrCj$S#?Mm@ojX4+>qIJsU6V_FRN$t6F{z|$-&X+!Qj zl56_taZqP);!Kj-`MQ=M)v&@z8Lpw0IM(r9<^!-e7#DY`F0~Kn3y^x2Q(;I#gjo?aU!UVcliJ7Edvu zZz>O#^b|+q!{uB#G)LQbJ8b_o#q;r|lOOp){n6p;1^E>*mem7huf0d;{EuG0g`Q8L z0E*@6)3Q#?wQb3McOu9Hw~L0I)tnZExYxK}f7H}z7kVFaNq~zxsAZ6#Vcq$vbM7+Z zCzIz*Une5LO@E;poYMzP8U>g#Wq-9Wi0i1qwra*O$zZn*QF%`rNJ!o-zQ)e(wpM{eBsrO_LP3B{ z2fmO+S0-5@aVY=709b9Op%$Eu(_Nci+*IczhhLy!oaS4W9>&Xw-i}j>ZI9k8gI)6S z`)$_OPoW1Gp4aWVA}AO5m!C45L^~cokO(xcQ!-gsxdrUq@ADK4=@@cGPpaDvtQI~~ z#z7d%wbIK{q$t=b|4o&oKe6Ioaias_E)gdNlLHRmGTO-!THN_(Yfd#{wfN*z|-%MnX#T>IWq4^-UQe;uswb zK6^rDkcI9+Gq`Fd%X3p)1TGMJc>w&Yt*XX%>X(?)p4w7xt{j|R%K?;5v2n(1*tl02 za#6hW<7h~8T6O}`7=7v#CtVg(lg5k5KIS%J^0^6)UfxZXFoNOPieQ_k8PT*e)E~`3 zFY90ZHW!v$Z}<&~$Ms6*3g7(-#tguc#I5{B@^*zQc3s$0W$KF4blK76!Ea!IgH0yI zXY=z5Z%u)*5GXz7#(fs+)#)`NQwr>4zsW3~QNSFa1AxD+Y$H~!s74rZSUgdmABG(6 zgzB|j;@U4va-BR_@>phClZT5bCdQYfZpW>cA!A{%m8(6wd61&3c7D3fSPgp^!T zw4~!ttf*Nt7t=OQ5l#hLp|^B9Ssf&^Wn&vW61#2QMkp2^YrB&fXQ*{M8W(h-X=NL1 zfPP#h3%@wub=KI@?pP6r=!EDz{P{(vo|{1Istcys&}tJ>`jj=qs+T5v+$CTSso^Ek z6)d*ZQm3|1%f%^K(OLPKB;Q4Uh;*LdcM#@Y_wuSboQs`h-44}FPvLV|dwBe^R#gQJ z*mR@uMO%95K5Z!&lo7tIPeU}8(ItoIS@kO)xuW)OZu?>R7`IWoeK{Brp#*{?^V5yJIe1x~S)+xS zea{*xuR(X~`j8RhhO)CS3eakL4m{T`1&PK6y);^I1xJ+8y<>qTa z5T#7Lpl|R6d+Cymk!ynHGAH&4{zWpCf+89frGXpmB$p+qmfYVF5Xp+n41UQ(r3#XC z3v=Hu_sQ{#FSLvchPY@Wrov=}ic)hlx$cf-=3O{#G!Ujdo@X1C8DH(@7i)48D-PN6 zk-#Y*p94IfrwMab&g$0}s1EQSZN@@L<)XYq`7JD#&a*gPF=0y&>5w+-I8|~_!nj?x zlWJ-noo-f%(#{V#eSJtUN>L%K0XD*zyLkft7Cq9tY26_9NxhB-oJZzc0%DOI%Ta5e z3nvQg^*6iZ-k)H(ecDiD$6dVCOWY7arn(H`QOlfsQDqvP;C*Qug_iIe?U7NXrqdXM z2uy`+oM&zM$?);jJ=#(~Z)tl?U&zTJ;Uh4>?$KppckRM-Nb5I`;WWJ{bO2x+qhW!D_=KVOo+1rQE_`Jf>q@AoGJ5A5>B-$O;8;4 zfed!Ckl)4Um6Cetbk;G`c_<%g2#br{fplA)m*9)2(B@$_QTz3*K#-uPr}CmXR{TZM z-0)lr?^2iRQDe2TztGc}S4Px7nSmCfLe7oYdV~*GbY_=D+#9SBj$j!{Oc!s=8Vj-C z_zP%oCi!#5%KKyg)QQkJza#_pJA0I5Tkht8LMHzfVj-?NsOUVz7&L5 z_Ic5_y zY6YLZPqB%$NG}+~X($3o&1V>%O{elCc=}c9WFnh_I)y33R%ul`QI>P+pXipr&aM`0 z@_M*){b)T(>d+EKE)oW*pUmrd?bW>P&?<&pf!+7pOPLV)wsssp4`79rlX7Ie{YC{> zQ`?DXcdtV%enAG-NPKBwv3D=}plt6W)+4tgHzh!P@3n#Ealb}dUFWu)<{!IND(xXE z78D)oJfEw^+hNF{I(6f0r$M(jiB7qLG~P=SE_`>??0FN*EMJ1xu>2fi7Wy;Jy}0qR z7fQO0x-?vX3x1A0Q?6vNgIJAKZ2ta$;*{0at!RMoU@Fe*x}*vH+R^dP+R9wUqT zf21)M828=67HE`j+L_<0|46kR{Pg^D!>VkdoxO7D+ee!0AF_@?-SkNNrQIZ*Ii-zP zi}mrY5G+yu*EYg>Ma3Q$`5!_QbxWwdE?WIivr|1>{P+;Ck0tmyA4?z%%eil}A`i>@ z7=3q|uREE7?4wIINlCm4YBv*Sz|{+}I;|kPnkDOQ;>=(u`CfH@+83AVKf5z_f|m!H z2z77{*J*p-ail>C5qC3G$2NZZhNF7Uve_N$tA)jgCb;3GtCNL$x$_x_faaTb?$W&9 zECTL#{6{$<>XpI)vL@DSDI)xGQ2d28kaZXUuS^uvs0`4x}VxTyKyQ4m{_9!@PC3&B!_JR41+)J=bB)S{ddNA*>ph zHSe}}2zZTFE}^}Z?8u0#7B>Ql{{=B=l7L0|soU7>*tn-5A>*VT#Sa|5A5>09bZcUT zMSOUtUXq!;TpIvSUFC)W+fSE^<^f{IEX$|~Rz6?uwEJd)5$*?0E3nrdqK~N%wq~#G zw2nVzX}~Q$So@H(e zAqVH^RePdV&NbZ$#N?e4o>=X48G7ETnLzsp=E|#OZ;Zi`SXsFixOt-=)*u#_TpIMS zJsfEY0^ zIcen}^SV6=uXG>ru+Rz}BNP7?E5`xmqR+sCcIswe$ho2M`Ds$vV11ZM^ERmfiCS0H zj{h;s<$Lw_4hc&8>h3d^ebelXOwF>rQ_uDAoB^SVKi|F1$?-G1@5*;D$-+)!8-!*B zEVoHQV1l_UjL)gVV5`n)Kyi77+}hMsaF<0ix&@qZ9Dzw{N(CB#SkbRE#sDbN-Mpcz zWa^ck(oIO~o2vKrDrWWo|Ga>z_w3d8#-i!EUTWZF*UWNa;oiN#+NCwZWz>d}o+>cu&Cc3Ho3g|>>c zcPPHk`uDVfCd-EllX|4J^~KXo9QrdVSS5IU(U|=E_#sxLUqtlJd z>_!+aRE)xh`(6nfZEdmE%c9q=k~eh1AauyfXH<;CM*Z^^erziRXHHx9w#F z*HCi&Z2J8BuK{G!aZvW3PjQ47)!%6VMMoW=L*0Kne$>#%9!_{M_LD9K&i58gJt-S@o<%hyn~fQPEjcW7g@>{&G;GN?G^jPHsDN+#geO*;RfZ+g) z_1w*NN~Os&S3qgQt>K)tHWR>>EO$k1IzEuY*cDDV5i_I*>}L;1B@25)=rsPuf1tvd z8I>NWNCph(EviO#c)OQ!EkJtR_yXyr?)o=pNau&r0=VXwTi)X{MCmp%-2{T< zG|7N$sr(>3QHJ~jnBp>=P$U5w?;5fehoR6lOkgSk(}@e^Nl^oVnQMWHh0Hy(3pk^- zNuKZHBC(kJj?!iF;Ij{6Yfm6e|$tzc6@ik5kVQ=Vve)w+?1|W?0y;i2#|;@Lb&}v{dmduZy-?>^xq_^7QeX6eU0;2W{B6rQmP~;e;8v zkl?Ve`ARGx-a><|a&>v#ZT>V)J1RZOz&N=>W01ai>e#CS6qW5Y23PmelymDbHD`pi z9+M3l1!#Z#qF)99TjC^$7tj@AJ+i|WDu>NBQFEWQz5hh`C785#j_(noikpivQ(m~_KiTvED0=LP!Jb8Z>eKMf3MV~JZ z?C=9QGL7sutniQyT&NrkQ2vR~nX(o_+>k}cO9O##-xit;{BV5Ny03yaQYn0)^}IfP z-1yt7tErH6{CIg$j5K;JAQg0`l_9^W@@qzup_@$KIg$wYD!WH5tO&Q^fJs4slRH$I3ojdc^B5p#ocTa)tiKwo8>< zF$IX;2@ft;zMFeyGc9C~tYz;k^{*9AGFKdlJZrskJofCz zB>4#u-fpNK7Fj87ZrUvj(8sEZ{H0u7*|sGj@}Aze&((lxQnSUt6vax*XHN(6)T@}OV(h$44yhzA84(-3y>u@@r~DYLnh7YC zO(`ZALko|(bi|SWQadmCzI5}(K+M%D=-xN#ubP@j%F?5`PWX-?aXU^N1{Dz(=@q-u zL*=@kg^J@JLS`I@!4#5DvDi*4C+=PP%oW{X{Soi(xf?QX0EzwF%X>he&IumZJH{fr zyrtj;WYqVfP#HBAL^fAYHclU#UZ)7giy^j#ZtL&Yl|f2nB?&6;TpD?_Q_IFp;tCo*m#bNg(s-(p(Q;q6xP) zzjQMmMQkF=uxU+6+W2BKBvw7i*Cl>{!@8mJ^{Wv&MJ>I``eIPp9}@eU z=Z(5oX#?F)-DQVZF;+T|vw7yoOmTdiKclH2eQKA;Q@h3xx0cBTXs5*WZa%p9%cki* zTGGSFdW^Bl*C*~@ICIP6rp<211y?obtzZQwgA49bf}wMFKVML;PWd5p;*g4XHne-! ztiYk#WW*kwx7(vM8!>^@!2P68`XrOvOXSvs;ZN} zFc2sGz9WtO?v%1?tJDXr6=4Nyl^vcJus8f-&y#=}4>D$d9r~NbnXXCSL9GErX?77d zx+|E$$!!xG>`!KfOmz-ofGI(3ThaPvr-|+b zAAG&{p0w<9JpPZHcUew7W%8tYOMm%Jih@l&5$6R;J{w@qdLX(9l#sD%bdcz*-8l;P zjxG3^#uYsaC=m9oKSNZyyOy8@3t680>WEQ94(RIBw=#M*NZ<`Vevf;%=g-0ZXb+OLZ}hL z8zr{s6cK9MxL)0()zV>ATGn5$80A0w3*ednC{o~`gh7A3k$Y%Z9r`zbuW{qy5hm^DBhG}UBl{!rVA zpZ;N90o1$`OUFyL{(+*JtPlBHAsvyxGVXUYFn9Wqw5e_A7I0MdBjrG1B~6z&#yHvg zRbQLFj9ry*iJwGMy7Bo+jcTS2trlOttxUkcOx01GhoFpJZcZSS@2S9qTDm#;6w{O} z`+@(z1Lv@OUwYTD10Oh+pqI8de03X)53JVodIKK(~^ z*;4-}CjZBC-_{XJ1Zh5r>|p)})chyxyru+PX3cH@g8t{9{`~`mkQcG&ZxK=dzx2ZY z{j-G$Xxq(3-#maY|N9>Bmp7jP^PH%pEa(5|xd&2-;BO|a&HvH$-&orIvNn;UWI(3y zH`lQk&^C{o_l|#a5BP#`D4=qUjEY7FQjmY|(my_XX#s5m_<`D}zrD?G1B5mDM}}R% z-*wCj{vKN!$TOPylmGs9B>D01G>@wGx91`1@#0jV6M~r(7`8H_p4WdDCJML_yLW8% zqVW!xwY}67Sc0XUP)C_h8znne;x)&Oj_Qk~(-muXxN+gsS9<@IHC&UG@Oyl~-w!9g z$ogHKAQ-zL)N5@+3^j;B1Z}5f6;e!p|Mx<{`v4~~pJc;Q=qhn@T*C_s$f$!@fH52; zZ((P4lgI^7_duO*tNpv&7{h|#Jxp`Nn_vRCRNyxtz?}1g`u-#yyPVvh{<2r;xOMFL zuP0cunstg!Wx&gi+;Gq|)xYkXe7K{T23X+J(HKCI{u6Xt;1@EJ5o|(i9WxZ()GZqe zU2uWEYQ_%iCzfSn&;|El^F*678s5WLTCmbAgh>JldH^@UZtqLpj~t2*$gO^y>}ju2 zpxc?xFaJ3Cao_#8x@Epj%0hn6JlV9{0p+@x4T-vCwakv{6vxO=27A>+wIhf6x~sN!4>A zF!CPHP!+1B4^E4F=CK6~u<|r)k1;d0F>U-95UtxPjYFUIViPBytF#?_~jO`Z8D zN{F6Y7kZ{@m^?wedZ&6$Qra-g1HuYHnlCWyT6N?1u)$E1SZdZ0-F-+QdG4+lGOxV5 zEMGPh733tc9<)pOOz+AUIB@I?J8(ZC7YURo+tO>&;AEu+fji&}A31)tS1sVtPryNPv%MYHAI;>zmDRu&Fz0rh)7)xUf7 z^0D(#Ee3D~YW&j~sBw3UM^;q_I0H3Y#*?3%fkk8dSNLwBg^UXB06@%>+TDUerxyxQ zMef(Zm}(2itrkbbqGTUuE}q+1^BVH$RV{p}AHVnED`j)3bIF7n;Kp}i6D^Nlki~Gu z{0rkvJijJzZ4`xK&UNJ{YvA@sg>M*Q=@j(|6PxFds{22j%9V@DVovNP{WSM(SR+lp;@9wRIm^)rrdVeyR7QKrnRj4j;_kS@Y z0N}XxLBg3Ud!x)yj9x3|Uv7O zC`(1E3Y5--eG0HDvEjz%Fxm9nk+srIP;R&=x!oqIsfk5(-&F&s#scy9MSgPn5U8|q z{l+MF#0}TpmCTsJ0caOXVfTj2g>BuIg`AQh=b83u;M1p2=Kl>Xg!2pH$sGhDtx zvMM8_$V@2Me*@f9ptG8mstQ0K<(Q-;^4?&VdFonU^5KYX^De%xFxx-UuT2Bc8No1xiS;TfPHZE(HXTcN2Z=?q8u=}u}jkdb~%8@ zaTEB+l?5WZmLd{XsZF<=5J`MCqBsl@F;${o6J-Mh{JdC_52z} z8pzY~xNN3x(;eLqA?Nfu^Z>$=gERjl9yk!p_YeP^DH&Tnw#grEeRpiJoCttB3Qdbp z1_2!BjDs-1aVD^1y9z@x#G$N9TD5&9)C9;!b2rsDB9H@cA}bbP0sR6x zy2b?BHahl;W)hQ-EoNX1DEtyAe3qpG{0zbwy)SNH3J{*OuL>+abxiZ8t zkKF*pItdK3PIV^8;oeX9KrWqZ--v*MIUoL-YXjt*3b2L%t;K=+9#091>VqiG08SOa zviJ}fCYXg^SJtJH0JoI$6#Jd48KJ*oUov+)4wz^a1=W zD@OpEU7+qv;CS>bsKGR4JV&%+zzDFhl?K%Q3kx@7S@lhISHeT7Z7N{VB*~=WGtTjtjthM|WMyRAWrVN*;P@7Bo=wN8yK=?> z!7w#ixGE5X+|IVxc_0A=-mrapa=9&s#cB;`+&e)D?o%@|Tk3B!lr5J-VV8^^NgeM2 zZg$>6!*qS}J(Rcytc65R*1~Kc4~yh_><@f`?AqFJ4L^@j8istoPP{dhr(C@(M}f?% zcFY59kO!!01;WEC4JftV$Y>hM$SQlb=AjJF$rY{K>W9^z^$S`vVV6KGz=uC|+yUN6 zLZ`c!u5#caWnBW|s-=Nr zI=A!c8O;O`1;>rSaHm2cC~BVPW3o_K{$n6VFSyLfGY0DM+Wyx_h87G_ex`qW@Yf-} z5}9?)@x)EIpa1LN6-q%)^E~zYUiOszLRk}bRyth6r!2dJ)punaFs=}ZEmj1QCuT>3 z;gSM=-x%qJYa^^XhGTJRD2IA$KzQts4%>mWNH<1rJPlJne&Az{a`2XO3cVSl&l;Aq$kIW zT%1%9<1LpS)qp9a@cGPd4=~7XJrj>n$00ci&gvbX0Y5%>ecoFt*M3|b?_-Bk@%zX_5)HdpYOy?))Tx);?^Zf84Xo@(o`5ota)mGwGw(&ibsTOak{U*#tnllNZNxF5A|2DK7(P-<2&9WLO3QAeyvA z%sa-gjNPzAa80)A;X^TTos)e!&o9RKfz}yO874@;22E8SNMv49N?{dRonmI zZ)-2J*4b~7Bn@8FbTl=ot-|?%6L7#C*H8ZG?9JB!4;9#ej{}0UfiL5r6}bCeIMZQQ zlKRF~N5(5E(I?ch{W*Ix?^zJ^@hBd`h@5F-2gN`Lbh`Ohcp?<+b5F)FNG#8Vp!zZC)~|_ z&TM+I@uVuEpBsY(a9CZ;;2aExFyG1B?Fh}f4|h|534f(uLzyXQn{QBB)Rc3|xihdY zy9=Iz7WrkYWH-05io|~2bo^sI18X;6lc_@d`KFbi?`=q63lPKZKc4kUBXb#vha|@i zkG89`z$=%yn9@V1YOPC1d!wf6{(cV)+PXJbd}}$wfLVpB&T1&Tt}(2a9-)p%!mu{- znRcr2DSaxX0;y?-oLlt#fo6}5HCp?NTOf=w9w?tBf#%n<1R$#?k%ntS=W_QsA}+Df zD%e5n@qirg^odyJvsEeJ>*1`4tGLMa)v=mO^^e<1C()4C?)7I(%x=-yv==ouL zvk`i<&0F%#)fAh>Vm<*#`}P^;BJMyYQ+LcSjI#$judwLea|F+Pg!VuDEIC|D%`-i< z7`&%CPRwGkk9L!^0}9>h5`|q}xPi#;ncV>PZj-^PvLsk_)$jmJ!8F;HNYyi1-l&~k z|LN0%Xs<@gjdZf}{4>9yh^GR`*`1fGy?90bPVni>QNHNd6~aODU$ys-^<}T^C#P-w zRN?O9nGvLCg+U~;j?Rc%PGvi!`k22%YXiSDQMGNSR<&Rsv5JFOZo?U+u`OHYaU<+;;%{uIA`?2+(-YnLT zym?>E`MTLrgz5R+2INX|??P`*il^c8tseFgj;W};5G0oBUZ27pwRM=+sr6=YgEO!H zMHr3q{dj+16a7HoMr{E)l546Rf#Ky#)arHBdYyn{cqPNK0{EoelkuqsnOi{WwcMjg zj7eba&nRBbfR_Ukimg}dX|KS{bA``4l|K5e=X+fg<2dkNMie}pWP!Dw4;$bym_HKq zE#B7WijT!#o08ZS#4A(d6g+e(Jn`w$2%GaCUjSSNSGHF}ecLhmp>Y&Ze^9ARG zfp4tE*Pm;gP0w9cKM36Gps+0o*mkIZ>p)g1>p;UaDGlPY+JEXvqZ{oSe^~Om?r0myoinQx1zd|r9ag)axYnRpWN)+ zw=a}m@h%4{mKp-TVe#1;(QVm-p;6t8+J|2b%;#95RBVkmcEQ_KQ^>xHJM8(ft=IGt z!N(Q0u(EkgQ0~yv7_yw`!xrBT0flupj!eG#69As#&(WRpYa!|FMe6*^4V|=)?-=Pv zgb16>1+qmCd0JZG%PDl$NpIr4j+7A(YqGb1FublBnPKU10(}BYEM?Ok2r=?X9oG%0 zjS`%MtiPjti~O0`TuC_;8JqNgD-fBGaxwKS?_jMOa zC=8bs;>ViW>UMFD(CU9|A|jI)Wq9=hj?P{9JSA+%T#aEzlWpm)S~Hi1&d5+q@)*(Z zNil6@k;ZCT;3Z559;M@Sj0k6lPw||3#`X(p%g2lDR&Alrb@eNWyFk*c*6}ybS)Vg> zC>qVMx>9n73m;LhGaW4i_u}94xQKr1%xbrq5l!k@9xYmM-UUsBl*j;D);5v-g!=6-5_pMJ6V)r(fOb44I zBTkU_Zymb3o0zjNk1Le{wI_-KK z<{|g;=iaBnsVb%><2i@prY$4Zplx?HVI(Awc_drtBxbPyiciZ4-F>o(SDqi1V%kI0H-JM(@!`Vzs_!_!E6xm>a&4>T~h6&#!MDorsUQJHS$8Tt%GdbTqGkGDEHpR2u+} z78NBT+jF zb{7{;4C*}%*{nYQO(@4;*DeKGHY;TPlNY!bb3_~}d#~xwKc9pM_ji)ZT&Bp-B$Vvg zhLDa=L&PBxvjY%_)AuhlV?Cx?=S5+q>e!e0>D$4L)K4UrR@l<$wEfS)ClA(iHoL<$ zrX9DxLGD2J-B(55a=C6GpxF20899crC$S-%cVEe5J&5M1Krk^vn7PM!Nhr`ck_GSF^{G)&^jeJxZY*J)Dd51 zAYk2}R}Vx-P9H{+EG;~jJS|ZSmwX4|o}E4+ad&F*? zL{}SNv>S}JWM+!NTo+=wm*L%-hPU?H^N%$GHgqCbjFD4ZR4;!(`c>Q=(RjpRLeIbq z7{|hycR`C#F1{PWBA!0uGW`{=ntBlV6+a94h^Gis>OQu&VMvX(XQ)5j

SWP_dF( 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 diff --git a/doc/pow/images/cuckoo_base_numbered_few_edges.png b/doc/pow/images/cuckoo_base_numbered_few_edges.png index d1b9c30689e9bcccacb1fbf31663aab33db01f1e..0b2c6c45d62def014b7cf4870610b5b9403c1c82 100644 GIT binary patch delta 12580 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 V*}$b`i~|0>R#1Oc@zN~x{{aT;j?Dl7 delta 12268 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 Hu=oEDdbFc_ diff --git a/doc/pow/images/cuckoo_base_numbered_few_edges_cycle.png b/doc/pow/images/cuckoo_base_numbered_few_edges_cycle.png index b21eb48f17e3a4e0e3bb2b70eb40324df63c52bf..68b8ac7f100f9cb4f7e6dcdefa70ad4b1cf60910 100644 GIT binary patch delta 13872 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�$T>tWD$77 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 Xaje5zEu1-MJv$F0rtrL3ej|Belpb@gKbR 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 D2AN&% diff --git a/doc/pow/images/cuckoo_base_numbered_minimal.png b/doc/pow/images/cuckoo_base_numbered_minimal.png index aa13946563d29e5a9b754258285374c9d8b145b4..a360e1e8dab8ef88e6d30e8504c68f4d8f366069 100644 GIT binary patch delta 10957 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 literal 12305 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 Oqp2(FC{-%hg#AD4S**zb diff --git a/doc/pow/pow.md b/doc/pow/pow.md index b9d402000..c0c67522b 100644 --- a/doc/pow/pow.md +++ b/doc/pow/pow.md @@ -7,12 +7,12 @@ This document is meant to outline, at a level suitable for someone without prior the algorithms and processes currently involved in Grin's Proof-of-Work system. We'll start with a general overview of cycles in a graph and the Cuckoo Cycle algorithm which forms the basis of Grin's proof-of-work. We'll then move on to Grin-specific details, which will outline -the other systems that combine with Cuckoo Cycles to form the entirety of mining in Grin. +the other systems that combine with Cuckoo Cycle to form the entirety of mining in Grin. Please note that Grin is currently under active development, and any and all of this is subject to (and will) change before a general release. -# Graphs and Cuckoo Cycles +# Graphs and Cuckoo Cycle Grin's basic Proof-of-Work algorithm is called Cuckoo Cycle, which is specifically designed to be resistant to Bitcoin style hardware arms-races. It is primarily a memory bound algorithm, @@ -28,12 +28,14 @@ further technical details. ## Cycles in a Graph -Cuckoo Cycles is an algorithm meant to detect cycles in a random bipartite graphs graph of N nodes and M edges. -In plainer terms, a Node is simply an element storing a value, an Edge is a line connecting two nodes, -and a graph is bipartite when it's split into two groupings. The simple -graph below, with values placed at random, denotes just such a graph, with 8 Nodes storing 8 values -divided into 2 groups (one row on top and one row on the bottom,) and zero Edges (i.e. no lines -connecting any nodes.) +Cuckoo Cycle is an algorithm meant to detect cycles in a bipartite graph of N nodes +and M edges. In plainer terms, a bipartite graph is one in which edges (i.e. lines connecting nodes) +go only between 2 separate groups of nodes. In the case of the Cuckoo hashtable in Cuckoo Cycle, +one side of the graph is an array numbered with odd indices (up to the size of the graph), and the other is numbered with even +indices. A node is simply a numbered 'space' on either side of the Cuckoo Table, and an Edge is a +line connecting two nodes on opposite sides. The simple graph below denotes just such a graph, +with 4 nodes on the 'even' side (top), 4 nodes on the odd side (bottom) and zero Edges +(i.e. no lines connecting any nodes.) ![alt text](images/cuckoo_base_numbered_minimal.png) @@ -43,46 +45,50 @@ Let's throw a few Edges into the graph now, randomly: ![alt text](images/cuckoo_base_numbered_few_edges.png) -*8 Nodes with 4 Edges* +*8 Nodes with 4 Edges, no solution* We now have a randomly-generated graph with 8 nodes (N) and 4 edges (M), or an NxM graph where N=8 and M=4. Our basic Proof-of-Work is now concerned with finding 'cycles' of a certain length -within this random graph, or, put simply, a path of connected nodes. So, if we were looking -for a cycle of length 3 (a path connecting 3 nodes), one can be detected in this graph, -i.e. the path running from 5 to 6 to 3: - -![alt text](images/cuckoo_base_numbered_few_edges_cycle.png) - -*Cycle found* +within this random graph, or, put simply, a series of connected nodes starting and ending on the +same node. So, if we were looking for a cycle of length 4 (a path connecting 4 nodes, starting +and ending on the same node), one cannot be detected in this graph. Adjusting the number of Edges M relative to the number of Nodes N changes the difficulty of the cycle-finding problem, and the probability that a cycle exists in the current graph. For instance, -if our POW problem were to find a cycle of length 5 in the graph, the current difficulty of 5/8 (M/N) -would mean that all 4 edges would need to be randomly generated in a perfect cycle in order for -there to be a solution. If you increase the number of edges relative to the number of nodes, -you increase the probability that a solution exists: +if our POW problem were concerned with finding a cycle of length 4 in the graph, the current difficulty of 4/8 (M/N) +would mean that all 4 edges would need to be randomly generated in a perfect cycle (from 0-5-4-1-0) +in order for there to be a solution. + +Let's add a few more edges, again at random: + +![alt text](images/cuckoo_base_numbered_few_edges_cycle.png) + +*Cycle Found from 0-5-4-1-0* + +If you increase the number of edges relative to the number +of nodes, you increase the probability that a solution exists. With a few more edges added to the graph above, +a cycle of length 4 has appeared from 0-5-4-1-0, and the graph has a solution. + +Thus, modifying the ratio M/N changes the number of expected occurrences of a cycle for a graph with +randomly generated edges. + +For a small graph such as the one above, determining whether a cycle of a certain length exists +is trivial. But as the graphs get larger, detecting such cycles becomes more difficult. For instance, +does this graph have a cycle of length 8, i.e. 8 connected nodes starting and ending on the same node? ![alt text](images/cuckoo_base_numbered_many_edges.png) -*MxN = 9x8 - Cycle of length 5 found* - -So modifying the ratio M/N changes the number of expected occurrences of a cycle within a randomly -generated graph. - -For a small graph such as the one above, determining whether a cycle of a certain length exists is trivial. -But as the graphs get larger, detecting such cycles becomes more difficult. For instance, does this - graph have a cycle of length 7, i.e. 7 directly connected nodes? - -![alt text](images/cuckoo_base_numbered_many.png) - *Meat-space Cycle Detection exercise* -The answer is left as an exercise to the reader, but the overall takeaway is that detecting such cycles becomes -a more difficult exercise as the size of a graph grows. It also becomes easier as M/N becomes larger, i.e. you add more edges relative to the number of nodes in a graph. +The answer is left as an exercise to the reader, but the overall takeaways are: -## Cuckoo Cycles +* Detecting cycles in a graph becomes more difficult exercise as the size of a graph grows. +* The probability of a cycle of a given length in a graph increases as M/N becomes larger, +i.e. you add more edges relative to the number of nodes in a graph. -The Cuckoo Cycles algorithm is a specialised algorithm designed to solve exactly this problem, and it does +## Cuckoo Cycle + +The Cuckoo Cycle algorithm is a specialised algorithm designed to solve exactly this problem, and it does so by inserting values into a structure called a 'Cuckoo Hashtable' according to a hash which maps nodes into possible locations in two separate arrays. This document won't go into detail on the base algorithm, as it's outlined plainly enough in section 5 of the @@ -91,14 +97,19 @@ variants on the algorithm that make various speed/memory tradeoffs, again beyond However, there are a few details following from the above that we need to keep in mind before going on to more technical aspects of Grin's proof-of-work. -* The 'random' graphs demonstrated above are not actually random but are generated by putting nodes through a -seeded hashing function, SIPHASH, generating two potential locations (one in each array) for each node in the graph. -The seed will come from a hash of a block header, outlined further below. -* The 'Proof' created by this algorithm is a set of nonces that generate the cycle, which can be trivially validated by other nodes. +* The 'random' edges in the graph demonstrated above are not actually random but are generated by +putting edge indices (0..N) through a seeded hash function, SIPHASH. Each edge index is put through the +SIPHASH function twice to create two edge endpoints, with the first input value being 2 * edge_index, +and the second 2 * edge_index+1. The seed for this function is based on a hash of a block header, +outlined further below. +* The 'Proof' created by this algorithm is a set of nonces that generate a cycle of length 42, +which can be trivially validated by other peers. * Two main parameters, as explained above, are passed into the Cuckoo Cycle algorithm that affect the probability of a solution, and the time it takes to search the graph for a solution: - * The M/N ratio outlined above, which controls the number of edges relative to the size of the graph + * The M/N ratio outlined above, which controls the number of edges relative to the size of the graph. + Cuckoo Cycle fixes M at N/2, which limits the number of cycles to a few at most. * The size of the graph itself + How these parameters interact in practice is looked at in more [detail below](#mining-loop-difficulty-control-and-timing). @@ -106,7 +117,7 @@ Now, (hopefully) armed with a basic understanding of what the Cuckoo Cycle algor # Mining in Grin -The Cuckoo Cycle outlined above forms the basis of Grin's mining process, however Grin uses Cuckoo Cycles in tandem with several other systems to create a Proof-of-Work. +The Cuckoo Cycle outlined above forms the basis of Grin's mining process, however Grin uses Cuckoo Cycle in tandem with several other systems to create a Proof-of-Work. ### Additional Difficulty Control @@ -157,7 +168,7 @@ valid Proofs-of-Work to create the latest block in the chain. The following is a * The new block header is hashed to create a hash value * The cuckoo graph generator is initialised, which accepts as parameters: * The hash of the potential block header, which is to be used as the key to a SIPHASH function - that will generate pairs of locations for each node in the graph. + that will generate pairs of locations for each element in a set of nonces 0..N in the graph. * The size of the graph (a consensus value). * An easiness value, (a consensus value) representing the M/N ratio described above denoting the probability of a solution appearing in the graph @@ -183,7 +194,8 @@ Controlling the overall difficulty of the mining loop requires finding a balance chance to have a solution as a larger graph with a lower easiness value. * The 'Easiness' consensus value, or the M/N ratio of the graph expressed as a percentage. The higher this value, the more likely it is a generated graph will contain a solution. In tandem with the above, the larger the graph, the more solutions - it will contain for a given easiness value. + it will contain for a given easiness value. The Cuckoo Cycle implementations fix this M to N/2, giving + a ratio of 50% * The evolving network difficulty hash. These values need to be carefully tweaked in order for the mining algorithm to find the right balance between the @@ -191,14 +203,14 @@ cuckoo graph size and the evolving difficulty. The POW needs to remain mostly Cu reasonably short block times that allow new transactions to be quickly processed. If the graph size is too low and the easiness too high, for instance, then many cuckoo cycle solutions can easily be -found for a given block, and the POW will start to favour those who can hash faster, precisely what Cuckoo Cycles is +found for a given block, and the POW will start to favour those who can hash faster, precisely what Cuckoo Cycle is trying to avoid. If the graph is too large and easiness too low, however, then it can potentially take any solver a long time to find a solution in a single graph, well outside a window in which you'd like to stop to collect new transactions. -These values are currently set to 2^12 for the graph size and 50% for the easiness value, however they are only -temporary values for testing. The current miner implementation is very unoptimised, and the graph size will need -to be changed as faster and more optimised Cuckoo Cycle algorithms are put in place. +These values are currently set to 2^12 for the graph size and 50% (as fixed by Cuckoo Cycle) for the easiness value, +however the size is only a temporary values for testing. The current miner implementation is very unoptimised, +and the graph size will need to be changed as faster and more optimised Cuckoo Cycle algorithms are put in place. ### Pooling Capability