Only the version changes in block.major_version?

const int cn_variant = b.major_version >= 7 ? b.major_version - 6 : 0;
crypto::cn_slow_hash(bd.data(), bd.size(), res, cn_variant);

Am I right?

Is it qualified enough for anti ASIC? and Why?


  1. Biggest change is Bulletproofs:

Bulletproofs is a highly anticipated form of cryptography that increases the privacy of digital currency transactions while at the same time significantly decreasing their size.


  1. Another change is, globally setting ring size to 11:

Previously the minimum ring size was set at 7 and optionally users could also choose larger ring sizes. Now for better anonymity the size of the ring signature is globally fixed to 11. With static ring size the transactions cannot be differentiated and this increased ring size increases privacy level.


  1. And finally, changing PoW algorithm from CNv1 to CNv2 to render every known ASIC useless and make it even harder for possible ASICs to be developed.

There are of course other smaller changes but the mentioned ones are the most significant.

  • Do we have code for explaining Bulletproofs? – Bai Lee Jan 11 at 8:46
  • 2
    @BaiLee The source code is part of Moneros Source Code and if you are interested, here and here are security audits – Endogen Jan 11 at 13:43

Only the version changes in block.major_version? Am I right?

No. There are a couple of places a "version" occurs. There are hard fork versions (currently v9), transaction versions (2), cryptonight variants (CNv2) amongst other things.

Your Answer

